WooCommerce Sıkça Birlikte Alınan Ürünler

WooCommerce e-ticaret eklentisinin ürün detayındaki “ilgili ürünler” özelliğinin mantığı nasıl çalışıyor bilmiyorum ama büyük bir kaç sitede çok alakasız ürünler listelediğini gördüm ve baya araştırma yapmama rağmen oradaki ürünleri nasıl değiştirebileceğimi bulamadım. (Bir yerde benzer etiketlere ve kategorilere göre listelediğini okumuştum ama etiketler ile denememde başarılı olamamıştım, aynı kategorideki ürünleri getiriyor ama çok eski ürünler geliyordu genelde)

Bunun basit çözümü WooCommerce’in Up-Sells ve Cross-Sells özelliğini (Türkçeye yukarı satışlar ve çapraz satışlar olarak çevrilmiş) kullanarak oraya ürünler eklemek.

Up-Sells ürün detayında alt kısımda “hoşunuza gidebilir…” gösteriliyor ve eklenmiş olursa genellikle ilgili ürünlerden önce gösteriliyor.

Cross-Sells ise sepet sayfasında “hoşunuza gidebilir…” şeklinde gösteriliyor.

Küçük sitelerde (az ürün barındıran sitelerden bahsediyorum) buraya el ile ürün eklemek mümkün tabi ki ama çok fazla ürün ve çok fazla satış olan bir sitede e-ticaretin önemli verilerinden birisi olan “sıkça birlikte alınan ürünler” (Frequently Bought Together) verisini elde edip buraya eklemek satışlardaki dönüşümü yada ortalama sepet tutarını arttıracağı ve kullanıcı deneyimi açısından daha faydalı olacağı için bugün size WooCommerce’de sıkça birlikte alınan ürünleri bir SQL ile bulup ardından biraz Excel birazda WP-All Import eklentisi kullanarak toplu bir şekilde içeri aktarmayı göstereceğim.

Kullanacağımız tek tablo “wp_wc_order_product_lookup” tablosu öncelikle SQL kodumuzu şuraya ekleyelim;

SELECT c.baz_URUN, c.birlikte_alinan, count(*) as kac_defa
FROM (
  SELECT a.product_id as baz_URUN, b.product_id as birlikte_alinan
  FROM wp_wc_order_product_lookup a
  INNER join wp_wc_order_product_lookup b
  ON a.order_id = b.order_id AND a.product_id != b.product_id) c
GROUP BY c.baz_URUN, c.birlikte_alinan ORDER BY kac_defa DESC

Bu kodu MySQL Workbench ile çalıştırdığımızda (yada herhangi bir arayüz ile) aşağıdaki gibi bir sonuç alacağız.

Aldığımız sonuçta baz_URUN ve birlikte_alinan kolonları ürünlerin ID’lerini kac_defa kolonu ise daha önce kaç kere birlikte satın alındıklarını gösteriyor.

Şimdi bu veriyi export ederek bir .csv dosyası olarak bilgisayara kayıt ediyoruz. Burada her iki sütunda da ID’ler tekrar ettiği için bize ürünlerin tekrarsız bir listesi lazım, onuda basit başka bir SQL ile alalım;

SELECT
	ID
FROM wp_posts
WHERE wp_posts.post_type = 'product'
AND wp_posts.post_status = 'publish'
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_title ASC

Bu bize tüm ürünlerin ID’lerini verecek bunu da csv olarak dışarı aktaralım ardından Excel ile bu verileri güzel bir şekilde yan yana dizip import için hazır hale getireceğiz.

Benim aldığım çıktılar çok kalabalık olduğu için listeyi biraz daraltarak çalışıyorum 550 satır aldım Excel’e örnek için.

Ben Up-Sells ve Cross-Sells alanlarında 12 ürün göstermek istiyorum bu nedenle Excel sayfamı aşağıdaki gibi oluşturdum.

Şimdi bu Excel ile şunu yaptık, düşey ara ile verileri yan yana yazdırmam gerekiyordu ki import ederken virgülle ayrılmış verilerim olsun bu nedenle ilk SQL’in verdiği .csv dosyasındaki verileri B sütunundan başlayarak Excel’e yapıştırdım ardından a sütununa =EĞERSAY($B$2:B2;B2)&”a”&B2 kullanarak baz_URUN sütununda ID’yi her bulduğunda başına 1a, 2a, 3a gibi gibi yazdırdık. Bu sayede düşey ara ile birden fazla veri yakalayabileceğiz.

Bunun içinde URUNLER ID sütununa 2. SQL ile çektiğimiz csv dosyasındaki ID’leri yapıştırdım, ve yanına 12 adet 1a, 2a, 3a gibi sütunlar oluşturdum.

1a’nın birinci satırına yani I sütununun 2. satırına =DÜŞEYARA($I$1&H2;$A$2:$C$81991;3;YANLIŞ) kodunu yazdığımızda düşey ara bize 1309814 ID’li ürünün ilk geçtiği satırı bularak birlikte_alinan ilk ürünün ID’sini buraya yazacak.

Aynı şekilde 2a, 3a sütunlarına da bu komutu yapıştıracağız ama bir değişiklik yaparak. 2a sütunundaki kod şu şekilde olacak =DÜŞEYARA($J$1&H2;$A$2:$C$81991;3;YANLIŞ)

Düşey ara’ya hakimseniz bunu zaten neden yaptığımızı biliyorsunuzdur, değilseniz görebileceğiniz gibi tek değişen $I$1 kısmı $J$1 alanı. bu diğer sütunlara geçtikçe k l m olarak değişmeye devam edecek.

Ardından bunu tüm satırlara uyguladığımızda tamda yukarıdaki gibi bir ekran görmelisiniz. Artık URUNLER ID sütununun karşısına onunla sıkça alınan ürünleri sütun sütun getirdik, tabi gördüğünüz gibi bazı sütunlar #YOK şeklinde geldi, ben örnek için sadece 550 satır aldığım için oldu bu aslında buralar dolardı :)

Her neyse şimdi öncelikle bu verileri kopyala ardından değerleri yapıştır diyerek düşey ara bağımlılığından kurtarın ardından bu sütun sütun olan verileri =BİRLEŞTİR ile U sütununda birleştiriyorum örneğin; =BİRLEŞTİR(I2;”,”;J2;”,”;K2)

#YOK değerleri bende sorun çıkarttı sizde çıkartır mı bilmiyorum ama eğer birleştir işe yaramazsa onları temizleyebilirsiniz. Birleştirdiğimizde U sütununda değerler şu şekilde gözükecek;

ÜRÜNLER ID 1a 2a 3a 4a 5a 6a 7a 8a 9a 10a 11a 12a
1309814 1309777 1309790 1309758 1309667 YOK YOK YOK YOK YOK YOK YOK YOK 1309777,1309790,1309758
1309790 1309777 1309758 1309667 1309814 YOK YOK YOK YOK YOK YOK YOK YOK 1309777,1309758,1309667
1309777 1309790 1309758 1309667 1309814 YOK YOK YOK YOK YOK YOK YOK YOK 1309790,1309758,1309667
1309758 1309777 1309667 1309790 1309814 YOK YOK YOK YOK YOK YOK YOK YOK 1309777,1309667,1309790
1309667 1309777 1309758 1309790 1309814 YOK YOK YOK YOK YOK YOK YOK YOK 1309777,1309758,1309790
1229705 1229692 1229680 YOK YOK YOK YOK YOK YOK YOK YOK YOK YOK 1229692,1229680,YOK
1229692 1229705 1229680 YOK YOK YOK YOK YOK YOK YOK YOK YOK YOK 1229705,1229680,YOK
1229680 1229692 1229705 YOK YOK YOK YOK YOK YOK YOK YOK YOK YOK 1229692,1229705,YOK
1221191 1221173 1221186 1221122 1221146 1221080 YOK YOK YOK YOK YOK YOK YOK 1221173,1221186,1221122
1221186 1221173 1221191 1221080 1221122 1221146 YOK YOK YOK YOK YOK YOK YOK 1221173,1221191,1221080
1221173 1221146 1221186 1221191 1221122 1221080 YOK YOK YOK YOK YOK YOK YOK 1221146,1221186,1221191
1221146 1221173 1221122 1221191 1221080 1221186 YOK YOK YOK YOK YOK YOK YOK 1221173,1221122,1221191

Artık U sütunundaki verileri de kopyala ve değer yapıştır yaparak birleştir komutundan kurtarın ve aradaki 1a, 2a, 3a … sütunlarını silin. Tablomuz şu şekilde gözükmeli;

ÜRÜNLER ID UP SELLS
1309814 1309777,1309790,1309758
1309790 1309777,1309758,1309667
1309777 1309790,1309758,1309667
1309758 1309777,1309667,1309790
1309667 1309777,1309758,1309790
1229705 1229692,1229680,YOK
1229692 1229705,1229680,YOK
1229680 1229692,1229705,YOK
1221191 1221173,1221186,1221122
1221186 1221173,1221191,1221080
1221173 1221146,1221186,1221191
1221146 1221173,1221122,1221191

Burada YOK kısımlarını CTRL+F ile filan temizleyelim ve sadece ID’ler kalsın. Sonra temiz bir Excel’e bunu aktarabilirsiniz a sütunundan başlatarak çünkü WP-ALL Import eklentisine vereceğiz bu dosyayı artık.

WP-ALL Import eklentisi ile son haline getirdiğiniz Excel’i seçin ve Existing Items seçecek Import to existing kısmından da WooCommerce Products ‘u seçerek 2 kere ilerleyelim ve bilgileri dolduracağımız ekranda sadece gösterdiğim verileri seçelim.

Sürükle bırak ile alanları Linked Products’daki field’lara yerleştirdik ve ileri diyoruz tekrar ve aşağıdaki ekranda dikkatli oluyoruz zira hiçbir alanı doldurmadık upsell ve crosssell dışında bu nedenle eşleştirmeyi Post ID seçtikten sonra yeni ürünleri oluştur seçimini kaldırıp update existing Ürünler kısmında choose Which data to update seçecek öncelikle unselect all diyelim ve Custom Fields kısmında Update only these Custom Fields seçerek açılan filed’a _upsell_ids ve _crosssell_ids yazalım. Bunlar otomatik tamamlama ile çıkmıyor ama yazıp seçtiğinizde işe yarıyor.

İleri deyin ve import işlemini başlatın, bittiğinde artık yukarı satışlar ve çapraz satışlar için birlikte sıkça alınan ürünleri belirlemiş oldunuz :)

İyi satışlar diyeyim o zaman ;)