产品ID代码不正确地转移到Shopify结帐页面

时间:2016-02-08 20:54:30

标签: javascript node.js paypal e-commerce shopify

我目前有一个使用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实现这一点。

任何帮助表示感谢,谢谢! :)

1 个答案:

答案 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);
}