Vous devez ajouter un nouveau collecteur après le grand total (Mage_Sales_Model_Quote_Address_Total_Grand). Il doit modifier la somme qui a été définie par le grand collectionneur total. J'ai parlé d'un tel cas lors de la conférence MageConf en Ukraine il y a une semaine. La vidéo et les diapositives ne sont pas encore disponibles, mais download demo-module a été décrit lors de la conférence. Il y a un exemple de collecteur total qui calcule le prix d'emballage.
Vous pouvez modifier ma démo collector totale donc il sera inséré dans la collecte de processus après collecteur Total (voir config.xml dans le module etc répertoire - supprimer <before>subtotal</before>
nœud puis utiliser à la place <after>grand_total</after>
) et modifier collectionnez() méthode juste pour définir les grands totaux à vos valeurs prédéfinies:
$address->setGrandTotal($someValue);
$address->setBaseGrandTotal($someBaseValue);
Ou vous pouvez laisser ce module comme il est, mais fixé les totaux négatifs en elle. Ainsi, le grand collectionneur total les soustraira et diminuera la grande valeur totale comme vous le souhaitez. Dans ce cas également, le client pourra voir vos valeurs négatives (donnez-les en méthode fetch()) et comprendre pourquoi les totaux généraux ont été abaissés.
Amusez-vous :)
excellent exemple –
merci pour l'aide, mais je veux changer le prix du panier avant de placer le nouveau processus de commande/commande. Est-ce que ça marche avec la même chose? – smart
ouais, il fonctionne le même –