Posso converter com sucesso converter um pedido em cotação, mas ainda não consegui carregá-lo no carrinho atual. Eu tentei vários métodos, mas sem sucesso. Aqui está o mais simples:
$_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save();
$_quote = Mage::getModel('sales/quote')->load($_quote->getId());
$_quote->setIsActive(true)->save();
Consegui obter o ID da cotação, mas o objeto de cotação não é carregado no carrinho atual.
Eu também tentei
$_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();
}
e abordagens semelhantes, mas ainda não carregando a cotação. Muito obrigado!
magento-enterprise
orders
sales
quote
user1240207
fonte
fonte
A resposta anterior funciona apenas se a cotação ainda estiver disponível no banco de dados. Eu me deparei com uma situação em que isso não era mais o caso, então esse código não funciona:
Em vez disso, podemos usar o
Mage_Sales_Model_Convert_Order
para converter um pedido existente novamente em uma nova cotação usando otoQuote(Mage_Sales_Model_Order $order)
método Ele recebe um pedido como entrada e gera um novo objeto de cotação.Você precisa chamar funções extras para converter o endereço de cobrança / entrega, itens etc. Para cada objeto, você encontrará uma função nesta classe.
fonte