【问题标题】:I am getting an error "Snipcart.api.setCurrency is not a function", I think it might be from the Accept: application/json我收到一个错误“Snipcart.api.setCurrency 不是函数”,我认为它可能来自 Accept: application/json
【发布时间】:2019-07-12 14:43:31
【问题描述】:

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

【问题讨论】:

  • 查看文档,您确定该方法存在吗?我看不到任何提及它。我能找到的最接近的是Snipcart.api.cart.currency(currencyShortCode);docs.snipcart.com/javascript-api-reference/public-api#currency
  • 那篇博文已经有 3 年历史了,代码可能已经过时了。
  • 这是完全正确的,可能是我遇到的众多问题之一。从部分文档docs.snipcart.com/configuration/multi-currency 我很难理解这一点:“加载页面时应该调用此方法。调用该方法时,您必须能够知道应用程序设置的货币。这可以使用URL 查询字符串参数、cookie 或您可能想到的任何其他技术。”
  • 您在为哪一部分苦苦挣扎?就是说你需要调用那个方法需要在页面加载时立即调用来设置默认货币。

标签: jquery json api squarespace snipcart


【解决方案1】:

旧线程,但对于仍然卡住的线程,这里是代码(用于 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>

【讨论】:

    猜你喜欢
    • 2017-02-07
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2019-12-12
    • 2019-08-23
    相关资源
    最近更新 更多