要实现 Shopify 购物车更新数量的功能,你可以使用 Shopify 的 JavaScript Buy SDK。下面是一个代码示例:
<!DOCTYPE html>
<html>
<head>
<title>Shopify 购物车更新数量示例</title>
<script src="https://sdks.shopifycdn.com/buy-button/latest/buybutton.js"></script>
</head>
<body>
<div id="cart-container"></div>
<script>
// 初始化 Shopify Buy Button
var client = ShopifyBuy.buildClient({
domain: 'your-shopify-store.myshopify.com',
storefrontAccessToken: 'your-storefront-access-token'
});
// 获取购物车
client.fetchRecentCart().then(function(cart) {
var cartContainer = document.getElementById('cart-container');
// 渲染购物车
var cartComponent = ShopifyBuy.UI.Cart(cartContainer, {
cart: cart,
options: {
isUpdating: true
},
events: {
afterRender: function() {
// 获取购物车更新按钮元素
var updateButtons = document.getElementsByClassName('cart__update-button');
// 绑定点击事件处理程序
for (var i = 0; i < updateButtons.length; i++) {
updateButtons[i].addEventListener('click', function(event) {
var lineItemId = event.target.dataset.lineItemId;
var quantityInput = document.getElementById('quantity-input-' + lineItemId);
var newQuantity = parseInt(quantityInput.value);
// 更新购物车中商品的数量
client.updateLineItem(cart.id, lineItemId, { quantity: newQuantity }).then(function(updatedCart) {
console.log('购物车已更新', updatedCart);
});
});
}
}
}
});
});
</script>
</body>
</html>
上述示例代码假设你已经有了一个 Shopify Store,并且通过获取 storefront access token 及替换 your-shopify-store.myshopify.com
和 your-storefront-access-token
来正确配置代码。
在代码中,我们使用 ShopifyBuy.buildClient
初始化了 Shopify Buy Button 的客户端,并使用 client.fetchRecentCart
获取了最新的购物车。然后,我们使用 ShopifyBuy.UI.Cart
渲染了购物车,并在渲染后绑定了更新按钮的点击事件处理程序。
当用户点击更新按钮时,我们获取商品的 line item id 和数量输入框的值,然后使用 client.updateLineItem
方法更新购物车中商品的数量。最后,购物车会被更新,并在控制台中打印出更新后的购物车对象。
请注意,以上代码仅为示例,实际使用时你需要根据你的 Shopify Store 的配置进行相应的修改。