Bagaimana cara mengetahui apakah pesanan telah dibayarkan? Kapan "status" sedang "diproses"?

8

Saya menjalankan Magento 1.6.2.

Saya perlu menentukan apakah pesanan telah dibayarkan. Jika ya, saya menghasilkan beberapa data XML untuk ekspor. Ada banyak kasus dalam alur kerja pesanan / pembayaran / pengiriman Magento.

Dugaan pertama saya adalah ketika atribut "state" dari order didefinisikan sebagai "processing", tapi saya tidak yakin karena banyaknya kemungkinan dalam alur kerja ini. Mungkin kasus ini tidak mencakup semua kemungkinan ...

Apakah saya benar dengan itu?

guillaume_shm
sumber
Periksa apakah ada faktur yang dihasilkan untuk pesanan.
Marius
Faktur saja? Tidak ada barang lain? Saya terkejut, sepertinya terlalu mudah untuk menjadi nyata aha. Terima kasih untuk bantuannya!
guillaume_shm
Biasanya kehadiran faktur berarti sudah dibayar.
Marius
Itu tidak cukup dalam semua kasus, karena faktur dapat dibayar. Dan mungkin saja faktur tidak mencakup semua barang yang dipesan, jadi mungkin ada lebih dari satu faktur.
Andreas von Studnitz
Memeriksa status dapat dilakukan tergantung pada alur kerja Anda, tetapi status "pemrosesan" juga dapat berarti bahwa pesanan dikirim, tetapi belum dibayar. Saya tidak akan menggunakannya.
Andreas von Studnitz

Jawaban:

22

Anda bisa menelepon $order->getBaseTotalDue(). Jika ini 0, pesanan dibayar penuh.

Andreas von Studnitz
sumber
Terima kasih Andreas, jawaban ini sepertinya yang paling cocok dengan jawaban saya.
guillaume_shm
1

Lihat jawaban Andreas tentang cara menentukan apakah masih ada yang tersisa untuk dibayar. Untuk menjawab pertanyaan Anda yang lain - menggunakan status == pemrosesan tidak cukup baik. Tes cepat untuk menunjukkan ini adalah untuk mengirimkan pesanan yang belum dibayar - ini juga akan memindahkan pesanan ke status pemrosesan meskipun pesanan masih belum dibayar.

Kristof di Fooman
sumber