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?

guillaume_shm
la source
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.

Andreas von Studnitz
la source
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.

Kristof chez Fooman
la source