Kami menggunakan Magento EE 1.13.0.2 dengan metode pembayaran Standar Pembayaran Situs Web PayPal . Sayangnya tidak mungkin untuk menetapkan status pesanan untuk pesanan PayPal berbayar di back-end.
Kita perlu mengatur status pesanan khusus ketika pesanan telah berhasil dibayar (dan tidak sebagian). Tutorial untuk mengubah status pesanan PayPal tampaknya sudah ketinggalan zaman, hack yang salah atau jelek.
Dari apa yang saya kumpulkan:
- pembaruan pembayaran akan ditangani oleh PayPal IPN.
- Ada metode yang
Mage_Paypal_Model_Ipn::_registerPaymentCapture()
bertanggung jawab untuk "Memproses pembayaran yang diselesaikan (baik penuh atau sebagian)". - Dalam
Mage_Paypal_Model_Ipn::_registerTransaction()
permintaan dari PayPal dianalisis dan status pembayaran dibandingkan denganMage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED
.
Sejujurnya saya tidak yakin apa yang harus dilakukan dengan informasi ini. Saya dapat menulis ulang Mage_Paypal_Model_Ipn::_registerTransaction()
dan menambahkan kode saya:
// paid
case Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED:
$this->_registerPaymentCapture(true);
// my code here
break;
Tentu saja pengamat acara (mis. Untuk salah satu acara atau acara acara negara) akan jauh lebih baik tetapi saya tidak yakin apakah ada cara yang dapat diandalkan 100% untuk menangkap peristiwa satu kali itu ketika pesanan dibayar sepenuhnya melalui PayPal .
Ada ide?
Memperbarui
Kami memilih untuk mengubah aliran status pesanan kami dan tidak perlu mengubah status lagi. Saya akan membiarkan pertanyaan terbuka untuk beberapa waktu jika seseorang ingin menjawabnya.