Ürün kataloğu

WooCommerce'te çok fazla varyasyon: gerçek maliyeti ve eşikleri

Varyasyonları hızlı üretmek ile onlarla yaşamak farklı problemlerdir. Bu yazı ikincisiyle ilgili: bir varyasyonun gerçekte neye mal olduğu, eşiklerin nerede durduğu ve matrisinizin gerçekten gerekli mi yoksa elden kaçmış bir çarpım mı olduğu.

Aynı anda kaç varyasyon oluşturabileceğinize dair pratik tavanı kaldıran bir eklenti geliştiriyoruz. O yüzden açıkça söylemekte fayda var: altı yüz varyasyonu hızlıca oluşturabiliyor olmanız, altı yüz varyasyonun iyi bir fikir olduğu anlamına gelmez.

Onları hızlı oluşturmak ile onlarla yaşamak farklı problemlerdir. Bu yazı ikincisiyle ilgili: bir varyasyonun size neye mal olduğu, eşiklerin gerçekte nerede durduğu ve matrisinizin gerçekten gerekli mi yoksa elinizden kaçmış bir çarpım mı olduğunu nasıl anlayacağınız.

Varyasyon aslında nedir#

Veritabanında bir varyasyon, seçeneklerden oluşan bir tablodaki satır değildir. Kendi başına eksiksiz bir gönderi kaydıdır: post_type = product_variation, yani ana ürünün alt kaydı. Yanında yirmi ila otuz civarında meta satırı taşır: fiyat, indirimli fiyat, stok, SKU, ağırlık, boyutlar, görsel, kargo sınıfı, vergi sınıfı ve onu tanımlayan nitelik değerleri.

Bundan iki sonuç çıkar ve bu yazıdaki her şey bu ikisinin devamıdır:

  • Varyasyonlu bir ürünü yüklemek, tüm varyasyonlarını yüklemek demektir. Ürün sayfasının neyin satın alınabilir olduğunu bilmek için bu veriye ihtiyacı vardır ve birisi beden seçtiğinde ön yüzün tepki verebilmesi için verinin büyük bir bölümünü JSON olarak sayfaya gömer.
  • Maliyet ürün başına değil, varyasyon başına oluşur. 400 varyasyonlu bir ürün, veritabanı açısından tek bir üründen çok 400 ürüne yakındır.

Sınır olmayan 30#

30 sayısının anıldığını ve çoğu zaman varyasyon üst sınırı diye yanlış tanıtıldığını göreceksiniz. Öyle değil.

WooCommerce’in bir eşiği vardır: woocommerce_ajax_variation_threshold, varsayılanı 30. Bu eşik, varyasyon seçicilerinin nasıl davrandığını değiştirir. Eşiğin altında açılır listeler dinamiktir: Kırmızıyı seçersiniz, beden listesi Kırmızıda mevcut olan bedenlere daralır. Eşiğin üstünde WooCommerce tüm veriyi baştan göndermeyi bırakır ve kombinasyonları AJAX üzerinden çözen, daha az etkileşimli bir seçiciye geri düşer.

Bu bir görüntüleme ve veri yükü davranışıdır; kaç varyasyonunuz olabileceğine dair bir sınır değil. Filtreleyebilirsiniz. Eşiği yükseltmek sayfayı ağırlaştırır, düşürmek seçiciyi aptallaştırır. İkisi de fazla büyük bir matrisin çözümü değildir.

Kabaca eşikler#

Rakamlar sunucuya, temaya ve ürün sayfanızın başka ne kadar iş yaptığına göre değişir; dolayısıyla bunları söz değil, yön gösterici olarak alın:

VaryasyonNe fark edersiniz
30’un altındaHiçbir şey. Dinamik açılır listeler, olağan sayfa ağırlığı.
30–50Seçici davranışı değişir. Yine de rahattır.
50–200Ürün sayfaları basit bir üründen ölçülebilir biçimde yavaştır; çoğu zaman bir saniye, bazen birkaç saniye. Sayfaya gömülen varyasyon verisi özellikle mobilde render’ı zorlamaya başlar.
200+Bellek baskısı. Bazı sunucular ürünü kaydederken veya yüklerken zaman aşımına uğrar. Yönetim panelinde düzenleme, ön yüzden önce çekilmez hale gelir.

Genellikle önce yönetim tarafı bozulur ve bu işe yarar bir erken uyarıdır: ürünü düzenlemek size eziyet veriyorsa, sayfa büyük ihtimalle müşteriler için de keyifli değildir.

Çarpma tuzağı#

Kimse 625 varyasyon kurmak için yola çıkmaz. Sadece dördüncü bir eksen ekler.

Eksen sayısıEksen başına değerVaryasyon
23, 412
33, 4, 336
45, 5, 5, 5625
46, 5, 4, 3360

Her eksen toplamaz, çarpar. Tek bir ek seçenek, örneğin dört eksenli bir üründe bir renk daha, onlarca kayıt yaratabilir.

Daha kötüsü, bu kombinasyonların çoğu genellikle hayalidir. 625’inin tamamını gerçekten stokta tutuyorsanız sorun yok. Ama seçici eksiksiz görünsün diye her kombinasyonu üretiyorsanız ve bunların yalnızca kırk tanesi satacaksa, değerin kırkta biri için performans bedelinin tamamını ödemiş olursunuz.

Varyasyon sayısının iki eksende 12'den, beşer değerli dört eksende 625'e çıkışını gösteren, her ölçekteki performans etkisinin not düşüldüğü grafik
Bir eksen eklemek varyasyonları toplamaz, çarpar. Üstelik maliyet ürün başına değil, varyasyon başına oluşur.

Çözüm: yığmayın, bölün#

Kabaca, ne sıklıkla doğru cevap olduklarına göre sıralı:

1. Ticari olmayan eksenleri kaldırın#

Testi uygulayın: bu, fiyatı, stoku veya SKU’yu değiştiriyor mu? Değiştirmiyorsa bu bir eksen değil, gösterime yönelik bir niteliktir. Kumaş bileşimi, yıkama talimatları ve menşe ülke her zamanki şüphelilerdir; nitelikler ile varyasyonlar yazısına bakın. Dört değerli tek bir ekseni atmak matrisinizi dörde böler.

2. Ayrı ürünlere bölün#

Bir müşteri onu adıyla arayacaksa, o muhtemelen bir üründür. Bir montun tamamen farklı fotoğraflanan, tedarikçi kataloğunuzda farklı adlarla geçen ve ayrı stoklanan iki renk seçeneği, yirmi dört varyasyonlu tek bir üründen çok, her biri kendi beden eksenine sahip iki ayrı ürün sayılır; o zaman her birinde on iki varyasyon olur.

Ayrıca iki ayrı değerlendirme birikimi, iki URL ve sıralamaya girmek için iki şans elde edersiniz.

3. İsteğe bağlı ekstraları ek seçeneklere taşıyın#

Hediye paketi, gravür, uzatılmış garanti. Bunlar seçenek gibi hissettirir ama varyantlara hiç benzemez: tek bir onay kutusunu temsil etmek için tüm matrisi ikiye katlarlar ve stokunu tuttuğunuz şeyler değildirler. Doğru araç, bir ürün ek seçeneği alanıdır.

4. Seçicinin nasıl göründüğünü değiştirin#

Açılır listeleri renk kutucukları veya küçük görsellerle değiştirmek, müşterinin ne kadar düşünmesi gerektiğini değiştirir ve bazı kurulumlarda baştan ele alınması gereken varyasyon verisini azaltır. Deneyim açısından gerçek bir iyileştirmedir; ama o boyutta olmaması gereken bir matris için çare değil, hafifletmedir.

Çok sayıda varyasyonun gerçekten doğru olduğu durumlar#

Bazen matris gerçektir ve onu korumanız gerekir:

  • Her kombinasyon, fiziksel olarak elinizde tuttuğunuz ayrı bir şeydir; kendi barkodu ve rafta kendi yeri vardır. Örneğin bir ayakkabı serisindeki bedenler.
  • Fiyatlar kombinasyon başına farklıdır ve bu fark bir kuralla ifade edilemez.
  • Tedarikçi kataloğunuz bu şekilde kurgulanmıştır ve buna direnmek, iki farklı modeli sonsuza kadar uzlaştırmak demektir.

Durum buysa varyasyonları koruyun ve maliyeti bilerek kabul edin. Sonra buna göre planlayın: ürün sayfalarının yavaşlamasını, yönetim panelinde düzenlemenin ağırlaşmasını bekleyin ve buna yetecek bir sunucu için bütçe ayırın.

Yüzlerce varyasyon şartsa#

  • Her varyasyona kendi SKU’sunu verin. Bu ölçekte hiçbir şeyi açıklamasına bakarak yönetemezsiniz. Yaklaşık yüz satırın üzerinde üretilmiş bir SKU şeması tercih meselesi olmaktan çıkar.
  • Stok modeline bilinçli karar verin. Tek tek stoklanan yüzlerce varyasyon, doğru tutulması gereken yüzlerce sayı demektir; ana ürün stoku ile varyasyon stoku karşılaştırmasına bakın.
  • Sayın. Stok takibi yapılan her varyasyon, stok sayımında kendi satırıdır ve büyük matrisler basit ürünlerden daha hızlı kayar, çünkü yanlış olabilecek daha çok sayı vardır.
  • Yalnızca mağazayı değil, yönetim panelini de izleyin. Ürünü kaydetmek otuz saniye sürüyorsa onu güncellemeyi bırakırsınız ve bayat veri, yavaş sayfalardan daha pahalıya mal olur.

Dürüst özet#

Varyasyonları hızlı üreten araçlar, bizimki de dahil, eskiden kazara fren görevi gören sürtünmeyi ortadan kaldırır. Matris gerçekse bu gerçek bir iyileştirmedir, gerçek değilse gerçek bir risktir; çünkü sizi 400 varyasyon kurmaktan alıkoyan şey, bunun ne kadar yorucu olduğuydu.

O yüzden düşünmeyi ucuz olduğu noktada yapın: üretmeden önce. Her eksene, fiyatı, stoku veya SKU’yu değiştirip değiştirmediğini sorun. Toplama ise hepsini stokta tutup tutmayacağınızı sorun. Sonra doğru boyutta olduğunu bilerek bir dakikada kurun.

Varyasyon performansı SSS#


Bir WooCommerce ürününün kaç varyasyonu olabilir?

WooCommerce’in kendisinde katı bir sınır yoktur ama pratik bir sınır vardır. Kabaca 50 varyasyonu geçtikten sonra ürün sayfaları ölçülebilir biçimde yavaşlar; birkaç yüzü geçtikten sonra ise PHP bellek limitleriyle ve sunucu zaman aşımlarıyla karşılaşmaya başlarsınız, genellikle mağaza yüzünden önce yönetim panelinde.


30, varyasyon üst sınırı mı?

Hayır. Otuz, woocommerce_ajax_variation_threshold değerinin varsayılanıdır ve bir şeye üst sınır koymaktan çok, varyasyon seçicilerinin nasıl davrandığını değiştirir. Eşiğin altında açılır listeler dinamik olarak filtrelenir; üstünde WooCommerce tüm veriyi baştan göndermeyi bırakır ve kombinasyonları AJAX üzerinden çözer.


Varyasyonlu ürün sayfalarım neden yavaş?

Her varyasyon, yirmi ila otuz meta satırı olan ayrı bir gönderi kaydıdır; ürün sayfası bunların hepsini yükler ve bu verinin büyük bir bölümünü sayfaya gömer. Maliyet varyasyon sayısıyla birlikte büyür, dolayısıyla 400 varyasyonlu bir ürün tek bir üründen çok 400 ürün gibi davranır.


Varyasyon sayısını nasıl azaltırım?

Fiyatı, stoku veya SKU’yu değiştirmeyen eksenleri kaldırın; gerçekten farklı ürünleri tek bir matrise yığmak yerine ayırın; hediye paketi gibi isteğe bağlı ekstraları varyasyon ekseni yapmak yerine ürün ek seçeneklerine taşıyın, çünkü isteğe bağlı bir ekstra, tek bir onay kutusunu temsil etmek için tüm matrisi ikiye katlar.


Varyasyon renk kutucukları performans sorununu çözer mi?

Deneyimi iyileştirirler ve baştan ele alınması gerekeni azaltabilirler ama çare değil, hafifletmedirler. Matrisin boyutu yanlışsa, onu daha çekici sunmak alttaki kayıt sayısını değiştirmez.


Yüzlerce varyasyona sahip olmak hiç doğru olur mu?

Evet. Her kombinasyon fiziksel olarak stokladığınız, kendi barkodu ve rafta kendi yeri olan ayrı bir şeyse ya da fiyatlar gerçekten kombinasyon başına farklılaşıyorsa doğrudur. Bu durumda onları koruyun ama daha yavaş sayfalar, yönetim panelinde daha ağır bir düzenleme ve gerçek bir SKU şeması için plan yapın.


Okumaya devam

İlgili yazılar