Estamos trabalhando em um 1.9 & php7; detectou esse problema com suspeita de fraude no paypal (devido ao valor da diferença).
Tudo correto no frontend (aplicar impostos); mas no checkout e no cálculo, o magento usa o total geral sem impostos.
Cálculo real da ordem incorreta:
Preço do produto sem impostos + frete com impostos = valor total do pagamento
Mude para php5 e o cálculo está correto.
Alguma idéia?
Obrigado!
magento-1.9
tax
php-7
Joan M
fonte
fonte
Respostas:
Solução
Eu criei um módulo magento para resolver problemas de magento com cálculo de totais para php7. Os problemas que experimentei em particular foram que os impostos foram adicionados duas vezes ao total geral para pagamento com o módulo amazon na página de pagamento da amazonpayments.
Créditos
A resposta fornecida pelo archigrafix nesta postagem ( /magento//a/97107/35665 ) resolveu meus problemas - portanto, essa é simplesmente a correção compactada em um módulo.
Módulo:
https://github.com/hartmut-ltd/magento-php7-totals-fix
fonte
Realmente não sei se isso vai ajudar de alguma forma, mas algo para investigar.
É possível que o
collecttotals
pedido do seu modelo esteja sendo pedido de forma diferente e esse imposto esteja sendo solicitado / aplicado após grand_totalVocê pode testar se esse é o problema da seguinte maneira. (observe que isso envolve ajustar um arquivo principal para obter algumas informações de depuração, não tente isso em um site ativo!)
Edite o método localizado em:
Mage_Sales_Model_Quote_Address::collecttotals
e adicione uma linha ao método, que permitirá a saída dos modelos à medida que são processados.
verifique se o log está ativado.
Tail o arquivo de log através do console:
tail -f system.log
Reproduza o problema pelo frontend.
Você obterá as entradas da seguinte maneira em seu log (isto é de um vanilla 1.9.2.2 - você pode ter outras entradas)
Você o verá se repetir; portanto, apenas veja onde começa e termina; deve ser fácil ver o padrão
Observe as duas últimas entradas acima: O imposto vem antes de grand_total. Ele pode ser possível esta ordenação é fora de louco, e imposto está aparecendo depois grand_total, então grand_total não terá impostos aplicados.
EDITAR:
Ok, então eu não vi a pergunta referida realmente aponta para a classificação dos colecionáveis como o problema. Suspeitei que esse seja o problema, mas ainda não testei isso no PHP7
Existe uma solução, mas não é muito agradável. Qualquer nova extensão colocada na loja, que insere modelos no coletor, precisaria ser notada e adicionada adicionalmente à classificação, caso contrário, as coisas poderiam dar ainda mais errado. Pode ser um problema de manutenção daqui para frente.
Simplesmente force a ordem de classificação colocando um específico
<sort_order>
na configuração de totais. Você pode fazer isso através de sua própria extensão, que teria apenas um config.xml, onde você especifica a ordem para cada coletor.no config.xml, tenha a diretiva como tal:
Use grandes lacunas entre cada diretiva de classificação, para permitir espaço para inserir mais adiante.
Como mencionado, não é muito elegante, mas pode resolver seu problema imediato.
Observe também que existem outras diretivas de coletor no sistema, portanto elas também podem estar erradas / precisando de ajuste
Verifique a extensão de vendas principal config.xml e procure por
<totals>
Lá você encontrará:
Pode haver outros em outras extensões, seja ele principal / de terceiros
Espero que ajude.
PS: Eu não testei nada disso no PHP7. Eu sei que a colocação da diretiva sort_order funciona em php5.x
fonte
No Magento 1.6.2 e PHP 7.0.2, resolvi-o desta maneira:
1 - Criou primeiro um config.xml local: Copiado /app/code/core/Mage/Sales/etc/config.xml em /app/code/local/Mage/Sales/etc/config.xml
2 - Alterou assim
Agora calcula corretamente:
fonte