Esempio di script di sconto

Questo esempio utilizza uno script di voci dell'ordine per offrire uno sconto in base al paese del cliente. Include inoltre un esempio di codice Liquid per fornire informazioni al cliente sullo sconto.

Questo esempio utilizza un'imposta IVA fittizia con le seguenti regole:

  • I clienti che risiedono in un'unione di paesi sono soggetti al pagamento dell'IVA su tutti i prodotti venduti.
  • I clienti che acquistano prodotti e ne chiedono l'esportazione in paesi non appartenenti all'unione non devono pagare l'IVA (in altre parole, l'aliquota delle vendite effettuate a questi clienti è zero).
  • I prezzi dei prodotti presenti nel negozio includono l'IVA (ovvero l'impostazione I miei prezzi includono tutte le imposte è abilitata nelle impostazioni fiscali del negozio).

Nel negozio, tutti i clienti vedono l'IVA inclusa nei prezzi dei prodotti. Quando gli articoli vengono aggiunti al carrello, il prezzo visualizzato è con IVA inclusa:

Carrello con imposte applicate

Al momento del check-out, lo script verifica il paese di spedizione. Se non fa parte dell'unione, dal prezzo totale viene scalato l'importo dell'IVA:

Carrello con imposte rimosse

Nell'esempio seguente, viene verificato il paese del cliente. Se il cliente abita in un paese in cui l'IVA non è applicabile, il prezzo totale dell'ordine si riduce di un importo pari a quello 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.cart

Il seguente codice Liquid funziona insieme allo script sopra riportato per spiegare i cambiamenti avvenuti 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 seguente codice al tuo file localizzato italiano (traducendo in italiano il messaggio):

"plus":{
    "checkout": {
      "vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
    }
  }

Maggiori informazioni

Maggiori informazioni su:

Sei pronto per iniziare a vendere con Shopify?

Provalo, è gratis