Toplantı Planla
ShopifyCheckoutYazılım

Shopify Scripts Kapatıldı: Shopify Functions'a Geçiş Nasıl Yapılmalı?

Shopify Scripts kapatıldı. İndirim, ödeme ve kargo özelleştirmelerini Shopify Functions'a taşırken dikkat edilmesi gerekenleri inceleyin.

Reliefers DigitalReliefers DigitalYazar2 Ağustos 20263 Dakika
Shopify Scripts Kapatıldı: Shopify Functions'a Geçiş Nasıl Yapılmalı?

Shopify altyapısında özel ticaret kuralları geliştiren markalar için 2026 önemli bir kırılma noktası oldu.

Shopify Scripts artık çalışmıyor.

Konu artık “ileride migrate etmeli miyiz?” değil.

Eski commerce logic'in yeni Shopify mimarisinde nerede yaşaması gerektiği.

Shopify Scripts ne için kullanılıyordu?

Scripts özellikle Shopify Plus mağazalarında checkout ve sepet davranışlarını özelleştirmek için kullanılıyordu.

Örneğin:

  • belirli ürünlerde otomatik indirim,
  • müşteri segmentine özel fiyat,
  • ürün adedine göre discount,
  • ücretsiz kargo,
  • belirli ödeme yöntemlerini gizleme,
  • shipping method değiştirme,
  • bundle benzeri fiyatlama kuralları.

Shopify Functions nedir?

Shopify Functions, custom commerce logic'in Shopify'ın kendi execution environment'ında çalışmasını sağlayan extension modelidir.

Business rule UI'da değil, commerce engine'e yakın katmanda yaşamalıdır.

Migration'a kod yazarak başlanmamalı

İlk yapılması gereken mevcut Script envanterini çıkarmaktır.

Eski kural Yeni hedef
%20 ürün indirimi Discount Function
3 al 2 öde Discount Function
Belirli ödeme yöntemini gizle Payment customization
VIP müşteriye ücretsiz kargo Delivery customization
Sepet minimum tutarı Cart/Checkout Validation
Belirli ürün kombinasyonunu engelle Cart/Checkout Validation

Her Script'in birebir karşılığı tek bir Function olmayabilir.

Discount logic nasıl taşınmalı?

Kuralın girdileri ve çıktıları açıkça modellenmelidir.

Test edilmesi gerekenler:

  • başka indirimle birleşiyor mu?
  • discount code ile birlikte çalışıyor mu?
  • bundle ürünlerinde ne oluyor?
  • subscription varsa ne oluyor?
  • currency/market değiştiğinde eşik nasıl hesaplanıyor?
  • ürün iade edildiğinde discount allocation doğru mu?

Migration'ın zor kısmı syntax değil, business semantics'in korunmasıdır.

Checkout validation neden frontend'e bırakılmamalı?

“Sepette özel üretim ürün varsa teslimat tarihi seçilmeden checkout tamamlanamasın” gibi kurallar yalnız JavaScript ile UI tarafında uygulanırsa kırılgan olur.

Doğru ayrım:

UI: Kullanıcıya neden ilerleyemediğini anlatır.

Function: İş kuralını gerçekten uygular.

Shopify checkout mimarisi neden sürekli değişiyor?

Checkout artık tek bir HTML sayfası değildir.

Commerce aynı anda web checkout, Shop Pay, express wallets, mobile, POS ve agentic checkout gibi farklı yüzeylerde çalışabilir.

Migration sırasında test matrisi nasıl olmalı?

Customer: Guest / Registered / VIP

×

Cart: Normal / Bundle / Subscription

×

Discount: Yok / Code / Automatic

×

Market: TR / EU / US

×

Payment: Card / Shop Pay / Express

kombinasyonları düşünülmelidir.

Shopify Functions migration checklist

  • Aktif tüm Scripts çıkarıldı mı?
  • Her Script'in business amacı dokümante edildi mi?
  • Discount logic ayrıştırıldı mı?
  • Shipping customization belirlendi mi?
  • Payment customization belirlendi mi?
  • Validation kuralları ayrıştırıldı mı?
  • Customer segment dependency'leri kontrol edildi mi?
  • Market/currency senaryoları test edildi mi?
  • Discount stacking test edildi mi?
  • Express checkout test edildi mi?
  • Legacy ScriptTag'ler audit edildi mi?
  • Analytics kodları modern extension yapısına taşınmalı mı kontrol edildi mi?
  • Rollback/fallback senaryosu belirlendi mi?
  • Production sonrası order/discount reconciliation yapılacak mı?

Scripts → Functions geçişinde asıl zihniyet değişimi

Migration'da “eski kodu yeni dile çevirmek” yeterli değildir. Önce script'in hangi business capability'yi uyguladığı ayrıştırılmalıdır.

  • line item discount
  • shipping discount
  • payment customization
  • delivery customization
  • validation

birbirinden ayrı concern'lerdir.

Mevcut script envanteri nasıl çıkarılır?

Alan Örnek
Business rule VIP müşteriye %10
Input customer tag, cart lines
Output discount
Dependency metafield/config
Edge cases bundle, gift card
Owner Growth
Test cases senaryo listesi

Business rule'u koddan ayırın

Hard-coded kural yerine:

  • eligible segment,
  • value,
  • date range,
  • product scope

config/metafield ile yönetilebilir.

Function'ın yapmaması gerekenler

Execution sırasında uzak HTTP isteği, yavaş database sorgusu veya LLM çağrısı gibi dış bağımlılıklar checkout yoluna sokulmamalıdır.

Migration test matrisi

  • tek ürün,
  • çok ürün,
  • eligible + ineligible ürün,
  • quantity,
  • sale price,
  • gift card,
  • customer segment,
  • currency/market,
  • multiple discounts,
  • bundle,
  • cart edit sonrası recalculation.

Expected cart total snapshot'ları tutulabilir.

Observability

  • config version,
  • deploy version,
  • merchant rule changes

loglanmalıdır.

Rollout

  1. script behavior snapshot,
  2. equivalent Function,
  3. staging test,
  4. edge-case suite,
  5. düşük riskli rollout,
  6. monitoring,
  7. eski script kapatma.

Doğru migration business logic'i versioned, testable ve configuration-driven hale getirir.

Migration acceptance criteria

Bir Function yalnız “çalışıyor” diye kabul edilmemelidir.

Acceptance:

  • eski script ile eşdeğer business output,
  • boundary cases geçti,
  • config documented,
  • rollback hazır,
  • merchant operations eğitildi,
  • observability mevcut.

Özellikle discount migration'da birkaç happy-path test production güveni için yeterli değildir.

Sonuç

Shopify Scripts migration'ın amacı eski kodu yeni API syntax'ına çevirmek değildir.

Asıl amaç:

ticari kuralları Shopify'ın yeni execution modeline doğru sorumluluklarla taşımaktır.

Reliefers olarak Shopify projelerinde migration'ı yalnız uygulama kurulumu olarak değil; discount, checkout, payment, shipping ve storefront logic'in birlikte ele alındığı bir commerce architecture çalışması olarak değerlendiriyoruz.

Bir Sonraki Büyüme Adımınızı Birlikte Kuralım

Yeni bir e-ticaret altyapısı, özel yazılım veya daha güçlü bir dijital pazarlama yönetimi planlıyorsanız mevcut durumu ve hedefinizi konuşalım.