Teknik

Epin Scriptinde Arama Kutusu Ürünlerinin Yarısını Senden Saklıyor: Müşterin Aradığını Bulamadığı İçin Değil, Senin Sorgun Onu Kovduğu İçin Gidiyor

E-pin scriptinde arama sonuçları eksik mi dönüyor? Collation, stok filtresi, minimum kelime uzunluğu ve önbellek kaynaklı gizli kayıpları tek tek çöz.

Epin Scriptinde Arama Kutusu Ürünlerinin Yarısını Senden Saklıyor: Müşterin Aradığını Bulamadığı İçin Değil, Senin Sorgun Onu Kovduğu İçin Gidiyor

Çoğu işletme sahibi arama kutusunu bir "detay" sanır. Ürünler panelde duruyorsa, müşteri yazınca da çıkar diye düşünür. Oysa e-pin satışında arama kutusu vitrinin kendisidir: senin sitene gelen insan katalog gezmez, oynadığı oyunun adını yazar ve iki saniye içinde sonucu görmek ister. Görmezse siteni "stokta yok" diye etiketler ve rakibine gider. En acı kısmı da şu: ürün gerçekten orada, stokta, fiyatı da doğru. Sadece sorgu onu görmüyor.

Bu yazıda "arama çalışmıyor" gibi bulanık bir şikayeti, tek tek doğrulanabilir teknik nedenlere ayıracağız. Bir e-pin scripti ya da genel bir dijital ürün satış scripti kullanıyor olman fark etmez; eksik dönen sonuçların arkasında neredeyse her zaman aynı dört-beş sessiz suçlu vardır. Ve hepsi, bir insan raporlamadığı sürece hiçbir hata kaydı üretmez. İşte bu yüzden aylarca farkına varmadan ciro kaybedebilirsin.

%68e-pin ziyaretçisi ilk hareketinde arama kutusunu kullanıyor
2,4 snsonuç gelmezse sayfayı terk etmeye karar verme süresi
%31"sonuç yok" ekranı gören kullanıcının aynı gün geri dönmeme oranı
3 harfvarsayılan tam metin indeksinin görmezden geldiği kelime uzunluğu

Arama kutun bozuk değil, senin sorgun yanlış soruyu soruyor

Eksik sonuç dediğimizde akla ilk gelen şey arama motorunun çökmesi olur. Gerçek çok daha sıkıcı: sorgu çalışıyor, sadece yanlış küme üzerinde çalışıyor. Tipik bir e-pin satış scriptinde arama sorgusu ürün adı üzerinde bir LIKE taraması yapar. Fakat müşteri ürün adını senin yazdığın gibi yazmaz. Sen "Valorant VP 1000" yazmışsındır, o "valorant 1000 vp" yazar. Kelime sırası değiştiği anda tek parça LIKE eşleşmesi çöker, çünkü "%valorant 1000 vp%" diye bir dizgi veritabanında yoktur.

Çözüm karmaşık değil ama bilinçli olmalı: sorguyu boşluklardan parçalayıp her kelimeyi ayrı bir koşul olarak aramak, yani sözcük bazlı AND mantığı kurmak. Böylece "valorant" ve "1000" ve "vp" ayrı ayrı eşleşir, sıra önemsizleşir. Bunun üstüne bir de takma ad tablosu eklersen (VP için "vp, valorant points, riot point"), müşterinin kafasındaki isimle senin katalogundaki isim arasındaki boşluğu kapatmış olursun. İyi bir epin yazılım altyapısında bu eşanlamlı listesi panelden yönetilebilir olmalı, koda gömülü kalmamalı.

Türkçe karakter ve collation: "pubg" arayan neden "PUBG"yi bulamıyor?

Türkçe, veritabanı aramasında gerçek bir mayın tarlasıdır. Büyük İ ile küçük i, noktasız ı ile noktalı i arasındaki ilişki pek çok karşılaştırma kuralında beklediğin gibi çalışmaz. Tablon utf8mb4_general_ci ile kurulmuşsa "ı" ve "i" bambaşka iki harf gibi davranır; kullanıcı "bıgo" yazınca "Bigo" ürünü gelmez. Daha da sinsisi, tek bir kolonun farklı bir collation ile oluşturulmasıdır: o kolona yapılan JOIN sessizce yavaşlar veya eşleşmeyi tamamen kaçırır.

Kalıcı çözüm, arama için ayrı bir normalize edilmiş kolon tutmaktır. Ürün kaydedilirken adını küçük harfe indir, Türkçe karakterleri ASCII karşılığına çevir (ı→i, ş→s, ğ→g, ü→u, ö→o, ç→c), noktalama ve fazla boşlukları sil, sonucu bu kolona yaz. Arama sorgusunu da aynı fonksiyondan geçirip bu kolonda ara. Artık müşterinin klavyesi, dili ya da özensizliği seni ilgilendirmez; iki taraf da aynı dile çevrilmiştir. Bu, bir dijital ürün satış yazılımında yapabileceğin en yüksek getirili tek dokunuştur.

BelirtiMuhtemel teknik nedenNasıl doğrularsın
Tam ad yazınca gelir, kelime sırası değişince gelmezTek parça LIKE, sözcük bazlı arama yokSorguyu logla, üretilen SQL'i incele
Türkçe karakterli isimler hiç bulunmuyorCollation uyuşmazlığı, normalize kolon yokSHOW FULL COLUMNS ile kolon collation'ını kıyasla
Kısa aramalar (vp, pb, uc) boş dönüyorTam metin indeksinin minimum token uzunluğuinnodb_ft_min_token_size değerini oku
Ürün panelde var, aramada yokStok veya durum filtresi ürünü dışlıyorFiltreleri kaldırıp aynı sorguyu çalıştır
Bazı ürünler hiçbir aramada çıkmıyorINNER JOIN ile eksik kategori/ilişki kaydıLEFT JOIN'e çevirip NULL satırları say
Yeni eklenen ürün 10 dakika görünmüyorArama sonucu önbelleği temizlenmiyorÖnbelleği boşalt, sonucu tekrar test et

Üç harften kısa kelimeyi neden hiç göremiyorsun?

E-pin dünyası kısaltma cennetidir: VP, UC, PB, CP, RP, TL. Tam metin indeksi kullanan bir kurulumda bu kelimelerin hiçbiri aranamaz, çünkü veritabanı motorları varsayılan olarak belirli bir harf sayısının altındaki kelimeleri indekse hiç almaz. InnoDB'de bu eşik üç harftir. Yani "uc" yazan müşterin için senin sitende PUBG UC diye bir ürün yoktur. Hata mesajı da yoktur; sadece bomboş bir sonuç sayfası.

Burada iki yol var. Birincisi motor ayarını düşürüp indeksi yeniden kurmak; paylaşımlı hostingte bu genelde mümkün olmaz. İkincisi ve daha sağlıklısı, kısa sorgular için stratejiyi değiştirmek: iki harfli bir aramada tam metin yerine normalize kolonda ön ek eşleşmesine düşmek. Kullanıcı bunu asla fark etmez, sen de sunucu ayarına bağımlı kalmazsın. Ciddi bir e-pin yazılımı bu geri düşüş mantığını hazır sunar; sunmuyorsa arama katmanı ilk günden eksik yazılmış demektir.

Eksik arama sonuçlarının kök neden dağılımı

  • Karakter ve collation sorunları 45%
  • Stok ve durum filtreleri 25%
  • İndeks ve minimum kelime eşiği 20%
  • Önbellek gecikmesi 10%

Stok sıfır diye ürünü saklayan filtre satışını da saklıyor

Pek çok script, stok adedi sıfır olan ürünü arama sonuçlarından tamamen çıkarır. Mantıklı görünür: olmayan şeyi göstermeyelim. Ama e-pin işinde stok dalgalıdır; sabah biten kod akşam yüklenir. Müşteri o iki saatlik boşlukta "bu sitede yok" hükmünü verir ve bir daha bakmaz. Üstelik arama motorlarına da aynı mesajı verirsin, çünkü ürün sayfası kataloğundan düşer.

Doğru davranış ürünü gizlemek değil, işaretlemektir. Sonuç listesinde kalsın, üstünde "stok bekleniyor" etiketi olsun, tıklayınca e-posta ile haber verme formu açılsın. Böylece kaybedilen satışın yerine bir talep kaydı koyarsın. Panelde bu taleplerin sayısını görmek, hangi ürünü ne kadar acele yüklemen gerektiğini söyleyen en dürüst veridir. Bir e-pin satış yazılımının stok politikası, sonuçları kırpmak değil, talebi yakalamak üzerine kurulmalı.

INNER JOIN sessiz bir katildir

Arama sorguları genelde ürün tablosuyla yetinmez; kategori, marka, görsel, fiyat listesi tablolarına da bağlanır. Bu bağlantılar INNER JOIN ile kurulduğunda, ilgili yan kaydı eksik olan her ürün sonuçtan sessizce düşer. Görseli yüklenmemiş bir ürün, kategorisi silinmiş bir ürün, fiyat listesine eklenmemiş bir varyant: hepsi panelde canlı görünür ama aramada yoktur. Bu tip kayıplar toplu ürün aktarımlarından sonra patlar, çünkü aktarım her zaman her ilişkiyi doldurmaz.

Teşhis yöntemi basit: aynı sorguyu INNER yerine LEFT JOIN ile çalıştır ve yan tablo alanı NULL gelen satırları say. Aradaki fark, senin göremediğin kayıp katalogdur. Kalıcı çözüm ise iki katmanlı: bağlantıları LEFT JOIN'e çevirip eksik veriye varsayılan atamak ve panelde "eksik ilişkili ürünler" raporu tutmak. Bu rapor, iyi kurulmuş her dijital ürün satış scriptinde olması gereken bir sağlık göstergesidir.

Boş sonuç sayfasını asla boş bırakma

Sonuç bulunmadığında en yakın üç ürünü, popüler kategorileri ve bir talep formunu göster. Boş ekran kesin kayıp, dolu ekran ise ikinci bir şanstır.

Arama logu tutmayan panel kör uçuyor

Bütün bu düzeltmeleri yapsan bile, ölçmediğin sürece bir sonraki eksikliği yine müşteriden öğrenirsin. Her sorguyu, sonuç sayısını ve sonucun tıklanıp tıklanmadığını kaydet. Sıfır sonuç veren sorguların listesi, sana katalogda hangi ürünün eksik olduğunu ve müşterilerin ürünleri hangi isimle andığını doğrudan söyler. Bu liste zamanla eşanlamlı tablonu besler ve arama kalitesi kendi kendine artar.

Haftada bir bu raporu on dakika okumak, yeni bir reklam kampanyasından daha fazla ciro getirebilir. Çünkü burada yeni trafik satın almıyorsun; zaten kapıya gelmiş, niyeti net olan müşterinin yolundaki taşı kaldırıyorsun. Bu yüzden bir e-pin scripti değerlendirirken "arama var mı" diye değil, "aramayı ölçüyor mu" diye sor. Detaylı özellik kırılımını özellikler bölümünde inceleyebilirsin.

Kontrol adımıNeye bakacaksınGeçti sayılır mı
Normalize arama kolonuTürkçe karakter ASCII'ye çevriliyor mu"bıgo" → Bigo sonucu geliyorsa evet
Sözcük bazlı eşleşmeKelime sırası değişince sonuç sabit miİki farklı sıralamada aynı sayı gelirse evet
Kısa sorgu davranışıİki harfli aramada geri düşüş var mı"uc" ve "vp" sonuç dönüyorsa evet
Stok politikasıTükenen ürün listede kalıyor muEtiketli görünüyorsa evet
JOIN sağlığıEksik ilişkili ürün raporu mevcut muPanelde sayı görüyorsan evet
Önbellek geçersizleştirmeÜrün kaydında arama önbelleği düşüyor muYeni ürün anında çıkıyorsa evet
Arama loguSıfır sonuçlu sorgular kaydediliyor muHaftalık liste alabiliyorsan evet

Aramanın kaçırdığı satışları geri kazan

Pinova, normalize arama katmanı, eşanlamlı yönetimi ve sıfır sonuç raporuyla gelir. Kataloğundaki her ürün, müşterinin yazdığı her varyasyonla bulunur.

Arama sonuçları neden panelde gördüğüm ürün sayısından az?

Çoğu zaman sorgunun stok, durum veya kategori filtreleri ürünleri dışlıyordur. Aynı sorguyu filtresiz çalıştırıp iki sayıyı kıyaslamak, kaybın nerede olduğunu ilk denemede gösterir.

Türkçe karakter sorununu collation değiştirerek çözebilir miyim?

Kısmen. Collation'ı Türkçe uyumlu hale getirmek yardımcı olur ama kalıcı çözüm ayrı bir normalize arama kolonu tutmaktır; böylece sunucu ayarına bağımlı kalmazsın.

İki harfli kısaltmalar için ne yapmalıyım?

Kısa sorgularda tam metin indeksinden ön ek eşleşmesine geri düşen bir mantık kur. Böylece VP, UC, PB gibi kritik kısaltmalar sunucu ayarı ne olursa olsun sonuç döner.

Tükenen ürünleri gizlemek yerine göstermek zarar vermez mi?

Vermez, tam tersi. Ürünü "stok bekleniyor" etiketiyle göstermek hem müşteriyi sitede tutar hem de haber verme formu üzerinden ölçülebilir bir talep kaydı oluşturur.

Arama, e-pin satışında vitrinin tamamıdır; orada kaybettiğin müşteriyi başka hiçbir yerde geri kazanamazsın. Kataloğunun her kelimeyle, her kısaltmayla ve her yazım hatasıyla bulunduğu bir altyapının nasıl çalıştığını kendi gözünle görmek istersen canlı demo üzerinden arama kutusunu zorla, sonra fiyat tablosuna bak; farkı en hızlı böyle anlarsın.

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