Как запустить событие Javascript при обновлении корзины Shopify? - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь добавить код на своей странице корзины Shopify, где он покажет покупателю общую сумму в корзине и автоматически покажет, имеет ли покупатель право на бесплатную доставку, и сумму, необходимую для совершения бесплатной доставки.

Мне удалось найти приведенный ниже код, но он не работает.

Я не программист или разработчик, и у меня очень мало знаний о кодировании.

Я буду очень признателен, если кто-нибудь сможет мне помочь.

HTML КОД


Your cart total is {{ cart.total_price | money }}. You qualify for free shipping!

Your cart total is {{ cart.total_price | money }}.<br>Spend {{ 2500 | minus: cart.total_price | money }} more to qualify for free shipping!

Java Код сценария

//Change this to take in the new total
function checkprice(total) {
    var baseprice = "2500" ;
    //Does this next line work???
    //var carttotal = "{{ cart.total_price }}"; Wont need this anymore
    //If so you can set the span's innerText to the new total
    document.getElementById('spnQualifyTotal').innerText = total;
    document.getElementById('spnMoreTotal').innerText = total;
    if (Number(total) > Number(baseprice)) {
        document.getElementById("freeship").style.display = "none";
        document.getElementById("nofreeship").style.display = "block";
    } else {
        document.getElementById("freeship").style.display = "block";
        document.getElementById("nofreeship").style.display = "none";
    }
};

ProductView.prototype.updateMiniCart = function(cart) {
    var i, item, itemProperties, itemText, j, len, miniCartItemsWrap, 
    productPrice, propertiesArray, propertyKeysArray, ref, 
    variant, newTotal; //See the newTotal variable to get the total of all items in cart
    miniCartItemsWrap = $(".mini-cart-items-wrap");
    miniCartItemsWrap.empty();
    if (cart.item_count !== 1) {
      itemText = Theme.cartItemsOther;
    } else {
      itemText = Theme.cartItemsOne;
      $(".mini-cart .options").show();
      miniCartItemsWrap.find(".no-items").hide();
    }
    $(".mini-cart-wrap label").html("<span class='item-count'>" + cart.item_count + "</span> " + itemText);
    ref = cart.items;
    for (j = 0, len = ref.length; j < len; j++) {
      item = ref[j];
      productPrice = Shopify.formatMoney(item.line_price, Theme.moneyFormat);
      newTotal += item.line_price; //Adding each item's cost to the newTotal
      variant = item.variant_title ? "<p class='variant'>" + item.variant_title + "</p>" : "";
      itemProperties = "";
      if (item.properties) {
        propertyKeysArray = Object.keys(item.properties);
        propertiesArray = _.values(item.properties);
        i = 0;
        while (i < propertyKeysArray.length) {
          if (propertiesArray[i].length) {
            itemProperties = itemProperties + ("<p class=\"property\">\n    <span class=\"property-label\">" + propertyKeysArray[i] + ":</span>\n    <span class=\"property-value\">" + propertiesArray[i] + "</span>\n</p>");
          }
          i++;
        }
      }
      miniCartItemsWrap.append("<div id=\"item-" + item.variant_id + "\" class=\"item clearfix\">\n    <div class=\"image-wrap\">\n        <img alt=\"" + item.title + "\" src=\"" + item.image + "\">\n        <a class=\"overlay\" href=\"" + item.url + "\"></a>\n    </div>\n    <div class=\"details\">\n        <p class=\"brand\">" + item.vendor + "</p>\n        <p class=\"title\"><a href=\"" + item.url + "\">" + item.product_title + "</a><span class=\"quantity\">× <span class=\"count\">" + item.quantity + "</span></span></p>\n        <p class=\"price\"><span class=\"money\">" + productPrice + "</span></p>\n        " + variant + "\n        " + itemProperties + "\n    </div>\n</div>");
    };
    checkprice(newTotal); //Pass in the newTotal variable to checkprice(total);

    if (Theme.currencySwitcher) {
      return $(document.body).trigger("switch-currency");
    }
  };

1 Ответ

0 голосов
/ 13 апреля 2020

Вы можете использовать жидкость без javascript, чтобы показать, имеет ли клиент право на бесплатную доставку

{%- if cart.total_price > 2500 -%}
    Your cart total is {{ cart.total_price | money }}.             
    You qualify for free shipping!
{%- else -%}
    Your cart total is {{ cart.total_price | money }}.
    Spend {{ 2500 | minus: cart.total_price | money }} more to qualify for free shipping!
{%- endif -%}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...