Çoğu kişi filtreyi kullanıcı arayüzünün süsü sanır. Sol tarafa birkaç kutucuk koy, fiyat aralığı ekle, bitti. Oysa filtre bir arayüz bileşeni değil, veri modelinin dışa vuran yüzüdür. Panelinde ürünleri nasıl etiketlediğin, kullanıcının neyi ne kadar hızlı bulabileceğini ve sunucunun bu işi kaç milisaniyede yapacağını doğrudan belirler. Yüzlerce ürüne kadar hiçbir sorun görünmez; iki bin ürünü geçtiğinde ise aynı kod aniden yavaşlar, sayfa saniyelerce beklenir ve kimse nedenini anlayamaz.
Gerçek şu ki yavaşlama bir sunucu problemi değil, bir taksonomi problemidir. Etiket sistemini yanlış kurduğunda her filtre tıklaması veritabanında dev bir birleştirme sorgusuna dönüşür. Doğru kurduğunda ise aynı sorgu tek bir indeks taramasıyla biter. Bu yazıda bir e-pin satış scripti içinde etiket ve filtre mimarisini nasıl kuracağını, hangi ayrımların mutlaka yapılması gerektiğini ve performansı ölçerken nereye bakacağını teknik ama anlaşılır biçimde anlatacağım.
Etiket ile kategori arasındaki fark tam olarak nedir?
Bu ayrım yapılmadığında her şey bulanıklaşır. Kategori hiyerarşiktir, tekildir ve ürünün ne olduğunu söyler; bir ürün ağaçta bir yere aittir. Etiket ise düzdür, çoğuldur ve ürünün nasıl olduğunu söyler: bölge kısıtı, teslimat tipi, platform uyumu, kampanya durumu, hedef kitle. Bir ürün tek bir kategoriye ait olabilir ama on etiket taşıyabilir. Bu ayrımı yapmayanlar her nitelik için yeni kategori açar; ağaç şişer, her kategori zayıflar, yönetim imkânsızlaşır. Pratik kural şudur: bir nitelik iki farklı kategori altındaki ürünlerde aynı anda geçerliyse, o bir kategori değil etikettir. "Anında teslimat" hem oyun bakiyesinde hem abonelikte geçerlidir; demek ki etikettir.
Etiketleri kim ve nasıl tanımlamalı?
Serbest metin etiket, kısa vadede hızlıdır ve uzun vadede felakettir. Üç ay sonra panelinde "anında teslim", "Anında Teslimat", "otomatik teslimat" diye üç ayrı etiket olur ve filtre hiçbirini doğru toplamaz. Çözüm, etiketleri gruplara bağlı sözlükler olarak tanımlamaktır. Önce etiket grubu açılır (örneğin "Teslimat Tipi"), sonra o grubun izin verilen değerleri belirlenir (Otomatik, Manuel, Ön Sipariş). Ürün eklerken kullanıcı serbest yazmaz, listeden seçer. Bu yapı hem tutarlılığı garanti eder hem de filtre arayüzünü otomatik üretmeni sağlar: her grup bir filtre bloğu, her değer bir seçenek olur. Ayrıca yeni bir nitelik eklemek istediğinde koda dokunmadan yalnızca sözlüğe satır eklersin.
| Etiket Grubu | Örnek Değerler | Seçim Tipi | Filtrede Gösterim |
|---|---|---|---|
| Teslimat tipi | Otomatik, Manuel, Ön sipariş | Çoklu | Kutucuk listesi |
| Bölge | TR, Global, EU, NA | Çoklu | Kutucuk listesi |
| Platform | PC, Mobil, Konsol | Çoklu | Rozet grubu |
| Stok durumu | Stokta, Tükendi | Tekli | Anahtar |
| Fiyat aralığı | Sayısal | Aralık | Kaydırıcı |
| Kampanya | İndirimli, Yeni, Çok satan | Çoklu | Hızlı filtre çipi |
Filtre sorgusu neden yavaşlar ve nasıl hızlanır?
Klasik kurulumda ürün ile etiket arasında bir ara tablo bulunur. Kullanıcı üç farklı gruptan filtre seçtiğinde naif çözüm bu ara tabloyu üç kez birleştirmektir. Ürün sayısı arttıkça birleştirme maliyeti çarpan etkisiyle büyür. İlk çözüm, ara tabloda doğru bileşik indeksi kurmaktır: etiket kimliği ve ürün kimliği birlikte indekslendiğinde tarama dramatik biçimde küçülür. İkinci çözüm, VE mantığıyla çalışan çoklu filtrelerde birleştirme yerine gruplama ve sayma yaklaşımını kullanmaktır; seçilen etiketlerin tamamını taşıyan ürünleri tek geçişte bulursun. Üçüncü ve en etkili çözüm, sık kullanılan filtre kombinasyonlarının sonucunu önbelleğe almaktır. Kullanıcıların yüzde sekseni aynı beş-altı kombinasyonu kullanır; bunları hafızada tutmak veritabanı yükünün büyük kısmını sıfırlar.
Filtre sorgusunda geçen sürenin dağılımı
- Etiket birleştirme sorgusu 50%
- Sonuç sayacı hesabı 25%
- Sıralama ve sayfalama 15%
- Arayüz oluşturma 10%
Sonuç sayaçları gerçekten gerekli mi?
Filtre seçeneklerinin yanında kaç ürün olduğunu gösteren sayaçlar kullanıcı deneyimi açısından değerlidir; boş sonuç hayal kırıklığını önler. Ama teknik olarak en pahalı parçadır, çünkü her seçenek için ayrı bir sayım gerekir. Burada iki pratik yaklaşım var. Birincisi, sayaçları yalnızca ilk yüklemede hesaplamak ve kullanıcı filtre değiştirdiğinde güncellememek; tutarlılık biraz düşer ama hız korunur. İkincisi ve daha doğru olanı, sayaçları asenkron hesaplamaktır: liste hemen gelir, sayaçlar birkaç yüz milisaniye sonra yerine oturur. Üçüncü seçenek ise sayacı tamamen kaldırıp bunun yerine sonuç vermeyecek seçenekleri pasifleştirmektir; çoğu kullanıcı için bu yeterlidir ve maliyeti çok daha düşüktür.
Her filtre kombinasyonu benzersiz bir adres üretir. Bunlar açık bırakılırsa arama motoru binlerce neredeyse aynı sayfayı tarar ve tarama bütçen gerçek ürün sayfalarına yetmez. Yalnızca kalıcı olarak hedeflediğin kırılımlar indekse açık kalmalıdır.
Yönetici tarafında etiketleme yükü nasıl azalır?
Teknik mimari kusursuz olsa bile, her ürünü elle etiketlemek zorundaysan sistem çalışmaz. Dört yüz ürünlük bir katalogda tek tek etiket atamak günler alır ve tutarsızlık üretir. Bu yüzden panelde üç yetenek şarttır: toplu seçimle etiket atama, kurala bağlı otomatik etiketleme (örneğin belirli bir tedarikçiden gelen tüm ürünlere teslimat tipi otomatik atanır) ve içe aktarma sırasında sütun eşleme. Bunlara ek olarak etiket birleştirme özelliği hayat kurtarır: yanlışlıkla oluşmuş iki benzer etiketi tek etikete birleştirip ürün bağlarını otomatik taşırsın. Bir dijital ürün satış yazılımı değerlendirirken bu dört maddeyi mutlaka sor; çoğu panelde filtre arayüzü vardır ama yönetim tarafı zayıftır ve asıl maliyet oradadır.
| Kontrol Maddesi | Neden Önemli | Test Yöntemi | Hedef |
|---|---|---|---|
| Etiketler sözlükten mi seçiliyor? | Yazım tutarsızlığını önler | Ürün ekleme ekranını incele | Zorunlu |
| Ara tabloda bileşik indeks var mı? | Sorgu süresini belirler | Sorgu planını incele | Zorunlu |
| Çoklu filtre 200 ms altında mı? | Kullanıcı algısı eşiği | 3 grup seçip süre ölç | Zorunlu |
| Filtre adresleri indekse kapalı mı? | Tarama bütçesi korunur | Robot kurallarını doğrula | Zorunlu |
| Toplu etiket atama var mı? | Operasyon süresini kısaltır | 50 ürün seçip dene | Yüksek |
| Etiket birleştirme mümkün mü? | Kirlenmiş veriyi temizler | İki etiketi birleştirmeyi dene | Yüksek |
| Mobilde filtre paneli kullanılabilir mi? | Trafiğin çoğu mobil | Gerçek cihazda test | Yüksek |
Pinova bu mimariyi nasıl ele alıyor?
Pinova e-pin satmaz; e-pin ve dijital ürün satan işletmelerin kullandığı lisanslı bir yazılımdır. Bu yüzden etiket sistemi bir görsel özellik olarak değil, veri katmanının parçası olarak kurgulanmıştır: gruplara bağlı etiket sözlüğü, çoklu seçim mantığı, indekslenmiş ilişki tablosu ve yönetici tarafında toplu işlem araçları birlikte gelir. Sen yalnızca hangi niteliklerin filtre olarak görüneceğine karar verirsin; arayüz bu tanımlardan otomatik üretilir. Yeni bir etiket grubu eklediğinde şablon dosyasına dokunman gerekmez. Modüllerin tam listesini özellikler bölümünde, lisans paketlerini ise fiyat tablosunda görebilir, satın alma adımına panel sayfasından geçebilirsin.
Filtren hızlıysa kataloğun büyüyebilir
Sözlük tabanlı etiketleme, indekslenmiş ilişki yapısı ve toplu yönetim araçlarıyla binlerce ürünü rahatça taşı.
Etiket sayısının bir üst sınırı var mı?
Teknik bir sınır yoktur ama yönetilebilirlik açısından grup başına on beş değeri aşmamak iyidir. Daha fazlası olduğunda filtre arayüzü kullanılamaz hale gelir ve arama kutusu daha verimli olur.
Filtreler VE mi VEYA mı çalışmalı?
Aynı grup içindeki seçimler VEYA, farklı gruplar arası seçimler VE mantığıyla çalışmalıdır. Kullanıcı beklentisi budur; tersi kurulduğunda sonuç listesi mantıksız görünür.
Filtre sonuçlarını önbelleğe alırsam stok yanlış görünür mü?
Önbelleği ürün listesi seviyesinde tutup stok bilgisini ayrı ve taze çekersen sorun olmaz. Kısa süreli önbellek süresi de bu riski büyük ölçüde kapatır.
Mevcut ürünlerimi toplu etiketleyebilir miyim?
Evet. Toplu seçim, kurala bağlı otomatik atama ve içe aktarma sırasında sütun eşleme ile yüzlerce ürün tek seferde etiketlenebilir.
Etiket ve filtre sistemi, dışarıdan bakınca küçük bir arayüz detayı gibi durur ama aslında kataloğunun ne kadar büyüyebileceğini belirleyen tavandır. İyi kurulmuş bir e-pin satış scripti bu tavanı yukarı taşır; kötü kurulmuş olan seni beş yüz üründe sıkıştırır. Anlattığım grup-sözlük yapısının ve çoklu filtre davranışının gerçek panelde nasıl çalıştığını denemek için canlı demo üzerinden birkaç filtreyi üst üste seçip sonuç hızını kendin ölçebilirsin.

