Soodustuse skripti näide

Selles näites kasutatakse kliendi riigil põhineva allahindluse pakkumiseks reaüksuse skripti. Näide hõlmab ka näidislikku Liquidi koodi, et anda kliendile allahindluse kohta teavet. See näide eeldab, et sul on juurdepääs oma poe failile checkout.liquid. Kui sul ei ole teema koodis sellele failile juurdepääsu, kasuta oma kassa kohandamiseks tooteid Shopify Extensions ja Shopify Functions.

Selles näites kasutatakse väljamõeldud käibemaksu, millel on järgmised reeglid:

  • Klientidelt, kes elavad riikide ühenduses, võetakse kõigilt müüdud toodetelt käibemaksu.
  • Kliendid, kes ostavad tooteid ja tellivad nende ekspordi väljapoole liitu jäävasse riiki, ei pea käibemaksu maksma (teisisõnu on nendele klientidele suunatud müügi käibemaksumäär null).
  • Poe toodete hinnad sisaldavad käibemaksu, see tähendab, et poe maksuseadetes on lubatud seade Kõik maksud on minu hindadesse kaasatud.

Müügikeskkonnas näevad kõik kliendid toodete hindu koos käibemaksuga. Üksuste ostukorvi lisamisel kuvatakse käibemaksuga hind:

Maksudega ostukorv

Kassas kontrollib skript tarneriiki. Kui riik asub väljaspool liitu, vähendatakse koguhinda käibemaksu summa võrra:

Maksudeta ostukorv

Järgmises näites kontrollitakse kliendi riiki. Kui klient elab riigis, kus käibemaks ei kohaldu, vähendatakse tellimuse koguhinda käibemaksu summa võrra.

# 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

Järgmine Liquidi kood töötab koos ülaltoodud skriptiga, et selgitada ostukorvis toimuvaid muudatusi.

Lisa see kood faili 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>

Lisa järgmine kood oma inglise keele lokaadifaili:

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

Sellel lehel