我目前有一个使用shopify的结帐页面的在线商店。有关客户购物车的信息都是通过我在site.js周围建立的网站完成的,然后将购物车信息发送到shopify结帐页面,他们可以在那里为订单付款。
以前,购物车会在结帐后以URL的形式将产品ID和每件商品的数量编号发送给Shopify。" checkout"按下按钮的格式如下:
shop.mysite.com/cart/product1:qty,product2:qty,product3:qty,product4:qty
然而,现在Shopify不再允许0的数值"数量"并登陆错误410页面。我现在需要更改我的代码以反映productID的数量为零时,它不会显示在URL中。该按钮的当前代码如下:
function updateShopifyCart(){
var cBBM = ",product2:";
var co = ":";
var caHref = 'http://shop.mysite.com/cart/product1:';
var cMicro = ',product3:';
var cPower = ',product4:';
var bbQ = getStoredCartItemAmount('Product1name');
var bbmQ = getStoredCartItemAmount('Product2name');
var musbQ = getStoredCartItemAmount('Product3name');
var powersQ = getStoredCartItemAmount('product4name');
var cHref = caHref + bbQ + cBBM + bbmQ + cMicro + musbQ + cPower + powersQ;
$("#checkoutButton").attr("href", cHref);
}
我猜测一个简单的if; else语句可能能够解决这个问题,但是我不确定如何为每个productID实现这一点。
任何帮助表示感谢,谢谢! :)
答案 0 :(得分:0)
我建议重构你的代码,否则编写你需要的条件会非常困难:
function updateShopifyCart(){
var products = ["product1", "product2", "product3", "product4"];
var caHref = "http://shop.mysite.com/cart/";
var url = caHref;
var first = true;
for (var i = 0; i < products.length; i++) {
var prod = products[i];
var qty = getStoredCartItemAmount(prod);
if (qty > 0) {
if (!first) {
url += ",";
}
first = false;
url += prod + ":" + qty;
}
}
$("#checkoutButton").attr("href", url);
}