Comment savoir si une commande est payée? Quand «état» est «traitement»?


8

J'utilise Magento 1.6.2.

Je dois déterminer si une commande est payée. Si oui, je génère des données XML pour l'exportation. Il existe de nombreux cas dans le workflow de commande / paiement / expédition de Magento.

Ma première supposition est quand l'attribut "état" de la commande est défini comme "traitement", mais je ne suis pas sûr en raison de la grande quantité de possibilités dans ce flux de travail. Peut-être que ce cas ne couvre pas toutes les possibilités ...

Suis-je d'accord avec ça?


Vérifiez s'il y a une facture générée pour la commande.
Marius

Juste facturer? Pas d'autre truc? Je suis surpris, il semble trop facile d'être vraiment aha. Merci de votre aide!
guillaume_shm

Habituellement, la présence d'une facture signifie qu'elle a été payée.
Marius

Ce n'est pas suffisant dans tous les cas, car une facture peut être impayée. Et il est possible qu'une facture ne couvre pas tous les articles commandés, il peut donc y avoir plus d'une facture.
Andreas von Studnitz

La vérification de l'état peut dépendre de votre workflow, mais l'état "traitement" peut également signifier que la commande est envoyée, mais pas encore payée. Je n'utiliserais pas ça.
Andreas von Studnitz

Réponses:


22

Vous pouvez appeler $order->getBaseTotalDue(). Si c'est 0, la commande est entièrement payée.


Merci Andreas, cette réponse semble être celle qui correspond le mieux à ma réponse.
guillaume_shm

1

Voir la réponse d'Andreas sur la façon de déterminer s'il reste quelque chose à payer. Pour répondre à votre autre question - l'utilisation du traitement state == n'est pas suffisante. Un test rapide pour le prouver consiste à expédier une commande non payée - cela fera également passer une commande à l'état de traitement même si la commande n'est toujours pas payée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.