Les produits en magasin sont fournis par différents fournisseurs. Il est nécessaire de créer plusieurs commandes pour chaque fournisseur en fonction de ses produits dans le panier lors d'une seule commande. Existe-t-il une extension pour réaliser cette tâche ou dois-je commencer à développer un module de paiement personnalisé. Qu'en est-il des points chauds pour créer une telle vision d'extension des développeurs expérimentés de Magento? Pouvez-vous m'expliquer une brève architecture de flux de paiement compatible avec Magento (aussi possible que le niveau de code)? Merci beaucoup plus!
checkout
code
order-splitting
mageUz
la source
la source
Réponses:
C'est faisable assez facilement avec une réécriture du
checkout/type_onepage
modèle.Dans cette classe, remplacez la
saveOrder()
méthode comme suit:Mais sachez que dans Magento, un paiement est associé à une facture, et chaque facture est associée à une commande.
En conséquence, cela signifie que dès que vous avez plusieurs commandes, vous avez également fractionné les paiements . Cela n'est donc possible que si le mode de paiement ne nécessite pas d'interaction de l'utilisateur lors du paiement.
MISE À JOUR : La réponse originale déléguée à
parent::save()
laquelle devait êtreparent:saveOrder()
. Il est maintenant corrigé dans l'exemple de code.la source
saveOrder
est toujours présente et active dans Magento CE 1.9 comme elle l'a toujours été.Ce qui suit est testé dans CE ver 1.9.0.x
IMPORTANT Vous devez personnaliser vos méthodes de paiement pour récupérer le total général du devis.
la source
$group[] = $item; // all other items in one order
peut contenir plusieurs articles par commande, vous pouvez facilement modifier de telle sorte que chaque fournisseur possède le sien$group
.$quote->Mage::getModel('sales/quote')->load($lastOrder->getQuoteId())
. Ensuite, vous pouvez récupérer de nombreux totaux$quote
, dont l'un est$quote->getGrandTotal()