Shopify Komut Dosyaları API referansı
Komut dosyaları, size yüksek düzeyde kontrol ve esneklik sağlayan bir Ruby API'si ile yazılır.
Farklı komut dosyası türleri vardır. Script Editor uygulamasında komut dosyası oluşturduğunuzda, başlangıçta seçtiğiniz komut dosyası şablonuna göre komut dosyasına bir tür atanır:
Satır öğesi komut dosyaları
Satır öğesi komut dosyaları sepetteki satır öğelerini etkiler, fiyatları değiştirebilir ve indirimler sağlayabilir. Bu komut dosyaları, sepette bir değişiklik yapıldığında çalıştırılır.
Bir abonelikte indirim yapan satır öğesi komut dosyaları yalnızca aboneliğin ilk ödemesine uygulanır. Sonraki ödemelere komut dosyası tarafından indirim uygulanmaz.
Bazı yöntemler yalnızca satır öğesi komut dosyalarında kullanılabilir.
Kargo komut dosyaları
Kargo komut dosyaları kargo ile etkileşim kurar, kargo yöntemlerini değiştirebilir ve kargo ücretlerinde indirimler sağlayabilir. Bu komut dosyaları, ödeme işlemi kargo seçenekleri sayfasına ulaştığında çalışır.
Bir aboneliğin kargo ücretinde indirim yapan kargo komut dosyaları yalnızca aboneliğin ilk ödemesine uygulanır. Sonraki ödemelere komut dosyası tarafından indirim uygulanmaz.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>Ödeme komut dosyaları
Ödeme komut dosyaları ödemelerle etkileşim kurar ve ödeme ağ geçitlerini yeniden adlandırabilir, gizleyebilir ve yeniden sıralayabilir. Ödeme komut dosyalarının Apple Pay gibi, ödeme ekranından önce gösterilen ödeme ağ geçitleriyle etkileşim kurmadığını unutmayın. Bu komut dosyaları, ödeme işlemi ödeme sayfasına ulaştığında çalışır.
Bazı yöntemler yalnızca ödeme komut dosyalarında kullanılabilir.
Bu sayfada
Genel yöntemler
Aşağıdaki yöntemler her tür komut dosyasında kullanılabilir:
Giriş
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .cart | Sepet | Değiştirilebilir bir sepet nesnesi döndürür. |
| .locale | dize | Müşterinin yerel ayarını döndürür. Örneğin, en, fr veya pt-BR. |
Sepet
Sepet nesnesi yalnızca online mağazada kullanılabilir. Bazı yarım bırakılmış ödemelerde sepet nesnesine erişim vardır. Ancak bir ödeme kapatıldıysa ve ardından müşteri, yarım bırakılmış ödemeyi ziyaret ederse müşteri, önceden doldurulmuş ödemeye gönderilir ve sepet nesnesi artık mevcut olmaz. Bunun nedeni, dijital vitrinin yarım bırakılmış ödeme e-postası tarafından atlanmış olmasıdır.
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .customer | Müşteri | Sepetin sahibini (varsa) döndürür. |
| .shipping_address | KargoAdresi | Sepet sahibinin kargo adresini (varsa) döndürür. |
| .discount_code | değişir |
Döndürdüğü değerler:
Sepete bir indirim uygulandıysa |
CartDiscount::FixedAmount
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .code | Dize | İndirimi uygulamak için kullanılan indirim kodunu döndürür. |
| .amount | Para | İndirimin para tutarını döndürür. |
| .reject({ message: String }) | nil | Sepete uygulanan indirim kodunu reddeder. Bir mesaj gereklidir. |
| .rejected? | Boole | İndirim kodunun reddedilip reddedilmediğini döndürür. |
CartDiscount::Percentage
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .code | Dize | İndirimi uygulamak için kullanılan indirim kodunu döndürür. |
| .percentage | Ondalık | İndirimin yüzde tutarını döndürür. |
| .reject({ message: String }) | nil | Sepete uygulanan indirim kodunu reddeder. Bir mesaj gereklidir. |
| .rejected? | Boole | İndirim kodunun reddedilip reddedilmediğini döndürür. |
CartDiscount::Shipping
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .code | Dize | İndirimi uygulamak için kullanılan indirim kodunu döndürür. |
| .reject({ message: String }) | nil | Sepete uygulanan indirim kodunu reddeder. Bir mesaj gereklidir. |
| .rejected? | Boole | İndirim kodunun reddedilip reddedilmediğini döndürür. |
Müşteri
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .id | Tam sayı | Müşterinin kimlik numarasını döndürür. |
| Dize | Müşterinin e-posta adresini döndürür. | |
| .tags | Liste<Etiket> | Bir müşteri için ayarlanan etiketleri temsil eden bir dize listesi döndürür. |
| .orders_count | Tam sayı | Bir müşterinin verdiği toplam sipariş sayısını döndürür. |
| .total_spent | Para | Müşterinin tüm siparişlerde harcadığı toplam tutarı döndürür. |
| .accepts_marketing? | Boole | Müşterinin pazarlamayı kabul edip etmediğini döndürür. |
LineItem
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .grams | gram | Satır öğesinin toplam ağırlığını döndürür. |
| .line_price | Para | Satır öğesinin fiyatı. |
| .discounted? | Boole | Bir satır öğesinin fiyatına bir komut dosyası veya manuel olarak uygulanan bir indirimle indirim uygulanıp uygulanmadığını döndürür. İndirim kodlarının kullanımı, döndürülen değeri etkilemez. |
| .properties | hash | Bu satır öğesi için belirtilen özellikleri döndürür. |
| .variant | Varyasyon | Satır öğesi tarafından temsil edilen belirli ürün varyasyonunu döndürür. |
| .quantity | Tam sayı | Bu satır öğesinin miktarını döndürür. |
| .selling_plan_id | Tam sayı | Satır öğesinin satış planı kimliğini döndürür. Bu yöntem, mağazada abonelik satışı yapılıyorsa ve komut dosyasının bir ürün varyasyonunun abonelik olarak satıldığını algılamasını istediğinizde yararlıdır. |
Liste
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .new | Liste | Bir listeyi temsil etmek için yeni bir nesne oluşturur. |
| .[] | Öğe veya nil |
Belirtilen dizindeki öğeyi döndürür. |
| .& | Liste |
Yinelenen öğe olmadan, iki listede ortak olan öğeleri içeren yeni bir liste döndürür. |
| .delete_if | Liste | İsteğe bağlı bir kod bloğu kullanarak öğeleri siler. Ruby'nin delete_if yönteminin belgelerine bakın. |
| .empty? | Boole |
Liste hiçbir öğe içermiyorsa |
| .first | Öğe veya nil |
İlk öğeyi veya liste boşsa |
| .index(*args, &block) | tam sayı veya nil |
Listenin ilk öğesinin dizinini döndürür. Bir bağımsız değişken yerine bir blok verilirse bloğun doğru olduğu ilk öğenin dizinini döndürür. |
| .rindex(*args, &block) | tam sayı veya nil |
Listenin son öğesinin dizinini döndürür. Bir bağımsız değişken yerine bir blok verilirse bloğun doğru olduğu ilk öğenin dizinini döndürür. |
| .last | Öğe veya nil |
Son öğeyi veya liste boşsa |
| .length | tam sayı |
Listedeki öğe sayısını döndürür. |
| .size | tam sayı |
length için takma ad. |
| .each(*args, &block) | Liste |
Öğeyi bloğa parametre olarak geçirerek listedeki her öğe için bir kez bir blok çağırır. |
ShippingAddress
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .name | dize | Kargo adresiyle ilişkili kişinin adını döndürür. |
| .address1 | dize | Kargo adresinin açık adres bölümünü döndürür. |
| .address2 | dize | Kargo adresinin açık adres bölümünün isteğe bağlı ek alanını döndürür. |
| .phone | dize | Kargo adresinin telefon numarasını döndürür. |
| .city | dize | Kargo adresinin şehrini döndürür. |
| .zip | dize | Kargo adresinin posta kodunu döndürür. |
| .province | dize | Kargo adresinin ilini/eyaletini döndürür. |
| .province_code | dize | Kargo adresinin ilinin/eyaletinin kısaltılmış değerini döndürür. |
| .country_code | dize | Kargo adresinin ülkesinin kısaltılmış değerini döndürür. |
Money
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Para | Müşterinin yerel (sunulan) para birimindeki bir tutarı (sent cinsinden) mağazanızın para birimine dönüştürür. Bu yöntem, sent cinsinden bir sayıyı kabul eden customer_cents parametresini kabul eder. Örneğin, Money.derived_from_presentment(customer_cents: 500). |
| .new | Para | Bir fiyatı temsil etmek için yeni bir nesne oluşturur. |
| .zero | Para |
Sıfır fiyatlı yeni bir nesne oluşturur. |
| + | Para | İki Money nesnesini toplar. |
| - | Para | Bir Money nesnesini diğerinden çıkarır. |
| * | Para | Bir Money nesnesini bir sayıyla çarpar. |
Para örnekleri
Money.new(cents: 1000)1000 senti veya 10 $'ı temsil eden bir Money nesnesi oluşturur.
Money.new(cents: 100) * 501 $'ı temsil eden bir Money nesnesi oluşturur, ardından bu tutarı 50 ile çarpar. 50 $'ı temsil eden bir Money nesnesi döndürür.
Varyasyon
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .id | Tam sayı | Varyasyonun kimlik numarasını döndürür. |
| .price | Para | Varyasyonun birim fiyatını döndürür. |
| .product | Ürün | Varyasyonun ilişkili ürününü döndürür. |
| .skus | Liste<Dize> | Genellikle envanteri izlemek için kullanılan, varyasyonun stok bulundurma birimlerini (SKU'lar) döndürür. |
| .title | Dize | Varyasyonun başlığını döndürür. |
Ürün
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .id | Tam sayı | Ürünün kimlik numarasını döndürür. |
| .gift_card? | Boole | Ürünün hediye kartı olup olmadığını döndürür. |
| .tags | Liste<Etiket> | Bu ürün için ayarlanan etiketleri temsil eden bir dize listesi döndürür. |
| .product_type | Dize | Bir ürünün etiketlenebileceği ve genellikle filtreleme ile arama için kullanılan bir kategorilendirme. |
| .vendor | Dize | Bu ürünün satıcısını döndürür. |
Kernel
Kernel, her sınıfa dahil edilen bir Ruby modülüdür. Sonuç olarak, yöntemleri her nesne tarafından kullanılabilir. Bu yöntemler, diğer dillerdeki genel işlevlerle aynı şekilde çalışır.
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .exit | yok | Mevcut komut dosyasının yürütülmesini hatasız şekilde sonlandırır. Bu, Output.cart öğesine bir değer atanmadan önce çalıştırılırsa komut dosyasının bir etkisi olmaz. Örneğin, müşteri komut dosyasını çalıştırmaya uygun olmadığında komut dosyalarından çıkmak için bu, kullanışlı bir yoldur. |
Kernel örneği
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endSatır öğesi yöntemleri
Aşağıdaki yöntemler yalnızca satır öğesi komut dosyalarında kullanılabilir:
Sepet
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .subtotal_price_was | Para | Herhangi bir indirim uygulanmadan önceki sepet alt toplam fiyatını döndürür. |
| .subtotal_price_changed? | Boole | Alt toplam fiyatının değişip değişmediğini döndürür. |
LineItem
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .change_line_price(Para new_price, { message: Dize }) | Para | Satır öğesinin fiyatını belirtilen tutar olarak değiştirir. Bir message gereklidir. new_price, mevcut fiyattan daha düşük olmalıdır. |
| .original_line_price | Para | Komut dosyaları ve indirimler uygulanmadan önceki orijinal satır öğesi fiyatını döndürür. |
| .line_price_was | Para | Mevcut komut dosyası tarafından değişiklikler uygulanmadan önceki satır öğesi fiyatını döndürür. |
| .line_price_changed? | Boole | Satır öğesi fiyatının değişip değişmediğini döndürür. |
| .change_properties(hash new_properties, { message: Dize }) | hash | Bir satır öğesi için yeni özellikler ayarlar. Orijinal özellikler hash'i properties_was içinde saklanır ve yönteme geçirilen özellikler hash'i, satır öğesinin yeni özellikleri olur. |
| .properties_was | hash | Herhangi bir değişiklik uygulanmadan önceki orijinal satır öğesi özellikleri hash'ini döndürür. |
| .properties_changed? | Boole | Satır öğesi özelliklerinin değiştirilip değiştirilmediğini döndürür. |
| .split({ take: Tam Sayı }) | Satır Öğesi | Bir satır öğesini iki satır öğesine böler. take, yeni satır öğesini oluşturmak için orijinal satır öğesinden hangi miktarın kaldırılacağını belirtir. |
.split örneği
Bu örnek komut dosyası, original_line_item adlı bir satır öğesini iki satır öğesine böler. Yeni satır öğesinin miktarı 1'dir (take: 1 ile belirtilir). Ardından komut dosyası, "Üçüncü şapka 5 dolar" mesajıyla yeni satır öğesine indirimli bir fiyat uygular.
if original_line_item.quantity >= 3
new_line_item = original_line_item.split(take: 1)
new_line_item.change_line_price(Money.new(cents: 500), message: "Third hat for 5 dollars")
cart.line_items << new_line_item
endVaryasyon
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .compare_at_price | Para | Varyasyonun karşılaştırma fiyatını döndürür. Varyasyonun karşılaştırma fiyatı yoksa nil döndürür. |
Kargo yöntemleri
Aşağıdaki yöntemler kargo komut dosyalarında kullanılabilir:
Giriş
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .shipping_rates | KargoÜcretiListesi | Tüm kargo ücretlerinin bir listesini döndürür. |
ShippingRateList
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .delete_if | KargoÜcretiListesi | İsteğe bağlı bir kod bloğu kullanarak kargo ücretlerini silin. Ruby'nin delete_if yöntemine ilişkin belgelere bakın. |
| .sort! | KargoÜcretiListesi | Karşılaştırma operatörünü veya isteğe bağlı bir kod bloğunu kullanarak kargo ücretlerini sıralayın. Ruby'nin sort! yöntemine ilişkin belgelere bakın. |
| .sort_by! | KargoÜcretiListesi | İsteğe bağlı bir kod bloğu kullanarak kargo ücretlerini sıralayın. Ruby'nin sort_by! yöntemine ilişkin belgelere bakın. |
ShippingRate
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .code | Dize | Kargo ücretinin kodunu döndürür. |
| .markup | Para | Varsa kargo ücreti için kâr payını döndürür. |
| .name | Dize | Kargo ücretinin adını döndürür. Bu ad, change_name yöntemi kullanılarak değiştirilebilir. |
| .price | Para | Kargo ücretinin fiyatını döndürür. |
| .source | Dize | İlgiliyse kargo ücretiyle ilişkili kaynağı (kargo şirketini) döndürür. Bu, değiştirilemez. |
| .change_name(String new_name) | Dize | Kargo ücretinin adını (en fazla 255 karakter) değiştirir. Kaynağı değiştirmek, silmek veya gizlemek mümkün değildir. |
| .apply_discount(Money discount, { message: String }) | Para | Belirtilen sabit tutarda bir indirim uygular. Fiyat, 0'ın altına düşürülemez. Mesaj girilmesi zorunludur. |
| .phone_required? | Boole | Kargo ücretini almak için telefon numarası gerekiyorsa true, gerekmiyorsa false değerini döndürür. |
Ödeme yöntemleri
Aşağıdaki yöntemler ödeme komut dosyalarında kullanılabilir:
Giriş
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Mağazadaki tüm ödeme ağ geçitlerinin bir listesini döndürür. |
PaymentGatewayList
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .delete_if | PaymentGatewayList | İsteğe bağlı bir kod bloğu kullanarak ödeme ağ geçitlerini silin. Ruby'nin delete_if yöntemine ilişkin belgelere bakın. |
| .sort! | PaymentGatewayList | Karşılaştırma operatörünü veya isteğe bağlı bir kod bloğunu kullanarak ödeme ağ geçitlerini sıralayın. Ruby'nin sort! yöntemine ilişkin belgelere bakın. |
| .sort_by! | PaymentGatewayList | İsteğe bağlı bir kod bloğu kullanarak ödeme ağ geçitlerini sıralayın. Ruby'nin sort_by! yöntemine ilişkin belgelere bakın. |
PaymentGateway
| Yöntem | Dönüş türü | Açıklama |
|---|---|---|
| .name | Dize | Ödeme ağ geçidinin adını döndürür. |
| .enabled_card_brands | Liste<Dize> |
Ödeme ağ geçidi kredi kartlarını destekliyorsa mağazanın kabul ettiği kredi kartı türlerinin bir listesini döndürür. Ağ geçidi kredi kartlarını desteklemiyorsa boş bir liste döndürür. |
| .change_name(String new_name) | Dize | Ödeme ağ geçidinin adını değiştirir. Logosu olan ödeme ağ geçitleri yeniden adlandırılamaz. |
Örnekler
Aşağıdaki satır öğesi komut dosyası örneğinde, bir müşteri hediye kartı olmayan bir ürün sipariş ettiğinde ürünün fiyatı 9 $ azaltılır. Ayrıca, müşterinin mağazanıza yaptığı tüm ziyaretlerde harcadığı toplam tutar gösterilir:
customer = Input.cart.customer
Input.cart.line_items.each do |line_item|
product = line_item.variant.product
next if product.gift_card?
line_item.change_line_price(line_item.line_price - Money.new(cents: 900), message: customer.total_spent)
end
Output.cart = Input.cart
Daha fazla bilgi edinin
Şunlar hakkında daha fazla bilgi edinin: