Mogę z powodzeniem przekonwertować zamówienie na wycenę, ale nadal nie mogę załadować go do bieżącego koszyka. Próbowałem kilku metod, ale bezskutecznie. Oto najprostszy:
$_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save();
$_quote = Mage::getModel('sales/quote')->load($_quote->getId());
$_quote->setIsActive(true)->save();
Udało mi się uzyskać identyfikator oferty, ale obiekt oferty nie ładuje się do bieżącego koszyka.
Też próbowałem
$_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();
}
i podobne podejścia, ale wciąż nie ładuje oferty. Dziękuję Ci bardzo!
magento-enterprise
orders
sales
quote
użytkownik1240207
źródło
źródło
Poprzednia odpowiedź działa tylko wtedy, gdy cytat jest nadal dostępny w bazie danych. Natrafiłem na sytuację, w której już tak nie było, więc ten kod nie działa:
Zamiast tego możemy użyć metody
Mage_Sales_Model_Convert_Order
do konwersji istniejącego zamówienia z powrotem na nową ofertę za pomocątoQuote(Mage_Sales_Model_Order $order)
metody Przyjmuje zamówienie jako dane wejściowe i generuje nowy obiekt cytowania.Musisz wywołać dodatkowe funkcje do konwersji adresu rozliczeniowego / wysyłkowego, przedmiotów itp. Dla każdego obiektu znajdziesz funkcję w tej klasie.
źródło