Bir indirim Function’ını otomatik indirim olarak etkinleştirme
İndirim Function’ınızı discountAutomaticAppCreate ile mağazada etkinleştirin: function handle, indirim sınıfları, birleşme kuralları ve JSON ayar metafield’ı.
- API
- Admin GraphQL API
- İşlemler
- shopifyFunctions, discountAutomaticAppCreate
- Erişim yetkisi
- write_discounts
- API sürümü
- 2026-10
- Son kontrol
Kısaca
Deploy edilmiş bir indirim Function’ı, onu kullanan bir indirim oluşturulana kadar hiçbir şey yapmaz. Etkinleştirmek için discountAutomaticAppCreate’i bir title, startsAt, Function’ın functionHandle’ı, etkilediği discountClasses (PRODUCT, ORDER ya da SHIPPING) ve combinesWith ile çağırın. Ayarları indirime JSON bir metafield olarak verin; Function bunu input sorgusunda okur. Kodlu indirim için discountCodeAppCreate’i kullanın.
Nasıl kullanılır
- Uygulamayı indirim Function’ıyla birlikte deploy edin. Handle, extension’ın shopify.extension.toml dosyasındaki handle’dır.
- İsterseniz AppFunctions ile uygulamanızın Function’larını listeleyip bu mağazadaki handle’ı doğrulayın.
- CreateVolumeDiscount’u handle, Function’ın döndürdüğü sınıflar ve diğer indirimlerle nasıl birleşeceği bilgisiyle gönderin.
- Mağaza sahibinin ayarlarını indirimdeki json tipli bir metafield’a koyun ve Function’ın input sorgusunda okuyun.
Kod
shopify-functions.graphqlquery AppFunctions($first: Int!) {
shopifyFunctions(first: $first) {
nodes {
id
handle
title
apiType
}
}
}
shopify-functions.variables.json{
"first": 25
}
shopify-functions.response.json{
"data": {
"shopifyFunctions": {
"nodes": [
{
"id": "00000000-0000-0000-0000-000000000000",
"handle": "volume-discount",
"title": "Volume discount",
"apiType": "discount"
}
]
}
}
}
discount-automatic-app-create.graphqlmutation CreateVolumeDiscount($discount: DiscountAutomaticAppInput!) {
discountAutomaticAppCreate(automaticAppDiscount: $discount) {
automaticAppDiscount {
discountId
title
status
startsAt
discountClasses
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
}
userErrors {
code
field
message
}
}
}
discount-automatic-app-create.variables.json{
"discount": {
"title": "Buy 3, save 10%",
"functionHandle": "volume-discount",
"discountClasses": ["PRODUCT"],
"startsAt": "2026-11-03T00:00:00Z",
"combinesWith": {
"orderDiscounts": false,
"productDiscounts": false,
"shippingDiscounts": true
},
"metafields": [
{
"namespace": "$app",
"key": "function-configuration",
"type": "json",
"value": "{\"minimumQuantity\":3,\"percentage\":10}"
}
]
}
}
discount-automatic-app-create.response.json{
"data": {
"discountAutomaticAppCreate": {
"automaticAppDiscount": {
"discountId": "gid://shopify/DiscountAutomaticNode/1234567890",
"title": "Buy 3, save 10%",
"status": "SCHEDULED",
"startsAt": "2026-11-03T00:00:00Z",
"discountClasses": ["PRODUCT"],
"combinesWith": {
"orderDiscounts": false,
"productDiscounts": false,
"shippingDiscounts": true
}
},
"userErrors": []
}
}
}
Lintel tarafından yazıldı. MIT lisansı: kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.
Sınırlar ve özel durumlar
- functionHandle yalnızca kendi uygulamanızdaki Function’ları bulur; uygulamanın mağazada kurulu olması gerekir.
- discountClasses, indirimin hangi etkileri uygulayabileceğini belirler; Function’ınızın döndürdüğü her sınıfı listeleyin.
- status, startsAt’e kadar SCHEDULED, sonrasında ACTIVE’dir.
- Ayarları sonradan değiştirmek için metafield’ı metafieldsSet ile, indirim ID’sini ownerId olarak vererek yeniden yazın.
Sık sorulan sorular
- Shopify’da bir indirim Function’ı nasıl etkinleştirilir?
- Onu kullanan bir indirim oluşturun: otomatik indirimler için discountAutomaticAppCreate, kodlu indirimler için discountCodeAppCreate; ikisinde de Function’ın functionHandle’ını verin.
- İndirim Function’ına ayarları nasıl aktarırım?
- İndirimi oluştururken ayarları JSON bir metafield olarak kaydedin, ardından bu metafield’ı Function’ın input sorgusunda okuyun.
- Function handle’ını nerede bulurum?
- Function extension’ının TOML dosyasındaki handle’dır. shopifyFunctions sorgusu, uygulamanızın bir mağazadaki Function’larının handle’larını listeler.
Shopify belgeleri
İlgili içerikler
- Adede göre kademeli indirim
- Metafield ile ayarlanan tek bir indirim Function’ı
- Function’ları metafield (meta alan) ile yapılandırmak: kuralı yeni sürüm yayınlamadan değiştirin
- Shopify Scripts çalışmayı bıraktı. Her script’in mantığı artık nereye gidiyor?
- Teslimat, ödeme ya da doğrulama Function’ını etkinleştirme
- Gösterilen tarihte, 2026-10 sürümünün Admin veya Storefront API şemasıyla doğrulandı. İstek adresinizdeki sürümü kontrol edin.
- Örneklerdeki ID’ler ve mağaza adresleri yer tutucudur. Kendi değerlerinizle değiştirin.
- Admin API çağrıları uygulamanızdan bir erişim anahtarı (access token) ister. Admin API anahtarını asla vitrine ya da temaya koymayın.
- MIT lisansı. Kodu kendi mağazanızda da müşteri işlerinizde de kullanabilirsiniz.
Mağazanız için kurulmasını, test edilmesini ve bakımını isterseniz: API entegrasyonları.
