Shopify Komut Dosyaları API'si referansları
Komut dosyaları, size bir hayli kontrol ve esneklik sağlayan bir Ruby API'si ile yazılmıştır.
Komut dosyalarının farklı türleri vardır. Script Editor'da bir komut dosyası oluşturduğunuzda, başlangıçta seçtiğiniz komut dosyası şablonuna bağlı olarak o komut dosyasına bir tür atanır:
Satır öğesi komut dosyaları
Satır öğesi komut dosyaları, sepetteki satır öğelerini etkiler ve fiyatları değiştirerek indirim sağlayabilir. Bu komut dosyaları, sepette değişiklik yapıldığında çalışır.
Abonelik indirimi sağlayan satır öğesi komut dosyaları yalnızca aboneliğin ilk ödemesine uygulanır. Sonraki ödemelerde komut tarafından indirim sağlanmaz.
Bazı yöntemleryalnızca satır öğesi komut dosyalarındakullanılabilir.
Kargo komut dosyaları
Kargo komut dosyaları,kargoylaetkileşime girerek kargo yöntemlerini değiştirebilir ve kargo ücretlerinde indirim sağlayabilir. Bu komut dosyaları, ödeme işleminde kargo seçenekleri sayfasına gelindiğinde çalışır.
Abonelik kargo ücretine indirim uygulayan kargo komut dosyaları yalnızca aboneliğin ilk ödemesi için indirim uygular. Sonraki ödemelerde komut tarafından indirim uygulanmaz.
Bazı yöntemleryalnızca kargo komut dosyalarındakullanılabilir.
Ödeme Komut Dosyaları
Ödeme komut dosyaları,ödemelerleetkileşime girerek ö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şime girmediğini unutmayın. Bu komut dosyaları, ödeme işleminde ödeme sayfasına gelindiğinde çalışır.
Bazı yöntemleryalnızca ödeme komut dosyalarındakullanılabilir.
Bu sayfada
Genel yöntemler
Aşağıdaki yöntemler her türlü komut dosyasında kullanılabilir:
Input
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .cart | Sepet | Sabit olmayan bir cart nesnesi döndürür. |
| .locale | dize | Müşterinin yerel ayarını döndürür. Örneğin,en,frveyapt-BR. |
Sepet
Cart nesnesi yalnızca online mağazada mevcuttur. Bazı yarım bırakılmış ödemeler cart nesnesine erişebilir. Ancak bir ödeme kapatıldıktan sonra müşteri, yarım bırakılmış ödemeyi ziyaret ederse önceden doldurulmuş ödeme sayfasına yönlendirilir ve cart nesnesi artık ortadan kalkar. Bunun sebebi, yarım bırakılmış ödeme e-postasının mağaza vitrinini atlamasıdır.
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .customer | Müşteri | Sepetin sahibini (varsa) döndürür. |
| .shipping_address | ShippingAddress | Sepetin sahibinin kargo adresini (varsa) döndürür. |
| .discount_code | Değişmektedir | Şunu döndürür:
Sepette indirim uygulanmışsa |
| .line_items | List |
Sepetteki satır öğelerini içeren bir liste döndürür. |
| .presentment_currency | List |
Müşterinin yerel (sunulan) para birimini (ISO 4217biçiminde) döndürür. Örneğin USD. |
| .subtotal_price | Para | Satır öğesi indirimleri uygulanınca, sepetin indirim kodları uygulanmadan önceki alt toplam fiyatını döndürür. |
| .total_weight | gram | Sepetteki tüm satır öğelerinin toplam ağırlığını döndürür. |
CartDiscount::FixedAmount
| Yöntem | Döndürme 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.Mesajgirmek gereklidir. |
| .rejected? | Boole | İndirim kodunun reddedilip reddedilmediğini döndürür. |
CartDiscount::Percentage
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .code | Dize | İndirimi uygulamak için kullanılan indirim kodunu döndürür. |
| .percentage | Ýk | İndirimin yüzdelik tutarını döndürür. |
| .reject({ message: String }) | nil | Sepete uygulanan indirim kodunu reddeder.Mesajgirmek gereklidir. |
| .rejected? | Boole | İndirim kodunun reddedilip reddedilmediğini döndürür. |
CartDiscount::Shipping
| Yöntem | Döndürme 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.Mesajgirmek gereklidir. |
| .rejected? | Boole | İndirim kodunun reddedilip reddedilmediğini döndürür. |
Müşteri
| Yöntem | Döndürme 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 | List |
Bir müşteri için ayarlanan tüm etiketleri temsil eden dizelerin listesini döndürür. |
| .orders_count | Tam sayı | 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 pazarlama iletişimini kabul edip etmediğini döndürür. |
LineItem
grams| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .grams | Satır öğesinin toplam ağırlığını döndürür. | |
| .line_price | Para | Satır öğesinin fiyatıdır. |
| .discounted? | Boole | Bir satır öğesi fiyatının bir komut dosyasıyla mı yoksa manuel olarak uygulanan bir indirimle mi düşürüldüğünü döndürür. İndirim kodlarının kullanılması dönüş değerini etkilemez. |
| .properties | hash | Bu satır öğesi için belirtilen özellikleri döndürür. |
| .variant | Variant | Satır öğesinin temsil ettiği belirli ürün varyasyonunu döndürür. |
| .quantity | Tam sayı | Bu satır öğesinin adetini döndürür. |
| .selling_plan_id | Tam sayı | 坐在ır oğesi icin坐在ışplanının kimliğini döndürür. Bu yöntem, mağazada abonelik satılıyorsa ve komut dosyasının bir ürün varyasyonununabonelik olarak satıldığınıtespit etmesini istiyorsanız yararlıdır. |
List
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .new | List | Bir listeyi temsil edecek yeni bir nesne oluşturur. |
| .[] | Element veya nil | Belirtilen dizindeki öğeyi döndürür. |
| .& | List | İki listede ortak olan öğeleri içeren yeni bir liste döndürür. |
| .delete_if | List | İsteğe bağlı bir kod bloğu kullanarak öğeleri silin.Ruby'nindelete_ifyönteminedair belgeleri görün. |
| .empty? | Boole | Liste öğe içermiyorsa |
| .first | Element veya nil | Liste boşsa ilk öğeyi veya |
| .index(*args, &block) | int veya nil | Listenin ilk öğesinin dizinini döndürür. Bir bağımsız değişken yerine blok verilirse, bloğun true olduğu ilk öğenin dizinini döndürür. |
| .rindex(*args, &block) | int veya nil | Listenin son öğesinin dizinini döndürür. Bir bağımsız değişken yerine blok verilirse, bloğun true olduğu ilk öğenin dizinini döndürür. |
| .last | Element veya nil | Liste boşsa son öğeyi veya |
| .length | int | Listedeki öğe sayısını döndürür. |
| .size | int | length nesnesinin diğer adı. |
| .each(*args, &block) | List | Listedeki她oğe icin bir kez勃洛克cağırır ve öğeyi bir parametre olarak bloğa geçirir. |
ShippingAddress
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .name | string | Kargo adresiyle ilişkili kişinin adını döndürür. |
| .address1 | string | Kargo adresinde yer alan sokak adresi bölümünü döndürür. |
| .address2 | string | Kargo adresinde yer alan sokak adresi bölümünün isteğe bağlı ek alanını döndürür. |
| .phone | string | Kargo adresindeki telefon numarasını döndürür. |
| .city | string | Kargo adresindeki şehri döndürür. |
| .zip | string | Kargo adresindeki posta kodunu döndürür. |
| .province | string | Kargo adresindeki il/eyaleti döndürür. |
| .province_code | string | Kargo adresindeki il/eyalet değerinin kısaltmasını döndürür. |
| .country_code | string | Kargo adresindeki ülke değerinin kısaltmasını döndürür. |
Para
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Para | Müşterinin yerel (sunulan) para birimindeki tutarı (kuruş cinsinden), mağazanızın para birimine dönüştürür. Bu yöntem, kuruş cinsinden bir sayı kabul edencustomer_centsparametresini kabul eder. Örneğin,Money.derived_from_presentment(customer_cents: 500). |
| .new | Para | Bir fiyatı temsil edecek yeni bir nesne oluşturur. |
| .zero | Para | Fiyatı sıfır olan yeni bir nesne oluşturur. |
| + | Para | İkiParanesnesi ekler. |
| - | Para | BirParanesnesini diğerinden çıkarır. |
| * | Para | Moneynesnesini bir sayı ile çarpar. |
Para örnekleri
Money.new(cents:1000)
1000 kuruş veya 10 TL'yi temsil eden birMoneynesnesi oluşturur.
Money.new(cents:100)*50
1 TL'yi temsil eden birMoneynesnesi oluşturur ve ardından bu tutarı 50 ile çarpar. 50 TL'yi temsil eden birMoneynesnesi döndürür.
Variant
| Yöntem | Döndürme 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 | Varyasyonla ilişkili ürünü döndürür. |
| .skus | List |
Varyasyonun, stok takibi için sıkça kullanılan stok bulundurma birimlerini (SKU) döndürür. |
| .title | Dize | Varyasyonun başlığını döndürür. |
Ürün
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .id | Tam sayı | Ürünün kimlik numarasını döndürür. |
| .gift_card? | Boole | Ürünün bir hediye kartı olup olmadığını döndürür. |
| .tags | List |
Bu ürün için ayarlanan etiketleri temsil eden dizelerin bir listesini döndürür. |
| .product_type | Dize | Ürün etiketlemeye imkan tanıyan, filtreleme ve aramalar için sıkça kullanılan kategorilendirme yöntemi. |
| .vendor | Dize | Bu ürünün satıcısını döndürür. |
Kernel
Kernelher sınıfta bulunan bir Ruby modülüdür. Bu sayede Kernel yöntemleri her nesnede kullanılabilir. Bu yöntemler, global fonksiyonların diğer dillerde işlediği şekilde işler.
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .exit | none | Geçerli komut dosyasının yürütülmesini hatasız olarak sona erdirir.Output.cartyöntemine herhangi bir şey atanmadan önce bu yöntem çalıştırılırsa komut dosyasının hiçbir etkisi olmaz. Bu sayede örneğin, müşteri, komut dosyasını çalıştırmaya uygun değilse komut dosyalarından çıkılabilir. |
Kernel örneği
customer=Input.cart.customerifcustomer&&customer.email.end_with?("@mycompany.com")# Employees are not eligible for this promotion.exitend
Satır öğesi yöntemleri
Aşağıdaki yöntemler yalnızcasatır öğesi komut dosyalarındakullanılabilir:
Sepet
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .subtotal_price_was | Para | Sepetin, indirimler uygulanmadan önceki 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öndürme türü | Açıklama |
|---|---|---|
| .change_line_price(Paranew_price, { message:String}) | Para | Satır öğesinin fiyatını, belirtilen tutarla değiştirir.Mesajgirmek gereklidir.new_price, geçerli fiyattan daha düşük olmalıdır. |
| .original_line_price | Para | Satır öğesinin, komut dosyaları ve indirimler uygulanmadan önceki ilk fiyatını döndürür. |
| .line_price_was | Para | Satır öğesinin, geçerli komut dosyası tarafından değişiklikler uygulanmadan önceki 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(hashnew_properties, { message:String}) | hash | Bir satır öğesi için yeni özellikler ayarlar. İlk baştaki özellikler karmasıproperties_wasbünyesinde tutulur ve yönteme aktarılan özellikler karması ise satır öğesinin yeni özellikleri haline gelir. |
| .properties_was | hash | Satır öğesinin, değişiklikler uygulanmadan önceki ilk özellikler karmasını döndürür. |
| .properties_changed? | Boole | Satır öğesi özelliklerinin değişip değişmediğini döndürür. |
| .split({ take:Integer}) | LineItem | Bir satır öğesini, iki satır öğesine böler.take, yeni satır öğesi oluşturmak için ilk satır öğesinden kaldırılacak adeti belirtir. |
.split örneği
Bu örnek komut dosyası,original_line_itemadlı satır öğesini iki satır öğesine böler. Yeni satır öğesinin (take: 1tarafından belirtilen) adedi 1'dir. Ardından komut dosyası, yeni satır öğesine "Üçüncü şapka 5 TL" mesajıyla birlikte indirimli fiyat uygular.
iforiginal_line_item.quantity>=3new_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_itemend
Variant
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .compare_at_price | Para | Bir varyasyonun karşılaştırma fiyatını döndürür. Varyasyonun karşılaştırma fiyatı yoksanildeğerini döndürür. |
Kargo yöntemleri
Kargo komut dosyalarındaaşağıdaki yöntemler kullanılabilir:
Input
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .shipping_rates | ShippingRateList | Tüm kargo ücretlerinin listesini döndürür. |
ShippingRateList
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .delete_if | ShippingRateList | İsteğe bağlı bir kod bloğu kullanarak kargo ücretlerini silin.Ruby'nindelete_ifyönteminedair belgeleri görün. |
| .sort! | ShippingRateList | İsteğe bağlı bir kod bloğu veya karşılaştırma operatörünü kullanarak kargo ücretlerini sıralayın.Ruby'ninsort!yönteminedair belgeleri görün. |
| .sort_by! | ShippingRateList | İsteğe bağlı bir kod bloğu kullanarak kargo ücretlerini sıralayın.Ruby'ninsort_by!yönteminedair belgeleri görün. |
ShippingRate
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .code | Dize | Kargo ücretinin kodunu döndürür. |
| .markup | Para | Uygun olduğu durumlarda kargo ücretinin kâr payını döndürür. |
| .name | Dize | Kargo ücretinin adını döndürür.change_nameyöntemi kullanılarak değiştirilebilir. |
| .price | Para | Kargo ücretinin fiyatını döndürür. |
| .source | Dize | Alakalıysa kargo ücretiyle ilişkili kaynağı (kargo şirketi) döndürür. Değiştirilemez. |
| .change_name(Stringnew_name) | Dize | Kargo ücretinin adını (maksimum 255 karakter) değiştirir. Kaynağı değiştirmek, silmek veya gizlemek mümkün değildir. |
| .apply_discount(Paradiscount, { message: String }) | Para | Belirtilen sabit tutarda indirim uygular. Fiyat, 0'dan aza indirilemez. Mesaj girmek gereklidir. |
| .phone_required? | Boole | Kargo ücretini görmek için telefon numarası gerekliysetrue, telefon numarası gerekli değilsefalsedöndürür. |
Ödeme yöntemleri
Ödeme komut dosyalarındaaşağıdaki yöntemler kullanılabilir:
Input
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Mağazadaki tüm ödeme ağ geçitlerinin listesini döndürür. |
PaymentGatewayList
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .delete_if | PaymentGatewayList | İsteğe bağlı bir kod bloğu kullanarak ödeme ağ geçitlerini silin.Ruby'nindelete_ifyönteminedair belgeleri görün. |
| .sort! | PaymentGatewayList | İsteğe bağlı bir kod bloğu veya karşılaştırma operatörünü kullanarak ödeme ağ geçitlerini sıralayın.Ruby'ninsort!yönteminedair belgeleri görün. |
| .sort_by! | PaymentGatewayList | İsteğe bağlı bir kod bloğu kullanarak ödeme ağ geçitlerini sıralayın.Ruby'ninsort_by!yönteminedair belgeleri görün. |
PaymentGateway
| Yöntem | Döndürme türü | Açıklama |
|---|---|---|
| .name | Dize | Ödeme ağ geçidinin adını döndürür. |
| .enabled_card_brands | List |
Ödeme ağ geçidi, kredi kartlarını destekliyorsa mağazanın kabul ettiği kredi kartı türlerinin listesini döndürür. Ağ geçidi, kredi kartlarını desteklemiyorsa boş liste döndürür. |
| .change_name(Stringnew_name) | Dize | Ödeme ağ geçidinin adını değiştirir. Logolu ödeme ağ geçitleri yeniden adlandırılamaz. |
Örnekler
Aşağıdaki satır öğesi komut dosyası örneğinde müşteri, hediye kartı olmayan bir ürün sipariş ettiğinde ürünün fiyatında 9 TL indirim yapı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
Daha fazla bilgi edinin: