Come sapere se un ordine viene pagato? Quando "stato" è "elaborazione"?


8

Sto eseguendo Magento 1.6.2.

Devo determinare se un ordine viene pagato. In caso affermativo, generi alcuni dati XML per l'esportazione. Esistono molti casi nel flusso di lavoro di ordine / pagamento / spedizione Magento.

La mia prima ipotesi è quando l'attributo "stato" dell'ordine è definito come "elaborazione", ma non sono sicuro a causa della grande quantità di possibilità in questo flusso di lavoro. Potrebbe essere questo caso non copre tutte le possibilità ...

Ho ragione con quello?


Verifica se è stata generata una fattura per l'ordine.
Marius

Basta fatturare? Nessun altra roba? Sono sorpreso, sembra troppo facile essere vero aha. Grazie per l'aiuto!
guillaume_shm,

Di solito la presenza di una fattura significa che è stata pagata.
Marius

Non è sufficiente in tutti i casi, poiché una fattura può essere non pagata. È possibile che una fattura non copra tutti gli articoli ordinati, quindi potrebbe esserci più di una fattura.
Andreas von Studnitz,

La verifica dello stato può fare in base al flusso di lavoro, ma lo stato "elaborazione" può anche significare che l'ordine è stato inviato, ma non ancora pagato. Non lo userei.
Andreas von Studnitz,

Risposte:


22

Puoi chiamare $order->getBaseTotalDue(). Se questo è 0, l'ordine è completamente pagato.


Grazie Andreas, questa risposta sembra essere quella che si adatta di più alla mia risposta.
guillaume_shm,

1

Vedi la risposta di Andreas su come determinare se c'è ancora qualcosa da pagare. Per rispondere a un'altra domanda, l'utilizzo dell'elaborazione state == non è abbastanza buono. Un rapido test per dimostrare questo è spedire un ordine non pagato - questo sposterà anche un ordine allo stato di elaborazione anche se l'ordine non è ancora pagato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.