So deaktivieren Sie die Nachnahmelieferung für einen bestimmten Produkttyp
-
13-12-2019 - |
Frage
Grundsätzlich muss ich die Nachnahme für bestimmte Produkttypen deaktivieren.Grundsätzlich verwende ich das Guthaben von Mage Store.Dies ist für die Brieftasche in Magento.Bei der Zahlungsoption wird die Zahlung per Nachnahme angezeigt.Es handelt sich nicht um ein physisches oder virtuelles Produkt.Deshalb muss ich die Nachnahme für diesen Produkttyp deaktivieren.
Lösung
Sie können dies tun, indem Sie Magento Event/Observer
Zuerst verwenden payment_method_is_active
Die Deaktivierung hängt vom aktuellen Angebotsprodukttyp ab.
Code dafür:
Modul config.xml-Code:
<global>
<events>
<payment_method_is_active>
<observers>
<paymentfilter_payment_method_is_active>
<type>singleton</type>
<class>yourmodel/observer</class>
<method>filterpaymentmethod</method>
</paymentfilter_payment_method_is_active>
</observers>
</payment_method_is_active>
</events>
</global>
Beobachtercode ist:
<?php class YOURNANESPACE_YOURMODULE_Model_Observer { public function filterpaymentmethod(Varien_Event_Observer $observer) { /* call get payment method */ $method = $observer->getEvent()->getMethodInstance(); /* get Quote */ $quote = $observer->getEvent()->getQuote(); $result = $observer->getEvent()->getResult(); if (empty($quote) || (null === $quote)) { return $this; } /* Disable Your payment method for adminStore */ if ($method->getCode() == 'YOUR_PAYMENT_METHOD_CODE') { foreach ($quote->getAllItems() as $item) { // get Cart item product Type // if ($item->getProductType() == 'YourProductType'): $result->isAvailable = false; endif; } } } }
Andere Tipps
Dafür müssen Sie Magento verwenden payment_method_is_active
Ereignis
Ich gehe davon aus, dass Sie wissen, wie man eine Magento-Erweiterung entwickelt. Wenn nicht, überprüfen Sie dies bitte Mit dieser Antwort erhalten Sie das gesamte ModulSchreiben Sie diesen Code in Ihr config.xml
aus app>code>codepool>namespace>package>etc
<global>
...
<events>
<payment_method_is_active>
<observers>
<paymentfilter_payment_method_is_active>
<type>singleton</type>
<class>PaymentFilter_Model_Observer</class>
<method>paymentMethodIsActive</method>
</paymentfilter_payment_method_is_active>
</observers>
</payment_method_is_active>
</events>
...
</global>
Beobachterdatei erstellen app/code/codepool>namespace>package/Model/Observer.php
class namespace_package_Model_Observer {
public function paymentMethodIsActive(Varien_Event_Observer $observer) {
$event = $observer->getEvent();
$method = $event->getMethodInstance();
$result = $event->getResult();
$currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
if($someTrueConditionGoesHere){
$result->isAvailable = true;
}else{
$result->isAvailable = false;
}
}
}
Haben Sie so aussehen, dass dies der Meinung ist, dass sich Bee Ihr Problem lösen würde. Sie müssen nur die Methoden.phtml-Datei und dessen Ändern von Zitaten info ändern und die Validierungen oder Bedingungen sowie vom Modul von Event - Beobachter oder von durchführenDie Änderung in der PHTML-Datei?
https://stackoverflow.com/questions/29819037/disable-cash-On-lieferung-für-spezifische Produkte
und