如何刷新 Bigcommerce 中的迷你购物车内容?
How to refresh mini cart content in Bigcommerce?
我修改了 stencil cornerstone 主题中的迷你购物车 (cart-preview.html),问题是当我添加到购物车或使用 utils.api.cart.itemUpdate(itemId, newQty, (err, response) => {})
更新商品数量时,购物车内容没有更新,我必须手动刷新整个页面才能显示更改。
我使用 bigcommerce 提供的 cart
对象显示商品详情,例如:
<h1>{{cart.items[0].quantity}}</h1>
if (cartId) {
// Get existing quantity from localStorage if found
if (utils.tools.storage.localStorageAvailable()) {
if (localStorage.getItem('cart-quantity')) {
quantity = Number(localStorage.getItem('cart-quantity'));
$body.trigger('cart-quantity-update', quantity);
}
}
// Get updated cart quantity from the Cart API
const cartQtyPromise = new Promise((resolve, reject) => {
utils.api.cart.getCartQuantity({ baseUrl: secureBaseUrl, cartId }, (err, qty) => {
if (err) {
// If this appears to be a 404 for the cart ID, set cart quantity to 0
if (err === 'Not Found') {
resolve(0);
} else {
reject(err);
}
}
resolve(qty);
});
});
// If the Cart API gives us a different quantity number, update it
cartQtyPromise.then(qty => {
quantity = qty;
$body.trigger('cart-quantity-update', quantity);
});
} else {
$body.trigger('cart-quantity-update', quantity);
}
我修改了 stencil cornerstone 主题中的迷你购物车 (cart-preview.html),问题是当我添加到购物车或使用 utils.api.cart.itemUpdate(itemId, newQty, (err, response) => {})
更新商品数量时,购物车内容没有更新,我必须手动刷新整个页面才能显示更改。
我使用 bigcommerce 提供的 cart
对象显示商品详情,例如:
<h1>{{cart.items[0].quantity}}</h1>
if (cartId) {
// Get existing quantity from localStorage if found
if (utils.tools.storage.localStorageAvailable()) {
if (localStorage.getItem('cart-quantity')) {
quantity = Number(localStorage.getItem('cart-quantity'));
$body.trigger('cart-quantity-update', quantity);
}
}
// Get updated cart quantity from the Cart API
const cartQtyPromise = new Promise((resolve, reject) => {
utils.api.cart.getCartQuantity({ baseUrl: secureBaseUrl, cartId }, (err, qty) => {
if (err) {
// If this appears to be a 404 for the cart ID, set cart quantity to 0
if (err === 'Not Found') {
resolve(0);
} else {
reject(err);
}
}
resolve(qty);
});
});
// If the Cart API gives us a different quantity number, update it
cartQtyPromise.then(qty => {
quantity = qty;
$body.trigger('cart-quantity-update', quantity);
});
} else {
$body.trigger('cart-quantity-update', quantity);
}