且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在Shopify中如何通过url向购物车添加不同数量多个产品

更新时间:2023-10-25 14:37:28

更新

对Ajax API进行了更新,现在允许使用同一请求添加具有不同数量的多个变体。

示例:

fetch('/cart/add.js', {
    method: "post",
    headers: { 'content-type': 'application/json' },
    body: JSON.stringify({
        items: [
            {
                id: 33116502556724,
                quantity: 5
            },
            {
                id: 33116502589492,
                quantity: 3
            }
        ]
    })
})

旧答案

您不能将数量用作每个变体的单独项目。

您有几个选项,但它们都有一些缺点。

请参考此文档了解请求:https://help.shopify.com/en/themes/development/getting-started/using-ajax-api

使用/cart/add.js

您可以创建多个Ajax请求,并将每个单独的项目添加为新的Ajax请求。

优点:

  • 如果购物车中的产品已经存在,则不会影响它们

缺点:

  • AJAX请求太多

使用/cart/update.js

您可以发出单个请求,并向每个变量传递不同的数量。

优点

  • 使用单个AJAX请求以不同数量保存所有变体

缺点

  • 如果已经添加到购物车中,您将覆盖产品数量

因此,解决方案可能是获取cart.js响应检查是否存在当前变体,如果存在,则在将数量添加到现有变量的同时进行update.js。所以这不是那么直截了当的。

我想不出更简单的解决方案,但最终您可能需要至少2个Ajax调用才能添加不同的数量。