WooCommerce mağazanızın arama motoru hiçbir şey bulmuyor
WooCommerce’in dahili araması, WordPress’in varsayılan arama motorunu kullanır: ürün başlığı ve içeriği üzerinde basit bir metin eşleşmesi. Ürün kodunu, varyasyon özniteliklerini veya özel alanları hiçbir zaman incelemez; ürün mağazada mevcutken bile “hiçbir sonuç bulunamadı” şikâyetlerinin çoğu buradan kaynaklanır.
Nasıl ilerliyorum
-
Varsayılan davranışın doğrulanması
Aramanın yalnızca WP_Query’nin s parametresi üzerinden post_title ve post_content alanlarını sorguladığını doğruluyorum; bu, önem sıralaması ve yazım hatası toleransı olmayan düz bir SQL LIKE eşleşmesidir.
-
Ziyaretçilerin gerçekte ne yazdığının tespiti
Site günlüklerinde veya bir takip eklentisinde ziyaretçilerin gerçekte ne aradığına bakıyorum: bir ürün kodu, bir beden, bir renk. Neredeyse hiç sonuç getirmeyen terimler genellikle bunlardır.
-
Temanın ve mevcut eklentilerin kontrolü
Bazı temalar aramayı zaten ürün koduna kadar genişletmiş olabilir. Bir eklenti eklemeden önce bunu kontrol ediyorum; böylece mevcut bir işlevi tekrarlamamış veya bir çakışmaya yol açmamış oluyorum.
-
Eklenti mi, geliştirme mi kararının verilmesi
Katalog yapısına göre, piyasadaki bir arama eklentisinin yeterli olup olmadığını, yoksa gerçek ihtiyacın özel bir sorgu gerektirip gerektirmediğini değerlendiriyorum.
-
Uygulama ve doğrulama
Seçilen çözümü kuruyor ve yapılandırıyorum, ya da pre_get_posts kancası üzerinden sorguyu genişletiyorum, ardından bir önceki adımda tespit edilen gerçek terimlerle test ediyorum.
Düzenli olarak ele aldığım durumlar
- Bir müşteri ürün kodunu yazıyor ve ürün gerçekten yayında olduğu hâlde “sonuç bulunamadı” çıkıyor
- Arama, bir ürünü yalnızca başlık yazılan kelimeyi birebir içeriyorsa buluyor, en ufak bir varyasyona izin vermiyor
- Beden, renk veya öznitelik aramak hiçbir zaman sonuç getirmiyor
- Bir yazım hatası veya çoğul ek, bir an önce görünen bir sonucu ortadan kaldırıyor
- Arama sonuç veriyor ama sıralama müşteri için hiçbir mantık taşımıyor
WooCommerce aramasının bu kadar sınırlı olmasının nedeni
WordPress’in yerleşik araması hiçbir zaman bir ürün kataloğu için tasarlanmadı. WP_Query’nin s parametresi, gönderi başlığı ve içeriği üzerinde, burada ürün sayfası üzerinde, bir SQL LIKE eşleşmesi tetikler: önem sıralaması yoktur, yazım hatası toleransı yoktur, bir kelimenin varyantlarının tanınması yoktur. Varsayılan olarak ürün kodunu (SKU), varyasyon özniteliklerini veya özel alanları hiçbir zaman incelemez; oysa bir müşterinin bir referans, beden veya renk ararken tam olarak yazdığı şey budur.
Ürün katalogda net bir şekilde görünürken bir müşterinin “aramanız hiçbir şey bulmuyor” demesinin en yaygın nedeni budur.
Yapılandırma düzeyinde, bazı temalar aramayı zaten doğal olarak SKU’ya kadar genişletir. Bu yoksa, FiboSearch veya Relevanssi gibi özel bir eklenti, hiç kod yazmadan yaklaşık eşleşme ekler ve daha fazla alanı indeksler. Geliştirme düzeyinde ise, WP_Query’yi pre_get_posts kancası üzerinden genişletip _sku alanına karşı bir meta_query eklemek, ya da gerçek bir yüzeysel (facet) anlık arama kurmak, katalog yapısı genel bir eklenti için fazla özel olduğunda gerekli hâle gelir.
İlgili sayfalar
-
Özel WooCommerce eklentisi geliştirme
Piyasadaki hiçbir eklentinin kataloğun gerçek yapısına uymadığı durumlarda.
-
API üzerinden harici bir arama motoru bağlama
Örneğin Algolia ile anlık facet araması, yalnızca bir eklenti ayarı değil bir API entegrasyonu gerektirir.
-
WooCommerce’de ele aldığım tüm konular
WooCommerce’de düzenli olarak ele aldığım diğer arızalar ve geliştirmeler.
İhtiyacınızı bir dakikada anlatın
Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.