WooCommerce, bu yazıda ele aldığımız altyapılar arasında en fazla özgürlük veren olanı. Sunucu sizin, veritabanı sizin, kod sizin; sipariş kaydedildiği anda çalışacak bir kod parçası yazmanızı engelleyen hiçbir kısıt yok. Kapalı kaynak altyapılarda saatler harcanan "bu olayı nasıl dışarı çıkarırız" sorusu WooCommerce'te bir satırlık bir iş.
Fakat aynı özgürlük, sorunun yerini değiştiriyor. WooCommerce kurulumlarında WhatsApp akışlarını bozan şey neredeyse hiçbir zaman "veriye erişemiyoruz" olmuyor. Olay üretiliyor, kod çalışıyor, ama mesaj ya geç gidiyor ya iki kez gidiyor ya da hiç gitmiyor. Sebep üç yerde toplanıyor: WordPress'in zamanlayıcısı, eklenti yığını ve barındırma. Bu yazı tam olarak bu üç yeri anlatıyor.
WooCommerce WhatsApp entegrasyonu nasıl çalışır?
Olayın modüle ulaşmasının WooCommerce'te üç yolu var ve doğru kurulum genelde ikisini birlikte kullanıyor.
| Yol | Nasıl çalışır | Gecikme | Zayıf yanı |
|---|---|---|---|
| WordPress olay kancaları | Sipariş oluşturma, durum değişimi, üyelik kaydı gibi anlarda bir eklenti kodu tetiklenir | Anlık | Siteye eklenti kurmayı gerektirir; başka eklentilerle aynı olaya bağlanabilir |
| WooCommerce dahili webhook'ları | Panelden tanımlanır, olay kuyruğa alınıp dışarı gönderilir | Kuyruğun çalışma sıklığına bağlı | Teslimat WordPress zamanlayıcısına bağlıdır; düşük trafikte gecikir |
| REST API sorgusu | Anahtar çiftiyle sipariş ve müşteri verisi dışarıdan sorgulanır | Sorgu aralığı kadar | Yalnızca sorguya dayanan kurulum kaçınılmaz olarak gecikir |
Pratikte tercih ettiğimiz kurgu şu: olayı kanca üzerinden anlık yakalamak, ama mesajı göndermeden önce siparişin güncel halini REST API'den teyit etmek. Bu ikinci kontrol, ödeme ağ geçidinin durumu sonradan güncellediği senaryolarda erken ve yanlış mesaj gitmesini engelliyor. Havale ve bazı sanal pos akışlarında sipariş önce beklemede oluşuyor, ödeme birkaç saniye ya da birkaç saat sonra onaylanıyor; teyit adımı olmayan kurulumlar burada tökezliyor.
Dahili webhook'lar neden geç teslim ediliyor?
Bu, WooCommerce'e özgü ve en çok yanlış teşhis edilen konu. WooCommerce'in panelden tanımlanan webhook'ları olay anında doğrudan gönderilmez; bir kuyruğa alınır ve WordPress'in kendi zamanlayıcısı tarafından işlenir.
WordPress'in zamanlayıcısı ise bir sistem zamanlayıcısı değildir. Adı öyle görünse de gerçekte yalnızca siteye bir istek geldiğinde tetiklenir. Yani sitenizi kimse ziyaret etmiyorsa hiçbir zamanlanmış iş çalışmaz. Sonuç şu tabloda:
| Senaryo | Olan |
|---|---|
| Yoğun trafikli mağaza, gündüz | Kuyruk sürekli işlenir, gecikme fark edilmez |
| Düşük trafikli mağaza, gece | Sipariş verilir, kuyruk sabah ilk ziyaretçiye kadar bekler |
| Ağır önbellek kullanan mağaza | Sayfalar önbellekten servis edildiği için PHP hiç çalışmaz, kuyruk beklemede kalır |
| Sunucu düzeyinde gerçek görev tanımlı | Kuyruk trafikten bağımsız, dakikada bir işlenir |
Üçüncü satır özellikle önemli: hız için kurulan tam sayfa önbelleği, farkında olmadan bildirim akışını durdurabilir. Doğru çözüm basit ve kalıcıdır. WordPress'in dahili zamanlayıcısı devre dışı bırakılır ve sunucuda dakikada bir çalışan gerçek bir zamanlanmış görev tanımlanır. Bu tek ayar, "WhatsApp modülü yavaş" şikayetlerinin çoğunu ortadan kaldırıyor.
WooCommerce WhatsApp bildirimi hangi olaylarda gider?
| Akış | WooCommerce'teki kaynak | Kurulumda dikkat |
|---|---|---|
| Yeni üye karşılama | Kullanıcı kaydı olayı | Ödeme sırasında hesap oluşturma açıksa her sipariş bir üyelik sayılır |
| Sipariş onayı | Sipariş oluşturma ve ödeme onayı | Beklemede durumundaki sipariş için mesaj gönderilmemeli |
| Hazırlanıyor bildirimi | Durum değişimi olayı | Kargo eklentileri kendi özel durumlarını ekler; eşleme tablosu şart |
| Kargo bildirimi | Kargo eklentisinin yazdığı takip numarası alanı | Bu alan standart değildir, kullandığınız eklentiye göre değişir |
| Tamamlandı bildirimi | Sipariş tamamlandı durumu | Bazı mağazalar bu durumu kargoya verirken kullanır; anlamı mağazaya göre değişir |
| İade ve iptal | İptal ve iade durumları | Kısmi iadede farklı bir metin gerekir |
| Stok hatırlatıcı | Ürün stok değişimi | Varyasyonlu üründe alt ürün bazında izlenmelidir |
| Sepet hatırlatıcı | Ödeme formundaki telefon alanı ve oturum verisi | Misafir ve üye senaryoları ayrı kurulur |
Tablodaki en kaygan satır "tamamlandı" durumu. WooCommerce'te bu durumun anlamı mağazaya göre değişir: bazı mağazalar siparişi kargoya verdiğinde, bazıları müşteri teslim aldığında tamamlandı yapar. Modül bunu tahmin edemez. Kurulumun ilk yarım saati, mağazanın kendi durum sözlüğünü çıkarmakla geçmelidir. Kargo ve muhasebe eklentileri de kendi özel durumlarını eklediği için bu liste çoğu mağazada varsayılan durumlardan daha uzundur.
WooCommerce sepet terki WhatsApp akışı: numara ne zaman elinize geçer?
Sepet terki akışının WooCommerce'teki temel kısıtı veri değil, kimliktir. Misafir olarak alışveriş yapan bir ziyaretçinin sepeti sunucuda kalıcı bir kayıt olarak durmaz; oturum verisinde tutulur ve o ziyaretçiye ait bir telefon numarası yoktur. Yani sepete ekleme anında elinizde mesaj gönderilecek bir adres bulunmaz.
Buradan iki ayrı akış çıkar ve ikisi ayrı tasarlanmalıdır:
- Üye alışverişi: Numara kayıtta zaten var. Sepete ekleme anından itibaren akış kurulabilir, bekleme süresi serbestçe seçilir.
- Misafir alışverişi: Numara ancak müşteri ödeme formundaki telefon alanını doldurduğunda elinize geçer. Akış bu andan itibaren başlar. Alan doldurulup sipariş tamamlanmadığında yakalanan bu kayıt, terk edilen sepetin en değerli halidir çünkü müşteri satın almaya en yakın noktadadır.
Burada kritik bir ön koşul var: WooCommerce'te fatura telefonu alanı isteğe bağlı hale getirilebilir ve pek çok tema bunu kapatır. Telefon alanı zorunlu değilse misafir sepet akışı büyük ölçüde boşta çalışır. Kurulumdan önce bu alanın zorunlu olduğundan ve biçim doğrulaması yapıldığından emin olun. Sepet mesajının içeriğini, bekleme süresini ve kupon kararını terk edilen sepet kurtarma yazısında ele aldık; modül kapsamı için sepet hatırlatıcı sayfasına bakabilirsiniz.
WooCommerce eklenti çakışması: gerçek ve sık
Ortalama bir WooCommerce mağazasında yirmiden fazla eklenti çalışır. Bunların birkaçı aynı olaylara bağlanır. WhatsApp akışlarını bozan çakışmaları dört başlıkta topluyoruz.
1. İkinci bildirim eklentisi
Sitede zaten bir SMS veya e-posta bildirim eklentisi varsa, aynı durum değişikliğinde iki ayrı mesaj üretilir. Müşteri aynı bilgiyi iki kanaldan alır. Bu bir hata değil, kurgu eksikliğidir; her olay için birincil kanal seçilmelidir.
2. Önbellek ve optimizasyon eklentileri
Tam sayfa önbelleği, sepet ve ödeme sayfalarında kapalı olmalıdır. Ayrıca betikleri birleştirip erteleyen optimizasyon eklentileri, sepet olayını ileten kodun çalışma sırasını bozabilir. Belirti tipiktir: sipariş akışları sorunsuz çalışır, yalnızca sepet akışı boş döner.
3. Sipariş depolama biçimi uyumsuzluğu
WooCommerce siparişleri artık kendi tablosunda tutabiliyor. Bu depolama biçimine uyumlu yazılmamış eski eklentiler sipariş verisini bulamıyor ya da yazdıkları alan diğer tarafta görünmüyor. Kargo eklentisinin yazdığı takip numarasını okuyamayan bir WhatsApp akışının sebebi çoğu zaman budur. Kurulum öncesinde hangi depolama biçiminin aktif olduğunu ve zincirdeki tüm eklentilerin buna uyumlu olduğunu doğrulamak gerekir.
4. Ödeme sayfası tipi
WooCommerce'te iki farklı ödeme sayfası tipi bir arada yaşıyor: klasik kısa kodla çalışan sayfa ve blok tabanlı yeni sayfa. Ödeme formuna ek alan eklemenin yolu ikisinde farklı. Klasik sayfa için yazılmış bir izin kutusu kodu, blok tabanlı sayfada hiç görünmez ve hata da vermez. Kurulumdan önce hangisini kullandığınızı netleştirin.
Barındırma kaynaklı gecikmeler
WooCommerce'te modülün performansı, üzerinde çalıştığı sunucudan bağımsız değildir. Sahada en sık karşılaştığımız üç kısıt:
- Dışarı giden bağlantı kısıtı. Bazı paylaşımlı barındırma paketleri sunucudan dışarıya yapılan istekleri sınırlar. Mesaj gönderimi bu durumda sessizce başarısız olur. Kurulumun ilk adımı, sunucudan dış bir uç noktaya istek atılabildiğini doğrulamaktır.
- Betik çalışma süresi sınırı. Toplu gönderim veya geçmiş veri aktarımı gibi işler süre sınırına takılıp yarıda kesilebilir. Bu işler tek seferde değil, parçalı ve kaldığı yerden devam edecek şekilde kurulmalıdır.
- Veritabanı yükü. Yorum, sipariş ve oturum tablolarının şiştiği eski mağazalarda sorgular yavaşlar; kuyruk işleme süresi uzar. Bu, WhatsApp modülünün değil sitenin sorunudur ama sonuç mesajın gecikmesidir.
Bu üç kısıt, WordPress tabanlı bir mağazanın en büyük gücünün aynı zamanda en büyük sorumluluğu olduğunu gösteriyor: her şeyi değiştirebilirsiniz, ama her şeyin bakımı da size ait. Kendi altyapınızı bu bakım yükü olmadan kurmayı düşünüyorsanız RapiSoft e-ticaret altyapısı tarafında olay üretimi ve kuyruk yönetimi baştan bu akışlara göre tasarlanmıştır.
İzin verisi ve WooCommerce formları
WooCommerce'te izin toplamak teknik olarak kolay, doğru toplamak ise dikkat ister. Ödeme formuna bir onay kutusu eklemek mümkündür; kutunun sonucu sipariş kaydına yazılır. Dikkat edilecek noktalar:
- Kutu varsayılan olarak işaretsiz gelmelidir. İşaretli gelen kutuyla alınan onayın geçerliliği tartışmalıdır.
- İzin kaydı yalnızca doğru-yanlış değeri olarak değil; numara, tarih, alındığı ekran ve gösterilen metnin sürümüyle birlikte saklanmalıdır.
- İşlem bildirimi ile pazarlama mesajının izin gereksinimi farklıdır. Sipariş ve kargo bildirimi için pazarlama izni aranmaz; kampanya duyurusu için aranır.
- Ret listesi merkezî tutulmalı ve her gönderim öncesi sorgulanmalıdır. Aynı kişinin iki farklı üyelik kaydı varsa reddi bir kayıtta kalıp diğerinden mesaj gitmemelidir.
Hukuki çerçevenin ayrıntısı için ticari mesaj, İYS ve KVKK rehberimize bakabilirsiniz.
WooCommerce WhatsApp entegrasyonu kurulumu adım adım
- Sunucu kontrollerini yapın. Dış bağlantı izni, betik süre sınırı ve mevcut zamanlayıcı yapısı incelenir.
- Zamanlayıcıyı gerçek göreve çevirin. WordPress'in dahili zamanlayıcısı kapatılır, sunucuda dakikada bir çalışan görev tanımlanır. Bu tek adım gecikme şikayetlerinin çoğunu bitirir.
- Telefon alanını zorunlu yapın. Fatura telefonu zorunlu hale getirilir ve biçim doğrulaması eklenir.
- Durum sözlüğünü çıkarın. Varsayılan durumlar ve eklentilerin eklediği özel durumlar listelenir; her durumun mağazadaki gerçek anlamı yazılır.
- Eklenti taraması yapın. Aynı olaya bağlanan başka bildirim eklentisi, önbellek kuralları ve sipariş depolama biçimi kontrol edilir.
- Bağlantıyı kurun. Olay kancası ile anlık yakalama, gönderim öncesi API teyidi birlikte devreye alınır.
- Tekilleştirme anahtarını tanımlayın. Kuyruk tekrar denediğinde ikinci mesaj üretilmemelidir.
- İzin kutusunu doğru yöntemle ekleyin. Ödeme sayfası tipine uygun yol seçilir.
- Hem üye hem misafir olarak test edin. İki senaryonun akışı farklıdır; birini test edip diğerini varsaymak yanıltır.
- Gecikmeyi ölçün ve sessizlik alarmı kurun. Olay ile mesaj arasındaki süre kaydedilir; belirli süre olay gelmediğinde uyarı üretilir.
WooCommerce WhatsApp entegrasyonu fiyatları neye göre belirlenir?
WooCommerce kurulumlarında fiyat farkını yaratan şey genelde akış sayısı değil, sitenin mevcut durumu oluyor. Kalemler:
| Kalem | Fiyata etkisi |
|---|---|
| Eklenti yığınının büyüklüğü | Çakışma taraması ve uyum testi, eklenti sayısıyla doğru orantılı zaman alır |
| Sipariş depolama biçimi | Eski biçimde kalmış ve uyumsuz eklenti taşıyan sitelerde ek çalışma gerekir |
| Ödeme sayfası tipi | Blok tabanlı sayfaya alan eklemek klasik sayfadan farklı bir iştir |
| Barındırma kısıtları | Zamanlayıcı ve dış bağlantı ayarları için sunucu tarafında çalışma gerekebilir |
| Kargo eklentisi | Takip numarasının hangi alanda tutulduğu eklentiye göre değişir; standart olmayan alanlar ek eşleme ister |
| Akış sayısı | Her akış ayrı şablon, ayrı tetikleyici ve ayrı test senaryosu getirir |
| Mesaj hacmi | Meta ücretlendirmeyi konuşma ve şablon kategorisi üzerinden yapar; pazarlama ile işlem bildirimi ayrı kategorilerdir |
Teklif alırken sitenizin eklenti listesini ve kullandığınız kargo eklentisini paylaşmak, süreci hem hızlandırır hem de sonradan çıkacak sürprizleri azaltır.
Bakım: WooCommerce'te akışı zamanla bozan şeyler
- Eklenti güncellemeleri. Kargo eklentisi takip numarasını başka bir alana yazmaya başlayabilir. Belirti: mesaj gidiyor ama takip numarası boş.
- Yeni bir optimizasyon eklentisi. Hız için kurulan bir eklenti, sepet olayını ileten kodu erteleyip işlevsiz bırakabilir.
- Tema değişimi. Yeni tema ödeme formundaki telefon alanını isteğe bağlı yapabilir; misafir sepet akışı sessizce zayıflar.
- Sunucu taşıma. Yeni sunucuda zamanlanmış görev kurulmazsa kuyruk yeniden WordPress zamanlayıcısına düşer ve gecikmeler geri gelir.
Dördü de hata vermez. Bu yüzden akış bazında son gönderim zamanını izleyen bir kontrol, WooCommerce'te diğer altyapılardakinden daha fazla iş görür.
Özet
WooCommerce'te WhatsApp entegrasyonunun zor kısmı veriye erişmek değil, olayın zamanında ve bir kez dışarı çıkmasını garanti etmek. Dahili webhook'lar WordPress zamanlayıcısına bağlı olduğu için düşük trafikli sitelerde gecikir; çözüm sunucu düzeyinde gerçek bir zamanlanmış görevdir. Eklenti yığını, önbellek kuralları, sipariş depolama biçimi ve ödeme sayfası tipi kurulumun şeklini belirler. Sepet akışı üye ve misafir için ayrı tasarlanır, çünkü misafirde numara ancak ödeme formunda elinize geçer. Genel çerçeveyi e-ticaret sitesi WhatsApp entegrasyonu yazısında topladık. Kurulumu STools yapar; sitenizin mevcut durumunu konuşmak için destek@stools.digital adresine yazabilirsiniz.