使用JS Buy SDK将Shopify订单项添加到购物车时出现问题

时间:2018-05-01 20:48:15

标签: javascript sdk shopify

Shopify js-buy-SDK存在一些问题。

我已经能够制作推车了,我也尝试过取出产品等等,它的确有效。但是当我尝试将一个订单项添加到购物车时,来自addLineItems的更新购物车数组将返回空。我知道variantId是正确的,因为如果我改变它我会得到一个错误。

完整代码:

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://sdks.shopifycdn.com/js-buy-sdk/v1/latest/index.umd.min.js"></script>
    <script type="text/javascript">

$(document).ready(function(){ 

    const client = ShopifyBuy.buildClient({
          domain: 'xxxx.myshopify.com',
          storefrontAccessToken: 'xxxxxxx',
          appId: '6'
    });
    // Create an empty checkout
    client.checkout.create().then((checkout) => {
       // Do something with the checkout
       console.log(checkout.id);
       x(checkout.id, client);

    });

});

function x(check, client) {
        const itemToAdd = [
            { variantId : 'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzYyMDExMDQxMzg4NA==', quantity : 12 }
            ];

        // Add an item to the checkout
        client.checkout.addLineItems(check, itemToAdd).then((checkout) => {
            console.log(checkout.lineItems); // THIS RETURNS AN EMPTY ARRAY
        }); 
}
</script>

</head>
<body>  
</body>
</html>

1 个答案:

答案 0 :(得分:3)

您使用的是您要添加的商品的productID还是variantID?

根据我的经验,如果ID以==结尾,则为productID。

假设您要添加的项目只有一个变体,请尝试

const productId = 'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzYyMDExMDQxMzg4NA==';

client.product.fetch(productId)
.then((product) => {
    const variantId = product.variants[0].id;
    console.log(variantId);
});

如果您在控制台中看到的是类似ID的字符串,而不是undefined,则这是您的variantID的正确值。