İndirim komut dosyası örneği

Bu örnekte, müşterinin ülkesine dayalı bir indirim sunmak için satır öğesi komut dosyası kullanılır. Örnekte ayrıca, müşteriye indirim hakkında bilgi vermek için örnek Liquid kodu da yer alır. Bu örnek, mağazanızın checkout.liquid dosyasına erişiminizin olmasını gerektirir. Tema kodunuzda bu dosyaya erişiminiz yoksa ödeme sayfanızı özelleştirmek için ödeme için Shopify Extensions ve Shopify Functions kullanın.

Bu örnekte, aşağıdaki kurallara sahip kurgusal bir KDV vergisi kullanılmaktadır:

  • Bir ülkeler birliğinde ikamet eden müşterilerden, satılan tüm ürünler için KDV alınır.
  • Ürün satın alan ve bu ürünleri birlik dışı bir ülkeye ihraç ettiren müşterilerin KDV ödemesi gerekmez (başka bir deyişle, bu müşterilere yapılan satışlar sıfır oranlıdır).
  • Mağazadaki ürünlerin fiyatlarına KDV dahildir ve mağazanın vergi ayarları için Tüm vergiler fiyatlarıma dahildir ayarı etkindir.

Dijital vitrinde tüm müşteriler, ürünlerin fiyatlarına KDV'nin dahil olduğunu görür. Sepete ürün eklendiğinde KDV dahil fiyat gösterilir:

Vergi uygulanmış sepet

Ödeme sayfasında, kargo gönderim ülkesi komut dosyası tarafından kontrol edilir. Ülke, birlik dışı bir ülkeyse toplam fiyattan KDV tutarı düşülür:

Vergi kaldırılmış sepet

Aşağıdaki örnekte müşterinin ülkesi kontrol edilir. Müşteri, KDV'nin uygulanmadığı bir ülkede yaşıyorsa siparişin toplam fiyatından KDV tutarı düşülür.

# 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

Aşağıdaki Liquid kodu, sepetteki değişiklikleri açıklamak için yukarıdaki komut dosyasıyla birlikte çalışır.

Bu kodu checkout.liquid dosyasına ekleyin:

<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>

Aşağıdaki kodu İngilizce yerel ayar dosyanıza ekleyin:

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

Daha fazla bilgi edinin

Aşağıdakiler hakkında daha fazla bilgi edinin: