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öntemDöndürme türüAçıklama
.cartSepetSabit olmayan bir cart nesnesi döndürür.
.localedizeMüş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öntemDöndürme türüAçıklama
.customerMüşteriSepetin sahibini (varsa) döndürür.
.shipping_addressShippingAddressSepetin sahibinin kargo adresini (varsa) döndürür.
.discount_codeDeğ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_priceParaSatır öğesi indirimleri uygulanınca, sepetin indirim kodları uygulanmadan önceki alt toplam fiyatını döndürür.
.total_weightgramSepetteki tüm satır öğelerinin toplam ağırlığını döndürür.

CartDiscount::FixedAmount

CartDiscount::FixedAmount nesnesini kullanan komut dosyası yöntemleri
YöntemDöndürme türüAçıklama
.codeDizeİndirimi uygulamak için kullanılan indirim kodunu döndürür.
.amountParaİndirimin para tutarını döndürür.
.reject({ message: String })nilSepete 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öntemDöndürme türüAçıklama
.codeDizeİ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 })nilSepete 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öntemDöndürme türüAçıklama
.codeDizeİndirimi uygulamak için kullanılan indirim kodunu döndürür.
.reject({ message: String })nilSepete 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öntemDöndürme türüAçıklama
.idTam sayıMüşterinin kimlik numarasını döndürür.
.emailDizeMüş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_countTam sayıMüşterinin verdiği toplam sipariş sayısını döndürür.
.total_spentParaMüşterinin tüm siparişlerde harcadığı toplam tutarı döndürür.
.accepts_marketing?BooleMüşterinin pazarlama iletişimini kabul edip etmediğini döndürür.

LineItem

<tdgrams
LineItem nesnesini kullanan komut dosyası yöntemleri
YöntemDöndürme türüAçıklama
.gramsSatır öğesinin toplam ağırlığını döndürür.
.line_priceParaSatır öğesinin fiyatıdır.
.discounted?BooleBir 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.
.propertieshashBu satır öğesi için belirtilen özellikleri döndürür.
.variantVariantSatır öğesinin temsil ettiği belirli ürün varyasyonunu döndürür.
.quantityTam sayıBu satır öğesinin adetini döndürür.
.selling_plan_idTam 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öntemDöndürme türüAçıklama
.newListBir 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_ifListİ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.

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

.lastElement veya nil

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

.lengthint

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

.sizeint

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öntemDöndürme türüAçıklama
.namestringKargo adresiyle ilişkili kişinin adını döndürür.
.address1stringKargo adresinde yer alan sokak adresi bölümünü döndürür.
.address2stringKargo adresinde yer alan sokak adresi bölümünün isteğe bağlı ek alanını döndürür.
.phonestringKargo adresindeki telefon numarasını döndürür.
.citystringKargo adresindeki şehri döndürür.
.zipstringKargo adresindeki posta kodunu döndürür.
.provincestringKargo adresindeki il/eyaleti döndürür.
.province_codestringKargo adresindeki il/eyalet değerinin kısaltmasını döndürür.
.country_codestringKargo adresindeki ülke değerinin kısaltmasını döndürür.

Para

Para nesnesini kullanan komut dosyası yöntemleri
YöntemDöndürme türüAçıklama
.derived_from_presentment(customer_cents:X)ParaMüş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).
.newParaBir fiyatı temsil edecek yeni bir nesne oluşturur.
.zeroPara

Fiyatı sıfır olan yeni bir nesne oluşturur.

+Paraİki Para nesnesi ekler.
-ParaBir 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öntemDöndürme türüAçıklama
.idTam sayıVaryasyonun kimlik numarasını döndürür.
.priceParaVaryasyonun birim fiyatını döndürür.
.productÜrünVaryasyonla 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.
.titleDizeVaryasyonun başlığını döndürür.

Ürün

Product nesnesini kullanan komut dosyası yöntemleri
YöntemDöndürme türüAçıklama
.idTam 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_typeDizeÜrün etiketlemeye imkan tanıyan, filtreleme ve aramalar için sıkça kullanılan kategorilendirme yöntemi.
.vendorDizeBu ü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öntemDöndürme türüAçıklama
.exitnoneGeç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öntemDöndürme türüAçıklama
.subtotal_price_wasParaSepetin, indirimler uygulanmadan önceki alt toplam fiyatını döndürür.
.subtotal_price_changed?BooleAlt 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öntemDöndürme türüAçıklama
.change_line_price(Para new_price, { message: String }) ParaSatı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_priceParaSatır öğesinin, komut dosyaları ve indirimler uygulanmadan önceki ilk fiyatını döndürür.
.line_price_wasParaSatır öğesinin, geçerli komut dosyası tarafından değişiklikler uygulanmadan önceki fiyatını döndürür.
.line_price_changed?BooleSatır öğesi fiyatının değişip değişmediğini döndürür.
.change_properties(hash new_properties, { message: String }) hashBir 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_washashSatır öğesinin, değişiklikler uygulanmadan önceki ilk özellikler karmasını döndürür.
.properties_changed?BooleSatır öğesi özelliklerinin değişip değişmediğini döndürür.
.split({ take: Integer })LineItemBir 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öntemDöndürme türüAçıklama
.compare_at_priceParaBir 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öntemDöndürme türüAçıklama
.shipping_ratesShippingRateListTüm kargo ücretlerinin listesini döndürür.

ShippingRateList

Kargo komut dosyalarında ShippingRateList nesnesini kullanan komut dosyası yöntemleri
YöntemDöndürme türüAçıklama
.delete_ifShippingRateListİ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öntemDöndürme türüAçıklama
.codeDizeKargo ücretinin kodunu döndürür.
.markupParaUygun olduğu durumlarda kargo ücretinin kâr payını döndürür.
.nameDizeKargo ücretinin adını döndürür. change_name yöntemi kullanılarak değiştirilebilir.
.priceParaKargo ücretinin fiyatını döndürür.
.sourceDizeAlakalı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 })ParaBelirtilen sabit tutarda indirim uygular. Fiyat, 0'dan aza indirilemez. Mesaj girmek gereklidir.
.phone_required?BooleKargo ü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öntemDöndürme türüAçıklama
.payment_gatewaysPaymentGatewaysListMağ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öntemDöndürme türüAçıklama
.delete_ifPaymentGatewayListİ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öntemDöndürme türüAçıklama
.nameDizeÖ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:

Aradığınız cevapları bulamıyor musunuz? Yardımcı olmak için buradayız.