Çoğu geliştirici ve site sahibi işe şu varsayımla başlar: WooCommerce dünyanın en yaygın e-ticaret altyapısı, e-pin satmak da sonuçta bir ürün satmak; birkaç eklentiyle çözülür. İlk hafta gerçekten de çalışır gibi görünür. Ürünü sanal olarak işaretlersin, indirilebilir dosya alanına kodu koyarsın, ödeme eklentisini bağlarsın, iş biter sanırsın. Sorun birkaç yüz siparişten sonra başlar ve hiç beklemediğin yerden gelir.
Çünkü WooCommerce fiziksel ürün mantığı üzerine kurulmuş bir sistemdir ve e-pin satışının üç temel ihtiyacını yerli yerine karşılamaz: tek kullanımlık envanter bütünlüğü, anında ve idempotent teslimat, bayi bazlı kademeli fiyatlandırma. Bu üç boşluğu eklentilerle kapatmaya çalıştıkça ortaya bir kule çıkar; her güncellemede sallanan, her kampanyada çöken bir kule. Bu yazıda kulenin nerelerinden çatladığını ve bir e-pin satış scriptine geçişin teknik olarak neyi değiştirdiğini anlatıyoruz.
Aynı Kod Neden İki Müşteriye Gidiyor?
Bu, WooCommerce üzerinde e-pin satanların en sık yaşadığı ve en pahalı sorun. Sebebi mimaridir. WooCommerce stok düşümünü sipariş durumu değişimlerine bağlar ve bu değişimler çoğu zaman eşzamanlılık kilidi olmadan işlenir. Kampanya anında iki ödeme bildirimi aynı saniyede geldiğinde, aynı indirilebilir kaynağa iki kez erişim mümkün hale gelir. Üstüne bir de ödeme sağlayıcısının bildirimi iki kez göndermesi eklenirse çift teslim garantidir.
Sorunun kökeni şudur: kod stoğu WooCommerce'te bir envanter nesnesi değildir. Ya ürün meta alanında bir metin listesidir, ya da bir eklentinin kendi tablosunda tutulur ve bu tablonun WooCommerce'in sipariş yaşam döngüsüyle işlem bütünlüğü paylaşmaz. Amaca özel bir dijital ürün satış yazılımında ise her kod ayrı bir kayıttır, tahsis işlemi veritabanı düzeyinde kilitlenir ve teslim yalnızca bir kez gerçekleşecek şekilde imzalanır.
Eklenti Kulesi Nerede Çatlıyor?
E-pin satışını WooCommerce'e oturtmak için genelde şunlar üst üste konur: sanal ürün yönetimi için bir eklenti, seri kod dağıtımı için bir eklenti, bayi fiyatı için rol bazlı fiyatlandırma eklentisi, bakiye sistemi için cüzdan eklentisi, ödeme sağlayıcı eklentisi, kur dönüşümü eklentisi, sipariş e-postası düzenleyici, tema uyumluluğu için ek katman. Sekiz ayrı geliştiricinin, sekiz ayrı güncelleme takviminin ve sekiz ayrı kod kalitesinin aynı sepet akışında buluşması demektir bu.
Sonuç öngörülebilir: bir eklenti güncellemesi diğerinin kancasını bozar, sepet toplamı yanlış hesaplanır, bayi indirimi kupona eklenir, bakiye iki kez düşer. Hata ayıklama da kâbusa döner çünkü hangi katmanın sorumlu olduğunu bulmak için her seferinde eklentileri tek tek kapatman gerekir. Üretim ortamında bunu yapmak da satışı durdurmak anlamına gelir.
| İhtiyaç | WooCommerce çözümü | Kırılma noktası | Amaca özel yazılımda |
|---|---|---|---|
| Tek kullanımlık kod | İndirilebilir dosya veya eklenti | Eşzamanlı çift teslim | Kilitli kod tahsisi |
| Anında teslim | Sipariş durumu kancası | Kuyruk gecikmesi | Senkron teslim akışı |
| Bayi fiyatı | Rol bazlı fiyat eklentisi | Kupon ve indirim çakışması | Kademeli fiyat motoru |
| Bakiye ve cüzdan | Ayrı cüzdan eklentisi | Mutabakat tutmuyor | Çift kayıtlı hesap defteri |
| Stok senkronu | Manuel veya zamanlanmış görev | Geç güncelleme, satış kaybı | Tedarikçi servis bağlantısı |
| Performans | Sayfa önbelleği | Dinamik fiyatta önbellek devre dışı | Hafif sorgu ve parça önbellek |
| Güvenlik | Eklenti yüzeyi geniş | Bilinen açıklar, düz metin kod | Şifreli envanter, dar yüzey |
WooCommerce e-pin kurulumlarında arıza kaynakları
- Eklenti çakışması ve güncelleme kırılması 45%
- Stok ve teslimat mantığı hataları 25%
- Performans ve önbellek sorunları 20%
- Güvenlik ve yetki problemleri 10%
Neden Kampanya Anında Site Yavaşlıyor?
WordPress'te her istek, kurulu tüm eklentilerin yüklenmesiyle başlar. Kırk eklentili bir kurulumda basit bir ürün sayfası bile yüzlerce veritabanı sorgusu üretir. Buna kur dönüşümü, bayi fiyatı ve bakiye kontrolü gibi kullanıcıya özel hesaplamalar eklenince sayfa önbelleği devre dışı kalır. Yani performansı kurtaracak tek mekanizma, e-pin satışının doğası gereği kullanılamaz hale gelir.
Kampanya trafiği geldiğinde ne olduğunu tahmin etmek kolay: sunucu işlem havuzu dolar, ödeme bildirimleri zaman aşımına düşer, bazı siparişler beklemede kalır ve sen elle teslim yapmak zorunda kalırsın. Reklam bütçesini harcadığın gün sitenin çökmesi, sadece teknik bir aksaklık değil doğrudan bir ticari kayıptır. Sade ve amaca özel yazılan bir e-pin yazılımı, aynı sunucuda kat kat fazla eşzamanlı isteği rahatça karşılar çünkü taşıması gereken genel yük yoktur.
Mevcut kurulumunu eşzamanlı yirmi sipariş göndererek dene. Çift teslim, beklemede kalan sipariş veya yanlış bakiye görüyorsan sorun trafik değil mimaridir; sunucu büyütmek çözmez.
Geçişte Verilerini Nasıl Koruyorsun?
Teknik ekiplerin ilk endişesi veri kaybı ve bağlantı kopması. Bu yönetilebilir bir konu çünkü taşınması gereken veri kümesi sanıldığından küçük. Üç şey kritik: ürün kataloğu, kullanılmamış kod envanteri ve müşteri hesapları. Sipariş geçmişi raporlama için arşiv olarak dışa aktarılıp saklanabilir; yeni sistemde canlı veri olarak taşınması zorunlu değildir.
Arama motoru tarafında ise dikkat edilecek tek şey adres eşlemesidir. Eski ürün adreslerinin yeni yapıdaki karşılıklarına kalıcı yönlendirme kurulur, site haritası yeniden üretilir ve kanonik etiketler kontrol edilir. Bu adımlar doğru yapıldığında organik trafik geçiş haftasında kısa bir dalgalanma yaşar, sonra genelde yukarı toparlar; çünkü yeni yapı hem daha hızlıdır hem de tekrarlanan etiket üretmez. Teknik gereksinimleri özellikler bölümünde, sürüm farklarını fiyat sayfasında bulabilirsin.
Peki Hangi Durumda WooCommerce'te Kalmak Mantıklı?
Dürüst cevap: karma katalogla çalışıyorsan ve e-pin cironun küçük bir parçasıysa. Fiziksel ürün, kargo, iade süreci ve blog içeriği ana işinse WordPress ekosistemi sana değer katmaya devam eder. Bu durumda e-pin tarafını ayrı bir alt alan adında amaca özel yazılımla kurup iki sistemi yan yana çalıştırmak en sağlıklı düzendir.
Ama cironun ağırlığı dijital koda kaymışsa, bayi kanalı açtıysan veya tedarikçi servisinden otomatik stok çekiyorsan, WooCommerce'te kalmak her ay artan bir bakım vergisi ödemek demektir. Aşağıdaki liste, hangi tarafta olduğunu netleştirmeye yarıyor.
| Kontrol noktası | Nasıl test edilir | Sorunlu işaret | Karar |
|---|---|---|---|
| Eşzamanlı teslim | 20 paralel sipariş dene | Çift veya eksik kod | Geçiş gerekli |
| Bildirim tekrarı | Aynı bildirimi iki kez gönder | İkinci teslim yapılıyor | Geçiş gerekli |
| Eklenti sayısı | Panelden say | 25 üzeri | Yüksek risk |
| Yanıt süresi | Ürün sayfası ölçümü | 1,5 sn üzeri | Yüksek risk |
| Bakiye mutabakatı | Cüzdan ile sipariş toplamı | Fark var | Geçiş gerekli |
| Bayi fiyatı doğruluğu | İki rolle aynı sepet | Yanlış toplam | Geçiş gerekli |
| Kod saklama biçimi | Veritabanında kontrol | Düz metin | Kritik |
| Tedarikçi senkronu | Stok güncelleme gecikmesi | Saatler sürüyor | Orta risk |
Eklenti kulesini sökme zamanı
Envanter bütünlüğü, anında teslim ve bayi fiyatlandırması sonradan eklenen özellikler değil, mimarinin çekirdeği olmalı. Pinova'nın teknik yapısını ve lisans seçeneklerini incele.
WooCommerce ürünlerimi yeni sisteme taşıyabilir miyim?
Evet. Ürün adı, kategori, fiyat ve açıklama alanları dışa aktarılıp içe alınabilir. Kullanılmamış kod envanteri de ürün eşlemesiyle birlikte toplu olarak aktarılır; mükerrer kayıtlar aktarım sırasında ayıklanır.
Geçişte arama motoru sıralamalarım ne olur?
Eski adreslerden yenilerine kalıcı yönlendirme kurulup site haritası yeniden üretildiğinde kayıp minimumda kalır. Yeni yapı daha hızlı çalıştığı ve tekrarlanan etiket üretmediği için orta vadede genelde iyileşme görülür.
Aynı sunucuda iki sistemi paralel çalıştırabilir miyim?
Çalıştırabilirsin. Yaygın yöntem, e-pin tarafını ayrı bir alt alan adına kurup mevcut WordPress sitesini içerik ve fiziksel ürün için bırakmak. Böylece geçiş riski dağılır ve test için gerçek koşul elde edilir.
Çift teslim sorunu WooCommerce'te tamamen çözülemez mi?
Özel geliştirmeyle azaltılabilir ama kalıcı çözüm veritabanı düzeyinde kilitli kod tahsisi ve idempotent bildirim işlemesi gerektirir. Bu, eklenti katmanında değil çekirdek mimaride çözülen bir problemdir.
Mimari farkı okumak yerine görmek her zaman daha ikna edici. Aynı kodu iki kez satmayan bir tahsis akışının, bayi kademelerinin ve anında teslim kaydının nasıl çalıştığını incelemek için canlı demo panelinde birkaç paralel deneme siparişi oluştur; kendi kurulumunda aynı testin verdiği sonuçla karşılaştırdığında karar zaten teknik bir tartışma olmaktan çıkar.

