Exemplu de script de reducere
Acest exemplu folosește un script de rând pentru a oferi o reducere bazată pe țara clientului. Exemplul include, de asemenea, un exemplu de cod Liquid pentru a oferi clientului informații despre reducere. Acest exemplu necesită să aveți acces la fișierul checkout.liquid al magazinului dvs. Dacă nu aveți acces la acest fișier în codul temei, utilizați extensiile Shopify pentru procesul de plată și funcțiile Shopify pentru a personaliza procesul de plată.
Acest exemplu utilizează o taxă TVA fictivă care are următoarele reguli:
- Clienților care locuiesc într-o uniune de țări li se percepe TVA la toate produsele vândute.
- Clienții care achiziționează produse și le exportă într-o țară din afara uniunii nu trebuie să plătească TVA (cu alte cuvinte, vânzările către acești clienți au cotă zero).
- Prețurile produselor din magazin includ TVA, iar setarea Toate taxele sunt incluse în prețurile mele este activată în setările de taxe ale magazinului.
În magazinul online, toți clienții văd TVA-ul inclus în prețurile produselor. Când se adaugă articole în coș, se afișează prețul cu TVA inclus:

La finalizarea plății, scriptul verifică țara de expediere. Dacă țara este o țară din afara uniunii, prețul total se reduce cu valoarea TVA-ului:

În exemplul următor, se verifică țara clientului. Dacă clientul locuiește într-o țară în care nu se aplică TVA, prețul total al comenzii este redus cu valoarea TVA.
# 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.cartUrmătorul cod Liquid funcționează cu scriptul de mai sus pentru a explica modificările din coș.
Adăugați acest cod la 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>Adăugați următorul cod la fișierul de localizare pentru limba engleză:
"plus":{
"checkout": {
"vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
}
}Pe această pagină
Aflați mai multe
Aflați mai multe despre: