我正在帮助某人将Snipcart集成到他们的Squarespace商店中,并且他们想使用多币种功能。我遇到的每个Snipcart.api ...函数都出现错误“ Snipcart.api.setCurrency不是函数”。
我认为这可能与代码中没有包含“ Accept:application / json”有关,但是我不知道在哪里以及如何使用它。
<script>
document.addEventListener('snipcart.ready', function(){
console.log('ready!');
Snipcart.subscribe('cart.ready', function() {
$('#currency').val(Snipcart.api.getCurrentCurrency());
});
Snipcart.subscribe('currency.changed', function (currency) {
$('#currency').val(currency);
});
$(function() {
$('#currency').change(function () {
Snipcart.api.setCurrency($(this).val());
});
});
});
</script>
答案 0 :(得分:0)
旧线程,但对于那些仍然卡住的线程,这里是代码(用于 snipcart v3.0.31)。请注意,当您更改货币时,购物车不会自动更新。
<script>
document.addEventListener('snipcart.ready', function() {
const select = document.getElementById('currencies');
select.addEventListener('change', () => {
Snipcart.api.session.setCurrency(select.value);
});
Snipcart.store.subscribe(updateSelectedCurrency);
function updateSelectedCurrency() {
const state = Snipcart.store.getState();
const currency = state.cart.currency;
document.getElementById('currencies').value = currency;
}
});
</script>