Ví dụ về tập lệnh giảm giá

Ví dụ này sử dụng một đoạn mã mục hàng để đưa ra ưu đãi giảm giá dựa trên quốc gia của khách hàng. Ví dụ còn bao gồm mã Liquid mẫu để cung cấp thông tin về ưu đãi giảm giá cho khách hàng. Ví dụ này yêu cầu bạn có quyền truy cập vào tệp checkout.liquid của cửa hàng. Nếu bạn không có quyền truy cập vào tệp này trong mã chủ đề, hãy sử dụng Checkout ExtensibilityShopify Functions để tùy chỉnh trang thanh toán.

Ví dụ này sử dụng thuế GTGT hư cấu có các quy tắc sau:

  • Khách hàng cư trú tại một liên minh các quốc gia bị tính thuế GTGT cho tất cả sản phẩm đã bán.
  • Khách hàng mua sản phẩm và xuất sản phẩm sang quốc gia không thuộc liên minh không cần phải thanh toán thuế GTGT (nói cách khác, giao dịch bán hàng cho những khách hàng này có mức thuế bằng không).
  • Giá sản phẩm trong cửa hàng bao gồm thuế GTGT, nghĩa là cài đặt Giá đã bao gồm mọi loại thuế đã được kích hoạt cho cài đặt thuế của cửa hàng.

Trong cửa hàng, tất cả khách hàng đều thấy giá sản phẩm đã bao gồm thuế GTGT. Khi đã thêm mặt hàng vào giỏ hàng, giá đã bao gồm thuế GTGT sẽ hiển thị:

Cart with tax applied

Khi thanh toán, tập lệnh sẽ kiểm tra quốc gia vận chuyển. Nếu quốc gia đó không thuộc liên minh, tổng giá sẽ trừ bớt số tiền thuế GTGT:

Giỏ hàng đã loại bỏ thuế

Trong ví dụ sau, quốc gia của khách được kiểm tra. Nếu khách hàng sống tại một quốc gia không áp dụng thuế GTGT, tổng giá của đơn hàng sẽ trừ đi số tiền thuế GTGT.

# Set VAT equal to the amount of the VAT rate.
# For example, if the VAT rate is 20%, then VAT=20
VAT = 20

# Message that appears beside the discount in the checkout
VAT_REMOVAL_MESSAGE = "VAT removed"

# List of countries where the VAT is charged to orders
COUNTRY_CODES_EU = %w[
AT BE BG CY CZ DK EE FI FR DE GR HU IE IT
LV LT LU MT NL PL PT RO SK SI ES SE GB
]

if Input.cart.shipping_address
  unless COUNTRY_CODES_EU.include?(Input.cart.shipping_address.country_code)
    Input.cart.line_items.each do |line_item|
      product = line_item.variant.product
      next if product.gift_card?
      vat_only_fraction = VAT / (100.0 + VAT)
      vat = line_item.line_price * vat_only_fraction
      ex_vat_price = line_item.line_price - vat
      line_item.change_line_price(ex_vat_price, message: VAT_REMOVAL_MESSAGE)
    end
  end
end

Output.cart = Input.cart

Mã Liquid sau hoạt động với tập lệnh bên trên để giải thích thay đổi trong giỏ hàng.

Thêm mã này vào checkout.liquid:

<style>
  .checkout__vat-exemption-message {
    padding: 1.25em 0;
    display: none;
  }
  @media (min-width: 1000px) {
    .checkout__vat-exemption-message {
      padding-top: 0;
      padding-bottom: 2.5em;
    }
  }
</style>

<div class="checkout__vat-exemption-message">
  <span>{{ 'plus.checkout.vat_exemption_message' | t }}</span>
</div>

<script>
  $(document).on('ready page:load page:change', function() {
    var country = '';

    if(Shopify.Checkout.step === 'contact_information') {
      $country = $('[data-step] select[name="checkout[shipping_address][country]"]');
      country = $country.find(':selected').data('code');
    } else {
      country = "{{ checkout.shipping_address.country_code }}";
    }

    var eu_countries = ['AT','BE','BG','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','GB'];

    if (eu_countries.includes(country)) {
      $('.checkout__vat-exemption-message').css('display', 'none');
    } else {
      $('.checkout__vat-exemption-message').css('display', 'block');
    }
  });

</script>

Thêm mã sau vào tệp ngôn ngữ tiếng Anh:

"plus":{
    "checkout": {
      "vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
    }
  }

Trên trang này

Tìm hiểu thêm

Tìm hiểu thêm về:

Bạn đã sẵn sàng bán hàng với Shopify?

Dùng thử miễn phí