Üyelik Gerekli
Bu içeriğe erişmek için giriş yapmanız ve Premium aboneliğine sahip olmanız gerekmektedir.
- 01 Tester / non-tester ayrımı customer tag veya metafield guard'ı; aynı workflow içinde iki ana branch + sepet tutarı ve numberOfOrders alt branch'leri ile hediye varyantı seçilir.
- 02
add_order_line_item+add_for_free: true+parent_uuidile trigger edilen sipariş üzerine hediye satırı attach edilir; Boolean value_type ve key isimleri JSON format hatasına duyarlı. - 03 First-order detection için
custom.has_ordered_beforemetafield guard'ı bogus test ve iptal/iade sipariş sayımına karşınumberOfOrders'dan daha dayanıklı. - 04
send_http_requestaction Plus, Advanced ve Grow planlarına özel; Basic ve Starter için Klaviyo Track Event connector free tier'da mevcut ve event'i downstream platformlara köprüleyebilir. - 05 Downstream server-side event'ler (GA4 MP, Klaviyo) Yazı 1'deki cart attribute consent bridge üzerinden
order.customAttributescondition'ı ile gate edilir; internal metafield/tag action'ları consent'siz çalışabilir.
+ Flow'un `send_http_request` action'ı tüm planlarda var mı?
Hayır. send_http_request ve send_admin_api_request yalnızca Shopify Plus, Advanced ve Grow planlarında mevcut. Basic, Starter, Standard planlarda yok. Workaround olarak Klaviyo 'Track an event' connector tüm planlarda çalışıyor; Klaviyo'dan downstream GA4 / Meta / SMS yönlendirmesi yapılabilir veya Shopify Webhook üzerinden CF Worker / self-hosted endpoint ikinci seçenek.
+ İlk sipariş tespiti için `customer.numberOfOrders` yerine neden metafield kullanıyoruz?
Test ve geliştirme aşamasında atılan bogus order'lar, iptal edilmiş ve iade olan siparişler numberOfOrders sayımına dahil oluyor. Gerçek 'first real paid order' için custom.has_ordered_before (boolean) metafield'i daha güvenilir: ilk başarılı ödenmiş sipariş sonrası Flow action'ı bu flag'i true yapıyor, sonraki order'larda guard olarak kontrol ediliyor. Test ortamında flag'i temizlemek de kolay.
+ Tester flag'ini customer tag mı yoksa metafield olarak mı tutmalı?
İkisi de pratikte çalışıyor. Tag avantajı: Flow condition editor'da tek-tık UI desteği, admin filter'larıyla uyumlu, görsel olarak admin customer detayında görünür. Metafield avantajı: typed (boolean), GraphQL Admin API ve Storefront'ta structured access, third-party app'lerin tag namespace'ini kirletmesine karşı koruma. Tester flag kararı bir iş mantığı olduğu için tag (kolay görünür, operasyon ekibinin de düzenleyebileceği) pratikte daha yaygın tercih; metafield ise programmatic entegrasyonun ağır olduğu senaryolarda tercih edilmeli.
+ GA4 MP client_id için hangi strateji?
İki seçenek, trade-off farklı: order.customer.id | md5 deterministic (aynı müşteri her zaman aynı client_id) ama GA4'ün gerçek web client_id'siyle eşleşmiyor, bu nedenle web journey ve server-side event ayrı sessionlarda görünür. Alternatif: pixel'den _ga_cid cookie değerini cart attribute'a yazmak, Flow'dan order.customAttributes üzerinden okuyup MP'ye geçirmek; bu durumda web + server journey tek sessionda stitch olur ama setup iki katlı olur. Klasik öneri: purchase event pixel tarafında gerçek client_id'yle atılır, server-side MP event'i b2b_first_order gibi ayrı bir event name ile emit edilir ve duplicate saymaz.
+ Flow'da consent condition nasıl yazılır?
Order trigger'lı workflow'da order.customAttributes array'inden key-match aranır. Flow condition editor'da order.customAttributes.any(key: "_analytics_consent", value: "granted") pattern'i veya For each loop içinde attribute.key == "_analytics_consent" AND attribute.value == "granted" şeklinde yazılır. Condition evaluate true döndüğünde send_http_request branch'i çalışır, aksi halde sadece internal action (tag/metafield) tarafı geçer.