ფასდაკლების სკრიპტის მაგალითი
ეს მაგალითი იყენებს ხაზის ელემენტის სკრიპტს მომხმარებლის ქვეყანაზე დაფუძნებული ფასდაკლების შესათავაზებლად. მაგალითი ასევე მოიცავს Liquid-ის კოდის ნიმუშს, რათა მომხმარებელს მიაწოდოს ინფორმაცია ფასდაკლების შესახებ. ეს მაგალითი მოითხოვს, რომ გქონდეს წვდომა შენი მაღაზიის checkout.liquid ფაილზე. თუ არ გაქვს წვდომა ამ ფაილზე შენი თემის კოდში, მაშინ გამოიყენე Shopify Extensions შეკვეთის გაფორმებისთვის და Shopify Functions შენი შეკვეთის გაფორმების მოსარგებად.
ეს მაგალითი იყენებს ფიქტიურ დღგ-ს, რომელსაც აქვს შემდეგი წესები:
- მომხმარებლებს, რომლებიც ცხოვრობენ ქვეყნების კავშირში, ეკისრებათ დღგ გაყიდულ ყველა პროდუქტზე.
- მომხმარებლებს, რომლებიც ყიდულობენ პროდუქტებს და გააქვთ ექსპორტზე კავშირის არაწევრ ქვეყანაში, არ უწევთ დღგ-ს გადახდა (სხვა სიტყვებით რომ ვთქვათ, ამ მომხმარებლებზე გაყიდვები ნულოვანი განაკვეთით იბეგრება).
- მაღაზიაში პროდუქტების ფასები მოიცავს დღგ-ს, ანუ მაღაზიის გადასახადის პარამეტრებში ჩართულია პარამეტრი ყველა გადასახადი შედის ჩემს ფასებში.
ვიტრინაში, ყველა მომხმარებელი ხედავს პროდუქტების ფასებში ჩართულ დღგ-ს. როდესაც ერთეულები ემატება კალათას, ნაჩვენებია დღგ-ს ჩათვლით ფასი:

შეკვეთის გაფორმებისას, სკრიპტის მიერ მოწმდება მიწოდების ქვეყანა. თუ ქვეყანა არ არის კავშირის წევრი, მაშინ ჯამური ფასი მცირდება დღგ-ს ოდენობით:

შემდეგ მაგალითში მოწმდება მომხმარებლის ქვეყანა. თუ მომხმარებელი ცხოვრობს ისეთ ქვეყანაში, სადაც დღგ არ ვრცელდება, მაშინ შეკვეთის ჯამური ფასი მცირდება დღგ-ს ოდენობით.
# 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შემდეგი Liquid კოდი მუშაობს ზემოთ მოცემულ სკრიპტთან ერთად, კალათაში ცვლილებების ასახსნელად.
დაამატე ეს კოდი აქ: 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>დაამატე შემდეგი კოდი შენს ინგლისური ლოკალის ფაილში:
"plus":{
"checkout": {
"vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
}
}ამ გვერდზე
შეიტყვეთ მეტი
შეიტყვეთ მეტი შემდეგის შესახებ: