Çoğu işletme sahibi sepetin boşalmasını müşteri hatası sanır: "vazgeçmiş, sekmeyi kapatmış, tarayıcısını temizlemiş". Gerçek çok daha rahatsız edicidir. Sepet çoğu zaman müşteri hiçbir şey yapmadan, hatta tam ödeme adımında boşalır. Ürünü seçer, tutarı görür, bankaya gider, geri döner ve karşısında bomboş bir sepet bulur. O an kaybettiğin şey bir tıklama değil, ödemeye hazır bir müşteridir.
Bu davranışın arkasında neredeyse hiçbir zaman "sepet kodu" yoktur. Suçlu, sepeti taşıyan zincirdir: oturum, çerez, alan adı, yönlendirme ve temizleme görevleri. Bu zincirin herhangi bir halkası kopunca sepet kaybolur ve hiçbir hata mesajı üretilmez. Aşağıda bu halkaları tek tek açıyoruz; hangi e-pin satış scripti ya da dijital ürün satış scripti kullanıyorsan aynı teşhis mantığı geçerli olacak.
Oturum ömrü yalan söyler: 24 dakika sonra sepet zaten yok
Sepeti sunucu oturumunda tutan kurulumlarda en yaygın sessiz katil, oturum çöp toplama ayarıdır. Kullanıcının çerezi bir hafta geçerli olabilir ama sunucu tarafındaki oturum dosyası çok daha kısa sürede silinmeye uygun hale gelir. Çerez hâlâ elinde olduğu için kullanıcı çıkış yapmış görünmez; sadece sepeti, seçtiği kur birimi ve kuponu birden buhar olur. Tipik paylaşımlı hosting değerleri yirmi dakika civarındadır ve bu, bir müşterinin oyun açıp bakiyesini kontrol edip geri dönmesi için fazlasıyla kısa bir süredir.
Daha kötüsü, paylaşımlı ortamlarda oturum dosyaları ortak bir dizinde tutulabilir ve başka bir sitenin çöp toplaması senin oturumlarını da süpürebilir. Bu yüzden ciddi bir e-pin yazılımı sepeti asla yalnızca oturuma emanet etmez. Doğru yaklaşım, sepeti veritabanında kalıcı bir kayıt olarak tutmak ve oturumu yalnızca o kayda işaret eden bir anahtar olarak kullanmaktır. Böylece oturum silinse bile sepet kimliği çerezde yaşamaya devam eder ve sepet geri yüklenir.
www var, www yok: aynı sitede iki farklı sepet
Çerezler alan adına bağlıdır. Sitene hem www ile hem www olmadan erişilebiliyorsa ve yönlendirme kuralları eksikse, kullanıcı iki farklı çerez alanı arasında gezinir. Ürünü www olmadan sepete atar, ödeme sayfasına www ile geçer ve sepet boş görünür. Aynı sorun http ile https karışımında, alt alan adlarında ve panel ile mağazanın farklı alanlarda durduğu kurulumlarda da yaşanır.
Çözüm iki katmanlıdır. Birincisi tek kanonik alan adı seçip diğer tüm varyasyonları kalıcı yönlendirmeyle oraya toplamak. İkincisi çerez alan ayarını, alt alan adlarını da kapsayacak biçimde tanımlamak. Bunu yaparken çerez yolunu kök olarak bırakmak ve güvenli bayrağını yalnızca tam https kurulumda açmak gerekir. Bu ayarların tek bir yapılandırma dosyasından yönetilmesi, iyi kurgulanmış bir epin yazılım altyapısının temel işaretidir; her dosyada ayrı ayrı çerez yazan bir kod tabanı, er ya da geç bu hatayı üretir.
| Belirti | Kök neden | Doğrulama yöntemi |
|---|---|---|
| Yirmi dakika beklemeden sonra sepet boş | Oturum çöp toplama süresi kısa | Oturum ömrü ayarını ve dizini incele |
| Ödeme dönüşünde sepet gidiyor | Çerez SameSite politikası dış yönlendirmeyi kesiyor | Çerez başlıklarını dönüş isteğinde kontrol et |
| Sayfa değişince sepet farklı | www ve www olmayan alan karışımı | Her iki adreste çerez adını kıyasla |
| Giriş yapınca sepet sıfırlanıyor | Oturum kimliği yenilenirken sepet taşınmıyor | Giriş sonrası sepet birleştirme kodunu izle |
| Gece sepetler topluca siliniyor | Temizleme görevi fazla agresif | Zamanlanmış görev eşiklerini oku |
| Bazı kullanıcılarda hiç kalıcı olmuyor | Önbellek katmanı çerez başlığını yutuyor | Önbellek atlama kurallarını denetle |
Ödeme dönüşü: sepetin en sık öldüğü tam nokta
Müşteri ödeme sağlayıcısına gider, işlemi tamamlar ve sağlayıcı onu senin sitene geri gönderir. Bu geri dönüş, tarayıcı açısından başka bir siteden gelen bir istektir. Modern tarayıcılar bu tür isteklerde, kısıtlı işaretlenmiş çerezleri göndermez. Oturum çerezin varsayılan politikayla yazıldıysa, dönüş anında sunucu müşteriyi hiç tanımaz: sepet boş, kullanıcı çıkış yapmış, sipariş askıda. Ödeme gerçekleşmiştir ama sitende karşılığı yoktur.
Burada iki şey birlikte yapılmalı. Birincisi, ödeme akışında kullanılan çerezlerin çapraz istekte de taşınacak biçimde ayarlanması ve bunun mutlaka https ile eşlenmesi. İkincisi ve daha önemlisi, sipariş durumunun asla tarayıcı dönüşüne bağlı olmaması. Ödeme sağlayıcısının sunucudan sunucuya gönderdiği bildirim tek otorite olmalı; tarayıcı dönüşü yalnızca müşteriye "teşekkürler" ekranını göstermek için kullanılmalı. Bu ayrımı yapan bir e-pin satış yazılımı, müşteri geri dönüşte çerezini kaybetse bile siparişi ve teslimatı eksiksiz tamamlar.
Kendiliğinden boşalan sepet vakalarının neden dağılımı
- Oturum ömrü ve depolama 45%
- Çerez alanı ve çapraz istek politikası 25%
- Misafir sepetinin üyeye taşınmaması 20%
- Agresif temizleme görevleri 10%
Giriş yapan müşteri sepetini kapıda bırakıyor
Güvenlik açısından doğru bir uygulama, kullanıcı giriş yaptığında oturum kimliğinin yenilenmesidir. Ancak bu yenileme sırasında misafir sepeti yeni oturuma taşınmazsa, müşteri tam da en kararlı olduğu anda sepetini kaybeder: ödemeye geçmek için giriş yapar ve sepet sıfırlanır. Aynı şey kayıt olma akışında da yaşanır. Kullanıcının gözünde bu, sitenin ona "baştan başla" demesidir ve çoğu kişi baştan başlamaz.
Doğru kurgu, sepeti oturumdan bağımsız bir varlık olarak ele almaktır. Misafir sepeti bir anahtarla veritabanında durur; kullanıcı giriş yaptığında bu sepet üye hesabına bağlanır. Üyenin önceden bir sepeti varsa iki sepet birleştirilir, aynı üründen iki kayıt varsa adetler toplanır ya da kullanıcıya seçim sunulur. Bu birleştirme mantığı ayrıca cihaz değişiminde de karşılığını verir: telefonda sepete atılan ürün, bilgisayarda giriş yapıldığında karşısına çıkar. Bu, bir dijital ürün satış yazılımında dönüşüm oranını en doğrudan etkileyen sessiz iyileştirmelerden biridir ve özellik listesinde aranmalıdır.
Süresi geçen sepeti veritabanından silmek yerine pasif işaretle. Böylece hem terk edilmiş sepet raporun oluşur hem de müşteri döndüğünde sepetini geri yükleyebilirsin.
Stok rezervasyonu ve temizleme görevleri kendi müşterini kovuyor
E-pin satışında stok tekil kodlardan oluşur, bu yüzden birçok kurulum sepete eklenen kodu geçici olarak rezerve eder. Rezervasyon süresi dolduğunda kod serbest bırakılır ve çoğu kurulumda ürün sepetten de düşürülür. Rezervasyon süresi on beş dakika gibi kısa bir değere ayarlanmışsa, havale ya da ATM ile ödeme yapmaya çalışan müşterinin sepeti gözünün önünde erir.
Aynı sertlik zamanlanmış temizleme görevlerinde de görülür. Gece çalışan bir görev, belirli bir süredir dokunulmamış tüm sepetleri siler. Eşik düşükse hafta sonu ödeme yapmayı planlayan müşterinin sepeti pazartesiye kalmaz. Dengeli kurgu şöyledir: rezervasyon süresi ödeme yöntemine göre değişsin, kart ödemesinde kısa, havalede uzun olsun. Sepet kaydı ise rezervasyondan bağımsız yaşasın; rezervasyon düşse bile ürün sepette "stok yeniden kontrol edilecek" notuyla kalsın. Bu ayrım, ödeme yöntemi çeşitliliği olan her e-pin scripti için zorunludur.
Önbellek katmanı çerezi yutarsa hiçbir ayar işe yaramaz
Son halka, sitenin önündeki önbellek ya da içerik dağıtım katmanıdır. Sayfa önbelleği agresif yapılandırıldığında, sepet oluşturan ilk yanıtın çerez atama başlığı silinir. Kullanıcı sepete ürün ekler, sunucu ona bir anahtar vermek ister, önbellek bu başlığı önbelleğe uygunluk adına düşürür. Sonuç: her istekte yeni bir misafir, her sayfada boş sepet.
Bunun önüne geçmek için sepet, ödeme ve hesap yollarının önbellekten tamamen muaf tutulması gerekir. Ayrıca sepet çerezi mevcutken hiçbir sayfanın önbellekten servis edilmemesi sağlanmalıdır. Teşhis kolaydır: sepete ürün ekledikten sonraki yanıtın başlıklarına bak, çerez atama satırı duruyor mu ve yanıt önbellekten mi geldi. Bu iki satır sana saatlerce süren tahmin işini kazandırır. Paket karşılaştırması için fiyat tablosuna bakabilir, teknik ayrıntıları satın alma sayfasından talep edebilirsin.
| Kontrol adımı | Nasıl test edilir | Geçme ölçütü |
|---|---|---|
| Sepet kalıcılığı | Ürün ekle, bir saat bekle, dön | Sepet aynen duruyor |
| Alan adı tutarlılığı | www ve www olmayan adresi dene | Tek sepet görünüyor |
| Ödeme dönüşü | Test ödemesi yapıp geri dön | Oturum ve sipariş korunuyor |
| Giriş birleştirme | Misafirken doldur, sonra giriş yap | Ürünler üye sepetine geçiyor |
| Cihaz değişimi | Telefonda ekle, masaüstünde giriş yap | Sepet karşına çıkıyor |
| Rezervasyon dengesi | Havale seçip bekle | Ürün sepette kalıyor |
| Önbellek muafiyeti | Sepet sayfası yanıt başlıklarını oku | Önbellekten servis edilmiyor |
Sepetini bir daha kaybetme
Pinova sepeti veritabanında kalıcı tutar, misafir sepetini giriş anında birleştirir ve sipariş durumunu tarayıcı dönüşüne değil sunucu bildirimine bağlar.
Sepet kısa sürede boşalıyor, neden?
Sepet yalnızca sunucu oturumunda tutuluyorsa oturum çöp toplama süresi dolduğunda kaybolur. Sepetin veritabanında kalıcı bir kayıt olarak tutulması gerekir.
Ödeme dönüşünde oturum neden kopuyor?
Dış siteden gelen dönüş isteğinde tarayıcı kısıtlı çerezleri göndermez. Çerez politikasını çapraz isteğe uygun ayarlamak ve sipariş durumunu sunucu bildirimine bağlamak gerekir.
Giriş yapınca sepetim sıfırlanıyor, bu normal mi?
Değil. Giriş sırasında oturum kimliği yenilenirken misafir sepetinin üye hesabına taşınması ve varsa mevcut sepetle birleştirilmesi gerekir.
Stok rezervasyonu sepeti boşaltmalı mı?
Hayır. Rezervasyon süresi dolduğunda kod serbest bırakılabilir ama ürün sepette kalmalı ve ödeme adımında stok yeniden kontrol edilmelidir.
Sepet, e-pin işinde niyetin para haline geldiği tek yerdir; orada yaşanan her kayıp doğrudan ciro kaybıdır. Kalıcı sepet, temiz çerez politikası ve sunucu tabanlı sipariş onayının birlikte çalıştığı bir kurulumu denemek istersen canlı demo üzerinde sepeti doldurup bir saat sonra geri gel; ürünlerinin seni beklediğini göreceksin.

