Checkout UI extensions mı, Shopify Functions mı?

Kısa yanıt

Checkout UI extensions ödeme sayfasına arayüz ekler: alanlar, bannerlar, mesajlar. Bunlar Shopify’ın bileşenleriyle kurulur; mağaza sahibi onları ödeme sayfası düzenleyicisinde blok hedeflerine yerleştirir. Shopify Functions ise ödeme sayfasının mantığını Shopify’ın sunucularında değiştirir: indirimler, teslimat ve ödeme seçenekleri, doğrulama. API sürümü 2026-07’den beri bir UI extension’dan ödemeyi engellemek kullanımdan kaldırıldı; kurallar bir Cart and Checkout Validation Function ile uygulanmalı. Bilgi, kargo ve ödeme adımlarındaki UI extension’lar Shopify Plus gerektirir.

  • Checkout UI extensions yalıtılmış bir sandbox’ta çalışır ve yalnızca Shopify’ın sunduğu UI bileşenlerini ve API’leri kullanabilir.
  • Shopify Functions, Shopify’ın sunucularında çalışır ve yalnızca girdi sorgularının istediği veriyi görür.
  • Bilgi, kargo ve ödeme adımlarındaki Checkout UI extensions yalnızca Shopify Plus’ta kullanılabilir.
  • Mağaza sahipleri ödeme sayfası ve hesaplar düzenleyicisinde aynı blok hedefine en fazla üç extension ekleyebilir.
  • 2026-07 sürümünden beri useBuyerJourneyIntercept ve block_progress yetkisi, doğrulama Function’ları lehine kullanımdan kaldırıldı.

İkisi de ödeme sayfası (checkout) genişletilebilirliğinin parçası ve ikisi de genellikle bir uygulamanın içinde gelir; bu yüzden sık karıştırılır. Fark basit: Checkout UI extension müşterinin gördüğünü değiştirir; Shopify Function ise ödeme sayfasının ne yaptığını değiştirir. Teslimat tarihi seçici bir arayüzdür. Belirli bir tutarın üzerindeki siparişlerde kapıda ödemeyi gizlemek ise mantıktır. Gerçek gereksinimlerin çoğu ikisinden de birer tane ister.

Yan yana

Checkout UI extensionShopify Function
Neyi değiştirirMüşterinin gördüğünü ve girdiğiniFiyatları, seçenekleri ve ödemenin devam edip edemeyeceğini
Nerede çalışırÖdeme sayfasından ve diğer extension’lardan ayrı, yalıtılmış bir sandbox’taShopify’ın sunucularında, ödeme hesaplamasının bir parçası olarak
Neyle kurulurExtension hedef API’leri ve Shopify’ın Polaris web bileşenleri; serbest HTML ya da CSS yokDerlenmiş bir modül (Shopify Rust’ı önerir) ve bir GraphQL girdi sorgusu
ÖrneklerÖzel bir alan, ek satış bloğu, güven bannerı, Teşekkürler sayfasında bir mesajKademeli indirim, bir teslimat ya da ödeme seçeneğini gizlemek, bir sınırı aşan siparişi engellemek
YerleşimMağaza sahibi blok hedeflerini ödeme sayfası ve hesaplar düzenleyicisinde yerleştirir; konum başına en fazla üçMağaza bazında etkinleştirilir; görsel bir yerleşimi yoktur
PlanBilgi, kargo ve ödeme adımları: yalnızca Plus. Teşekkürler ve Sipariş durumu: Basic ve üzeriApp Store uygulamaları: her plan. Özel uygulamalar: yalnızca Plus
Temel sınırlarYalnızca sunulan bileşenler ve API’ler; hassas ödeme bilgilerine erişim yok200 satıra kadar sepetlerde 256 kB binary, 11 milyon komut ve 128 kB girdi; çoğu API için tür başına en fazla 25 aktif

Bir kuralı uygulamak: arayüzü değil, Function’ı kullanın

Yakın zamana kadar bir Checkout UI extension, block_progress yetkisini tanımlayıp useBuyerJourneyIntercept çağırarak müşterinin bir sonraki adıma geçmesini durdurabiliyordu. Shopify ikisini de API sürümü 2026-07’den itibaren kullanımdan kaldırdı (değişiklik günlüğü, 2 Temmuz 2026) ve gelecekteki bir sürümde tamamen çıkarılacaklarını söylüyor.

Shopify’ın gösterdiği geçiş yolu net. Bir iş kuralını uygulamak için Cart and Checkout Validation Function kullanın; bu Function sunucu tarafında çalışır ve kuralı hızlı ödeme cüzdanları ile agentic checkout dahil tüm ödeme yüzeylerinde tutarlı biçimde uygular. Bir indirim kodunu özel bir mesajla reddetmek için Discount Function API’yi kullanın. Eski intercept ayrıca mağaza sahibinin extension’a bu yetkiyi vermesine bağlıydı ve arayüzde çalışıyordu; bir doğrulama Function’ı ise etkin olduğu sürece Shopify’ın sunucularında uygulanır. Bkz. ödeme sayfası doğrulamasının neleri engelleyebildiği.

Mevcut bir uygulama ödemeyi bir extension’dan engelliyorsa, doğrulama Function’ına geçişini API kaldırıldığında değil, şimdiden planlayın.

Bir intercept’i doğrulama Function’ına taşımak genellikle kolaydır; çünkü kural aynı kalır, yalnızca yeri değişir:

  1. Intercept’in kontrol ettiği her koşulu ve gösterdiği mesajı yazın.
  2. Her koşulun arkasındaki verinin doğrulama Function’ının girdi sorgusunda bulunduğunu doğrulayın: sepet satırları, varyant, müşteri ya da mağaza metafield’ları (meta alanları) veya doğrulamanın kendi ayarları.
  3. Function’ı aynı mesajları döndürecek şekilde kurun; mümkünse ilgili alanı, değilse tüm sepeti hedefleyin.
  4. Extension’ı, kuralı müşteri ona takılmadan önce açıklamak gibi görsel işler için tutun ve block_progress yetkisini ondan kaldırın.

Plan sınırları farklı yerlerde

İki araç farklı yerlerden sınırlanır; bu da Plus altındaki bir mağazanın neler yapabileceğini değiştirir:

  • UI extension’lar, nerede göründüklerine göre sınırlanır. Bilgi, kargo ve ödeme adımlarındaki extension’lar Plus gerektirir. Teşekkürler ve Sipariş durumu sayfalarında ve müşteri hesabı sayfalarında, UI extension içeren uygulamalar Basic ve üzerinde çalışır.
  • Function’lar, nasıl dağıtıldıklarına göre sınırlanır. Her plandaki mağaza Function içeren App Store uygulamalarını kullanabilir; Function içeren özel uygulamaları ise yalnızca Plus mağazaları kullanabilir. Ödeme koşulları gibi birkaç özellik her durumda Plus gerektirir.

Pratikte Plus olmayan bir mağaza, sepeti doğrulayan ya da bir ödeme yöntemini gizleyen bir App Store uygulaması kullanabilir; ama hiçbir uygulamayla kargo adımına özel bir alan ekleyemez.

İkisine birden ihtiyaç duyduğunuzda

Pek çok gereksinim ikisini birleştirir. Extension bilgiyi toplar ya da açıklar; Function karar verir. Tipik ikililer:

  • Bir extension müşterinin vermesi gereken bilgiyi toplar; zorunlu değer eksik ya da geçersizse bir doğrulama Function’ı ödemeyi engeller.
  • Bir Function belirli sepetlerde bir ödeme yöntemini gizler; bir extension da müşteri tahmin etmek zorunda kalmasın diye nedenini açıklar.
  • Bir indirim Function’ı kademeli fiyat uygular; bir extension sepetin bir sonraki kademeye ne kadar uzak olduğunu gösterir.

Pratik kural: bir şeyi uygulatmak için asla arayüze güvenmeyin. Bir siparişin geçmemesi gerekiyorsa onu durduran Function’dır; extension ise nedenini anlaşılır kılmak için oradadır.

Sık gereksinimler ve karşılıkları

GereksinimNe kurulmalı
Hediye mesajı ya da teslimat talimatı istemekUI extension
Kargo adımında teslimat süreleriyle ilgili bir banner göstermekUI extension (bir ödeme adımının içinde olduğu için Plus)
Satın alma sonrasına bir anket eklemekTeşekkürler sayfasında UI extension (Basic ve üzeri)
Sepette bir koleksiyondan üç ürün olduğunda %10 indirim vermekDiscount Function
Büyük boy ürünlerde hızlı teslimatı gizlemekDelivery Customization Function
Belirli sepetlerde bir ödeme yöntemini gizlemekPayment Customization Function
Ürün başına adet sınırını aşan siparişleri reddetmekCart and Checkout Validation Function
Bir ödeme yönteminin neden görünmediğini göstermekİkisi birden: Function gizler, extension açıklar
Ayrı parçalar hâlinde gönderilen bir paket satmakCart Transform Function

Seçim yapmadan önce bilmeye değer iki operasyonel sınır var. Discount, Delivery Customization, Payment Customization ve Cart and Checkout Validation dahil çoğu Function API’sinde bir mağaza, tüm uygulamaları genelinde her türden en fazla 25 function etkinleştirebilir. Arayüz tarafında ise ödeme sayfası düzenleyicisindeki tek bir blok konumu en fazla üç extension alır. Çok sayıda ödeme sayfası uygulaması olan mağazalar bu sınırlardan birine ulaşabilir.

Function’lar ayrıca sabit kaynak sınırlarıyla çalışır: 256 kB derlenmiş binary, 10.000 kB doğrusal bellek ve 200 satıra kadar sepetlerde 11 milyon komut, 128 kB girdi ve 20 kB çıktı. Büyük arama tabloları gerektiren bir kuralın bu sınırlara sığması gerekir; verisini kod yerine metafield’larda tutmanın bir nedeni de budur.

Adım adım seçim

  1. Değişikliği tek bir cümleyle anlatın. Cümle “göster”, “sor” ya da “bildir” diye başlıyorsa arayüzdür. “Ücretlendir”, “gizle”, “yeniden sırala” ya da “engelle” diye başlıyorsa mantıktır.
  2. Arayüz için: hangi ödeme adımına ait olduğunu kontrol edin. Bilgi, kargo ya da ödeme adımı Plus demektir.
  3. Mantık için: ilgili Function API’sini (Discount, Delivery Customization, Payment Customization, Cart and Checkout Validation, Cart Transform) bulun ve bir App Store uygulamasının bunu zaten sunup sunmadığına bakın.
  4. Mantığın mutlaka uygulanması gerekiyorsa, işin içinde bir extension olsa bile onu bir Function’a koyun.
  5. Canlı mağazaya kurmadan önce ikisini de gerçekçi sepetlerle bir geliştirme mağazasında kurup test edin.

Lintel’in rolü

Lintel iki yarıyı da kurar: mantık için Shopify Functions, arayüz için bir özel uygulama içinde Checkout UI extensions; hepsi planınızın izin verdiği kapsamda. Extension’larınızdan biri ödemeyi hâlâ kullanımdan kaldırılmış intercept ile engelliyorsa, o kuralı bir doğrulama Function’ına taşımak sınırları net bir iştir.

Sık sorulan sorular

Bir Checkout UI extension ödemeyi engelleyebilir mi?
useBuyerJourneyIntercept ve block_progress yetkisiyle engelleyebiliyordu, ancak ikisi de API sürümü 2026-07’den itibaren kullanımdan kaldırıldı. Shopify, sunucu tarafında çalışan bir Cart and Checkout Validation Function önerir.
Checkout UI extensions Shopify Plus gerektirir mi?
Bilgi, kargo ve ödeme adımlarında evet. Teşekkürler ve Sipariş durumu sayfalarında UI extension içeren uygulamalar Basic plan ve üzerinde çalışır.
Bir Shopify Function ödeme sayfasına alan ekleyebilir mi?
Hayır. Function’ların arayüzü yoktur; indirim, gizlenmiş seçenek ya da doğrulama hatası gibi işlemler döndürürler. Müşteriden bilgi almak bir UI extension’ın işidir.

Kaynaklar

  1. Checkout UI extensionsShopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  2. Deprecating the useBuyerJourneyIntercept API on checkout UI extensionsShopify developer changelog, 26 Eylül 2026 tarihinde kontrol edildi
  3. Buyer Journey APIShopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  4. Function APIs (limitations)Shopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  5. Cart and Checkout Validation Function APIShopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  6. Discount Function APIShopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  7. Delivery Customization Function APIShopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  8. Payment Customization Function APIShopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  9. About Shopify Functions (availability)Shopify developer documentation, 26 Eylül 2026 tarihinde kontrol edildi
  10. Adding apps to your checkoutShopify Help Center, 26 Eylül 2026 tarihinde kontrol edildi