Contoh skrip diskon
Contoh ini menggunakan skrip item pesanan untuk menawarkan diskon berdasarkan negara pelanggan. Contoh ini juga menyertakan contoh kode Liquid untuk memberikan informasi kepada pelanggan tentang diskon tersebut. Contoh ini mengharuskan Anda memiliki akses ke file checkout.liquid toko Anda. Jika Anda tidak memiliki akses ke file ini di kode tema, gunakan Shopify Extensions for checkout dan Shopify Functions untuk menyesuaikan checkout Anda.
Contoh ini menggunakan pajak PPN fiktif yang memiliki aturan berikut:
- Pelanggan yang tinggal di negara anggota perserikatan akan dikenai pajak PPN untuk semua produk yang dijual.
- Pelanggan yang membeli produk dan mengekspornya ke negara non-anggota perserikatan tidak perlu membayar pajak PPN (dengan kata lain, penjualan kepada pelanggan ini dikenai tarif nol).
- Harga produk di toko sudah termasuk pajak PPN, dengan pengaturan Semua pajak sudah termasuk dalam harga saya diaktifkan untuk pengaturan pajak toko.
Di etalase toko online, semua pelanggan melihat harga produk yang sudah termasuk PPN. Ketika item ditambahkan ke keranjang, harga yang sudah termasuk PPN akan ditampilkan:

Saat checkout, negara pengiriman diperiksa oleh skrip. Jika negara tersebut adalah negara non-anggota perserikatan, harga total akan dikurangi sebesar jumlah PPN:

Pada contoh berikut, negara pelanggan akan diperiksa. Jika pelanggan tinggal di negara tempat PPN tidak berlaku, harga total pesanan akan dikurangi sebesar jumlah PPN.
# 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.cartKode Liquid berikut berfungsi dengan skrip di atas untuk menjelaskan perubahan di keranjang.
Tambahkan kode ini ke 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>Tambahkan kode berikut ke file lokal Inggris Anda:
"plus":{
"checkout": {
"vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
}
}Di halaman ini
Pelajari selengkapnya
Pelajari selengkapnya tentang: