🇬🇧 English: Read this in English →

Amazon gelirinin %35’ini öneri motoruna atfediyor. Ama şunu baştan söyleyeyim: WooCommerce mağazanın AI kişiselleştirmesinden faydalanması için Amazon’un ölçeğine ihtiyacı yok. Modern AI API’leri ve yapılandırılmış bir yaklaşımla, her ziyaretçiye kişiselleştirilmiş ürün önerileri, arama sonuçları ve içerik sunabilirsin. İşin güzeli, gereken verinin çoğu zaten senin veritabanında duruyor.

WooCommerce için Kişiselleştirme Gerçekte Ne Anlama Geliyor

Açık konuşayım: kişiselleştirme “kenar çubuğu widget’ında rastgele ürünler göstermek” değildir. O sadece gürültü. Gerçek kişiselleştirme, davranışsal verileri ve AI’ı kullanarak alışveriş deneyimini kişiye uyarlamaktır:

  • Gezinti ve satın alma geçmişini yansıtan ürün önerileri
  • Bireysel kullanıcıya göre alakasına göre sıralanan arama sonuçları
  • Geri dönen ziyaretçilere uyum sağlayan ana sayfa içeriği
  • Alıcı başına seçilen ürünlerle e-posta kampanyaları
  • Kullanıcı tercihlerine dayalı dinamik kategori sıralama

Kişiye göre deneyim yeni bir fikir değil

Şu “AI kişiselleştirme” başlığına takılıp da işin özünü kaçırma. Kişiye göre deneyim tasarlamak yepyeni bir fikir değil; yıllar önce interaktif virtual show’lar ve kiosk projeleri yapardım — kullanıcı bir seçim yapardı, sistem o seçime göre gösterdiği içeriği dallandırırdı. Elimizde ne AI vardı ne embedding; sadece kaba bir durum takibi ve bir sürü if-else. Ama niyet aynıydı: karşındaki insanın ne istediğini anla, ona göre değiş.

Değişen tek şey ölçek ve incelik. Eskiden üç-beş dala böldüğün deneyimi, bugün embedding’ler ve davranış verisiyle binlerce kişiye ayrı ayrı uyarlayabiliyorsun. Yani bu bir devrim değil, otuz yıllık bir fikrin nihayet doğru araçlara kavuşması. Bunu söylüyorum çünkü “AI” kelimesi insanı büyüledikçe temeldeki basit soruyu unutturuyor: bu öneri gerçekten alıcının işine yarıyor mu, yoksa sadece panelde şık mı duruyor? Ben olsam her zaman ikincisinden şüphe ederdim.

Veri Toplama: İhtiyacın Olanlar

Kişiselleştirme veri gerektirir. İyi haber şu: WooCommerce zaten ihtiyacın olanların çoğunu topluyor:

Veri Noktası Kaynak Değer
Görüntülenen ürünler Özel takip (JS) Yüksek
Satın alınan ürünler WooCommerce siparişleri Çok Yüksek
Gezinen kategoriler Özel takip Yüksek
Arama sorguları WooCommerce arama kayıtları Orta
Sepet ekleme/çıkarma WooCommerce hook’ları Yüksek
Ürün sayfasında geçirilen süre Özel takip Orta
Cihaz/konum İstek başlıkları Düşük-Orta

Takip uygulaması:

// Frontend: Track product views

document.addEventListener('DOMContentLoaded', () => {

const productId = document.querySelector('[data-product-id]')?.dataset.productId;

if (!productId) return;

const userId = getCookie('wp_customer_id') || getSessionId();

fetch('/wp-json/personalization/v1/track', {

method: 'POST',

headers: { 'Content-Type': 'application/json' },

body: JSON.stringify({

event: 'product_view',

product_id: parseInt(productId),

user_id: userId,

timestamp: Date.now()

})

});

});

Öneri Motoru: Üç Yaklaşım

1. İşbirlikçi Filtreleme (Klasik)

“X’i satın alan kullanıcılar Y’yi de satın aldı.” Yeterli sipariş geçmişiyle (1.000+ sipariş) iyi çalışır. Küçük bir mağazaysan bu yaklaşım tek başına seni yarı yolda bırakır — o yüzden ikinci seçeneği de oku.


from collections import defaultdict

def get_recommendations(user_id, orders, n=5):

# Find products this user purchased

user_products = set(orders[user_id])

# Find similar users (same purchases)

similarity_scores = defaultdict(int)

for other_user, products in orders.items():

if other_user == user_id:

continue

common = user_products & set(products)

if common:

similarity_scores[other_user] = len(common)

# Get products from similar users that this user hasn't seen

recommendations = defaultdict(float)

for other_user, score in similarity_scores.items():

for product in orders[other_user]:

if product not in user_products:

recommendations[product] += score

# Return top N

return sorted(recommendations, key=recommendations.get, reverse=True)[:n]

2. Embedding’lerle İçerik Tabanlı Filtreleme

Kullanıcının görüntülediği ürünlere benzer ürünleri bulmak için AI embedding’lerini kullan. Sınırlı sipariş geçmişiyle bile çalışır — yeni mağazaların soğuk başlangıç sorununu çözen yaklaşım tam olarak budur.

async function getContentBasedRecommendations(viewedProductIds, allProducts) {

// Get embeddings for viewed products

const viewedEmbeddings = await Promise.all(

viewedProductIds.map(id => getProductEmbedding(id))

);

// Average the embeddings to create a "user preference vector"

const preferenceVector = averageVectors(viewedEmbeddings);

// Find most similar products

const scores = allProducts

.filter(p => !viewedProductIds.includes(p.id))

.map(p => ({

product: p,

similarity: cosineSimilarity(preferenceVector, p.embedding)

}))

.sort((a, b) => b.similarity - a.similarity);

return scores.slice(0, 10).map(s => s.product);

}

3. AI Tarafından Üretilen Öneriler (Claude)

Karmaşık ürünlere sahip mağazalar için, öneriler hakkında akıl yürütmesi için Claude’u kullan:

async function getAIRecommendations(userHistory, catalog) {

const response = await anthropic.messages.create({

model: 'claude-sonnet-4-20250514',

max_tokens: 500,

system: 'You are a product recommendation engine. Return a JSON array of product IDs.',

messages: [{

role: 'user',

content: Based on this customer's history, recommend 5 products.

Customer viewed: ${userHistory.viewed.map(p => p.name).join(', ')}

Customer purchased: ${userHistory.purchased.map(p => p.name).join(', ')}

Customer searches: ${userHistory.searches.join(', ')}

Available products:

${catalog.map(p => ID:${p.id} - ${p.name} (${p.category})).join('\n')}

Return ONLY a JSON array of recommended product IDs.

}]

});

return JSON.parse(response.content[0].text);

}

Kişiselleştirilmiş Arama

WooCommerce’in varsayılan anahtar kelime aramasını AI-geliştirilmiş aramayla değiştir:

async function personalizedSearch(query, userId) {

// 1. Get semantic search results

const queryEmbedding = await generateEmbedding(query);

const semanticResults = await vectorDB.search(queryEmbedding, { topK: 50 });

// 2. Get user preferences

const userPrefs = await getUserPreferences(userId);

// 3. Re-rank results based on user preferences

const reranked = semanticResults.map(result => {

let score = result.similarity;

// Boost products in user's preferred categories

if (userPrefs.categories.includes(result.category)) {

score *= 1.3;

}

// Boost products in user's price range

if (result.price >= userPrefs.priceRange.min &&

result.price <= userPrefs.priceRange.max) {

score *= 1.2;

}

return { ...result, personalizedScore: score };

});

return reranked.sort((a, b) => b.personalizedScore - a.personalizedScore);

}

WooCommerce’te Uygulama

WordPress Plugin Yaklaşımı

Öneri widget’ları ekleyen özel bir plugin oluştur:

// Shortcode: [ai_recommendations count="4"]

add_shortcode('ai_recommendations', function($atts) {

$atts = shortcode_atts(['count' => 4], $atts);

$user_id = get_current_user_id() ?: $_COOKIE['session_id'] ?? '';

$recommendations = get_ai_recommendations($user_id, $atts['count']);

if (empty($recommendations)) return '';

ob_start();

echo '

';

echo '

Recommended For You

';

echo '

';

foreach ($recommendations as $product_id) {

$product = wc_get_product($product_id);

if (!$product) continue;

wc_get_template_part('content', 'product');

}

echo '

';

return ob_get_clean();

});

Gizlilik Hususları

Şunu es geçme, çünkü kişiselleştirmenin en kolay batırıldığı yer burası. Veri topluyorsan sorumluluk da alıyorsun demektir:

  • GDPR uyumluluğu: Davranışı takip etmeden önce onay al, veri silme seçenekleri sağla
  • Çerez onayı: Kişiselleştirme çerezleri AB’de açık onay gerektirir
  • Veri minimizasyonu: Sadece kullandığını takip et, eski verileri sil
  • Anonimleştirme: Giriş yapmayan kullanıcılar için oturum kimliklerini kullan, kişisel verilerle bağlama

Etkiyi Ölçme

Kişiselleştirmeyi ekledin diye iş bitmiyor; ölçmediğin sürece bir hikâye anlatıyorsun, sonuç üretmiyorsun. Beklenmesi makul aralıklar şöyle:

Metrik Kişiselleştirme Olmadan Kişiselleştirme İle Hedef Artış
Tıklama oranı (öneriler) %2-3 %8-15 +%200
Ortalama sipariş değeri Temel +%10-25 +%15
Dönüşüm oranı Temel +%5-15 +%10
Geri dönüş ziyaret oranı Temel +%20-40 +%25

Sonuç

WooCommerce’te AI kişiselleştirmesi artık sadece kurumsal mağazalar için ayrılmış değil. Embedding tabanlı öneriler, kişiselleştirilmiş arama ve AI tarafından üretilen öneriler, günümüzün API’leri ve araçlarıyla erişilebilir. Ben olsam ürün sayfasında ürün önerileriyle başlardım — en yüksek etki, en düşük uygulama maliyeti orada. Dönüşüm artışını ölç, işe yaradığını gördükçe arama ve e-posta kişiselleştirmesine genişlet. İhtiyacın olan veriler zaten WooCommerce’te; tek yapman gereken onları akıllıca kullanmak — ve panelde şık dursun diye değil, alıcının gerçekten işine yarasın diye.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Close Search Window