Sepet Kancaları
Müşteri sepete ürün koyduğu andan siparişi kurduğu ana kadar sekiz kanca: ekleme kapıları, fiyatlama zinciri ve ödeme adımı.
Genel Bakış
Sepet fiyatlaması üç aşamalı bir zincirdir ve her aşamanın kendi filtresi vardır: önce ham girdiler, sonra fiyatlanmış kalemler, en sonunda özet. Zincirin sırasını bilmek, kuralınızı doğru halkaya yazmanızı sağlar.
Yanlış halka seçmek sessizce başarısız olur: kalem filtresinde toplamı değiştirirseniz özet onu yeniden hesaplayıp ezer.
Referans
Sepete eklemeyi durdurma
Ürün sepete yazılmadan önce çalışır; ürün ve döngü doğrulanmış hâldedir.
Hook::add('gate:order.cart_add', 10, function ($product, $cycle, $item) {
// Stok kontrolu cekirdekte var; siz is kuralinizi ekleyin.
if (Acme::limitReached($product['id'] ?? 0))
return 'Bu urun icin gunluk siparis siniri doldu.';
return null;
});Ham girdileri değiştirme
Fiyatlama başlamadan önce, ham sipariş girdileri üzerinde çalışır.
Hook::add('filter:order.cart_inputs', 10, function (&$inputs, $ucid) {
// Zincirin BASI: buraya eklenen kalemi cekirdek fiyatlar.
if (Acme::freeSslCampaign())
$inputs[] = ['group' => 'product', 'product_id' => Acme::SSL_ID, 'cycle' => 'annually'];
});Fiyatlanmış kalemleri değiştirme
Kalemler fiyatlandıktan sonra, özet kurulmadan önce çalışır.
Hook::add('filter:order.cart_items', 10,
function (&$items, $user_id, $user_currency, $dealership) {
// Satir fiyatini burada degistirin; GENEL toplam bir sonraki asamada kurulur.
foreach ($items as &$i)
if (Acme::bundleEligible($i)) $i['price'] = Acme::bundlePrice($i);
});Sepet özetini değiştirme
Fiyat özeti kurulduktan sonra çalışır — müşterinin göreceği son rakamlar buradadır.
Hook::add('filter:order.cart_totals', 10,
function (&$summary, $items, $subtotal, $selectedCoupons, $ctx) {
// Zincirin SONU: burada yazdiginiz rakam musteriye gorunur.
if (Acme::minimumOrder() > (float) $summary['subtotal'])
$summary['acme_notice'] = Acme::minimumNotice();
});Ödeme adımını durdurma
Sipariş kurulmadan önce çalışır. Misafir buraya ulaşamaz: giriş denetimi daha önce çalışır.
Hook::add('gate:order.checkout', 10, function ($member, $cartItems) {
// Kalemler HENUZ fiyatsiz: tutara bakan kurali burada yazmayin.
if (Acme::fraudScore((int) ($member['id'] ?? 0)) > 80)
return 'Siparisiniz inceleme gerektiriyor; destek ekibi sizinle iletisime gececek.';
return null;
});Siparişin kurulduğunu öğrenme
Sipariş kurulduktan sonra çalışır. Faturası bu noktada ödenmemiştir.
Free; saklı kartta gerçek kuruluş modülünün adı.Hook::add('action:order.checkout_completed', 10,
function ($order_id, $invoice_id, $pmethod, $member) {
// Fatura HENUZ odenmedi: hizmet acmayi odeme kancasina birakin.
Crm::orderPlaced($order_id, $pmethod, (string) ($member['email'] ?? ''));
});Kupon indirimini değiştirme
Kupon indirimi hesaplandıktan sonra çalışır.
Hook::add('filter:order.coupon_discount', 10, function (&$discount) {
Acme::capCouponDiscount($discount);
});Sipariş numarasını değiştirme
Sipariş numarası üretildikten sonra çalışır.
Hook::add('filter:order.number', 10, function (&$number) {
// Benzersizlik SIZIN sorumlulugunuzda: cakisma siparisi bozar.
$number = Acme::prefix() . '-' . $number;
});Tuzaklar
Fiyatlama üç aşamalıdır: girdiler, kalemler, özet. Kalem aşamasında genel toplama dokunmak boşunadır — özet aşaması onu yeniden hesaplar. Satır fiyatı kalem filtresine, nihai rakam özet filtresine, yeni bir ürün ise girdi filtresine yazılır.
Ödeme adımı kapısı size ham sepet satırları verir: tutar, indirim ve vergi henüz hesaplanmamıştır. "Şu tutarın üzerindeki siparişi durdur" kuralını buraya yazmak, olmayan bir alanı okumaya çalışmaktır.
Sipariş tamamlandı kancasında fatura ödenmemiştir. Hizmet açmak, ek hizmet etkinleştirmek ya da müşteriye teslim yapmak buraya yazılırsa, ödemeyi hiç tamamlamayan bir sipariş de teslim edilmiş olur.
Sipariş numarası filtresi size üretilmiş numarayı verir. Değiştirdiğinizde çekirdek yeni değeri bir daha denetlemez: çakışan bir numara üretirseniz sipariş kaydı bozulur. Kendi ön ekinizi eklemek güvenlidir, numarayı baştan üretmek değildir.
İlgili Makaleler
- Sipariş Akışı Kancaları
- Fatura Yaşam Döngüsü Kancaları
- Para Birimi ve Kupon Kancaları
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.