函数onClick()-购物车未添加-怎么了?

时间:2019-02-27 19:17:19

标签: javascript jquery squarespace

我在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>

1 个答案:

答案 0 :(得分:-1)

添加一些console.logs,并确保您正在使用onClick函数。如果不是,则使用名为onClick的函数可能会出现某种类型的问题,因为这是jQuery或JS中的保留函数。