如何在没有应用程序的情况下结账前在 Shopify 购物车上添加优惠券代码

释放双眼,带上耳机,听听看~!

#Locate 购物车模板

  • 从您的 Shopify 后台,转到在线商店>主题
  • 找到您要编辑的主题,然后单击操作>编辑代码
  • 在 Sections 目录中,单击cart-template.liquidOr main-cart-footer.liquid。这因主题而异,尝试在 sections 文件夹中识别文件,它可能是cart上面提到的词。
  • 将下面的代码复制/粘贴到您想要将折扣输入添加到购物车的任何位置。
    {% render 'snippet-gf-discount-code' %}

#创建代码片段文件

  • 现在,让我们创建代码片段文件,在边栏上找到代码片段文件夹并单击添加新代码片段:
如何在没有应用程序的情况下结账前在 Shopify 购物车上添加优惠券代码
如何在没有应用程序的情况下结账前在 Shopify 购物车上添加优惠券代码
{%comment%}
#############################################
#  Mohamed El-Ghorfi Discount Code on Cart  #
#           elghorfi.med@gmail.com          #
#############################################
{%endcomment%}

<style>
  #checkout-container{
    position: absolute;
    width: 0;
    height: 0;
    z-index: -1;
    display: none;
    opacity:0;
  }
  .cart-sidebar-discount {
    display: flex;
    flex-direction: column;
    width:300px;
  }
  .cart-sidebar-discount input{
    margin-top:20px;
    background: #eee;
    border: 1px solid #eee;
    height:50px;
    outline: none;
    font-size: 18px;
    letter-spacing: .75px;
    text-align: center;
  }
  #apply-discount-btn {
    background-color: #000;
    color:#fff;
    border: 0;
    height: 60px;
    width: 100%;
    font-size: 18px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .75px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
  }
  span.discount-code-value>small {
    background: #eee;
    padding: 0px 10px;
    color: #000;
    font-weight: bold;
    border-radius: 20px;
  }
  small.discount-error-msg {
    color: #e22120;
    position: relative;
    font-size: 15px;
  }
  .loader{
    border: 5px solid #f3f3f3;
    border-top: 4px solid #000;
    border-radius: 50%;
    width: 25px;
    height: 25px;
    animation: spin .5s linear infinite;
  }
  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }
</style>

<div class="cart-sidebar-discount">
  <span class="discount-code">Discount Code <span class="discount-code-value"></span></span>
  <span id="discount-code-status"></span>
  <input type="text" id="discount-code" autocomplete="off">
  <button id="apply-discount-btn">APPLY</button>
</div>

<script>
  let applyBtn = document.querySelector("#apply-discount-btn");
  let discountCodeStatus = document.querySelector("#discount-code-status");
  let checkoutContainer = document.createElement('div');
  let discountCode = document.querySelector(".discount-code .discount-code-value");
  let discountCodeInput = document.querySelector("#discount-code");
  let totalCart = document.querySelector(".cart-sidebar-item span:last-child strong") // Total Cart Selector to update the total ammount. 
  checkoutContainer.id = "checkout-container";
  document.body.appendChild(checkoutContainer); 

  if (localStorage.discountCode) applyDiscount(localStorage.discountCode, "a")
  applyBtn.addEventListener("click", function(e){ 
      applyDiscount(discountCodeInput.value, "m");
  });

  function applyDiscount(code, action) {
    applyBtn.innerHTML += "<div class='loader'></div>";
    applyBtn.style.pointerEvents = "none";
    let discountApplyUrl = window.location.href+"/checkout?discount="+code+"&t="+Date.now();
    fetch(discountApplyUrl)
    .then(function(response) {
      return response.text();
    }).then(function(data) {
      let discountError = data.match('id="error-for-reduction_code"');
      checkoutContainer.innerHTML = data;
      let summary = checkoutContainer.querySelector(".sidebar");
      let total = checkoutContainer.querySelector(".payment-due__price").textContent.trim();
      if(discountError){
        let discountErrorMsg = summary.querySelector(".field__message.field__message--error").textContent.replace(" or gift card", ".");
        console.log(discountErrorMsg);
        discountCodeStatus.innerHTML = "<small class='discount-error-msg'>" + discountErrorMsg + "</small>";
        discountCodeInput.style.border = "1px solid red";
      }else{
        discountCodeInput.style.border = "";
        discountCode.innerHTML = ": <small>" + code.trim() + "</small>";
        localStorage.setItem("discountCode", code.trim());
        discountCodeStatus.innerHTML = ""
      }
      applyBtn.style.pointerEvents = "auto";
      totalCart.innerHTML = total;
      checkoutContainer.innerHTML = "";
      applyBtn.innerHTML = "APPLY";
    });
  }
</script>

snippet-gf-discount-code-updated.liquid (github.com)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
Shopify功能开发

Shopify输出元字段Metafields的方法

2023-1-17 16:09:54

Shopify功能开发

如何在liquid使用 Shopify 优惠券代码 URL

2023-2-17 11:43:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索