我在Shopify上有一个带有“添加到购物车”按钮的产品页面。
点击后,该产品即被添加到购物车,页面将重定向到另一个加售产品。
他们将加售商品添加到购物车后,转到结帐页面,但仅显示加售商品,而不是第一个用户要购买的商品。下面的代码有什么问题?
如何使两种产品都出现在结帐中?
<script>
function redirectToUpsellPageHandler(wrapper) {
var upsellPageUrl = '/clientproducts/cryogenic-storage';
var addToCartButton = wrapper.querySelector('.sqs-add-to-cart-button');
var productVariants = wrapper.querySelector('.product-variants');
if (addToCartButton) {
addToCartButton.addEventListener('click', onClick);
}
function isVariantInStock() {
return productVariants.getAttribute('data-variant-in-stock');
}
function onClick() {
if (productVariants && isVariantInStock() || !productVariants) {
setTimeout(function() {
document.location.href = upsellPageUrl;
}, 1000);
}
}
}
function redirectToUpsellPage() {
// Product Page
var productPage = document.querySelector('.collection-type-products.view-item');
if (productPage) {
redirectToUpsellPageHandler(productPage);
}
// Product Blocks
var productBlocks = [].slice.call(document.querySelectorAll('.sqs-block-product'));
productBlocks.forEach(redirectToUpsellPageHandler);
}
document.addEventListener('DOMContentLoaded', redirectToUpsellPage);
window.addEventListener('mercury:load', redirectToUpsellPage);
</script>
答案 0 :(得分:-1)
添加一些console.logs,并确保您正在使用onClick函数。如果不是,则使用名为onClick的函数可能会出现某种类型的问题,因为这是jQuery或JS中的保留函数。