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öntemler yalnızca satır öğesi komut dosyalarında kullanılabilir.

Kargo komut dosyaları

Kargo komut dosyaları, kargoyla etkileş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öntemler yalnızca kargo komut dosyalarında kullanılabilir.

Ödeme Komut Dosyaları

Ödeme komut dosyaları, ödemelerle etkileş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öntemler yalnızca ödeme komut dosyalarında kullanılabilir.

Genel yöntemler

Aşağıdaki yöntemler her türlü komut dosyasında kullanılabilir:

Input

Komut dosyası input yöntemleri
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, fr veya pt-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.

Cart nesnesini kullanan komut dosyası yöntemleri
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 discount_code mevcuttur. Ancak bu, sepet tutarının değiştiği anlamına gelmez. Örneğin, bir indirim yalnızca 50 TL üzerindeki sepetlere uygulanabiliyorsa ve sepet tutarı bir komut dosyası tarafından 50 TL'nin altına indirilmişse discount_code hâlâ mevcuttur ancak sepet tutarı değişmez.

discount_code örneğine bakın.

.line_items List<LineItem> Sepetteki satır öğelerini içeren bir liste döndürür.
.presentment_currency List<String> Müşterinin yerel (sunulan) para birimini (ISO 4217 biç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

CartDiscount::FixedAmount nesnesini kullanan komut dosyası yöntemleri
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. Mesaj girmek gereklidir.
.rejected? Boole İndirim kodunun reddedilip reddedilmediğini döndürür.

CartDiscount::Percentage

CartDiscount::Percentage nesnesini kullanan komut dosyası yöntemleri
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. Mesaj girmek gereklidir.
.rejected? Boole İndirim kodunun reddedilip reddedilmediğini döndürür.

CartDiscount::Shipping

CartDiscount::Shipping nesnesini kullanan komut dosyası yöntemleri
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. Mesaj girmek gereklidir.
.rejected? Boole İndirim kodunun reddedilip reddedilmediğini döndürür.

Müşteri

Customer nesnesini kullanan komut dosyası yöntemleri
Yöntem Döndürme türü Açıklama
.id Tam sayı Müşterinin kimlik numarasını döndürür.
.email Dize Müşterinin e-posta adresini döndürür.
.tags List<Tag> 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

<tdgrams
LineItem nesnesini kullanan komut dosyası yöntemleri
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ı Satır öğesi için satış 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 varyasyonunun abonelik olarak satıldığını tespit etmesini istiyorsanız yararlıdır.

List

List nesnesini kullanan komut dosyası yöntemleri
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'nin delete_if yöntemine dair belgeleri görün.
.empty? Boole

Liste öğe içermiyorsa true değerini döndürür.

.first Element veya nil

Liste boşsa ilk öğeyi veya nil değerini döndürür.

.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 nil değerini döndürür.

.length int

Listedeki öğe sayısını döndürür.

.size int

length nesnesinin diğer adı.

.each(*args, &block) List

Listedeki her öğe için bir kez blok çağırır ve öğeyi bir parametre olarak bloğa geçirir.

ShippingAddress

ShippingAddress nesnesini kullanan komut dosyası yöntemleri
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

Para nesnesini kullanan komut dosyası yöntemleri
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 eden customer_cents parametresini 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 İki Para nesnesi ekler.
- Para Bir Para nesnesini diğerinden çıkarır.
* Para Money nesnesini bir sayı ile çarpar.

Para örnekleri

Money.new(cents: 1000)

1000 kuruş veya 10 TL'yi temsil eden bir Money nesnesi oluşturur.

Money.new(cents: 100) * 50

1 TL'yi temsil eden bir Money nesnesi oluşturur ve ardından bu tutarı 50 ile çarpar. 50 TL'yi temsil eden bir Money nesnesi döndürür.

Variant

Variant nesnesini kullanan komut dosyası yöntemleri
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<String> 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

Product nesnesini kullanan komut dosyası yöntemleri
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<Tag> 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

Kernel her 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.

Kernel nesnesini kullanan komut dosyası yöntemleri
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.cart yö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.customer
if customer && customer.email.end_with?("@mycompany.com")
  # Employees are not eligible for this promotion.
  exit
end

Satır öğesi yöntemleri

Aşağıdaki yöntemler yalnızca satır öğesi komut dosyalarında kullanılabilir:

Sepet

Satır öğesi komut dosyalarında Cart nesnesini kullanan komut dosyası yöntemleri
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

Satır öğesi komut dosyalarında LineItem nesnesini kullanan komut dosyası yöntemleri
Yöntem Döndürme türü Açıklama
.change_line_price(Para new_price, { message: String }) Para Satır öğesinin fiyatını, belirtilen tutarla değiştirir. Mesaj girmek 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(hash new_properties, { message: String }) hash Bir satır öğesi için yeni özellikler ayarlar. İlk baştaki özellikler karması properties_was bü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_item adlı satır öğesini iki satır öğesine böler. Yeni satır öğesinin (take: 1 tarafından belirtilen) adedi 1'dir. Ardından komut dosyası, yeni satır öğesine "Üçüncü şapka 5 TL" mesajıyla birlikte indirimli 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
end

Variant

Satır öğesi komut dosyalarında Variant nesnesini kullanan komut dosyası yöntemleri
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ı yoksa nil değerini döndürür.

Kargo yöntemleri

Kargo komut dosyalarında aşağıdaki yöntemler kullanılabilir:

Input

Kargo komut dosyalarında Input nesnesini kullanan komut dosyası yöntemleri
Yöntem Döndürme türü Açıklama
.shipping_rates ShippingRateList Tüm kargo ücretlerinin listesini döndürür.

ShippingRateList

Kargo komut dosyalarında ShippingRateList nesnesini kullanan komut dosyası yöntemleri
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'nin delete_if yöntemine dair 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'nin sort! yöntemine dair belgeleri görün.
.sort_by! ShippingRateList İsteğe bağlı bir kod bloğu kullanarak kargo ücretlerini sıralayın. Ruby'nin sort_by! yöntemine dair belgeleri görün.

ShippingRate

Kargo komut dosyalarında ShippingRate nesnesini kullanan komut dosyası yöntemleri
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_name yö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(String new_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(Para discount, { 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ı gerekliyse true, telefon numarası gerekli değilse false döndürür.

Ödeme yöntemleri

Ödeme komut dosyalarında aşağıdaki yöntemler kullanılabilir:

Input

Ödeme komut dosyalarında Input nesnesini kullanan komut dosyası yöntemleri
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

Ödeme komut dosyalarında PaymentGatewayList nesnesini kullanan komut dosyası yöntemleri
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'nin delete_if yöntemine dair 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'nin sort! yöntemine dair belgeleri görü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 dair 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<String>

Ö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(String new_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:

Shopify ile satış yapmaya hazır mısınız?

Ücretsiz olarak dene