Ana içeriğe geç

Ürün Alanları

Bu dokümantasyon, Serenay\B2B\Data\Product nesnesinin tüm erişilebilir alanlarını ve metodlarını içerir. Ürün nesnesi Twig şablonlarında kullanılabilir.

Tüm Ürün Özellikleri

🔍

Alan AdıArama KelimeleriTipAçıklamaTwig Kullanımı
idid, kimlik, uniqueintÜrün benzersiz ID'si{{ product.id }}
titlebaşlık, title, isimstringÜrün başlığı (config'e göre formatlanmış){{ product.title }}
name / isimisim, name, ad, başlıkstringÜrün adı{{ product.name }} veya {{ product.isim }}
kod / skukod, sku, model, kodustringÜrün SKU/kodu{{ product.kod }} veya {{ product.sku }}
urlurl, link, bağlantıstringÜrün sayfası URL'i<a href="{{ product.url }}">
slugslug, url, permalinkstringURL-friendly ürün ismi{{ product.slug }}
admin_urladmin, yönetici, düzenlemestringAdmin panel URL'i{{ product.admin_url }}
description / aciklamaaçıklama, description, detay, htmlstring/textÜrün açıklaması (HTML içerebilir){{ product.description|raw }}
subtitlealt başlık, subtitlestringAlt başlık{{ product.subtitle }}
pretitleön başlık, pretitle, skustringÖn başlık (genelde SKU){{ product.pretitle }}
kisa_aciklamakısa açıklama, özet, summarystringKısa açıklama{{ product.kisa_aciklama }}
barcode / barkodbarkod, barcode, barkodustring/textBarkod{{ product.barcode }} veya {{ product.barkod }}
İlgili Dokümantasyon

Category, Brand ve Group nesneleri için detaylı bilgi:

Twig Kullanım Örnekleri

Basit Ürün Kartı

<div class="product-card">
<a href="{{ product.url }}">
<img src="{{ product.med_image }}" alt="{{ product.title }}">
</a>
<h3>{{ product.title }}</h3>
<p>{{ product.subtitle }}</p>

{% if product.has_discount %}
<span class="price">{{ product.first_variant_price_text }}</span>
<span class="old-price">{{ product.pre_discount_price_with_text }}</span>
{% else %}
<span class="price">{{ product.first_variant_price_text }}</span>
{% endif %}

{% if product.is_stock_active %}
<button>Sepete Ekle</button>
{% else %}
<span>Stok Yok</span>
{% endif %}
</div>

Varyantlı Ürün

{% if product.variants %}
<div class="variants">
{% for variant in product.variants %}
<button data-variant="{{ variant.id }}">
<img src="{{ variant.image_min }}" alt="{{ variant.name }}">
<span>{{ variant.name }}</span>
</button>
{% endfor %}
</div>
{% endif %}

Sepete Ekleme Formu

<form action="/sepet/ekle" method="post">
<input type="hidden" name="urun_id" value="{{ product.id }}">
<input type="hidden" name="renk" value="{{ product.default_variant_id }}">
<input type="number" name="adet"
value="{{ product.package_qty }}"
min="{{ product.package_qty }}"
step="{{ product.package_qty }}">
<button type="submit">Sepete Ekle</button>
</form>

Ürün Özellikleri ile Detay Sayfası

<div class="product-details">
<h1>{{ product.title }}</h1>

<!-- Temel bilgiler -->
<div class="basic-info">
<p><strong>SKU:</strong> {{ product.sku }}</p>
<p><strong>Marka:</strong> {{ product.brand.name }}</p>
<p><strong>Kategori:</strong> {{ product.category.name }}</p>
<p><strong>Grup:</strong> {{ product.group.name }}</p>

<!-- Tüm kategoriler -->
{% if product.categories %}
<div class="product-categories">
<strong>Kategoriler:</strong>
{% for category in product.categories %}
<a href="{{ category.url }}" class="category-link">{{ category.name }}</a>
{% if not loop.last %}, {% endif %}
{% endfor %}
</div>
{% endif %}

<!-- Ürün özellikleri -->
{% if product.kumas_tipi %}
<p><strong>Kumaş:</strong> {{ product.kumas_tipi }}</p>
{% endif %}
{% if product.mevsim %}
<p><strong>Mevsim:</strong> {{ product.mevsim }}</p>
{% endif %}
{% if product.cinsiyet %}
<p><strong>Cinsiyet:</strong> {{ product.cinsiyet }}</p>
{% endif %}
{% if product.yas_grubu %}
<p><strong>Yaş Grubu:</strong> {{ product.yas_grubu }}</p>
{% endif %}
{% if product.uretici_firma %}
<p><strong>Üretici:</strong> {{ product.uretici_firma }}</p>
{% endif %}
</div>

<!-- Video varsa göster -->
{% if product.video %}
<div class="product-video">
<h3>Ürün Videosu</h3>
<video src="{{ product.video }}" controls>
Video oynatılamıyor
</video>
{% if product.urun_video_renk %}
<p class="video-color"><strong>Video Rengi:</strong> {{ product.urun_video_renk }}</p>
{% endif %}
</div>
{% endif %}

<!-- Açıklama -->
{% if product.description %}
<div class="product-description">
<h3>Ürün Açıklaması</h3>
{{ product.description|raw }}
</div>
{% endif %}
</div>

Filtreleme İçin Ürün Özellikleri

<!-- Ürün listesi filtreleme -->
<div class="product-filters">
<h3>Filtrele</h3>

<div class="filter-group">
<label>Kumaş Tipi:</label>
<select name="kumas_tipi">
<option value="">Tümü</option>
<option value="pamuk">Pamuk</option>
<option value="polyester">Polyester</option>
<option value="viskon">Viskon</option>
</select>
</div>

<div class="filter-group">
<label>Mevsim:</label>
<select name="mevsim">
<option value="">Tümü</option>
<option value="yaz">Yaz</option>
<option value="kis">Kış</option>
<option value="sonbahar">Sonbahar</option>
<option value="ilkbahar">İlkbahar</option>
</select>
</div>

<div class="filter-group">
<label>Cinsiyet:</label>
<select name="cinsiyet">
<option value="">Tümü</option>
<option value="erkek">Erkek</option>
<option value="kadin">Kadın</option>
<option value="unisex">Unisex</option>
</select>
</div>

<div class="filter-group">
<label>Yaş Grubu:</label>
<select name="yas_grubu">
<option value="">Tümü</option>
<option value="cocuk">Çocuk</option>
<option value="genc">Genç</option>
<option value="yetiskin">Yetişkin</option>
</select>
</div>
</div>

Ürün Kategorilerini Listeleme

<!-- Ürün kategorilerini breadcrumb şeklinde göster -->
{% if product.categories %}
<nav class="product-breadcrumb">
<ol class="breadcrumb">
{% for category in product.categories %}
<li class="breadcrumb-item">
<a href="{{ category.url }}">{{ category.name }}</a>
</li>
{% endfor %}
<li class="breadcrumb-item active">{{ product.title }}</li>
</ol>
</nav>
{% endif %}

<!-- Ürün kategorilerini tag şeklinde göster -->
{% if product.categories %}
<div class="product-categories">
<span class="categories-label">Kategoriler:</span>
{% for category in product.categories %}
<span class="category-tag">
<a href="{{ category.url }}" class="btn btn-sm btn-outline-secondary">
{{ category.name }}
</a>
</span>
{% endfor %}
</div>
{% endif %}

<!-- Kategorilere göre ilgili ürünler -->
{% if product.categories %}
<div class="related-categories">
<h4>Bu Ürünün Kategorileri:</h4>
<div class="row">
{% for category in product.categories %}
<div class="col-md-4">
<div class="category-card">
{% if category.has_image %}
<img src="{{ category.image }}" alt="{{ category.name }}" class="category-image">
{% endif %}
<h5>{{ category.name }}</h5>
{% if category.description %}
<p class="text-muted">{{ category.description | slice(0, 100) }}...</p>
{% endif %}
<a href="{{ category.url }}" class="btn btn-primary btn-sm">
Kategoriyi Görüntüle
</a>
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}

<!-- Ürün kartında özellik gösterimi -->
{% for product in products %}
<div class="product-card-with-properties">
<img src="{{ product.med_image }}" alt="{{ product.title }}">
<h3>{{ product.title }}</h3>

<div class="product-properties">
{% if product.kumas_tipi %}
<span class="property fabric">{{ product.kumas_tipi }}</span>
{% endif %}
{% if product.mevsim %}
<span class="property season">{{ product.mevsim }}</span>
{% endif %}
{% if product.cinsiyet %}
<span class="property gender">{{ product.cinsiyet }}</span>
{% endif %}
</div>

<div class="product-price">{{ product.first_variant_price_text }}</div>
</div>
{% endfor %}

Bağlantılı Ürünler

{% if product.linked_products.hasRecord() %}
<div class="linked-products">
<h3>İlgili Ürünler</h3>
{% for linked in product.linked_products.getData() %}
<a href="{{ linked.url }}">
<img src="{{ linked.min_image }}" alt="{{ linked.name }}">
<span>{{ linked.first_variant_price_text }}</span>
</a>
{% endfor %}
</div>
{% endif %}

Public Metodlar

MetodParametrelerDönüşAçıklama
canBuyQty($qty, $variantId, $measure)int, string, ProductMeasureboolBelirtilen miktarda alınabilir mi?
canAddToCart($qty, $variantId)int, stringboolSepete eklenebilir mi?
getMaxBuyQty($variantId, $measure)string, ProductMeasureintMaksimum alınabilecek miktar
checkVariant($variantId)stringboolVaryant geçerli mi?
checkVariantByName($name)stringboolİsme göre varyant kontrolü
isPassive()-boolÜrün pasif mi?
isSupplierProduct()-boolTedarikçi ürünü mü?
customValue('key')stringstringÖzel alan değerini getir

Önemli Notlar

HTML İçerik

description alanı HTML içerebilir, güvenlik için |raw filtresi kullanırken dikkatli olun.

Performans

İlişkili nesneler (category, brand, vb.) lazy load ile yüklenir. Toplu işlemler için include kullanın.

Fiyat Erişimi

price ve türevleri kullanıcının giriş durumuna ve fiyat grubuna göre hesaplanır.

  1. Varyant Sistemi: variants_active true ise varyant fiyatları ve stokları kullanılır
  2. Stok Kontrolü: is_stock_active otomatik hesaplanan bir alandır
  3. Özel Alanlar: custom_field_ prefix'i ile özel alan değerlerine erişim sağlanır

Sıkça Sorulan Sorular (SSS)

categories ve all_categories arasındaki fark nedir?

categories - Ürünün tüm kategori nesnelerini (Category[]) döndürür. Kategori bilgilerine (name, url, vb.) erişmek için kullanılır. all_categories - Sadece seçili ek kategori ID'lerini (int[]) döndürür. Veritabanı sorguları ve ID bazlı işlemler için kullanılır.

Örnek: Kategori isimlerini göstermek için product.categories, kategori ID'lerini kullanmak için product.all_categories kullanın.

"sku" (Stok Takip Birimi) özelliğinin üründe ne önemi vardır?

"sku" (Stok Takip Birimi), bir ürünün envanterini ve satışlarını takip etmek için kullanılan benzersiz bir tanımlayıcıdır. Bu özellik, ürünleri ayırt etmek, stok seviyelerini yönetmek ve doğru ürün listelemeleri sağlamak için kullanılır.

"has_discount" (indirim var) özelliği fiyatlandırmada nasıl kullanılır?

"has_discount" özelliği, bir ürünün aktif bir indirime sahip olup olmadığını gösterir. Bu özellik true olarak ayarlandığında, ürünün şu anda indirimli bir fiyatla satışa sunulduğu anlamına gelir.

"variants" (varyantlar) özelliği ürün listelemesinde neyi ifade eder?

"variants" özelliği, bir ürünün farklı seçeneklerini veya konfigürasyonlarını ifade eder, örneğin beden, renk veya malzeme. Bu özellik, müşterilerin tek bir ürün listelemesinde en uygun seçeneği tercih etmelerine olanak tanır.

Ürün özelliklerini (kumaş, mevsim, cinsiyet) filtreleme sisteminde nasıl kullanabilirim?

kumas_tipi, mevsim, cinsiyet, yas_grubu gibi özellikler filtreleme sistemlerinde kullanılabilir. Bu alanlar hem ürün detay sayfalarında bilgi gösterimi hem de ürün listelerinde filtreleme kriterleri olarak kullanılır.

Video özelliği nasıl çalışır?

video alanı ürün videosunun URL'ini içerir. urun_video_renk ise video ile ilişkili renk bilgisini tutar. Video gösterimi için HTML5 video etiketini kullanabilirsiniz.


Kaynaklar


İletişim ve Destek

Herhangi bir sorunla karşılaşırsanız veya yardıma ihtiyaç duyarsanız, destek ekibimizle iletişime geçebilirsiniz.