【发布时间】:2016-02-19 19:25:47
【问题描述】:
我正在尝试通过 shopify ajax api 传递三种产品。它发送变体 ID 和数量,但不发送属性。代码如下。如果我将 request.properties 添加到 Shopify.addItem 函数,它会在一件商品后停止,并给我一个弹出消息,说一件商品已添加到购物车中。它不会添加其他两项,也不会重定向。如果我从 Shopify.addItem 函数中删除 request.properties,它会将所有三个项目添加到购物车但没有属性。
从@miglio 代码修改的最终代码
var FreeTrial={
data:[],
ini:0,
total:0,
addItem:function(qty,id,properties,callback) {
var params = {quantity:qty,id:id};
if(properties != false){
params.properties = properties;
}
$.ajax({
type: 'POST',
url: '/cart/add.js',
dataType: 'json',
async:false,
data: params,
success: function(){
if(typeof callback === 'function'){
callback();
}
},
error: function(){}
});
},
recursive:function(){
FreeTrial.addItem(FreeTrial.data[FreeTrial.ini].qty,FreeTrial.data[FreeTrial.ini].id,FreeTrial.data[FreeTrial.ini].properties,function(){
//console.log(FreeTrial.data[FreeTrial.ini]);
FreeTrial.ini += 1;
if(FreeTrial.ini < FreeTrial.total){
FreeTrial.recursive();
}else{
//return false;
document.location.href = '/cart';
}
});
},
begin:function(){
/* SET YOUR ARRAY QTY's' ID's*/
FreeTrial.data = [
{
"qty": '1',
"id": 'VARIANT_ID_GOES_HERE',
"properties": false
},
{
"qty": '1',
"id": 'VARIANT_ID_GOES_HERE',
"properties": false
},
{
"qty": '1',
"id": 'VARIANT_ID_GOES_HERE',
"properties": false
},
{
"qty": '1',
"id": 'VARIANT_ID_GOES_HERE',
"properties": false
},
{
"qty": '1',
"id": 'VARIANT_ID_GOES_HERE',
"properties": {
"recurring_price": "200.00",
"shipping_interval_frequency": "30",
"shipping_interval_unit_type": "days",
"subscription_id": "12599"
}
}
];
FreeTrial.total = FreeTrial.data.length;
FreeTrial.recursive();
}
}
FreeTrial.begin();
【问题讨论】:
-
你到底得到了什么错误?
-
我没有收到错误。如果我按上述方式运行代码,它只会将一项添加到购物车,并且不会重定向到购物车。如果我从 addItem 函数中删除“request.properties”,它会将所有三个项目添加到购物车但没有属性
-
可以给
Shopify.addItem()的代码吗?
标签: javascript jquery object shopify