Estou trabalhando há 2 dias para aplicar vários cupons no carrinho. Sei que existem módulos disponíveis para isso. Mas eu não quero usá-lo. Quero um código personalizado para que eu possa aplicar mais de 1 código de cupom no pedido único.
Por favor ajude. Estou muito cansado depois de trabalhar nas mesmas coisas.
ce-1.9.0.1
coupon-codes
Zaheerabbas
fonte
fonte
Respostas:
No seu módulo personalizado, adicione o seguinte a
config.xml
:A primeira é uma reescrita
Mage_SalesRule_Model_Quote_Discount
paraNamespace_Module_Rewrite_SalesRule_Model_Quote_Discount
O segundo é o controlador sobrecarregado
Mage_Checkout_CartController
Em seguida, adicione o seguinte arquivo
app/code/community/Namespace/Module/controllers/Checkout/CartController.php
e insira o seguinte código:Você notará que eu adicionei uma seção para combinar códigos de cupom delimitados por ",". Obviamente, isso pode ser mais refinado e você pode adicionar verificações adicionais, etc., mas esse código deve funcionar imediatamente.
E, finalmente, precisamos adicionar a peça que faz toda a mágica. Adicione o arquivo
app/code/community/Namespace/Module/Rewrite/SalesRule/Model/Quote/Discount.php
e adicione o conteúdo:
Basicamente, o que isso faz é quebrar a picada do cupom, percorrer cada código de cupom, calcular e atualizar os totais da cotação.
Para testar, eu configurei 2 regras do carrinho de compras:
Sem cupom:
Teste de cupom 1 adicionado:
Teste de cupom adicionado 2
Eu testei com desconto de valor fixo e isso funciona como esperado também.
E, como eu disse, você pode precisar adicionar verificações adicionais, possivelmente duplicatas, mas é aqui que você começaria. Para o frontend, você pode adicionar alguma lógica, dividir os códigos da maneira que preferir ou deixar como está.
fonte