在结帐页面上通过AJAX API添加产品

时间:2019-08-05 13:36:37

标签: ajax shopify

我需要根据运输方式将产品添加到购物车。因此,在Shopify上的“运送方法”页面之前无法执行此操作。

我知道可以通过AJAX api添加产品,但是我注意到一个奇怪的行为。情况如下:

在“付款”页面的“付款”页面上:

  • 通过AJAX添加产品,然后转到付款页面-添加的产品不再在购物车中
  • 通过AJAX添加产品并通过JS触发重新加载,然后转到付款页面-添加的产品现在在购物车中

如果我不重新加载商品,我不知道为什么Shopify会覆盖付款页面上的购物车。因此,寻找一种无需重新加载整个页面即可使用的解决方案。

要重现该错误,可以检查示例Shopify website for AJAX cart

  1. 将一些产品添加到购物车。
  2. 转到结帐页面
  3. 通过AJAX api将其他产品添加到购物车(代码如下)
  4. 通过AJAX获取购物车以确认已添加商品。
  5. 进入下一页,通过AJAX添加的产品不见了。

将产品添加到购物车

Checkout.$.ajax({
    url: "/cart/add.js",
    type: "POST",
    data: JSON.stringify({
        quantity: 1,
        id: 794864101
    }),
    dataType: 'json',
    contentType: 'application/json',
});

让购物车进行验证

Checkout.$.getJSON('/cart');

添加和验证产品后,只需转到下一个“结帐”步骤,通过AJAX添加的产品就会消失。

1 个答案:

答案 0 :(得分:0)

您只能在Shopify Plus上使用带有结帐功能的Javascript。如果您在Shopify Plus上,则应检查购物车并通过Shopify脚本而不是Javascript添加产品。所以你的答案是:

  • 没有Shopify Plus,您只能在结帐外使用购物车
  • 通过Shopify Plus,使用Shopify脚本