Test Mağazaları (Development Stores)
Yayınlanmamış (taslak/incelemedeki) eklentini, sahibi olduğun bir test restoranında uçtan uca dene — tıpkı Shopify development stores gibi. Gerçek restoranlar yalnız onaylı/yayınlı eklentileri görür; yayınlanmamış eklenti yalnız senin kendi test mağazanda kurulabilir.
Kavram
- Development store = portal'dan oluşturduğun, sahibi olduğun gerçek (ama "development" işaretli) bir Restomenum test restoranı.
- Yayınlanmamış eklentin yalnız kendi test mağazanda kurulabilir (ownership gate) — müşteri restoranlarında asla.
- Mağaza tam fonksiyonel gelir (demo menü/masa/ödeme) → hemen sipariş/masa/paket akışını test edebilirsin.
- Yalnız DEV ortamında vardır; bu ortamda ücretlendirme kapalıdır (eklenti ücretsiz kurulur, checkout istenmez).
Uçtan uca test akışı
- Portal → Test Mağazaları → bir mağaza oluştur (e-posta + şifre belirle). Bir kez yeterli.
- Eklentini yaz, bir versiyon kaydet ve incelemeye göndermeden bırak (taslak). Eklentin registry'ye sync olur.
- restoyeni'ye (DEV) test mağazanın e-posta + şifresiyle gir.
- Yayınlanmamış eklentini kur — mağaza senin olduğu için onaysız olsa bile kurulur (ownership gate).
- OAuth connect → webhook / lifecycle / hook / (test) billing — tam gerçek akışı dene.
- Yeni sürüm kaydet → test mağazanda "güncelle" anında çıkar (incelemeye göndermeye gerek yok) → yükselt → test et.
- ⚠️ Manifest değişikliği kurulu mağazaya kendiliğinden inmez. Kurulumun UI anlık görüntüsü yalnız kurulum ve yükseltme anında üretilir — aynı sürümü yeniden kaydedersen mevcut kurulum eski nav/sayfa/buton metinleriyle kalır. Yeni etiketleri görmek için sürümü yükselt ya da eklentiyi kaldırıp yeniden kur. (Bu, sandbox origin’i ile karıştırılmasın: tünel adresi değişince URL’ler otomatik hizalanır, etiketler hizalanmaz.)
- Hazır olunca incelemeye gönder → admin onaylar → yayınlanır → gerçek restoranlara açılır.
oluştur (1 kez) → restoyeni'ye gir (email/şifre)
→ yayınlanmamış eklentini KUR (ownership: senin mağazan)
→ connect → webhook/lifecycle/hook/billing(test) → düzelt → tekrar test
→ incelemeye gönder → onay → published (gerçek restoranlara açılır)
Yerelde geliştir — sandbox origin’i
Test mağazası kurulumları da varsayılan olarak sürümde yazan yayın adresine teslim eder (webhook/connect/action + iframe sayfaları tek kayıtlı domainden türer). Yerelde çalışmak için sürümü tünele çevirmen gerekmez: eklenti sayfasındaki Sandbox origin’i alanına tünel adresini (ngrok, cloudflared…) yaz.
- Yalnız
sandbox teslimleri oraya gider; production etkilenmez. - Path’ler sürümden gelir —
/webhook, /oauth/connect… aynı kalır, yalnız origin değişir. - Sürümü düzenlemez, yeniden incelemeye girmez; tünel adresin değişince tek alanı güncellersin.
- Alanı boşaltmak override’ı kaldırır.
- Aynı alan sürüm editöründe de var (uç noktaların hemen üstünde) — orada sayfanın Kaydet düğmesiyle birlikte yazılır ve sandbox URL’lerini canlı önizlersin.
Yaşam döngüsü & yenileme
- Her test mağazasının bir bitiş tarihi vardır (oluşturma/son giriş + 30 gün).
- Portal'a her girişinde mağazaların otomatik 30 gün uzar (ekstra bir şey yapmazsın).
- Uzun süre girmezsen süre dolar → test mağazasının paneli kapanır; tekrar giriş yapınca yeniden açılır.
- Geliştirici başına en fazla 3 aktif test mağazası.
Sınırlar (mevcut faz)
- Teslimler
environment:"sandbox" taşır: test mağazandan gelen her imzalı gövdede (event/lifecycle/hook/action/capability) environment: "sandbox" alanı bulunur — gerçek mağaza teslimi "production"'dır. Test/gerçek ayrımını bu alanla yap (zarf referansı); X-Restomenum-Environment header'ı imzasız kolaylık kopyasıdır, gövdedekini kullan. Ortamın tüm yüzeyleri + depolama/kök seçimi: Ortamlar. - Ownership zorunlu: mağaza, test edeceğin eklentinin sahibiyle (developer) aynı hesaba ait olmalı — yoksa kurulum reddedilir.
- Marketplace görünürlüğü: yayınlanmamış eklenti test mağazasının marketplace listesinde henüz görünmeyebilir; şimdilik pluginId ile / doğrudan kurulum ile kur.
- Ücret yok: DEV'de billing kapalı → test mağazasında eklenti ücretsiz kurulur.