Grup Alanları
Bu dokümantasyon, Serenay\B2B\Data\Group
nesnesinin tüm erişilebilir alanlarını ve metodlarını içerir. Grup nesnesi Twig şablonlarında kullanılabilir.
Tüm Grup Özellikleri
Property | Arama Terimleri | Tip | Açıklama | Örnek |
---|---|---|---|---|
id | id, kimlik, group id | int | Grup benzersiz ID'si | {{ group.id }} |
isim / name | isim, name, ad, grup adı | string | Grup adı | {{ group.name }} |
durum | durum, aktif, status | boolean | Aktif/pasif durumu | {% if group.durum %} |
ana_kategori | ana kategori, main, parent | boolean | Ana grup olma durumu | {% if group.ana_kategori %} |
pozisyon | pozisyon, sıra, order | int | Sıralama pozisyonu | {{ group.pozisyon }} |
main_group_id | ana grup, parent group | int | Üst grup ID'si | {{ group.main_group_id }} |
url | url, link, grup linki | string | Grup sayfa linki | <a href="{{ group.url }}"> |
slug | slug, seo, url slug | string | SEO dostu URL | {{ group.slug }} |
productCount() | ürün sayısı, product count | int | Gruptaki ürün sayısı | {{ group.productCount() }} |
Twig Kullanım Örnekleri
Basit Grup Listesi
<!-- Tüm aktif grupları listele -->
<div class="group-list">
{% for group in groups %}
{% if group.durum %}
<div class="group-item">
<h3>{{ group.name }}</h3>
<a href="{{ group.url }}" class="btn btn-primary">
Gruba Git ({{ group.productCount() }} ürün)
</a>
</div>
{% endif %}
{% endfor %}
</div>
Ana Grupları Gösterme
<!-- Sadece ana grupları göster -->
<div class="main-groups">
{% for group in groups %}
{% if group.ana_kategori and group.durum %}
<div class="main-group-card">
<h2>{{ group.name }}</h2>
<p>Pozisyon: {{ group.pozisyon }}</p>
<span class="product-count">{{ group.productCount() }} ürün</span>
<a href="{{ group.url }}" class="view-products">Ürünleri Gör</a>
</div>
{% endif %}
{% endfor %}
</div>
Grup Menüsü
<!-- Hiyerarşik grup menüsü -->
<nav class="group-navigation">
<ul>
{% for group in groups | sort((a, b) => a.pozisyon <=> b.pozisyon) %}
{% if group.durum %}
<li class="{% if group.ana_kategori %}main-group{% else %}sub-group{% endif %}">
<a href="{{ group.url }}">
{{ group.name }}
<span class="badge">{{ group.productCount() }}</span>
</a>
</li>
{% endif %}
{% endfor %}
</ul>
</nav>
Grup Dropdown
<!-- Select dropdown için gruplar -->
<select name="group_id" class="form-control">
<option value="">-- Grup Seçin --</option>
{% for group in groups %}
{% if group.durum %}
<option value="{{ group.id }}"
{% if group.ana_kategori %}class="main-group"{% endif %}>
{% if not group.ana_kategori %} {% endif %}
{{ group.name }} ({{ group.productCount() }} ürün)
</option>
{% endif %}
{% endfor %}
</select>
Breadcrumb için Grup
<!-- Grup sayfası breadcrumb -->
{% if current_group is defined %}
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{{ base_url }}">Ana Sayfa</a>
</li>
<li class="breadcrumb-item">
<a href="{{ 'products' | url }}">Ürünler</a>
</li>
{% if current_group.main_group_id %}
<li class="breadcrumb-item">
<a href="{{ parent_group.url }}">{{ parent_group.name }}</a>
</li>
{% endif %}
<li class="breadcrumb-item active">
{{ current_group.name }}
</li>
</ol>
</nav>
{% endif %}
Grup Filtresi
<!-- Ürün listesi için grup filtresi -->
<div class="filter-groups">
<h4>Grup Filtresi</h4>
<div class="form-check">
{% for group in groups %}
{% if group.durum %}
<label class="form-check-label">
<input type="checkbox"
class="form-check-input"
name="groups[]"
value="{{ group.id }}">
{{ group.name }}
<small class="text-muted">({{ group.productCount() }})</small>
</label>
{% endif %}
{% endfor %}
</div>
</div>
Grup İstatistikleri
<!-- Grup istatistik widget'ı -->
<div class="group-statistics">
{% set total_groups = groups | filter(g => g.durum) | length %}
{% set main_groups = groups | filter(g => g.ana_kategori and g.durum) | length %}
{% set sub_groups = total_groups - main_groups %}
<div class="stats-container">
<div class="stat-item">
<h5>Toplam Grup</h5>
<p class="stat-number">{{ total_groups }}</p>
</div>
<div class="stat-item">
<h5>Ana Gruplar</h5>
<p class="stat-number">{{ main_groups }}</p>
</div>
<div class="stat-item">
<h5>Alt Gruplar</h5>
<p class="stat-number">{{ sub_groups }}</p>
</div>
</div>
</div>
Performans İpuçları
productCount() metodunu dikkatli kullanın:
- Bu metod veritabanı sorgusu yapar
- Cache mekanizması olsa da yoğun döngülerde kullanmaktan kaçının
- Alternatif: Backend'den ürün sayılarını hazır alın
Büyük grup listeleri için:
- Sayfalama kullanın
- Lazy loading uygulayın
- İnaktif grupları backend'de filtreleyin
Sık Sorulan Sorular
Ana grup ve alt grup arasındaki fark nedir?
ana_kategori
alanı true
olan gruplar ana grup olarak kabul edilir. Genellikle menülerde ve navigasyonda öne çıkarılırlar. Alt gruplar ise main_group_id
alanı ile ana gruba bağlanırlar.
productCount() her zaman güncel mi?
Evet, bu metod her çağrıldığında güncel ürün sayısını döndürür. Ancak performans için cache mekanizması kullanır.
Grup slug'ı nasıl oluşturuluyor?
Grup ismi otomatik olarak SEO dostu URL'ye dönüştürülür. Türkçe karakterler İngilizce karşılıklarına, boşluklar tire işaretine dönüşür.
Kaynaklar
- Product Data Attributes
- Category Data Attributes
- Brand Data Attributes
- Serenay Yazılım Destek Sayfası
İletişim ve Destek
Herhangi bir sorunla karşılaşırsanız veya yardıma ihtiyaç duyarsanız, destek ekibimizle iletişime geçebilirsiniz. Size en kısa sürede yardımcı olmaktan memnuniyet duyarız.