📦 Shop Product AI Content System v2

📅 Tarih: 2025-11-27 (Updated) | 🎯 Tenant: ixtif.com (Tenant 2) | 👤 Hedef: Tam Otomasyonlu + Güvenli İçerik Üretimi

🚨 KRİTİK KURALLAR (ÖNCE OKU!)

⚠️ KURAL 1: FİYAT BİLGİSİ ASLA VERİLMEZ

Neden: Fiyatlar değişkendir, yasal sorumluluk doğurur.

  • ❌ "Bu ürün 500 TL'dir" - YASAK
  • ❌ "Yaklaşık 1000 TL civarındadır" - YASAK
  • ❌ "Fiyat 100-500 TL arasındadır" - YASAK
  • ✅ "Fiyat bilgisi için bizimle iletişime geçin" - DOĞRU
  • ✅ "Güncel fiyat için arayınız" - DOĞRU

⚠️ KURAL 2: TEKNİK DETAY VERİLMEZ (Mevcut yoksa)

Neden: Yanlış teknik bilgi yasal sorumluluk, müşteri memnuniyetsizliği doğurur.

  • ❌ "Bu ürünün boyutu 50x30 cm'dir" (bilmiyorsan yazma!)
  • ❌ "Ağırlığı 5 kg'dır" (emin değilsen yazma!)
  • ❌ "220V elektrikle çalışır" (spesifikasyon yoksa yazma!)
  • ✅ "Forklift arka dingil sistemlerinde kullanılır" (genel bilgi)
  • ✅ "Endüstriyel ortamlarda yaygın kullanıma sahiptir" (genel)

⚠️ KURAL 3: MEVCUT İÇERİK VARSA GELİŞTİR, YOKSA GENEL YAZ

İki senaryo:

Senaryo A: Mevcut İçerik VAR

  • ✅ Mevcut body içeriğini al
  • ✅ Teknik detayları KORU (boyut, ağırlık, voltaj vb.)
  • ✅ Mevcut özellikler üzerinden genişlet
  • ✅ SEO keywords ekle, Google arama terimleri kullan
  • ✅ Pattern v4'e uygun HTML yapısına çevir

Senaryo B: Mevcut İçerik YOK

  • ✅ Sadece başlık + kategori bilgisini kullan
  • ✅ Genel tanıtım yap (ne işe yarar, nerede kullanılır)
  • ✅ Spesifik sayı/ölçü VERME
  • ✅ "Detaylı bilgi için iletişime geçin" ifadeleri kullan
  • ✅ SEO-friendly, arama motorlarına uygun yaz

⚠️ KURAL 4: GOOGLE SEO ÖNCELİKLİ

  • ✅ Başlıkta anahtar kelime kullan (örn: "Forklift Akson Kapağı")
  • ✅ Alt başlıklarda long-tail keywords (örn: "Hangi Forklift Tiplerinde Kullanılır?")
  • ✅ İlk paragrafta ana keyword 2-3 kez geçsin
  • ✅ LSI keywords kullan (ilgili terimler: yedek parça, bakım, onarım, servis)
  • ✅ FAQ sorularını Google arama sorguları gibi yaz
  • ✅ İçerikte doğal keyword yoğunluğu (2-3%)

⚠️ KURAL 5: GÖRSEL STRATEJİSİ

  • ❌ Ürünü birebir oluşturmaya ÇALIŞMA!
  • ✅ Foto 1: Genel kullanım ortamı (montaj, atölye, forklift çalışırken)
  • ✅ Foto 2: Sallantılı teknik çizim (blueprint style, schematic)
  • ✅ Görseller "context" sağlar, "exact product" değil
  • ✅ "Professional industrial environment" prompt'ları kullan

Sistem Hedefi

🎯 Ana Hedef

Shop modülündeki ürünler için AI ile güvenli ve otomatik bilingual (TR + EN) içerik üretimi:

  • ✅ Title + Short Description + Long Body
  • ✅ Primary Specs (4 item - SADECE mevcut bilgilerle)
  • ✅ FAQ Data (5 soru/cevap - genel bilgiler)
  • ✅ SEO Keywords (tags - Google arama terimleri)
  • ✅ AI Generated Images (2 adet - context görselleri)
  • ✅ Görsellere SEO etiketleri (alt, title, loading)

💡 Örnek Sonuç

Akson Mili Kapağı - 414 ürünü için üretilen içerik:

  • 📝 Body TR: 9,000+ karakter (pattern v4)
  • 📝 Body EN: 8,800+ karakter
  • 📊 Primary Specs: 4 item (Malzeme, Uyumluluk, Seri, Kaplama)
  • ❓ FAQ: 5 soru/cevap (bilingual)
  • 🏷️ Tags: 30 keyword (15 TR + 15 EN)
  • 📸 Görseller: 2 adet (montaj + blueprint - 1024x1024)
  • ❌ Fiyat bilgisi: YOK
  • ❌ Spesifik teknik detay: YOK (genel tanıtım)

🔗 Canlı Örnek

Sistem Mimarisi

1. Veri Akışı (Güncellenmiş)

User Input (Product ID) ↓ Mevcut İçerik Kontrolü (ShopProduct->body) ↓ VARSA ↓ YOKSA Mevcut İçeriği Al Sadece Title+Category Al Teknik Detayları Çıkar Genel Tanıtım Yap ↓ ↓ OpenAI GPT-4 (Content Generation) - Fiyat VERİLMEZ - Teknik detay sadece mevcut varsa - Google SEO keywords ekle ↓ Content Parsing (Title, Specs, Body, FAQ, Tags) ↓ Leonardo AI (2 Context Görsel - Async) - Görsel 1: Kullanım ortamı - Görsel 2: Teknik çizim (sallantılı) ↓ Image Embedding (Body içine otomatik) ↓ SEO Tag Injection (alt, title, loading) ↓ Database Save (ShopProduct model) ↓ Cache Clear + OPcache Reset

2. Kullanılacak Teknolojiler

Bileşen Teknoloji Açıklama
AI Content Generation OpenAI GPT-4 Bilingual content (TR + EN), fiyat/teknik detay kuralları
AI Image Generation Leonardo AI (Lucid Origin) 2 context görsel (ortam + çizim)
API Prompt Enhancement AIPromptEnhancer Service Görsel promptları optimize eder
DB Storage ShopProduct Model Tenant-aware database
DB Media Storage MediaLibraryItem Model AI görselleri metadata ile saklar
UI Admin Interface Livewire Component Tek buton: "Generate AI Content"

Yapılacaklar - Adım Adım

📝 ADIM 1: AI Content Service Oluştur (GÜNCELLENMİŞ)

Dosya: Modules/Shop/app/Services/ShopProductAIContentService.php

Sorumluluk: Ürün bilgilerinden GPT-4 ile GÜVENLİ bilingual content üretimi

Önemli Metodlar:

  • generateFullContent($productId, $options) - Ana metod
  • extractExistingContent($product) - Mevcut içerikten teknik detay çıkar
  • buildSafePrompt($data, $hasExistingContent) - Fiyat/teknik detay kuralları
  • validateContent($content) - Fiyat/teknik detay kontrolü

Prompt Kuralları:

// EĞER MEVCUT İÇERİK VARSA: "Improve and expand this existing content: {$existingBody} RULES: - KEEP all technical specifications (dimensions, weight, voltage, etc.) - EXPAND general description - ADD SEO keywords: {$seoKeywords} - Pattern: v4 HTML structure - DO NOT mention price - Bilingual: TR + EN" // EĞER MEVCUT İÇERİK YOKSA: "Generate product content from title and category: Title: {$title} Category: {$category} RULES: - General description only (what it is, where it's used) - NO specific technical details (no dimensions, weight, voltage) - NO price information - Use phrases: 'contact us for details', 'call for specifications' - SEO keywords: {$seoKeywords} - Pattern: v4 HTML structure - Bilingual: TR + EN"

🎨 ADIM 2: AI Image Generator Integration (GÜNCELLENMİŞ)

Dosya: Modules/Shop/app/Services/ShopProductImageGenerator.php

Sorumluluk: Leonardo AI ile 2 CONTEXT görsel üret

Görsel Stratejisi:

  • Görsel 1: Kullanım Ortamı (genel industrial scene, montaj, atölye)
  • Görsel 2: Sallantılı Teknik Çizim (blueprint style, schematic)
  • ❌ Ürünü birebir oluşturmaya ÇALIŞMA!
  • ✅ Context ve atmosfer sağla
// Görsel 1: Kullanım Ortamı (GENEL) $prompt1 = "Professional industrial environment photo, {$category} being used in workshop setting, technician working, tools and equipment visible, cinematic lighting, professional scene, NO specific product focus, general context"; // Görsel 2: Teknik Çizim (SALLANTI) $prompt2 = "Technical blueprint illustration style, {$category} schematic drawing, engineering aesthetic, dark blue background, white and orange lines, CAD style, generic technical diagram, NOT exact product";

🖥️ ADIM 3: Livewire Admin Component (GÜNCELLENMİŞ)

Dosya: Modules/Shop/app/Http/Livewire/Admin/ProductAIContentGenerator.php

UI: Admin > Shop > Products > Manage > "Generate AI Content" button

Input Options:

  • Checkbox: Mevcut içeriği kullan (default: true if content exists)
  • Checkbox: Görseller oluştur (default: true)
  • Checkbox: Tüm ürünlere uygula (batch mode)
  • Textarea: Ekstra SEO keywords (optional)

Validation:

  • Content'te fiyat var mı kontrol et
  • Mevcut içerik yoksa teknik detay var mı kontrol et
  • Uyarı göster: "İçerik güvenli görünüyor"

🔄 ADIM 4: Queue Job - Async Image Generation

Dosya: Modules/Shop/app/Jobs/GenerateProductImagesJob.php

Neden: Leonardo AI 20-30 saniye sürebilir, kullanıcı beklemez

  • Job parametreleri: product_id, body_placeholder_positions
  • Leonardo AI görselleri üret (context görseller)
  • Body'deki placeholder'ları değiştir
  • SEO tags ekle
  • Product update + cache clear

✅ ADIM 5: Content Validation System (YENİ!)

Dosya: Modules/Shop/app/Services/ContentValidator.php

Sorumluluk: Üretilen içeriği kurallarla kontrol et

Kontroller:

  • ✅ Fiyat keywords kontrolü (TL, $, €, fiyat, price, cost)
  • ✅ Teknik detay kontrolü (mevcut içerik yoksa)
  • ✅ SEO keyword yoğunluğu (2-3%)
  • ✅ Alt/title tag varlığı
  • ✅ Bilingual uyumluluk (TR/EN karakter sayısı farkı <%20)
public function validate($content, $hasExistingContent): array { $errors = []; // Fiyat kontrolü if ($this->containsPrice($content)) { $errors[] = 'Content contains price information'; } // Teknik detay kontrolü if (!$hasExistingContent && $this->containsTechnicalSpecs($content)) { $errors[] = 'Content contains specific technical details'; } return $errors; }

📊 ADIM 6: Analytics & Logging

Dosya: Mevcut AI credit system kullan

  • GPT-4 kullanımı: 5 credit
  • Leonardo AI (2 görsel): 2 credit
  • Toplam: 7 credit per product
  • Log: Generation time, success rate, validation errors

Teknik Detaylar

Content Pattern (v4 Yapısı)

📐 HTML Yapısı

Akson Mili Kapağı örneğindeki pattern:

  • Intro Section: 2/3 metin + 1/3 görsel (sticky)
  • Features Section: "Neden Bu Yedek Parçayı Tercih Etmelisiniz?" - 6 card (grid 3 col)
  • Use Cases Section: "Hangi Forklift Tiplerinde Kullanılır?" - 3 card
  • Advantages Box: Gradient kutu, 4 item (grid 2 col)
  • Image + Text Grid: Görsel + açıklama (2 col)

Primary Specs Yapısı (GÜNCELLENMİŞ)

// MEVCUT İÇERİK VARSA (teknik detay çıkar): [ {"label": "Malzeme", "value": "Döküm Çelik"}, {"label": "Boyut", "value": "150mm"}, {"label": "Ağırlık", "value": "2.5 kg"}, {"label": "Kaplama", "value": "Toz Boya"} ] // MEVCUT İÇERİK YOKSA (genel bilgi): [ {"label": "Kategori", "value": "Forklift Yedek Parça"}, {"label": "Kullanım Alanı", "value": "Endüstriyel Ekipman"}, {"label": "Uyumluluk", "value": "Tüm Forklift Tipleri"}, {"label": "Bilgi", "value": "Detay için arayın"} ] // NOT: icon field KULLANMA (template parse hatası verir)

SEO Keywords Strategy

🔍 Google Arama Terimleri

Her ürün için 30 keyword (15 TR + 15 EN):

  • Ana Keyword: Ürün adı (örn: "forklift akson kapağı")
  • Long-tail: Kategori + özellik (örn: "forklift arka dingil yedek parça")
  • LSI Keywords: İlgili terimler (bakım, onarım, servis, montaj)
  • Location: Türkiye, İstanbul (opsiyonel)
  • Brand: İXTİF, OEM kalite

SEO Image Tags (Otomatik)

<a href='{$imageUrl}' class='glightbox block rounded-xl overflow-hidden border-2 border-gray-200 dark:border-gray-700 hover:border-blue-500 transition-all'> <img src='{$imageUrl}' alt='Forklift {$productTitle} Kullanım Ortamı - Endüstriyel Ekipman' title='{$productTitle} montaj görseli - {$category}' class='w-full aspect-square rounded-xl object-cover' loading='lazy' > </a>

Kritik Noktalar

⚠️ Tenant Awareness

Sistem multi-tenant! Her tenant farklı sektör:

  • Tenant 2 (ixtif.com): industrial_equipment
  • Tenant 1001 (muzibu.com): music_platform
  • Content promptunda tenant sektörünü belirt
  • tenancy()->initialize() unutma!

⚠️ Permission Management

Her dosya işleminden sonra:

sudo chown tuufi.com_:psaserv /path/to/file sudo chmod 644 /path/to/file

⚠️ Cache Yönetimi

Content update sonrası mutlaka:

php artisan view:clear php artisan responsecache:clear curl -s -k https://ixtif.com/opcache-reset.php

⚠️ Icon Field Hatası

Primary specs ve FAQ data'da icon field KULLANMA!

Blade template parse hatası verir. Sadece label/value ve question/answer kullan.

🚨 BATCH MODE UYARISI

"Tüm ürünlere uygula" seçeneği:

  • ⚠️ Onay popup göster: "X adet ürün güncellenecek, emin misiniz?"
  • ⚠️ Rate limiting: 1 ürün/5 saniye (Leonardo AI limiti)
  • ⚠️ Progress bar göster
  • ⚠️ Hata olursa devam et, log kaydet
  • ⚠️ Sonuç raporu: X başarılı, Y hatalı

Uygulama Sırası

Sıra Dosya/Bileşen Süre Bağımlılık
1 ContentValidator.php 1 saat -
2 ShopProductAIContentService.php 3 saat OpenAI API, AIPromptEnhancer, Validator
3 ShopProductImageGenerator.php 2 saat LeonardoAIService, MediaLibraryItem
4 GenerateProductImagesJob.php 1 saat Queue, ImageGenerator
5 ProductAIContentGenerator Livewire 4 saat ContentService, ImageGenerator, Validator
6 Test + Debug 3 saat Tüm bileşenler

⏱️ Toplam Tahmini Süre: 14-16 saat

Başarı Kriterleri

✅ Sistem Başarılı Sayılır Eğer:

  • ✅ Kullanıcı admin panelde tek butona basıyor
  • ✅ 30-60 saniye içinde tam içerik hazır (görsellerle)
  • FİYAT BİLGİSİ YOK
  • Mevcut içerik yoksa teknik detay YOK
  • ✅ Content SEO-friendly ve okunabilir
  • ✅ Görseller otomatik embed edilmiş + SEO tagları mevcut
  • ✅ Lightbox çalışıyor
  • ✅ Dark mode uyumlu
  • ✅ Mobil responsive
  • ✅ Bilingual (TR + EN) %100 uyumlu
  • ✅ Cache otomatik temizleniyor
  • ✅ Credit sistemine entegre
  • ✅ Validation errors loglaniyor

Referans Dosyalar

Dosya Açıklama
/var/www/vhosts/tuufi.com/httpdocs/public/readme/2025/11/27/product-331-fixed/ai-content-v5.json Akson Mili Kapağı content örneği (final) - MEVCUT İÇERİK YOKTU
Modules/MediaManagement/app/Http/Livewire/Admin/AiImageGeneratorComponent.php Leonardo AI entegrasyonu örneği
app/Services/Media/LeonardoAIService.php Leonardo API service
Modules/AI/app/Services/AIPromptEnhancer.php Prompt enhancement (GPT-4)
Modules/Shop/resources/views/themes/ixtif/show.blade.php Product detail template (GLightbox mevcut)

Test Senaryoları

Test 1: Mevcut İçerik VAR

  • Ürün seç: Body dolu olan
  • "Generate AI Content" tıkla
  • Beklenen: Mevcut teknik detaylar korundu mu?
  • Beklenen: İçerik genişledi mi?
  • Beklenen: SEO keywords eklendi mi?

Test 2: Mevcut İçerik YOK

  • Ürün seç: Body boş olan
  • "Generate AI Content" tıkla
  • Beklenen: Genel tanıtım var mı?
  • Beklenen: Spesifik sayı/ölçü YOK mu?
  • Beklenen: "İletişime geçin" ifadeleri var mı?

Test 3: Validation

  • Content'i kontrol et
  • Beklenen: Fiyat keywords YOK mu? (TL, $, fiyat, price)
  • Beklenen: Mevcut içerik yoksa teknik detay YOK mu?
  • Beklenen: SEO keyword yoğunluğu 2-3% arasında mı?

Test 4: Görseller

  • Görseller oluşturuldu mu?
  • Beklenen: 2 adet context görsel (montaj + blueprint)
  • Beklenen: Alt/title tags mevcut mu?
  • Beklenen: Lightbox açılıyor mu?
  • Beklenen: Görseller ürünü birebir göstermiyor mu?