Mağazamda ön sipariş satıyorum. Ve defter tutma nedenleriyle, müşterilerin aynı siparişte hem düzenli hem de ön sipariş ürünlerini satın almasına izin veremem. Tüm ön siparişlerde "ön sipariş" özelliği Evet olarak ayarlanmıştır. Şimdi, müşterilerimi aynı alışveriş sepetinde ön siparişli ürünlerle birlikte düzenli ürünler yerleştirmelerine izin vermem gerekiyor. Müşteriler tam olarak bunu yapmaya çalıştığında, "Ön siparişli ürünlerle normal ürünleri karıştıramazsınız" iletisini oluşturarak. Bunu nasıl başarmanın bir fikri?Magento, ürünlerin alışveriş sepetindeki miks ve karı karışıklığını önler
0
A
cevap
0
İşinizi yapmak için bir gözlemci kullanabilirsiniz. Maalesef, Magento, kullanıcı bir şeyleri sepete eklemeden önce işlenecek bir etkinliğe sahip değil. Yani Magento kendisi aslında checkout_cart_product_add_after
olayını kullanıyor.
app/kod// My/EventListener/etc/Config.xml
<?xml version="1.0"?>
<config>
<modules>
<My_Eventlistener>
<version>1.0.0</version>
</My_Eventlistener>
</modules>
<global>
<models>
<my_eventlistener>
<class>My_Eventlistener_Model</class>
</my_eventlistener>
</models>
</global>
<frontend>
<events>
<checkout_cart_product_add_after>
<observers>
<my_checkout_cart_product_add_afte>
<class>my_eventlistener/observer</class>
<method>checkoutCartProductAddAfter</method>
</my_checkout_cart_product_add_after>
</observers>
</checkout_cart_product_add_after>
</events>
</frontend>
</config>
app/etc/modules/My_Eventlistener.xml yerel: Yani şu modül oluşturmak
<?xml version="1.0"?>
<config>
<modules>
<My_Eventlistener>
<active>true</active>
<codePool>local</codePool>
</My_Eventlistener>
</modules>
</config>
app/kod/yerel/My/EventListener/Model/Observer.php
<?php
class My_Eventlistener_Model_Observer
{
public function checkoutCartProductAddAfter() {
$quoteItem = $observer->getEvent()->getQuoteItem();
$product = $observer->getEvent()->getProduct();
$quote = $quoteItem->getQuote();
//Flag that becomes true if he has mixed products.
$he_has_mixed_products = false;
/*
* Check here if he has mixed products in his cart
*/
if($he_has_mixed_products)
$quote->removeItem($quoteItem->getId());
Mage::throwException('You cannot mix regular products with pre order products!');
}
}
}
İlgili konular
- 1. Django ile Alışveriş Sepetindeki Öğeleri Güncelleme
- 2. Magento Checkout, “Alışveriş Sepeti boş” sayfasına yönlendiriyor ve IE7 & IE8'deki sepeti temizliyor
- 3. Alışveriş sepeti ve siparişlerde indirim stratejisi
- 4. Shopify kullanarak alışveriş sepetinde ürün ekle
- 5. getRate() ve Magento vergi yüzdesi
- 6. Node.js alışveriş sepeti
- 7. POS (Alışveriş Sepeti) - Tek bir işlemde Birden fazla ürün No
- 8. mysql ile tüm ürünlerin nasıl görüntüleneceğini gösterir
- 9. mysql negatif sayıları önler
- 10. İlaçlar çakışmayı nasıl önler?
- 11. En iyi php alışveriş sepeti
- 12. Bing Alışveriş API var mı?
- 13. Alışveriş sepetinde silme düğmesi çalışmıyor
- 14. Magento
- 15. Magento
- 16. Magento
- 17. Magento
- 18. Magento
- 19. Programatik olarak pil şarjını önler
- 20. Android, aktivitenin geri yüklenmesini önler
- 21. MVC görünümü, yinelenen html'yi önler
- 22. Magento
- 23. Magento
- 24. Magento -
- 25. magento
- 26. Magento
- 27. iç referans çöp toplanmasını önler
- 28. Magento - siparişten fiyat kuralları alın
- 29. Magento koleksiyonu özelliği seçmiyor
- 30. , gönderim sırasında varsayılanı önler: - Angularjs
Bu kodu kendiniz isteyen var mı? – Enigmativity
Evet, her iki ürün türünü birlikte eklemek istiyorum. Şimdi ileti alıyorum "Üzgünüz, düzenli ve sipariş öncesi ürünleri karıştırılamıyor." – Savin