我收到错误消息“ Snipcart.api.setCurrency不是函数”,我认为可能是来自Accept:application / json

时间:2019-07-12 14:43:31

标签: jquery json api squarespace snipcart

我正在帮助某人将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>

1 个答案:

答案 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>