Shopify 在添加产品时打开 Ajax 购物车而不是重定向到购物车

时间:2021-06-08 17:16:43

标签: javascript jquery ajax shopify

我正在尝试修改我的 shopify 产品页面,以便在选中产品页面上的复选框时向用户追加销售额外商品。我希望 ajax 购物车打开更新的产品,而不是进入购物车页面。 我该如何解决这个问题?

这是我现在拥有的 HTML 代码:

  <div class="d-inline-block py-2 mr-auto col-auto px-0">
    <input type="checkbox" id="product-add-on-checkbox" name="product-add-on-checkbox" value="product-add-on-checkbox">
    <label for="product-add-on"> <span id="product-add-on-name"></span> </label> <label for="product-add-on-qty"><strong id="product-add-on-price"></strong></label>
  </div>
  <div class="product-options-bottom border-0 mt-0 d-inline-block col-auto px-0">
    <div class="add-to-cart-box">
      <div class="input-box">
        <input type="text" id="product-add-on-qty" name="product-add-on-quantity" value="1" min="1" class="quantity-selector">
        <div class="plus-minus">
          <div class="increase items" onclick="var result = document.getElementById('product-add-on-qty'); var qty = result.value; if( !isNaN( qty )) result.value++;return false;">
            <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-plus" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
              <path fill-rule="evenodd" d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z"/>
            </svg>
          </div>
          <div class="reduced items" onclick="var result = document.getElementById('product-add-on-qty'); var qty = result.value; if( !isNaN( qty ) && qty > 1 ) result.value--;return false;">
            <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-dash" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
              <path fill-rule="evenodd" d="M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8z"/>
            </svg>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

这是更新购物车的 JS 代码:

      var productAddOnHandle = "add-on-product"
      var productAddOnId = 0;
      var productAddOnQty = 1;
      var productAddOnAvailable = false;
      jQuery.getJSON('/products/' + productAddOnHandle + '.js', function (product) {
        productAddOnAvailable = product.variants[0].available;
        if (productAddOnAvailable) {
          productAddOnId = product.variants[0].id;
          $("#product-add-on").removeClass("d-none");
          $("#product-add-on-name").html(product.title);
          $("#product-add-on-price").html("+ $" + (product.price_min / 100).toFixed(2));
        }
      });
      $('#add-to-cart-button').click(function (e) {
        e.preventDefault();
        var productAddOnChecked = $("#product-add-on-checkbox").is(":checked");
        if (productAddOnChecked && productAddOnId !== 0 && productAddOnAvailable) {
          productAddOnQty = $('#product-add-on-qty').val();
          productAddToCart();
        } else {
          $("form[action='/cart/add']").submit();
        }
      });
      function productAddToCart() {
        $.ajax({
          url: "/cart/add.js",
          type: "POST",
          data: {
            items: [
              {
                quantity: productAddOnQty,
                id: productAddOnId
              }
            ]
          },
          dataType: "json"
        })
          .done(function () {

          })
          .always(function () {
            $("form[action='/cart/add']").submit();
          });
      }
    });

0 个答案:

没有答案