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 Extensibility và Shopify 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 Bao gồm tất cả các loại thuế trong giá sản phẩm đã đượ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ị:
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:
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ề: