Wie kann ich beispielsweise die Zahlung per Nachnahme nur aktivieren, wenn der Kunde die Versandart pauschal gewählt hat?
Ich kann in der Versand- / Zahlungskonfiguration oder in den Warenkorbregeln keinen Weg finden, dies zu tun.
Wie kann ich beispielsweise die Zahlung per Nachnahme nur aktivieren, wenn der Kunde die Versandart pauschal gewählt hat?
Ich kann in der Versand- / Zahlungskonfiguration oder in den Warenkorbregeln keinen Weg finden, dies zu tun.
Ich verwende ein Plugin in einem benutzerdefinierten Modul, um die Funktion isAvailable für CashOnDelivery auf false zu setzen, wenn die Versandmethode "flatrate_flatrate" ausgewählt ist.
file: <magento-root>/app/code/MyCompany/MyModule/Plugin/CashonDeliveryPlug.php
<?php
namespace MyCompany\MyModule\Plugin;
use Magento\Payment\Model\Method\AbstractMethod;
use Magento\Quote\Model\Quote;
class CashondeliveryPlug
{
/**
* @var \Magento\Checkout\Model\Session
*/
protected $_checkoutSession;
/**
* Constructor
*
* @param \Magento\Checkout\Model\Session $checkoutSession
*/
public function __construct
(
\Psr\Log\LoggerInterface $logger,
\Magento\Checkout\Model\Session $checkoutSession
) {
$this->logger = $logger;
$this->_checkoutSession = $checkoutSession;
return;
}
public function aroundIsAvailable(\Magento\Payment\Model\Method\AbstractMethod $subject, callable $proceed)
{
$shippingMethod = $this->_checkoutSession->getQuote()->getShippingAddress()->getShippingMethod();
#$this->logger->debug($shippingMethod);
if ($shippingMethod == 'flatrate_flatrate') {
return false;
}
$result = $proceed();
return $result;
}
}
und
file: <magento-root>/app/code/MyCompany/MyModule/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\OfflinePayments\Model\Cashondelivery">
<plugin name="cashondeliveryplug" type="MyCompany\MyModule\Plugin\CashondeliveryPlug" disabled="false" sortOrder="10"/>
</type>
</config>
Hoffe das hilft dir! Fühlen Sie sich frei, Fragen zu stellen