Nous travaillons dans une version 1.9 & php7; a détecté ce problème avec une fraude suspecte paypal (en raison du montant de la différence).
Tout est correct en frontend (appliquer les taxes); mais lors du paiement et du calcul, magento utilise le grand total sans taxes.
Calcul réel de la mauvaise commande:
Prix du produit hors taxes + expédition avec taxes = montant total du paiement
Passez en php5 et le calcul est correct.
Une idée?
Merci!
magento-1.9
tax
php-7
Joan M
la source
la source
Réponses:
Solution
J'ai créé un module magento pour résoudre les problèmes magento avec le calcul des totaux pour php7. Les problèmes que j'ai rencontrés en particulier étaient que les taxes ont été ajoutées deux fois au grand total pour le paiement avec le module amazon sur la page de paiement amazonpayments.
Crédits
La réponse fournie par archigrafix dans cet article ( /magento//a/97107/35665 ) a résolu mes problèmes - il s'agit donc simplement du correctif intégré dans un module.
Module:
https://github.com/hartmut-ltd/magento-php7-totals-fix
la source
Je ne sais vraiment pas si cela va aider de quelque façon que ce soit, mais quelque chose à examiner.
Il est possible que votre
collecttotals
modèle de commande soit différent et que la taxe soit commandée / appliquée après grand_totalVous pouvez tester si c'est le problème comme suit. (notez que cela implique d'ajuster un fichier core pour obtenir des informations de débogage, veuillez ne pas essayer ceci sur un site en direct!)
Modifiez la méthode située dans:
Mage_Sales_Model_Quote_Address::collecttotals
et ajoutez une ligne à la méthode, ce qui vous permettra de sortir les modèles au fur et à mesure de leur traitement.
assurez-vous que la journalisation est activée.
suivre le fichier journal via la console:
tail -f system.log
Reproduisez le problème via le frontend.
Vous obtiendrez les entrées comme suit dans votre journal (ceci à partir d'une vanilla 1.9.2.2 - vous pouvez avoir d'autres entrées)
Vous le verrez se répéter, alors voyez simplement où il commence et se termine, il devrait être facile de voir le motif
Notez les deux dernières entrées ci-dessus: la taxe précède le grand_total. Il est possible que cette commande soit hors de contrôle et que la taxe apparaisse après grand_total, donc grand_total n'aura pas de taxe appliquée.
ÉDITER:
D'accord, je n'ai donc pas vu que la question renvoyée indique en fait que le tri des documents collectifs était en cause. Je soupçonne que cela peut être le problème, mais je ne l'ai pas testé moi-même en PHP7
Il y a une solution, mais ce n'est pas très agréable. Toute nouvelle extension placée dans le magasin, qui insère des modèles dans le collecteur, devrait être notée et ajoutée au tri, sinon les choses pourraient aller encore plus mal. Peut être un peu un problème de maintenance à l'avenir.
Forcez simplement l'ordre de tri en plaçant un spécifique
<sort_order>
dans la configuration des totaux. Vous pouvez le faire via votre propre extension, qui n'aurait qu'un config.xml, où vous spécifiez l'ordre pour chaque collecteur.dans le config.xml, ont la directive en tant que telle:
Utilisez de grands espaces entre chaque directive de tri, pour permettre à l'espace d'insérer davantage à l'avenir.
Comme mentionné, pas très élégant, mais peut résoudre votre problème immédiat.
Notez également qu'il existe d'autres directives de collecteur dans le système, elles peuvent donc également être erronées / nécessiter un ajustement
Vérifiez l'extension de vente principale config.xml et recherchez
<totals>
Vous y trouverez:
Il peut y en avoir d'autres dans d'autres extensions, que ce soit le noyau / tiers
J'espère que cela pourra aider.
PS: Je n'ai testé rien de tout cela en PHP7. Je sais que le placement de la directive sort_order fonctionne sous php5.x
la source
Sur Magento 1.6.2 et PHP 7.0.2, je l'ai résolu de cette façon:
1 - Créé d'abord un config.xml local: copié /app/code/core/Mage/Sales/etc/config.xml dans /app/code/local/Mage/Sales/etc/config.xml
2 - Changé comme ça
Maintenant, il calcule correctement:
la source