Özel Mağaza Sayfası Tetikleyicileri
Sepet çekmecesi açılması veya istek listesine ekleme gibi özel mağaza ön yüzü olaylarını tek satır JavaScript ile Shopify Flow tetikleyicisine dönüştürün.
Yerleşik mağaza ön yüzü tetikleyicileri, Shopify’un bildirdiği olayları kapsar. Özel Mağaza Ön Yüzü Tetikleyicisi ise mağaza ön yüzünüzde gerçekleşen diğer tüm olayları kapsar: Temanızdan tek satırlık bir JavaScript koduyla bir olay yayınladığınızda, bu olay Shopify Flow’da kullanabileceğiniz bir tetikleyici haline gelir.
En net örnek, alışveriş sepeti çekmecesidir. Shopify’ın “cart view” olayı /cart sayfasında tetiklenir; ancak çoğu modern tema bu sayfaya yönlendirme yapmaz - bunun yerine bir çekmeceyi kaydırarak açar. Shopify bu konuda herhangi bir bildirimde bulunmadığından, hiçbir uygulama bunu algılayamaz. Çekmece açıldığında kendi olayınızı yayınlamak, bu boşluğu doldurur.
Mağazaların bunu kullandığı diğer amaçlar:
- İstek listesine ekleme ya da bana haber ver seçeneğine tıklama; Shopify, bunların hiçbirini raporlamıyor.
- Bir ürünle ilgili bilgi vermek amacıyla bir beden kılavuzu veya iade politikası sayfası açıldı.
- Seçicide gerçekleşen bir varyant değişikliği; bu, yeni bir sayfa görüntüleme değildir (bkz. Mağaza vitrini tetikleyicileri).
- Temanızın veya bir üçüncü taraf uygulamanın zaten bildiği, ancak Shopify’ın bilmediği her şey.
Nasıl çalışır?
- Uygulamada tetikleyiciyi oluşturun ve ona bir olay adı verin; örneğin
cart_drawer_opened. Her Storefront tetikleyicisi gibi, bu tetikleyicinin de Storefront Davranış Erişimi'ne ihtiyacı vardır; bu erişim, İzinler sayfasında bir kez verilir. - Uygulamanın size gösterdiği tek satırlık kod parçasını kopyalayın ve temanızda ilgili bölümün bulunduğu yere yapıştırın. Neyi nereye yapıştırmanız gerektiğinden emin değilseniz, AI ile tetikleyici kodu oluştur komutu, basit bir İngilizce açıklamadan temanız için gerekli kod parçasını oluşturur.
- Gönderilecek içeriği filtrelemek veya yeniden biçimlendirmek istiyorsanız bir dönüştürme kodu yazın; her şeyi olduğu gibi iletmek istiyorsanız bu alanı boş bırakın.
- Özelliği etkinleştirin, ardından Shopify Flow’da “Özel Mağaza Sayfası Tetikleyicisi”ni ekleyin ve olay adına göre dallandırın.
Bu kod parçacığı, tema tarafındaki entegrasyonun tamamını oluşturmaktadır:

Shopify.analytics.publish("cart_drawer_opened", {
// anything you want the Flow to receive
itemCount: 3,
total: "129.90"
});Etkinliğe isim vermek
Etkinlik adı, Shopify Flow iş akışınızın dallanma noktasıdır; bu nedenle anlaşılır bir ad seçin ve iş akışları bu adı kullanmaya başladığında artık değiştirmeyin.
Adlar harf, rakam, alt çizgi ve tire içerebilir; bir harf veya rakamla başlamalıdır ve en fazla 64 karakterden oluşabilir. Uygulama, yazdıklarınızı kısaltır; bu nedenle Cart drawer opened, cart_drawer_opened haline gelir.
Bu ad, dahili olarak ad alanına alınmıştır; bu sayede hiçbir zaman bir Shopify olayıyla veya aynı adlı bir webhook özel tetikleyicisiyle çakışmaz.
Filtreleme ve yeniden şekillendirme
İkinci argüman olarak ilettiğiniz veriler, Shopify Flow’da tetikleyicinin output öğesi olarak gelir. İhtiyacınız olan tek şey buysa, işlem tamamdır.
Yalnızca belirli durumlarda tetikleme yapmak veya temanın yayınladığından farklı alanlar göndermek istediğinizde, bir dönüştürme işlevi yazın - bu, Özel tetikleyiciler tarafından kullanılan JavaScript modülüyle aynıdır. Tetiklemek için bir nesne döndürün, atlamak için null döndürün:
export async function transform(payload, topic, shop, ctx) {
// Anything you published is on `payload`.
if ((payload.itemCount || 0) < 2) return null;
return {
itemCount: payload.itemCount,
total: payload.total,
// Present only when the shopper is signed in.
customerId: payload.customerId,
};
}Shopify Flow’da kullanma
Her “Özel Mağaza Sayfası Tetikleyicisi”, Shopify Flow’da aynı tetikleyici olarak görünür: “Özel Mağaza Sayfası Tetikleyicisi”. Bunu bir iş akışına ekleyin, ardından “eventName” değerinin seçtiğiniz adla eşleşmesi koşulunu ekleyin.
İşte bu sayede tek bir Shopify Flow tetikleyicisi, mağaza ön yüzünüzdeki tüm olayları geri gönderebilir. Tetikleyici ayrıca, uygulamada ona verdiğiniz adı ve dönüştürme işleminizin çıktısını da içerir.
Bu, webhook tabanlı Özel tetikleyiciler öğesini destekleyen **Özel **Tetikleyiciden kasıtlı olarak ayrı tutulmuştur. İkisi arasında bilinmesi gereken bir fark vardır: Bir webhook özel tetikleyicisi sunucularımızda çalışır ve güvenilirdir; oysa bir mağaza önü olayı, alışverişçinin tarayıcısının bize ulaşmasına ve analitik iznine bağlıdır.
Neler gönderilmemelidir?
publish işlevinin ikinci argümanı tamamen sizin kontrolünüz altındadır; bu da, kişisel verilerin bu argümanda yer almamasını sağlamak sizin sorumluluğunuzda olduğu anlamına gelir.
Tanımlayıcıları ve bilgileri gönderin: ürün ve varyant kimlikleri, miktarlar, fiyatlar, meydana gelen olayın adı. Oturum açmış müşterinin kimliği varsa sizin adınıza eklenir; bu nedenle bunu kendiniz iletmenize gerek kalmaz.
İsim, e-posta adresi, telefon numarası veya posta adresi göndermeyin. İş akışınız, Shopify Flow’daki müşteri kimliğinden bu bilgileri herhangi bir şekilde sorgulayabilir; dolayısıyla bunları bir mağaza ön yüzü olayına eklemenin hiçbir faydası yoktur ve bunu yapmak, bir analiz olayını kişisel veri içeren bir olaya dönüştürür.
Bu, tarifemdeki kotamdan düşülür mü?
Evet. Bize ulaşan her olay sayılır; dönüştürme işleminizin null değerini döndürerek atladığı olaylar da dahil - bu, Özel tetikleyiciler ile aynı kuraldır. Onay eksikliği nedeniyle tarayıcıda atlanan olaylar bize asla ulaşmaz ve asla sayılmaz.
Snippet’in nereye yerleştirileceğine siz karar verdiğiniz için, hacmi doğrudan siz kontrol edersiniz. Çekmece açılma olayı, ürün görüntüleme olayından çok daha seyrek gerçekleşir.
Aynı etkinliği birden fazla yerden yayınlayabilir miyim?
Evet. Önemli olan isimdir, nereden yayınlandığı değil. İş akışının bunları birbirinden ayırt etmesini istiyorsanız, yük içinde kaynağını belirten bir bilgi aktarmak iyi bir fikirdir.
İki çekmecenin açılması tek bir olay olarak sayılır mı?
Hayır. Kasıtlı olaylar ayrı tutulur; çünkü bir olayın iki kez yayınlanması, genellikle o olayın gerçekten iki kez gerçekleştiği anlamına gelir. Bu durum, aynı sayfa görüntülemesinin tekrarlarını birleştiren yerleşik tetikleyicilerden farklıdır.
Etkinliğin adını daha sonra değiştirebilir miyim?
Bunu yapabilirsiniz, ancak Shopify Flow’daki iş akışınız bu ad üzerinden filtreleme yapar; dolayısıyla adı değiştirdiğinizde, koşulu güncelleyene kadar iş akışının çalışması durur - ayrıca temanızdaki kod parçasını da buna uygun şekilde güncellemeniz gerekir. Bir iş akışı bu adı kullanmaya başladığında, adı sabit olarak kabul edin.
Mağazamda yayına girmeden önce bunu nasıl test edebilirim?
Uygulamadaki tetikleyici sayfasında, dönüştürme işleminizi çalıştıran ve Shopify Flow iş akışınızı başlatan bir test bulunur; böylece temanıza dokunmadan işlemin baştan sona nasıl yürüdüğünü izleyebilirsiniz. Testler, kotanızdan düşülmez.
Parça temanıza eklendiğinde, Etkinlik Geçmişi sayfası gerçek olayları geldikçe gösterir.
Ödeme sayfalarında çalışıyor mu?
Kendi tema kodunuzdan yayınlama işlemi, mağazanızın ön yüzünü kapsar. Ödeme sayfası Shopify tarafından oluşturulur ve buraya tema kodu ekleyemezsiniz; bu nedenle, bu bölümde bunun yerine yerleşik “Ödeme Hatası Gösterildi” ve “Ödeme İndirim Kodu Reddedildi” tetikleyicilerini kullanın.
Sonraki adımlar
- Mağaza vitrini tetikleyicileri - Yerleşik mağaza tetikleyicileri ve pikselin çalışma şekli.
- AI ile tetikleyici kodu oluştur - Tema kod parçacığını veya dönüştürme kodunu yapay zekanın sizin için yazmasına izin verin.
- Özel tetikleyiciler - Shopify webhook olayları için aynı konsept, ancak sunucu tarafında güvenilirlikle.
- Planlar ve kullanım - Neyin bir olay olarak kabul edildiği.
