Esempio di script di sconto
Questo esempio utilizza uno script per voci per offrire uno sconto in base al paese del cliente. L'esempio include anche un codice Liquid di esempio per fornire al cliente informazioni sullo sconto. Questo esempio richiede l'accesso al file checkout.liquid del tuo negozio. Se non hai accesso a questo file nel tuo codice del tema, utilizza le estensioni di Shopify per il check-out e le funzioni di Shopify per personalizzare il check-out.
Questo esempio utilizza un'imposta IVA fittizia con le seguenti regole:
- Ai clienti che risiedono in un'unione di paesi vengono addebitate le imposte IVA su tutti i prodotti venduti.
- I clienti che acquistano prodotti e li fanno esportare in un paese non appartenente all'unione non devono pagare l'imposta IVA (in altre parole, le vendite a questi clienti sono a tassazione zero).
- I prezzi dei prodotti nel negozio includono l'imposta IVA, ovvero l'impostazione Tutte le imposte sono incluse nei miei prezzi è abilitata per le impostazioni fiscali del negozio.
Nella vetrina virtuale, tutti i clienti vedono l'IVA inclusa nei prezzi dei prodotti. Quando gli articoli vengono aggiunti al carrello, viene mostrato il prezzo comprensivo di IVA:

Al momento del check-out, lo script controlla il paese di spedizione. Se il paese non appartiene all'unione, il prezzo totale viene ridotto dell'importo dell'IVA:

Nell'esempio seguente, viene controllato il paese del cliente. Se il cliente vive in un paese in cui non si applica l'IVA, il prezzo totale dell'ordine viene ridotto dell'importo dell'IVA.
# 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.cartIl seguente codice Liquid funziona con lo script precedente per spiegare le modifiche nel carrello.
Aggiungi questo codice a 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>Aggiungi il codice seguente al tuo file delle impostazioni locali inglesi:
"plus":{
"checkout": {
"vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
}
}In questa pagina
Scopri di più
Scopri di più su: