Exemple de script de réduction
Cet exemple utilise un script d’article de panier pour offrir une réduction basée sur le pays du client. L’exemple inclut également un exemple de code Liquid pour fournir au client des informations sur la réduction. Cet exemple nécessite que vous ayez accès au fichier checkout.liquid de votre boutique. Si vous n’avez pas accès à ce fichier dans votre code de thème, utilisez alors Shopify Extensions pour le paiement et Shopify Functions pour personnaliser votre paiement.
Cet exemple utilise une TVA fictive qui applique les règles suivantes :
- Les clients qui résident dans une union de pays se voient facturer la TVA sur tous les produits vendus.
- Les clients qui achètent des produits et les font exporter vers un pays non membre de l’Union européenne n’ont pas à payer la TVA (en d’autres termes, les ventes à ces clients sont exonérées de TVA).
- Les prix des produits de la boutique incluent la TVA. Le paramètre Toutes les taxes sont incluses dans mes prix est activé dans les paramètres de taxes de la boutique.
Sur la boutique en ligne, tous les clients voient la TVA incluse dans le prix des produits. Lorsque les articles sont ajoutés au panier, le prix TVA comprise s’affiche :

Au moment du paiement, le script vérifie le pays d’expédition. Si le pays n’appartient pas à l’union, le prix total est réduit du montant de la TVA :

Dans l’exemple suivant, le pays du client est vérifié. Si le client réside dans un pays où la TVA ne s’applique pas, le prix total de la commande est réduit du montant de la 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.cartLe code Liquid suivant fonctionne avec le script ci-dessus pour expliquer les modifications dans le panier.
Ajoutez ce code à 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>Ajoutez le code suivant à votre fichier de paramètres régionaux anglais :
"plus":{
"checkout": {
"vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
}
}Sur cette page
En savoir plus
En savoir plus sur :