Contoh skrip diskaun

Contoh ini menggunakan skrip item baris untuk menawarkan diskaun berdasarkan negara pelanggan. Contoh ini juga menyertakan contoh kod Liquid untuk memberikan maklumat kepada pelanggan tentang diskaun tersebut. Contoh ini memerlukan anda mempunyai akses kepada fail checkout.liquid kedai anda. Jika anda tidak mempunyai akses ke fail ini dalam kod tema anda, gunakan Shopify Extensions for checkout dan Shopify Functions untuk menyesuaikan pembayaran anda.

Contoh ini menggunakan cukai VAT rekaan yang mempunyai peraturan berikut:

  • Pelanggan yang menetap dalam kesatuan negara akan dikenakan cukai VAT pada semua produk yang dijual.
  • Pelanggan yang membeli produk dan mengeksportnya ke negara bukan kesatuan tidak perlu membayar cukai VAT (dengan erti kata lain, jualan kepada pelanggan ini dinilai sifar).
  • Harga produk di dalam kedai termasuk cukai VAT, iaitu tetapan Semua cukai termasuk dalam harga saya didayakan untuk tetapan cukai kedai.

Di laman kedai, semua pelanggan akan melihat VAT dimasukkan dalam harga produk. Apabila item ditambahkan pada troli, harga termasuk VAT akan ditunjukkan:

Troli dengan cukai digunakan

Semasa pembayaran, negara pengiriman disemak oleh skrip. Jika negara tersebut merupakan negara bukan kesatuan, maka jumlah harga dikurangkan mengikut jumlah VAT:

Troli dengan cukai dialih keluar

Dalam contoh yang berikut, negara pelanggan disemak. Jika pelanggan tinggal di negara yang mana VAT tidak dikenakan, maka jumlah harga pesanan dikurangkan mengikut jumlah VAT.

# 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

Kod Liquid yang berikut berfungsi dengan skrip di atas untuk menerangkan perubahan dalam troli.

Tambahkan kod ini pada 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>

Tambahkan kod yang berikut pada fail penempatan bahasa Inggeris anda:

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

Pada halaman ini

Ketahui lebih lanjut

Ketahui lebih lanjut tentang: