
Tutorial ensinando a como restringir a utilização de métodos de pagamento por grupo de cliente no Magento 1.
Você pode fazer isso criando um Observer no evento payment_method_is_active.
Observação: Este tutorial é apenas para programadores. Existem soluções pagas e gratuitas disponíveis no Google, faça uma pesquisa por “Payments by customer groups Magento 1”.
Partindo do principio que você é um desenvolvedor Magento, vamos ao código..
public function filterpaymentmethod(Varien_Event_Observer $observer) {
$yourcustomergroupid = 1;
/* call get payment method */ $method = $observer->getEvent()->getMethodInstance();
if(Mage::getSingleton('customer/session')->isLoggedIn()) {
$roleId = Mage::getSingleton('customer/session')->getCustomerGroupId();
$role = Mage::getSingleton('customer/group')->load($roleId)->getData('customer_group_code');
if($method->getCode()=='purchaseorder'){
$quote = $observer->getEvent()->getQuote();
if($role == $yourcustomergroupid){
$result = $observer->getEvent()->getResult();
$result->isAvailable = true;
return;
}else{
$result = $observer->getEvent()->getResult();
$result->isAvailable = false;
}
}
if($method->getCode()=='checkmo'){
$quote = $observer->getEvent()->getQuote();
if($role == $yourcustomergroupid){
$result = $observer->getEvent()->getResult();
$result->isAvailable = true;
return;
}else{
$result = $observer->getEvent()->getResult();
$result->isAvailable = false;
}
}
}
} Logo de inicio do código temos a variável $yourcustomergroupid = 1; aonde definimos o id do grupo.
E nas condições if($method->getCode()==’purchaseorder’){ e if($method->getCode()==’checkmo’){ definimos se os respectivos métodos de pagamento estarão ativos ou não para o grupo de cliente de ID 1.
Para complementar o Post, segue o exemplo de arquivo config.xml que será necessário.
<?xml version="1.0" ?>
<config>
<modules>
<Bh_ZeroSubtotalpaymentmethod>
<version>1.0.1</version>
</Bh_ZeroSubtotalpaymentmethod>
</modules>
<frontend>
<events>
<payment_method_is_active>
<observers>
<paymentfilter_payment_method_is_active>
<type>singleton</type>
<class>zerosubtotalpaymentmethod/observer</class>
<method>filterpaymentmethod</method>
</paymentfilter_payment_method_is_active>
</observers>
</payment_method_is_active>
</events>
</frontend>
</config> Declaração do Observer:
<payment_method_is_active>
<observers>
<paymentfilter_payment_method_is_active>
<type>singleton</type>
<class>zerosubtotalpaymentmethod/observer</class>
<method>filterpaymentmethod</method>
</paymentfilter_payment_method_is_active>
</observers>
</payment_method_is_active> Este tutorial é para o Magento 1.
Módulo gratuito Roger_CnpjAlfanumerico que aplica máscara e validação do novo CNPJ alfanumérico no checkout e formulários do Magento 2 e…
A partir de 06/07/2026 a Receita passa a emitir CNPJ alfanumérico. Conheça o plugin grátis que aplica máscara e validação…
Para remover um módulo do Magento 2, siga os passos abaixo: 1. Desabilitar o módulo Primeiro, desabilite o módulo usando…
Para cancelar 100% do pedido e criar um crédito para todos os itens através da API REST do Magento 2,…
No Magento 2, a quantidade "reservada" na "Salable Quantity" é gerenciada principalmente pelos módulos MSI (Multi-Source Inventory). A "Salable Quantity"…
Como corrigir o erro ao acessar o Admin do Magento 2. Mesmo após fazer o login, permanece na tela de…