Como, por exemplo, ativar o pagamento em dinheiro na entrega somente quando o cliente selecionou o método de envio de tarifa fixa?
Não consigo encontrar uma maneira de fazer isso na configuração de remessa / pagamento ou nas regras do carrinho.
Como, por exemplo, ativar o pagamento em dinheiro na entrega somente quando o cliente selecionou o método de envio de tarifa fixa?
Não consigo encontrar uma maneira de fazer isso na configuração de remessa / pagamento ou nas regras do carrinho.
Eu uso um Plugin em um módulo personalizado para definir a função isAvailable para CashOnDelivery como false quando o método de envio "flatrate_flatrate" está selecionado.
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;
}
}
e
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>
Espero que isso ajude você! sinta-se a vontade para fazer qualquer pergunta