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.