Shopify'da WhatsApp konusu, kapalı kaynak altyapılardakinin tersi bir sorunla başlar. Veriye ulaşmak zor değildir; aksine Shopify olayları kendisi dışarı iter ve bunu saniyeler içinde yapar. Zorluk, bu bolluğu yönetmektedir: hangi konuya abone olacaksınız, aynı bildirim iki kez geldiğinde ne olacak, müşteri siparişi iptal ettiğinde kuyrukta bekleyen mesaj ne olacak ve Shopify'ın kendi e-postalarıyla nasıl çakışmayacaksınız.
Bu yazı, Shopify tarafındaki bağlantı katmanını anlatıyor. Mesaj metinlerini ve akış zamanlamalarını değil; olayın nereden geldiğini, hangi noktada kaybolduğunu ve iznin Shopify'ın kendi izin alanlarından neden ayrı tutulması gerektiğini.
Shopify WhatsApp entegrasyonu nasıl çalışır?
Shopify WhatsApp entegrasyonu, bir uygulama olarak kurulur. Mağaza sahibi uygulamayı yükler, uygulama gereken yetki kapsamlarını ister ve ilgili olay konularına abone olur. Tema dosyalarına dokunulmaz, kod yapıştırılmaz, tema güncellemesi entegrasyonu etkilemez. Ticimax gibi tema JavaScript alanına kod eklenen altyapılardan en belirgin farkı budur.
Bağlantı kurulduktan sonra veri iki yönlü akar:
- Shopify'dan modüle: Olaylar webhook bildirimi olarak anlık düşer. Modül, mesajı hazırlamadan önce eksik bilgiyi Admin API'den tamamlar.
- Modülden Shopify'a: Genelde yalnızca yazma amaçlı küçük bir akış vardır; örneğin WhatsApp izninin müşteri kaydına özel bir alan olarak işlenmesi. Sipariş veya müşteri kaydını değiştiren bir yazma işlemi mesaj akışları için gerekli değildir.
Mesaj katmanının kendisi Shopify'dan bağımsızdır. Şablonlar, izin havuzu ve akış kuralları modülün tarafında durur; Shopify yalnızca olay ve müşteri bilgisi sağlar. Bu yüzden ileride altyapı değiştirmeye karar verirseniz kurgunuz sıfırlanmaz, yalnızca olayın geldiği kaynak değişir.
Hangi olay hangi akışı besliyor?
Aşağıdaki tablo, sık kurulan akışların Shopify'daki karşılığını gösteriyor. Konu adlarını değil, hangi olayın hangi akışa kaynaklık ettiğini okumak önemli; abone olunan konu yanlış seçildiğinde akış çalışıyor görünür ama yanlış anda tetiklenir.
| Akış | Kaynak olay | Sık yapılan hata |
|---|---|---|
| Sipariş onayı | Sipariş oluşturma | Ödemesi tamamlanmamış siparişlere de mesaj gitmesi; ödeme durumunun kontrol edilmemesi |
| Kargo bildirimi | Gönderi oluşturma | Sipariş güncelleme olayına abone olup her küçük değişiklikte mesaj göndermek |
| Teslim bildirimi | Gönderi durumunun güncellenmesi | Kargo firmasının durum güncellemesi gecikince mesajın da gecikmesi; bunu modülün hatası sanmak |
| Sipariş iptali | Sipariş iptali | İptalde yalnızca yeni mesaj göndermek, kuyrukta bekleyen kargo mesajını iptal etmemek |
| Sepet terki | Ödeme kaydının oluşması ve güncellenmesi | Ödeme tamamlandığında kaydın kapandığını izlememek |
| Yeni üye karşılama | Müşteri oluşturma | Misafir siparişte oluşan müşteri kaydını da üyelik sanmak |
| Stok hatırlatıcı | Ürün ve stok güncellemesi | Varyant bazında değil ürün bazında izleyip yanlış bedene bildirim göndermek |
Shopify sepet terki WhatsApp akışının gerçek kaynağı
Shopify'da sepet ile ödeme aynı şey değildir ve bu ayrım akışın tamamını belirler. Müşteri ürünü sepete attığında sunucu tarafında dışarıdan izlenebilir kalıcı bir kayıt oluşmaz. Kayıt, müşteri ödeme adımına geçip iletişim bilgisini girdiğinde oluşur ve adımlar ilerledikçe güncellenir. Yani sepet hatırlatıcı akışı teknik olarak bir terk edilen ödeme akışıdır.
Bunun iki pratik sonucu var. Birincisi, ödeme adımına hiç geçmeden siteden çıkan ziyaretçiye WhatsApp mesajı gönderemezsiniz; elinizde numara yoktur. İkincisi, Shopify'ın kendi terk edilen ödeme e-postası da tam olarak aynı kayıttan beslenir. İki kanal aynı kaynağa bağlıyken zamanlamalarını ayrı planlamazsanız müşteri yarım saat arayla iki hatırlatma alır. Sahada işe yarayan kurgu, ilk teması WhatsApp ile kısa sürede yapmak ve e-postayı daha geç bir zamana almaktır. Sepet akışının mesaj tarafındaki kurgusunu terk edilen sepet kurtarma yazısında ayrıntılandırdık.
Webhook'u dayanıklı kurmanın kuralları
Shopify webhook altyapısı olgun, ama "kur ve unut" değil. Aşağıdaki dört kural, sahada sorun çıkan kurulumlarla çıkmayanları birbirinden ayırıyor.
1. İmzayı doğrulayın
Her bildirim, gövdenin paylaşılan gizli anahtarla üretilmiş bir imzasını başlıkta taşır. Bu imza doğrulanmadan işlenen bir uç nokta, adresi bilen herkesin sahte sipariş bildirimi göndermesine açıktır. WhatsApp tarafında bunun karşılığı, sahte siparişlerle müşterilerinize mesaj gönderilebilmesidir.
2. Önce yanıt dönün, sonra işleyin
Shopify bildirime kısa sürede yanıt bekler; saniyeler mertebesinde bir gecikme bile teslimatı başarısız sayar ve tekrar denemeye yol açar. Doğru desen, gövdeyi doğrulayıp hemen başarı yanıtı dönmek ve işlemeyi bir kuyruğa almaktır. Mesajı webhook isteğinin içinde göndermeye çalışan kurulumlar, WhatsApp tarafında bir yavaşlama olduğunda Shopify'da tekrar teslimat fırtınası başlatır.
3. Tekrar teslimatı varsayın
Webhook altyapıları en az bir kez teslim garantisi verir; tam olarak bir kez değil. Aynı bildirim ikinci kez gelebilir. Her bildirimin taşıdığı tekil kimlik kaydedilmeli ve daha önce görülmüş bir kimlik geldiğinde bildirim yok sayılmalıdır. Buna ek olarak sipariş kimliği ile olay türünü birleştiren ikinci bir anahtar tutmak, uygulama yeniden başlatıldığında da koruma sağlar.
4. Abonelik kaybını ve sürüm geçişini izleyin
Uç noktanız uzun süre yanıt vermezse Shopify tekrar denemeyi bırakır ve aboneliği kaldırabilir. Ayrıca Admin API sürümleri belirli aralıklarla yenilenir ve eski sürümlerin ömrü doludur. İki durumda da akış hata vermeden durur; yalnızca mesaj gitmez. Akış bazında son olay zamanını izleyen basit bir kontrol bu iki riski birden kapatır.
Korumalı müşteri verisi: kurulumda hesaba katılması gereken adım
Shopify, müşteri adı, telefonu, e-postası ve adresi gibi alanları korumalı veri olarak sınıflandırır. Bu alanlara erişen uygulamalardan gerekçe göstermesi, yalnızca ihtiyaç duyduğu alanları istemesi ve veriyi gereğinden uzun saklamaması beklenir. WhatsApp modülü doğası gereği telefon numarasına erişmek zorunda olduğu için bu kapsamın içindedir.
Pratikte bunun anlamı şu: kurulum yalnızca teknik bir bağlantı işi değildir, bir veri kapsamı kararıdır. Hangi alanların çekileceği, ne kadar süre tutulacağı ve müşteri silme talebinde ne olacağı baştan yazılır. Bu disiplin zaten KVKK tarafında da beklenen şeydir; ikisini ayrı ayrı kurmak yerine tek bir veri politikası olarak ele almak daha az iş çıkarır. Konunun izin ve ticari mesaj tarafını İYS ve KVKK rehberimizde ele aldık.
Shopify WhatsApp bildirimi ile Shopify'ın kendi bildirimleri
Shopify, sipariş onayı, kargolama, teslim ve terk edilen ödeme için varsayılan olarak e-posta gönderir. Bu bildirimler kapatılabilir ve metinleri düzenlenebilir. WhatsApp akışı açılırken her olay için bir karar verilmelidir.
| Olay | Önerilen birincil kanal | Gerekçe |
|---|---|---|
| Sipariş onayı | Her ikisi kalabilir | E-posta belge işlevi görür, WhatsApp okunma oranı yüksektir; içerikleri farklılaştırılır |
| Kargo bildirimi | Takip bağlantısına telefondan tıklanır; e-posta kapatılabilir | |
| Teslim bildirimi | Kısa mesaj biçimine uygun; e-posta gereksiz kalabalık yapar | |
| Terk edilen ödeme | WhatsApp önce, e-posta sonra | Aynı kayıttan beslendikleri için zamanlama ayrılmazsa üst üste biner |
| İade ve iptal | E-posta | Tutar ve süreç bilgisi içerir; yazılı kayıt beklenir |
Kargo tarafındaki mesaj kurgusunun ayrıntısını, hangi durumda kaç mesaj gönderileceğini kargo bildirimi kurulumu yazısında anlattık.
İzin Shopify'da nerede duruyor?
Burası, Shopify kurulumlarında en sık yanlış yapılan yer. Shopify müşteri kaydında pazarlama izni için ayrı alanlar tutar, ama bu alanlar kanal bazındadır ve WhatsApp'ın yerleşik bir karşılığı yoktur.
- SMS iznini WhatsApp izni yerine kullanmayın. Müşteri SMS almayı kabul etmiş olabilir; bu, WhatsApp'tan pazarlama mesajı almayı kabul ettiği anlamına gelmez. Kanal ve amaç ayrı ayrı onaylanır.
- İzni ayrı bir alanda saklayın. İzin kaydı; numarayı, onayın verildiği anı, hangi ekranda verildiğini ve o ekranda yürürlükte olan metin sürümünü birlikte taşımalıdır. Müşteri kaydına özel alan olarak yazmak, veriyi Shopify tarafında da görünür kılar.
- Onay kutusunu ödeme adımına eklemek tema işi değildir. Shopify ödeme adımı artık tema şablonuyla düzenlenmez; ek alanlar ödeme eklentileri üzerinden konur. Bu, kurulumda ayrı bir adım olarak planlanmalıdır.
- İşlem bildirimi ile pazarlama mesajını ayırın. Siparişin durumunu bildiren mesaj pazarlama izni gerektirmez, kampanya duyurusu gerektirir. Veri modeliniz bu ayrımı taşımalıdır.
Shopify WhatsApp entegrasyonu kurulumu adım adım
- Akış listesini çıkarın. Hangi olaylar için mesaj gideceğine karar verin. Abone olunacak konular bu listeden çıkar; ihtiyaç duyulmayan konuya abone olmak gereksiz veri ve gereksiz yetki demektir.
- Uygulamayı kurun, yetki kapsamlarını sınırlı tutun. Sipariş, müşteri ve gönderi okuma yetkisi çoğu kurulum için yeterlidir.
- Korumalı müşteri verisi kapsamını netleştirin. Hangi alanların çekileceği, saklama süresi ve silme talebi davranışı yazılır.
- Uç noktayı imza doğrulaması ve kuyrukla kurun. Hızlı yanıt, sonra işleme. Bu sıralama tersine çevrildiğinde tekrar teslimat sorunu kaçınılmazdır.
- Tekilleştirmeyi test edin. Aynı bildirimi elle iki kez göndererek ikinci mesajın üretilmediğini doğrulayın.
- İzin alanını ve ödeme adımındaki kutuyu kurun. Kutu boş gelmeli, kullanıcı kendisi işaretlemelidir.
- Shopify bildirimlerini düzenleyin. Çakışan e-postalar kapatılır ya da zamanlamaları ayrılır.
- Numara biçimini standartlaştırın. Ülke kodu sipariş adresinden alınır; tek bir ülke varsayımıyla numara düzeltmek çok ülkeli mağazalarda hata üretir.
- Test siparişiyle uçtan uca doğrulayın. Sipariş verin, gönderi oluşturun, iptal edin. İptalde kuyruktaki mesajın durduğunu görün.
- Sessizlik alarmı kurun. Akış bazında son olay zamanı izlenir; abonelik düştüğünde veya API sürümü eskidiğinde uyarı üretir.
Shopify WhatsApp entegrasyonu fiyatları neye göre belirlenir?
Sabit bir liste fiyatı vermek yanıltıcı olur, çünkü kurulumun büyüklüğünü belirleyen kalemler mağazadan mağazaya değişiyor. Fiyatı oluşturan başlıklar şunlar:
| Kalem | Fiyata etkisi |
|---|---|
| Akış sayısı | Her akış ayrı konu aboneliği, ayrı şablon ve ayrı test senaryosu getirir |
| Çok dilli / çok ülkeli satış | Şablonların her dil için ayrı onaylanması ve saat dilimi kurgusu ek iş çıkarır |
| Ödeme adımına izin kutusu eklenmesi | Ödeme eklentisi tarafında ayrı bir geliştirme ve yayın adımıdır |
| Mevcut uygulama ekosistemi | Halihazırda başka bir bildirim uygulaması varsa çakışmaların çözülmesi zaman alır |
| Mesaj hacmi | Meta ücretlendirmeyi konuşma ve şablon kategorisi üzerinden yapar; pazarlama ile işlem bildirimi aynı kategoride değildir |
| Hesap durumu | Doğrulanmış işletme hesabı varsa kurulum kısalır; sıfırdan başvuru ek süre demektir |
Teklif alırken sorulacak doğru soru "paket ne kadar" değil, "şu beş akış için toplam ne kadar ve mesaj başına maliyet nasıl işliyor" olmalı. Modüllerin tek tek kapsamını kargo bildirimi ve yeni üye karşılama gibi modül sayfalarında yazdık.
Tema değiştirirsem, altyapı değiştirirsem ne olur?
Tema değişimi Shopify'da WhatsApp akışlarını etkilemez. Bağlantı uygulama katmanındadır; tema tamamen değişse bile sipariş ve müşteri olayları aynı yerden düşmeye devam eder. Bu, Ticimax gibi tema JavaScript alanına kod eklenen altyapılara göre belirgin bir avantajdır.
Altyapı değişiminde ise mesaj kurgunuz sıfırlanmaz. Şablonlar, izin havuzu ve akış kuralları modül tarafında durduğu için taşınır; yalnızca olayın okunduğu kaynak yeniden kurulur. Shopify'dan webhook desteklemeyen bir altyapıya geçerken bu katman büyür, aksi yönde küçülür. Altyapılar arası farkın genel çerçevesini e-ticaret sitesi WhatsApp entegrasyonu yazısında topladık; iki hazır altyapı arasında karar veriyorsanız İkas mı Shopify mi karşılaştırması işinize yarar.
Sık yapılan beş hata
- Sipariş güncelleme olayına genel abone olmak. Sipariş kaydı etiket eklemek gibi küçük değişikliklerde de güncellenir; filtre koymayan kurulum aynı müşteriye gün içinde birkaç mesaj gönderir.
- Ödeme durumunu kontrol etmemek. Sipariş oluştu diye mesaj göndermek, havale bekleyen siparişlerde erken bildirim üretir.
- İptalde kuyruğu temizlememek. Yeni mesaj göndermek yetmez; bekleyen kargo mesajının iptal edilmesi gerekir.
- SMS iznini WhatsApp izni saymak. Denetimde savunulabilir bir tercih değildir.
- Webhook isteğinin içinde mesaj göndermeye çalışmak. WhatsApp tarafında bir yavaşlama, Shopify tarafında tekrar teslimat zincirine dönüşür.
Özet
Shopify, WhatsApp akışları için altyapı tarafında en rahat çalışılan platformlardan biri: olaylar anlık düşer, tema koduna dokunulmaz, tema değişimi entegrasyonu bozmaz. Buna karşılık kolaylık, dikkat gerektiren üç yeri gizler. Bildirim tekrar gelebilir ve tekilleştirilmelidir; korumalı müşteri verisi kapsamı baştan tanımlanmalıdır; WhatsApp izni Shopify'ın hazır izin alanlarının kapsamında değildir ve ayrı tutulmalıdır. Kurulumu STools yapar, mağaza tarafında geliştirme gerekmez. Kendi mağazanız için hangi akışların anlamlı olduğunu konuşmak isterseniz destek@stools.digital adresine yazabilirsiniz.