Magento

Restringir um método de pagamento por grupo de cliente – Magento

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”.

Função de exemplo

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’){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.

Post Recentes

CNPJ alfanumérico Magento 2: módulo grátis com máscara e validação

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…

4 dias atrás

CNPJ alfanumérico no WooCommerce: plugin grátis de máscara e validação

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…

4 dias atrás

Como remover um modulo do Magento 2

Para remover um módulo do Magento 2, siga os passos abaixo: 1. Desabilitar o módulo Primeiro, desabilite o módulo usando…

1 ano atrás

Criar um memorando de crédito (cancelar) invoice no Magento 2

Para cancelar 100% do pedido e criar um crédito para todos os itens através da API REST do Magento 2,…

2 anos atrás

Consultando no banco quantidade disponivel para Venda (estoque)

No Magento 2, a quantidade "reservada" na "Salable Quantity" é gerenciada principalmente pelos módulos MSI (Multi-Source Inventory). A "Salable Quantity"…

2 anos atrás

Admin do Magento 2 não acessa

Como corrigir o erro ao acessar o Admin do Magento 2. Mesmo após fazer o login, permanece na tela de…

2 anos atrás