使用 JS Buy SDK 将 Shopify 行项目添加到购物车时出现问题
Problems Adding Shopify Line Items to Cart with JS Buy SDK
Shopify js-buy-SDK 出现一些问题。
我已经能够制作购物车,我也尝试过获取产品等,并且它有效。但是,当我尝试将订单项添加到购物车时,更新后的购物车数组来自 addLineItems,returns 为空。我知道 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>
您使用的是您要添加的商品的 productID 还是 variantID?
根据我的经验,如果 ID 以 ==
结尾,则它是产品 ID。
假设您要添加的商品只有一种款式,请尝试
const productId = 'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzYyMDExMDQxMzg4NA==';
client.product.fetch(productId)
.then((product) => {
const variantId = product.variants[0].id;
console.log(variantId);
});
如果您在控制台中看到类似 ID 的字符串而不是 undefined
,那么这就是您的 variantID 的正确值。
Shopify js-buy-SDK 出现一些问题。
我已经能够制作购物车,我也尝试过获取产品等,并且它有效。但是,当我尝试将订单项添加到购物车时,更新后的购物车数组来自 addLineItems,returns 为空。我知道 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>
您使用的是您要添加的商品的 productID 还是 variantID?
根据我的经验,如果 ID 以 ==
结尾,则它是产品 ID。
假设您要添加的商品只有一种款式,请尝试
const productId = 'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzYyMDExMDQxMzg4NA==';
client.product.fetch(productId)
.then((product) => {
const variantId = product.variants[0].id;
console.log(variantId);
});
如果您在控制台中看到类似 ID 的字符串而不是 undefined
,那么这就是您的 variantID 的正确值。