Saya dapat dengan sukses mengkonversi konversi pesanan menjadi kutipan tetapi saya masih tidak dapat memuatnya ke keranjang saat ini. Saya mencoba beberapa metode tetapi tidak berhasil. Inilah yang paling sederhana:
$_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save();
$_quote = Mage::getModel('sales/quote')->load($_quote->getId());
$_quote->setIsActive(true)->save();
Saya bisa mendapatkan ID kutipan tetapi objek kutipan tidak memuat ke troli saat ini.
Saya juga mencoba
$_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save();
$_quote = Mage::getModel('sales/quote')->load($_quote->getId());
if ($_checkoutQuote->getId() != $_quote->getId() && $_quote->getId()) {
$_checkoutQuote->merge($_quote)->save();
Mage::getModel('checkout/session')
->setQuote($_checkoutQuote)
->init();
Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
}
dan pendekatan serupa tetapi masih belum memuat kutipan. Terima kasih banyak!
sumber
Jawaban sebelumnya hanya berfungsi jika kutipan masih tersedia di DB. Saya mengalami situasi di mana ini tidak lagi terjadi, jadi kode ini tidak berfungsi:
Sebagai gantinya, kita dapat menggunakan
Mage_Sales_Model_Convert_Order
untuk mengubah pesanan yang ada kembali menjadi penawaran baru menggunakantoQuote(Mage_Sales_Model_Order $order)
metode ini. Dibutuhkan pesanan sebagai input dan output objek kutipan baru.Anda perlu memanggil fungsi tambahan untuk mengonversi alamat penagihan / pengiriman, barang, dll. Untuk setiap objek Anda akan menemukan fungsi di kelas ini.
sumber