Magento & Paypal fiscal arrondi problème
J'ai quelques questions d'arrondi avec Paypal et Magento 1.7.0.2 - Tous les prix indiqués sur le site comprennent la taxe et l'impôt est calculé au taux de 20% (TVA).
Je vais aller à la caisse et tout est correct:
Je puis cliquez sur passer la commande, et Paypal sera comme ceci, ce qui est incorrect, car le grand total est maintenant 1p moins. Cela semble être la cause de la manière dont l'impôt est arrondie.
Dans certains cas, cela fonctionne bien, mais dans d'autres, l'impôt est arrondie de manière incorrecte. J'ai essayé de faire des changements à la méthode de calcul de l'impôt calcTaxAmount() dans app/code/core/Mage/Tax/Model/Calculation.php
J'ai ajouté ceci à la calcTaxAmount méthode qui semble pour le fixer, mais il cause le prix sur la page du produit pour ensuite être incorrecte (1p moins).
$amount = $this->roundUp($amount);
Je suis pratiquement certaine que c'est un bug, mais je suis à court d'idées. Si quelqu'un a rencontré ce avant et a une solution, je serais heureux de l'entendre. Toute aide appréciée.
EDIT: Voici mes paramètres d'impôt dans Magento
Je vais ajouter une capture d'écran des paramètres d'impôt à mon poste.
Essayez de changer de calcul de la taxe basée sur le Prix à l'Unité. Je pense qu'il sera plus compatible avec le royaume-UNI loi de l'impôt. Si il ne va pas aider, je vous indiquera les endroits où il est possible de changer.
Est-il possible d'arrêter Paypal à partir du calcul de l'impôt lui-même? Au lieu de cela, je voudrais qu'il suffit d'utiliser les données qui lui sont envoyées.
Modification de la façon dont l'impôt est calculé soit à l'unité ou de la ligne signifie le grand total dans mon panier était maintenant 1p plus, donc mon panier total était de £55.41 - on dirait que je ne peux pas utiliser cette méthode..
OriginalL'auteur Adam Moss | 2012-08-08
Vous devez vous connecter pour publier un commentaire.
Je crois que j'ai trouvé la solution à ce problème qui hante la communauté.
Si vos prix incluent les taxes, le calcul de l'impôt est mal.
Voici la solution - Dans Mage_Tax_Model_Calculation::calcTaxAmount():
changer la condition:
:
De sorte que la condition ressemble à:
Pour plus de détails, consultez mes commentaires: http://www.magentocommerce.com/boards/viewthread/247201/P45/
Rappelez-vous de ne pas modifier les fichiers de base - créer une copie locale
C'est ne fonctionne pas. Je suggère de suivre magentocommerce.com/boards/viewthread/247201/P45/#t415016
Cela peut arranger cela, parfois, mais pas toujours. Il peut aussi afficher une erreur une fois que vous obtenez de retour de PayPal/ drapeau de l'ordre comme de la fraude. La recherche se poursuit..
OriginalL'auteur MikeNatty
Je "fixe" cela aujourd'hui car j'client mais pas vraiment heureux avec la solution. Mais il fonctionne.
Il est préférable si vous copiez ce fichier dans votre dossier local:
app/code/core/Mage/Paypal/Model/Api/Nvp.php
J'ai ajouté ce code (Uniquement pour le paiement express) sur la ligne 606 sorte qu'il ressemble à ceci.
Et vous avez besoin à son tour de Chariot de Transfert dans les postes paypal moule dans le backend
Si quelqu'un sait d'une meilleure solution, puis il suffit d'écraser la shippingcost laissez-moi savoir
OriginalL'auteur ShopWorks
Ce problème a été semés sur moi (et par les regards de celui-ci magento community pour les âges), grâce à ShopWorks pousser dans la bonne direction (y compris son extrait de code, merci s'accoupler! Cependant, il serait bug si en remontant vers le panier de express checkout, ajout d'une case à l'empêcher.) de dollars sur les paramètres de la requête, je suis venu avec le correctif suivant (hack):
Sur la ligne de 606 Nvp.php placez les éléments suivants:
En outre, les informations suivantes doivent également être placée à l'intérieur de la fonction call () (ligne 938 de Nvp.php):
C'est un hack, et la traiter comme telle. Mon collègue est en train de tester mais il semble être OK pour le moment, il est également utile de définir la méthode de calcul de l'impôt par unité de prix (nos comptables sont heureux de cet arrangement, mais c'est pour le royaume-UNI, je ne sais pas si d'autres pays se froncer les sourcils sur cette méthode de calcul de l'impôt).
La raison pour laquelle je suis la manipulation de l' $request['AMT'] est parce que, parfois, le calcul de l' $finalValue variable serait de produire un -0.9999 répéter entier qui n'est d'aucune utilité à personne, mes maths suce donc, si quelqu'un veut améliorer sur ce, merci de le faire!
Comme toujours, n'écrasez pas les nvp.php dans le cœur de répertoire, créez un autre module de réécriture ou de le faire dans app/locale/mage. Première option de préférence! 🙂
Juste une mise à niveau vers 1.9.1.0 et voilà c'est toujours un problème! Ne pas déplacer cette substitution sur le 1.9 codebase pensant qu'ils pourraient avoir fixé, j'avais tort!
Cela a fonctionné un peu pour moi, mais il y avait toujours un problème quand nous sommes retournés à l'Magento page de confirmation de PayPal Express, en disant: "Le total du panier d'un article montants ne correspondent pas au montant de l'ordre". Les transactions peuvent être marqués comme la fraude par PayPal.
OriginalL'auteur evensis
Il y a un "bug" sur Paypal dans un module magento (au moins sur mon Magento 1.8.0);
Elle réside dans le
Mage_Paypal_Model_Cart
classe.Pour valider que les quantités sont correctes, la méthode
_validate()
à la ligne 381 somme de tous les éléments de prix de l'ordre, ajoute les frais d'expédition et les taxes, et compare le résultat avec la valeur totale de la commande (obtenu à partir de l'ordre de la méthodegetBaseGrandTotal()
)Mais parfois, il y a un 0.009999999999999999 différence entre les montants (il doit venir de différents arrondis méthodes, je ne sais pas); si les éléments ne sont pas valides et la méthode
getItems()
de la ligne 146 renvoie la valeur false.Dans mon cas, cela a entraîné des clients de payer un montant différent et une "suspicion de fraude" drapeau sur leurs commandes.
Je l'ai corrigé en modifiant la méthode de comparaison (ligne 404) à partir de :
à
J'espère encore qu'il n'y aura pas de diff de plus de 0.009999999 dans le futur...
Espère que cette aide.
OriginalL'auteur Bouni
Je suis en CE1.7.0.2 et avez été coincé sur ce problème pendant des jours, j'ai essayé plusieurs solutions, et a finalement atterri sur Adam Hall fix/hack. L'idéal semble raisonnable pour moi, donc j'ai appliqué sur mon site et tout allait bien jusqu'à ce matin, j'ai réalisé que l'ajustement sur le montant de la taxe ne fonctionne pas pour notre situation.
Nous sommes en Californie et la vente de truc dans tous les états, les clients de la Californie sera facturé pour la taxe de vente, tandis que d'autres à l'extérieur ne sera pas. Donc, lorsque le montant de la taxe est égal à zéro et devez soustraire la différence, il va générer un impôt négatif montant qui, évidemment, sera rejetée par paypal. Alors, quand en soustrayant la différence de montant de la taxe, j'ai ajouté une instruction conditionnelle
Si le montant de la taxe est égal à zéro, je vais ajuster le montant des frais de port au lieu du montant de la taxe. (Assurez-vous si à la fois l'impôt et d'expédition sont libre, cela ne fonctionnera pas, mais je ne pense pas que cela soit réel des entreprises.) Espérons que cela pourrait aider ceux qui ont le même problème que nous.
OriginalL'auteur Alex Liu
je viens de changer de transfert des éléments de ligne panier à "NON", sans le code ci-dessus changer.. et cela a fonctionné.
Magento 1.9.0.1
juste FYI - tester si cela fonctionne pour vous.
Dmytro
OriginalL'auteur Dmytro Soroka