Ana içeriğe geç

Order Attributes

Bu kılavuz, Twig şablonlarınızda sipariş bilgilerini, müşteri detaylarını ve ürün listelerini görüntülemek için Sipariş ve Sipariş Öğesi nesnelerinin nasıl kullanılacağını gösterir.

Kullanılabilir Sipariş Özellikleri

Temel Sipariş Özellikleri

  • order.id - Sipariş ID numarası
  • order.siparis_no - Sipariş numarası (örn., "ORD-2024-001234")
  • order.tarih - Tam sipariş tarihi ve saati
  • order.short_date - Kısa tarih formatı (g/a/y)
  • order.durum - Sipariş durum numarası (0=beklemede, 1=aktif, 2=pasif, 3=iptal, 4=tamamlandı)
  • order.status_text - Sipariş durumu metin olarak (örn., "Aktif", "Tamamlandı")
  • order.order_status_type_name - Detaylı durum adı (örn., "İşlemde", "Kargoya Verildi")

Müşteri Bilgileri

  • order.firma - Firma adı
  • order.telefon - Telefon numarası
  • order.email_address - Müşteri e-posta adresi
  • order.adres - Teslimat adresi
  • order.sehir - Şehir
  • order.ilce - İlçe
  • order.user - Müşteri kullanıcı nesnesi
  • order.user.name - Müşteri adı
  • order.user.bayi_kod - Müşteri kodu

Mali Bilgiler

  • order.toplam_tutar - Toplam tutar (sayı)
  • order.amount_text - Para birimi simgesi ile toplam tutar
  • order.currency - Para birimi kodu (örn., "TRY")
  • order.currency_symbol - Para birimi simgesi (örn., "₺")
  • order.entered_amount - Girilen tutar
  • order.entered_amount_text - Para birimi ile girilen tutar
  • order.shipment_cost - Kargo ücreti
  • order.shipment_amount_text - Para birimi ile kargo ücreti
  • order.refund_amount - İade tutarı

Sipariş İçeriği

  • order.items - Sipariş öğeleri dizisi
  • order.order_item_count - Siparişteki öğe sayısı
  • order.urun_toplam - Tüm ürünlerin toplam miktarı
  • order.urun_cesit - Farklı ürün sayısı
  • order.order_data - JSON nesnesi olarak sipariş verisi

Ödeme Detayları

  • order.odeme_tur - Ödeme yöntemi
  • order.taksit - Taksit sayısı
  • order.iskonto - İndirim yüzdesi
  • order.banka - Banka adı

Yönetimsel

  • order.yetkili - Yetkili kişi
  • order.onay_tarih - Onay tarihi
  • order.onay_not - Onay notları
  • order.created_at - Oluşturulma zamanı
  • order.updated_at - Son güncelleme zamanı
  • order.status_changed_at - Durum değişiklik zamanı
  • order.detail_link - Ön yüz detay sayfası URL'i
  • order.admin_url - Yönetici paneli URL'i

İlişkiler

  • order.seller - Satıcı kullanıcı nesnesi (varsa)
  • order.shipment - Kargo bilgileri nesnesi

Kullanılabilir Sipariş Öğesi Özellikleri

Temel Öğe Özellikleri

  • item.id - Öğe ID'si
  • item.urun_id - Ürün ID'si
  • item.adet - Sipariş edilen miktar
  • item.qty - Miktar (adet için takma ad)
  • item.durum - Öğe durumu
  • item.urun_kod - Ürün kodu/SKU

Ürün Bilgileri

  • item.product - Ürün nesnesi
  • item.product_name - Ürün adı
  • item.kategori_isim - Kategori adı
  • item.product.title - Tam ürün başlığı
  • item.product.sku - Ürün SKU'su
  • item.product.brand_name - Marka adı

Varyant Bilgileri

  • item.sepet_renk - Varyant adı/rengi
  • item.variant_name - Varyant adı (formatlanmış)
  • item.sepet_renk_dosya - Varyant resim dosya adı
  • item.sepet_beden - Beden bilgisi

Fiyatlandırma

  • item.buy_price - Birim satın alma fiyatı
  • item.buy_amount - Toplam satın alma tutarı
  • item.price - Birim güncel fiyat
  • item.price_format - Para birimi ile formatlanmış fiyat
  • item.total_amount - Toplam tutar (miktar × fiyat)
  • item.currency - Para birimi kodu

Resimler

  • item.image - Ürün resim URL'i
  • item.med_image - Orta boyut resim URL'i

Miktarlar ve Ölçümler

  • item.base_qty - Ana ölçü birimindeki temel miktar
  • item.shipped_qty - Zaten kargolanan miktar
  • item.awaiting_shipment_qty - Kargo bekleyen miktar
  • item.package_count - Paket sayısı
  • item.package_qty - Paket başına miktar
  • item.measure_id - Ölçü birimi ID'si

Öğe Durumu

  • item.product_id - Metin olarak ürün ID'si
  • item.variant_id - Varyant tanımlayıcısı

Sipariş Nesnesi

Sipariş nesnesi, müşteri detayları, sipariş durumu, fiyatlandırma ve sipariş öğeleri dahil olmak üzere bir müşterinin siparişi hakkındaki tüm bilgileri içerir.

Temel Sipariş Bilgileri

<!-- Sipariş ID ve Numarası -->
<h2>Sipariş #{{ order.siparis_no }}</h2>
<p>Sipariş ID: {{ order.id }}</p>

<!-- Sipariş Tarihi -->
<p>Sipariş Tarihi: {{ order.short_date }}</p>
<p>Tam Tarih: {{ order.tarih }}</p>

<!-- Sipariş Durumu -->
<p>Durum: {{ order.status_text }}</p>
<p>Durum Tipi: {{ order.order_status_type_name }}</p>

Müşteri Bilgileri

<!-- Şirket ve İletişim Detayları -->
<h3>Müşteri Bilgileri</h3>
<p>Firma: {{ order.firma }}</p>
<p>Telefon: {{ order.telefon }}</p>
<p>E-posta: {{ order.email_address }}</p>

<!-- Müşteri Adı -->
<p>Müşteri: {{ order.user.name }}</p>
<p>Müşteri Kodu: {{ order.user.bayi_kod }}</p>

<!-- Teslimat Adresi -->
<address>
{{ order.adres }}
<br>{{ order.ilce }}, {{ order.sehir }}
</address>

Sipariş Toplamları ve Fiyatlandırma

<!-- Sipariş Özeti -->
<div class="order-summary">
<p>Toplam Tutar: {{ order.amount_text }}</p>
<p>Para Birimi: {{ order.currency_symbol }}</p>

<!-- Ürün Sayıları -->
<p>Toplam Öğe: {{ order.order_item_count }}</p>
<p>Toplam Miktar: {{ order.urun_toplam }}</p>
<p>Farklı Ürünler: {{ order.urun_cesit }}</p>

<!-- Ek Maliyetler -->
{% if order.shipment_cost > 0 %}
<p>Kargo Ücreti: {{ order.shipment_amount_text }}</p>
{% endif %}

{% if order.refund_amount > 0 %}
<p>İade Tutarı: {{ order.refund_amount }} {{ order.currency_symbol }}</p>
{% endif %}
</div>

Ödeme Bilgileri

<!-- Ödeme Detayları -->
<div class="payment-info">
<p>Ödeme Yöntemi: {{ order.odeme_tur }}</p>

{% if order.taksit > 1 %}
<p>Taksit: {{ order.taksit }}</p>
{% endif %}

{% if order.iskonto > 0 %}
<p>İndirim: {{ order.iskonto }}%</p>
{% endif %}

{% if order.banka %}
<p>Banka: {{ order.banka }}</p>
{% endif %}
</div>

Sipariş İşlemleri ve Bağlantılar

<!-- Sipariş Bağlantıları -->
<a href="{{ order.detail_link }}" class="btn btn-primary">Sipariş Detaylarını Görüntüle</a>
<a href="{{ order.admin_url }}" class="btn btn-secondary">Yönetici Paneli</a>

<!-- Sipariş Durum Kontrolleri -->
{% if order.durum == 1 %}
<span class="badge badge-success">Aktif Sipariş</span>
{% elseif order.durum == 4 %}
<span class="badge badge-info">Tamamlandı</span>
{% elseif order.durum == 3 %}
<span class="badge badge-danger">İptal Edildi</span>
{% endif %}

Sipariş Öğeleri

Sipariş Öğeleri Listesini Görüntüleme

<!-- Sipariş Öğeleri Tablosu -->
<table class="table order-items">
<thead>
<tr>
<th>Ürün</th>
<th>Resim</th>
<th>Varyant</th>
<th>Miktar</th>
<th>Fiyat</th>
<th>Toplam</th>
</tr>
</thead>
<tbody>
{% for item in order.items %}
<tr>
<td>
<strong>{{ item.product_name }}</strong>
<br>
<small>Kod: {{ item.urun_kod }}</small>
</td>
<td>
<img src="{{ item.image }}" alt="{{ item.product_name }}" class="product-thumb">
</td>
<td>
{% if item.variant_name %}
<span class="variant">{{ item.variant_name }}</span>
{% endif %}
{% if item.sepet_beden %}
<span class="size">Beden: {{ item.sepet_beden }}</span>
{% endif %}
</td>
<td>{{ item.qty }}</td>
<td>{{ item.price_format }}</td>
<td>{{ item.total_amount }} {{ item.currency }}</td>
</tr>
{% endfor %}
</tbody>
</table>

Bireysel Öğe Detayları

{% for item in order.items %}
<div class="order-item">
<!-- Ürün Resmi -->
<div class="item-image">
<img src="{{ item.med_image }}" alt="{{ item.product_name }}">
</div>

<!-- Ürün Bilgileri -->
<div class="item-details">
<h4>{{ item.product_name }}</h4>
<p>Ürün Kodu: {{ item.urun_kod }}</p>
<p>Kategori: {{ item.kategori_isim }}</p>

<!-- Ürün Bağlantısı -->
<a href="{{ item.product.detail_link }}">Ürünü Görüntüle</a>
</div>

<!-- Varyant Bilgileri -->
{% if item.variant_name or item.sepet_beden %}
<div class="item-variant">
{% if item.variant_name %}
<span class="variant-color">{{ item.variant_name }}</span>
{% endif %}
{% if item.sepet_beden %}
<span class="variant-size">{{ item.sepet_beden }}</span>
{% endif %}
</div>
{% endif %}

<!-- Miktar ve Fiyatlandırma -->
<div class="item-pricing">
<p>Miktar: {{ item.adet }}</p>
<p>Birim Fiyat: {{ item.price_format }}</p>
<p><strong>Toplam: {{ item.total_amount }} {{ item.currency }}</strong></p>
</div>

<!-- Kargo Bilgileri -->
{% if item.shipped_qty > 0 %}
<div class="shipping-info">
<p>Kargolanan: {{ item.shipped_qty }}</p>
<p>Kargo Bekleyen: {{ item.awaiting_shipment_qty }}</p>
</div>
{% endif %}
</div>
{% endfor %}

Sipariş Durum Gösterimi

Durum Rozeti Bileşeni

<!-- Durum Rozeti -->
{% set status_class = '' %}
{% if order.durum == 0 %}
{% set status_class = 'badge-warning' %}
{% elseif order.durum == 1 %}
{% set status_class = 'badge-success' %}
{% elseif order.durum == 2 %}
{% set status_class = 'badge-secondary' %}
{% elseif order.durum == 3 %}
{% set status_class = 'badge-danger' %}
{% elseif order.durum == 4 %}
{% set status_class = 'badge-info' %}
{% endif %}

<span class="badge {{ status_class }}">{{ order.status_text }}</span>

Durum Zaman Çizelgesi

<!-- Sipariş Durum Zaman Çizelgesi -->
<div class="order-timeline">
<div class="timeline-item">
<strong>Sipariş Oluşturuldu:</strong> {{ order.tarih }}
</div>

{% if order.onay_tarih %}
<div class="timeline-item">
<strong>Sipariş Onaylandı:</strong> {{ order.onay_tarih }}
{% if order.onay_not %}
<br><em>Not: {{ order.onay_not }}</em>
{% endif %}
</div>
{% endif %}

{% if order.status_changed_at %}
<div class="timeline-item">
<strong>Durum Değişti:</strong> {{ order.status_changed_at }}
</div>
{% endif %}
</div>

Sipariş Özet Bileşenleri

Sipariş Kart Bileşeni

<!-- Sipariş Özet Kartı -->
<div class="order-card">
<div class="order-header">
<h3>Sipariş #{{ order.siparis_no }}</h3>
<span class="order-date">{{ order.short_date }}</span>
</div>

<div class="order-body">
<div class="customer-info">
<strong>{{ order.firma }}</strong>
<br>{{ order.user.name }}
</div>

<div class="order-stats">
<span class="stat">{{ order.order_item_count }} öğe</span>
<span class="stat">{{ order.urun_toplam }} adet</span>
</div>

<div class="order-total">
<strong>{{ order.amount_text }}</strong>
</div>
</div>

<div class="order-footer">
<span class="badge {{ status_class }}">{{ order.status_text }}</span>
<a href="{{ order.detail_link }}" class="btn btn-sm btn-outline-primary">Detayları Görüntüle</a>
</div>
</div>

Mobil Sipariş Listesi

<!-- Mobil Uyumlu Sipariş Listesi -->
<div class="order-list-mobile">
{% for order in orders %}
<div class="order-item-mobile">
<div class="order-main">
<div class="order-number">#{{ order.siparis_no }}</div>
<div class="order-date">{{ order.short_date }}</div>
</div>

<div class="order-details">
<div class="customer">{{ order.firma }}</div>
<div class="amount">{{ order.amount_text }}</div>
</div>

<div class="order-status">
<span class="badge {{ status_class }}">{{ order.status_text }}</span>
</div>
</div>
{% endfor %}
</div>

Siparişlerde Ürün Gösterimi

Siparişteki Ürün Ağı

<!-- Sipariş Öğeleri için Ürün Ağı -->
<div class="order-products-grid">
{% for item in order.items %}
<div class="product-card">
<div class="product-image">
<img src="{{ item.image }}" alt="{{ item.product_name }}">
{% if item.qty > 1 %}
<span class="quantity-badge">{{ item.qty }}</span>
{% endif %}
</div>

<div class="product-info">
<h5>{{ item.product_name }}</h5>
<p class="product-code">{{ item.urun_kod }}</p>

{% if item.variant_name %}
<p class="variant">{{ item.variant_name }}</p>
{% endif %}

<p class="price">{{ item.price_format }}</p>
</div>
</div>
{% endfor %}
</div>

Koşullu Gösterim

Duruma Göre Sipariş İşlemleri

<!-- Koşullu İşlemler -->
{% if order.durum == 1 %}
<!-- Aktif Sipariş İşlemleri -->
<button class="btn btn-warning">Siparişi İptal Et</button>
<button class="btn btn-info">Siparişi Değiştir</button>
{% elseif order.durum == 4 %}
<!-- Tamamlanmış Sipariş İşlemleri -->
<button class="btn btn-success">Yeniden Sipariş Ver</button>
<button class="btn btn-secondary">Faturayı İndir</button>
{% endif %}

Kullanıcı İzinlerine Göre Gösterim

<!-- Yönetici özelliklerini sadece yöneticilere göster -->
{% if user.is_admin %}
<div class="admin-controls">
<a href="{{ order.admin_url }}" class="btn btn-primary">Yönetici Paneli</a>
<button class="btn btn-danger">Siparişi Sil</button>
</div>
{% endif %}

<!-- Müşteri özel bilgilerini göster -->
{% if order.user.id == current_user.id %}
<div class="customer-actions">
<button class="btn btn-info">Siparişi Takip Et</button>
<button class="btn btn-secondary">Destek ile İletişime Geç</button>
</div>
{% endif %}

Yaygın Kullanım Durumları

Sipariş Onay Sayfası

<div class="order-confirmation">
<h1>Sipariş Onaylandı!</h1>
<p>#{{ order.siparis_no }} numaralı siparişiniz için teşekkür ederiz</p>

<div class="confirmation-details">
<p>Sipariş Tarihi: {{ order.short_date }}</p>
<p>Toplam Tutar: {{ order.amount_text }}</p>
<p>Öğeler: {{ order.order_item_count }}</p>
</div>

<div class="next-steps">
<h3>Sıradaki Adımlar</h3>
<p>{{ order.email_address }} adresine e-posta onayı göndereceğiz</p>
<p>Sipariş durumunuzu istediğiniz zaman takip edebilirsiniz.</p>
</div>
</div>

Sipariş Geçmişi Listesi

<div class="order-history">
<h2>Sipariş Geçmişiniz</h2>

{% for order in orders %}
<div class="order-history-item">
<div class="order-summary">
<h4>Sipariş #{{ order.siparis_no }}</h4>
<p>{{ order.short_date }} - {{ order.amount_text }}</p>
<span class="status">{{ order.status_text }}</span>
</div>

<div class="order-preview">
<p>{{ order.order_item_count }} öğe</p>
<a href="{{ order.detail_link }}">Detayları Görüntüle</a>
</div>
</div>
{% endfor %}
</div>

Bu referans, teknik uygulama detaylarını açığa çıkarmadan sipariş bilgilerini görüntülemek için Twig şablonları ile çalışan ön yüz geliştiriciler için pratik örnekler sunar.