Exemple de script de réduction

Cet exemple utilise un script de rubrique pour offrir une réduction basée sur le pays du client. L’exemple inclut également un exemple de code Liquid permettant de fournir au client des informations à propos de 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 le code de votre thème, utilisez Checkout Extensibility et Shopify Functions pour personnaliser votre interface de paiement.

Cet exemple utilise une TVA fictive dont les règles sont les suivantes :

  • Les clients résidant au sein d'une union internationale doivent payer la TVA sur tous les produits.
  • Les clients qui achètent des produits et les exportent vers des pays extérieurs à l'union n'ont pas à payer la TVA (en d'autres termes, ces clients n'ont aucune taxe ajoutée).
  • Le prix des produits de la boutique inclut la TVA. Autrement dit, le paramètre Toutes les taxes sont incluses dans mes prix est activé dans les paramètres de taxe de la boutique.

Dans la boutique en ligne, tous les clients voient la TVA incluse dans le prix des produits. Lorsque les articles sont ajoutés au panier, la TVA incluse dans le prix est affichée :

Cart with tax applied

Lors du passage à la caisse, le script vérifie le pays d'expédition. Si le pays n'appartient pas à l'union, alors le montant de la TVA est déduit du prix total :

Panier affichant la taxe supprimée

Dans l'exemple suivant, le pays du client est vérifié. Si le client vit dans un pays où la TVA ne s'applique pas, alors le prix total de la commande n'inclut pas le 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.cart

Le code Liquid suivant fonctionne avec le script ci-dessous pour expliquer les modifications du panier.

Ajoutez le code suivant à 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 en 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 :

Prêt(e) à commencer à vendre avec Shopify ?

Essayez gratuitement