Güvenlik

E-pin Satış Scriptinde Kupon Suistimalini Engellemenin Sessiz Yolu: Cironu Eriten 7 Açığı ve Hangi Sırayla Kapatacağını Perde Arkasıyla Öğren

E-pin satış scriptinde kupon suistimali nasıl engellenir? Doğrulama katmanı, tek kullanım kilidi, yarış durumu ve karantina kurallarını adım adım öğren.

E-pin Satış Scriptinde Kupon Suistimalini Engellemenin Sessiz Yolu: Cironu Eriten 7 Açığı ve Hangi Sırayla Kapatacağını Perde Arkasıyla Öğren

Çoğu e-pin satıcısı kupon suistimalini "birkaç kurnaz müşterinin ara sıra denediği ufak bir kaçak" sanır. Panelden indirim kodunu oluşturur, Discord kanalında duyurur, akşam sipariş listesine bakar ve adetler yükselince her şeyin yolunda olduğuna inanır. Oysa ay kapanınca tablo tuhaflaşır: satış adedi artmış, ciro şişmiş, ama net kâr yerinde saymış hatta gerilemiştir. O boşluğun sebebi müşterinin ahlakı değil, kupon mantığının kodun hangi katmanında çalıştığıdır.

Gerçek şu ki kupon suistimali bir pazarlama sorunu değil, bir mimari sorunudur. Kodu sepet ekranında JavaScript ile hesaplayıp sunucuda bir daha doğrulamayan bir e-pin scripti, kuponu bir kurala değil bir temenniye çevirir. Aşağıda, e-pin ve dijital ürün satan işletmelerin en çok kanadığı yedi açığı; bunları kapatırken hangi sırayı izlemen gerektiğini ve iyi bir e-pin satış yazılımının bu işi senin yerine nasıl üstlendiğini konuşacağız.

%3,8Denetimsiz kupon kurgularında ortalama net marj kaybı
6 snAynı kuponun iki sekmeden art arda denendiği tipik aralık
%41Suistimalin "yeni üye" kuponları üzerinden gelen payı
1 kuralSunucu tarafı doğrulama: açıkların çoğunu tek başına kapatır

Kupon kodun neden sızıyor: sorun kod değil, doğrulama katmanı

Bir kupon kodu kamuya açık bir metindir. Onu gizli tutmaya çalışmak boşa kürek çekmektir; kod ilk saatinde kupon paylaşım gruplarına düşer, ekran görüntüsü alınır, forumlarda dolaşır. Yani savunma hattın "kodu kimse bilmesin" olamaz. Savunma hattın kodu kimin, kaç kez, hangi koşulda kullanabileceği olmalıdır. Kuponu sipariş oluşturma anında, sunucuda, veritabanı kilidi altında yeniden hesaplamayan her dijital ürün satış scripti aynı yerden kanar: istemciden gelen indirim tutarına güvenir. Sepet özetinde görünen tutar bir gösterimdir; tek doğru tutar, ödeme kaydı yazılırken sunucunun kendi hesabıdır. Pinova'nın kupon motoru bu yüzden indirimi iki kez hesaplar: biri müşteriye göstermek için, biri de siparişi kesinleştirmek için. İkisi uyuşmazsa sipariş indirimsiz devam etmez, doğrudan reddedilir ve olay kayda düşer.

Aynı kişi mi, aynı cihaz mı? Kimlik eşleştirmeyi kim yapıyor?

"Kuponu kullanıcı başına bir kez" kuralı, kullanıcı hesabı yaratmanın maliyeti sıfır olduğu bir dünyada hiçbir şey ifade etmez. Tek kişi on dakikada altı e-posta adresi üretip aynı kuponu altı kez kullanabilir. Bu yüzden ciddi bir epin yazılım altyapısı kuponu yalnızca hesap kimliğine değil, bir kimlik demetine bağlar: hesap, doğrulanmış telefon, ödeme yönteminin son dört hanesi veya iyzico/Shopier tarafından dönen alıcı imzası, cihaz parmak izi ve IP ağ bloğu. Bunların hiçbiri tek başına kesin değildir; ama birlikte puanlandığında sahte çoğullamayı pratikte kârsız hale getirir. Kritik ayrım şudur: engellemek değil, pahalılaştırmak hedefindir. Suistimalin maliyeti eline geçecek indirimden büyük olduğu anda suistimal kendiliğinden durur.

AçıkNasıl sömürülürKapatan kuralEtki
İstemci tarafı indirimSepet isteği düzenlenip indirim büyütülürSipariş anında sunucuda yeniden hesapKritik
Çoklu hesapTek kişi onlarca e-posta ile kayıt olurTelefon/ödeme imzası + cihaz puanıYüksek
Yarış durumuAynı kupon iki sekmeden eşzamanlıSatır kilidi + atomik sayaçYüksek
İade döngüsüKuponla al, iade et, kupon geri açılırİadede kupon hakkını yakma politikasıOrta
Marj altı sepetDüşük marjlı e-pin + yüzde indirimKategori bazlı kupon dışlamasıYüksek
Kupon zinciriKupon üstüne bakiye bonusu eklenirTek promosyon kilidi (exclusive)Orta
Süresi geçmiş kodEski link/önbellek üzerinden çağrıSunucu saatiyle katı geçerlilik kontrolüDüşük

Tek kullanımlık dediğin kupon gerçekten tek kullanımlık mı?

Panelde "kullanım limiti: 1" yazmak bir niyettir; o niyetin koda dönüşmesi ayrı iştir. Limit kontrolü genelde şöyle yazılır: kupon kaydını oku, kullanım sayısını gör, küçükse siparişi yaz, sonra sayacı artır. Bu sıralama düşük trafikte sorun çıkarmaz; kampanya duyurusundan sonraki ilk on dakikada ise çöker. Çünkü okuma ile artırma arasındaki milisaniyelerde onlarca istek aynı "0" değerini görür. Doğrusu, sayacı koşullu bir tek sorguda artırmak ve etkilenen satır sayısı sıfırsa siparişi reddetmektir. Ayrıca kupon kullanımını sipariş oluşturma anında değil ödeme onayı anında sabitlemek, terk edilen sepetlerin kuponu gereksizce tüketmesini de engeller.

Tespit edilen kupon suistimalinin kaynak dağılımı

  • Çoklu hesap / sahte üyelik 45%
  • Yarış durumu ve limit aşımı 25%
  • İade–iptal döngüsü 20%
  • Diğer (süre, zincirleme) 10%

Yarış durumu: iki sekme, tek kupon, sıfır uyarı

Bu açığın en sinsi tarafı, log kayıtlarında hata görünmemesidir. Sistem sana "her şey başarılı" der; iki sipariş de indirimi almıştır, kupon sayacı 1'de kalmıştır. Yani sen bu kaybı ancak elle mutabakat yaparken fark edersin. Bu yüzden kupon tablosunda iki alan birbirinden ayrılmalıdır: ayrılan kullanım ve kesinleşen kullanım. Ödeme başlarken hak ayrılır, ödeme onaylanınca kesinleşir, iptal olursa iade edilir. Bu üç aşamalı defter mantığı, e-pin gibi anında teslim edilen ürünlerde hayati önem taşır; çünkü teslimat geri alınamaz, kupon geri alınabilir.

Kâr marjını koruyan kural seti: kupon ile ürün maliyetinin kesişimi

E-pin işinde tüm ürünlerin marjı aynı değildir. Bazı oyun kodlarında marj yüzde otuzken, popüler bir platform bakiyesinde yüzde üçe kadar inebilir. Tek bir "tüm sepette %10" kuponu, müşteriyi doğal olarak en düşük marjlı ürüne yönlendirir; çünkü akıllı alıcı indirimin en çok değdiği yeri bulur. Sonuç: her satışta zarar edersin ve bunu ciro artışı sanarsın. Çözüm, kuponu ürün seviyesindeki maliyet verisine bağlamaktır. Pinova tarafında kupon tanımlarken kategori dışlaması, ürün bazlı maksimum indirim tavanı ve minimum kalan marj eşiği koyabilirsin: sepetteki indirim sonrası marj belirlediğin yüzdenin altına inerse indirim o satıra uygulanmaz. Böylece kampanya, kârını yiyerek değil, yüksek marjlı ürünleri öne çıkararak büyür.

Tek kuponla değil, kupon ailesiyle çalış

Herkese açık tek kod yerine, kişiye bağlı tek kullanımlık kod üretmeyi tercih et. Aynı kampanyayı yürütürsün ama kod paylaşımı anlamsızlaşır; çünkü kod, ait olduğu hesabın dışında çalışmaz.

Suistimali sonradan yakalamak: log, risk skoru ve karantina

Hiçbir kural seti yüzde yüz kapatmaz. O yüzden ikinci bir savunma katmanı gerekir: gözlem. Her kupon denemesini — başarılı, başarısız, reddedilmiş, hepsini — ayrı bir kayıt tablosuna yaz. Bu tabloda kupon kodu, hesap, IP ağ bloğu, cihaz imzası, sepet tutarı, sonuç ve ret gerekçesi bulunsun. Ardından basit bir skor kur: aynı cihaz imzasıyla farklı hesaplardan gelen deneme sayısı, kısa aralıklı tekrar denemeler, iade oranı. Skor eşiği aşan hesaplar bloke edilmez; karantinaya alınır. Karantinada sipariş açılır ama otomatik teslimat beklemeye düşer ve operasyona bildirim gider. Bu ayrımı yapmak önemlidir; çünkü doğrudan blok, gerçek müşteriyi kaybettirir, karantina ise sadece teslimatı dakikalar geciktirir.

KontrolNerede çalışırSıklıkDurum
İndirim sunucuda yeniden hesaplanıyorSipariş oluşturmaHer istekZorunlu
Kupon sayacı atomik artırılıyorVeritabanı katmanıHer istekZorunlu
Ayrılan / kesinleşen kullanım ayrımıÖdeme akışıHer ödemeZorunlu
Kişiye bağlı tek kullanımlık kod üretimiKampanya kurulumuKampanya başıÖnerilir
Minimum kalan marj eşiğiKupon tanımıKampanya başıÖnerilir
Cihaz + IP risk skoruArka plan işiSaatlikÖnerilir
İadede kupon hakkının yakılmasıİade politikasıHer iadeÖnerilir
Kupon denemesi tam log kaydıDenetim tablosuHer denemeZorunlu

Hangi sırayla kapatacaksın?

Hepsini aynı hafta yapmaya çalışmak, kampanya takviminizi kilitler. Sıralama şöyle olmalı: önce sunucu tarafı yeniden hesaplama ve atomik sayaç, çünkü bunlar en büyük kaybı en az emekle durdurur. Sonra ayrılan/kesinleşen defteri ve iade politikası. Üçüncü adımda marj tavanları, dördüncü adımda kişiye bağlı kod üretimi, en son risk skoru. Bu sıralama sayesinde ilk hafta sonunda kaybın büyük kısmı kesilir; kalan adımlar ise kampanyalarını daha agresif kurabilmenin önünü açar. Doğru kurulmuş bir e-pin satış scripti ile indirim, kaçak deliği değil, kontrollü bir büyüme kolu haline gelir.

Kupon motorunu kurcalamadan, hazır kurallarla yönet

Pinova; sunucu tarafı doğrulama, atomik kullanım sayacı, marj tavanı ve karantina akışını panelden yönetilebilir kurallar olarak sunar. Ne yazıp ne sileceğini düşünmeden kampanya kurarsın.

Kupon kodumu gizli tutsam suistimal biter mi?

Bitmez. Kod ilk kullanıldığı anda ekran görüntüsüyle dolaşmaya başlar. Savunma, kodun gizliliği değil kullanım koşullarının sunucuda katı biçimde uygulanmasıdır.

Tek kullanımlık kupon iki kez nasıl kullanılabiliyor?

Okuma ve sayaç artırma ayrı sorgularda yapılıyorsa eşzamanlı iki istek aynı değeri görür. Sayacı koşullu tek sorguda artırıp etkilenen satır sıfırsa siparişi reddetmek gerekir.

Şüpheli hesabı doğrudan bloke etmeli miyim?

Hayır. Doğrudan blok gerçek müşteriyi de vurur. Riskli siparişi karantinaya alıp otomatik teslimatı bekletmek, hem kaybı önler hem yanlış pozitifleri telafi edilebilir kılar.

Yüzde indirim mi sabit tutar indirimi mi daha güvenli?

Marjı dalgalı e-pin kataloglarında sabit tutar daha öngörülebilirdir. Yüzde kullanacaksan mutlaka ürün bazlı indirim tavanı ve minimum kalan marj eşiği tanımla.

Kupon güvenliği, tek seferde kurulup unutulan bir ayar değil; kampanya takvimine eşlik eden bir disiplindir. Kuralları panelden yönetebildiğin, her denemenin iz bıraktığı ve marjın kod tarafından korunduğu bir altyapıda çalışıyorsan indirim vermek seni korkutmaz. Bu akışın gerçek bir panelde nasıl göründüğünü merak ediyorsan canlı demo üzerinden kupon kurallarını kendin kurcala, özellik listesine göz at ve ölçeğine uygun sürümü fiyat tablosundan karşılaştır.

Daha Fazlasını Keşfedin

Dijital ürün satışı ve otomasyon üzerine güncel rehberlere göz atın.

Tüm Yazıları Gör →
Bu yazıyı paylaşın
Bu yazıyı beğendiniz mi?
Teşekkürler!
← Tüm yazılar