Erstelltes Modul wie Keine anderen Produkte zum Warenkorb hinzufügen, wenn ein eingeschränktes Produkt im Warenkorb verfügbar ist und umgekehrt.
Mein Modul:
app / etc / modules / Brst_Test.xml
<?xml version="1.0"?>
<config>
<modules>
<Brst_Test>
<active>true</active>
<codePool>community</codePool>
</Brst_Test>
</modules>
</config>
Dies ist meine Beobachterakte
app / code / community / Brst / Test / Model / Observer.php
<?php
ini_set('display_errors', '1');
// Mage::log('fine dude', null, 'logfile.log');
class Brst_Test_Model_Observer
{
//Put any event as per your requirement
public function logCartAdd($observer) {
// Mage::log('good dude', null, 'logfile.log');
$product = Mage::getModel('catalog/product')
->load(Mage::app()->getRequest()->getParam('product', 0));
$cart_qty = (int) Mage::getModel('checkout/cart')->getQuote()->getItemsQty();
if ($product->getId()==31588 && $cart_qty > 0) {
Mage::throwException("You can not add This special Product, empty cart before add it");
}
$quote = Mage::getModel('checkout/cart')->getQuote();
foreach ($quote->getAllItems() as $item) {
$productId = $item->getProductId();
if($productId==31588){
Mage::throwException("Cart has Special Product you can not add another");
}
}
}
}
?>
app / code / community / Brst / Test / etc / config.xml
<?xml version="1.0"?>
<config>
<modules>
<Brst_Test>
<version>1.0.0</version>
</Brst_Test>
</modules>
<global>
<models>
<brst_test>
<class>Brst_Test_Model</class>
</brst_test>
</models>
</global>
<frontend>
<events>
<checkout_cart_product_add_after>
<observers>
<Brst_Test_Model_Observer>
<type>singleton</type>
<class>Brst_Test_Model_Observer</class>
<method>logCartAdd</method>
</Brst_Test_Model_Observer>
</observers>
</checkout_cart_product_add_after>
</events>
</frontend>
</config>
Funktioniert nicht, wie kann man den Fehler beheben?
Antworten:
Versuchen Sie dies, wenn Ihr nicht funktioniert
Ovverride
\app\code\core\Mage\Checkout\Model\Cart.php
zuSuchen Sie die Funktion
addProduct($productInfo, $requestInfo=null)
in Ihrer Ovveride-Datei, und fügen Sie dort die Logik zum Hinzufügen von Produkten hinzuCode nach Zeile hinzufügen `$ request = $ this -> _ getProductRequest ($ requestInfo);
`
Hinweis : Sie können den Beobachter dort aufrufen und Ihrem Beobachter Logik hinzufügen, wenn Sie diese Funktion nicht codieren möchten
quelle
Mage::getModel('checkout/cart')->getQuote()->setHasError(true);
app \ etc \ modules \ Brst_Test.xml
app \ code \ community \ Brst \ Test \ etc \ config.xml
app \ code \ community \ Brst \ Test \ Model \ Observer.php
Versuchen Sie diesen Code
quelle