Özel Scriptlere Genel Bakış
Script sistemi ve çalışma anı
Özel scriptler, belirli sayfalarda çalışan kendi JavaScript ve CSS kodunuzu Selwise üzerinden yönetmenizi sağlar: kod panelde durur, hangi sayfalarda çalışacağını bir yol kuralı belirler, sitenize deploy gerekmez.
Panelde nerede
Sol menüde Kanallar → Özel Scriptler (Channels → Custom Scripts) (/dashboard/scripts). Üç koşul gerekir:
- Rol: yalnızca
admin.marketingrolü satırı görmez, adresi yazsa da ana sayfaya döner. - Kanal: yalnızca web sitesi kanalı. Uygulama kanalında satır yoktur, çünkü script bir
<script>etiketiyle sayfaya enjekte edilir. - Modül: gerekmez. Özel scriptler her hesaba dahildir (çekirdek özellik); yalnızca yapay zekâyla yazmak için AI Studio modülü ve AI kredisi gerekir.
Neden Selwise üzerinden
| Avantaj | Açıklama |
|---|---|
| Deploy gerekmez | Panelden kaydedersiniz; sonraki sayfa yüklemesinde yeni kod çalışır |
| Sayfa hedefleme | Hangi yollarda çalışacağını kural ile belirlersiniz |
| Açma/kapama | Kodu silmeden devre dışı bırakırsınız |
| Değişiklik kaydı | Kim ne zaman değiştirdi Denetim Kayıtları'nda görünür (kodun kendisi değil, bir parmak izi) |
| Ortak kod, kanala özel yerleşim | Bir script bir kez yazılır; her kanalda farklı yol kuralıyla eklenebilir |
Ne zaman kullanılmaz
| Durum | Doğru yer |
|---|---|
| Widget içeriği | Custom Widget |
| Ürün sayfası içeriği | Ürün Zenginleştirme |
| Kart tasarımı | Özel Kart Oluşturma |
| Sitenizin kalıcı işlevi | Temanız |
Özel scriptler bir kaçış kapağıdır; ilk çözüm değil.
Çalışma modeli
Bunu bilmek, "neden çalışmadı"yı çözer:
- Sayfa yüklenince Selwise, geçerli yolu (
location.pathname; sorgu dizesi ve#hariç) kanal anahtarıyla birlikte sorar:GET /public/sites/KANAL_ANAHTARI/scripts?path=…. - Yanıt, etkin olan ve yol kuralı eşleşen scriptleri döndürür.
- Her script için önce CSS,
<head>içine bir<style>olarak eklenir; sonra JavaScript,<body>'nin sonuna klasik bir<script>etiketi olarak yazılır. - Kod tam sayfa yüklemesi başına bir kez çalışır.
Sonuçları:
- Kod bir fonksiyona sarılmaz: üst düzey
const/varglobal olur ve üst düzeyreturnsöz dizimi hatasıdır. Kodunuzu kendiniz(function () { … })();ile sarın. import/export(modül) çalışmaz.- Zamanlama seçeneği yoktur (
immediate,domReadygibi). Kod, Selwise başladıktan sonra çalışır; temanızın DOM'u o anda tamamlanmamış olabilir — elemanı bekleyin (MutationObserverya daDOMContentLoaded). - Tek sayfa uygulamasında (route değişimi sayfayı yenilemeyen mağaza) kod yeniden çalışmaz. Selwise yol değişince enjekte edilen
<script>ve<style>öğelerini kaldırır ama yapılan işi geri almaz (eklenmiş dinleyiciler ve DOM düğümleri kalır) ve scripti yeniden çalıştırmaz. Sonuç: CSS ilk gezintiden sonra kalkar. Rota değişimini kendiniz izleyin — bkz. Sayfa Hedefleme. - Test modu yoktur. Script test moduna bağlanmaz: etkin ve yolu eşleşen her ziyaretçide çalışır. Önce tarayıcı konsolunda deneyin; panelde Preview (Önizleme) yalnızca örnek bir sayfada çalıştırır.
Güvenlik ve sınırlar
| Konu | Davranış |
|---|---|
| Kimlik | Script yalnızca doğrulanmış bir kanalda ve geçerli Origin ile sunulur; abonelik teslimata açık olmalıdır. Doğrulanmamış kanalda script de çalışmaz. |
| Çerez onayı | Hiçbir şey onaya bağlı değildir. Selwise script'i onay beklemeden enjekte eder; çerez ya da yerel depolama kullanıyorsanız kodunuz önce window.Selwise.getConsentState() ile izni kontrol etmelidir — bkz. Onay Yönetimi. |
| Yetki | Kod sayfayla aynı yetkiyle çalışır: ödeme sayfası dahil sayfadaki her şeyi okuyabilir. Kişisel veri okumayın, üçüncü tarafa göndermeyin. |
| CSP | Script satır içi (inline) enjekte edilir. Sitenizin Content-Security-Policy başlığı satır içi scripti yasaklıyorsa (nonce/hash olmadan) tarayıcı onu engeller; konsolda CSP hatası görürsünüz. Çözüm sitenizin politikasındadır. |
| Boyut | JavaScript en fazla 50.000, CSS en fazla 30.000, açıklama en fazla 1.000, ad en fazla 100, yol deseni en fazla 255 karakterdir. Aşan alan kayıtta adıyla reddedilir (400). |
| Sayı | Özel script sayınız sözleşmedeki Custom scripts stok limitiyle sınırlıdır; dolunca yeni script oluşturulamaz (409). |
| Hata | Script'in kendi çalışma zamanı hataları tarayıcı konsoluna düşer ve sayfayı bozmamalıdır; kodunuz try/catch içinde olmalıdır. Enjeksiyon sırasında yakalanan hata script_error olayı olarak kaydedilir; başarılı enjeksiyon script_injected olarak. |
Sırada ne var
- Script Ekleme
- Sayfa Hedefleme
- Örnekler
- Çalışmıyorsa: Özel Script Sorunları
Son güncelleme: 22 Ekim 2026
