Shopify liquid,向购物车添加多个产品

Shopify liquid,向购物车添加多个产品,shopify,liquid,Shopify,Liquid,所以我使用shopify liquid添加了一个收集页面,在这个收集页面中,有多个产品。单击时,名为“添加所有”的按钮将此集合中的所有产品添加到购物车 如何在shopify liquid language中实现这一点?或者我们有多少方法可以做到这一点 还有,当我试图使用官方文件中的这个 jQuery.post('/cart/add.js', { quantity: 1, id: 10911378372,

所以我使用shopify liquid添加了一个收集页面,在这个收集页面中,有多个产品。单击时,名为“添加所有”的按钮将此集合中的所有产品添加到购物车

如何在shopify liquid language中实现这一点?或者我们有多少方法可以做到这一点

还有,当我试图使用官方文件中的这个

jQuery.post('/cart/add.js', {
                quantity: 1,
                id: 10911378372,
                properties: {
                    'First name': 'Caroline'
                }
            }).done(function() {
                console.log("second success");
            })
            .fail(function(err) {
                if(err.statusText !== 'OK'){
                    console.log("error", err);
                }
            })
            .always(function() {
                console.log("finished");
            });

即使statusText是Ok,它也会陷入fail块,我不知道为什么。

您实际上可以通过一组AJAX调用来实现这一点。一次只能向购物车添加一个项目。请看帮助

然后,您可以使用.liquid将每个显示产品的默认变量id放入列表中,或者,我通常会这样做,例如:

<div data-variant="{{ product.selected_or_first_available_variant }}">
  ...
</div>

...
见:看看这是否足够

然后,您的按钮脚本将收集变量ID,并将它们逐个添加到购物车中


有一个使用JQuery将项目添加到购物车的示例,因为向购物车添加多个项目是递归循环所必需的

我为此问题编写了一个代码,请随意使用:

样本位于
begin
功能中:

    //IF PROPERTIES IS EMPTY ONLY SET FALSE
    MGUtil.data = [
        {"id":"12345","qty":2,"properties":{"data1":"1"}},
        {"id":"34567","qty":3,"properties":{"data2":"1"}},
        {"id":"67892","qty":1,"properties":{"data3":"1"}},
        {"id":"23456","qty":6,"properties":false}
    ]; // ADD 4 ITEMS
    MGUtil.total  = MGUtil.data.length;
    MGUtil.action = 'add';
    MGUtil.recursive();//EXECUTE

了解ShopifyAjax API,主要是这一部分:感谢您的逻辑。但当我使用您的代码时,这里是控制台的错误。不推荐使用]主线程上的同步XMLHttpRequest不推荐使用,因为它会对最终用户的体验产生有害影响。在
ajaxpost
上,函数更改
async:false
为true,