代码之家  ›  专栏  ›  技术社区  ›  Fruckubus Crunt

使用JS Buy SDK将Shopify商品添加到购物车时出现问题

  •  1
  • Fruckubus Crunt  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  3
  •   t-bone    6 年前

    您是否使用要添加的项目的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的正确值。