Я пишу пользовательский одностраничный заказ Magento 1.5.0.1 для своего сайта, следуя инструкциям на этом сайте: http://inchoo.net/ecommerce/magento/magentos-onepage-checkout-in-a-nutshell/
В итоге я называю эти функции по порядку:
$checkout = Mage::getSingleton(‘checkout/type_onepage’);
$checkout->saveCheckoutMethod(‘guest’);
$checkout->saveBilling($billingAddress, false);
$checkout->saveShipping($shippingAddress, false);
$checkout->saveShippingMethod(‘flatrate_flatrate’);
$checkout->savePayment(array(‘method’=>’checkmo’));
// Extra part not on the site but saw it in the original magento onpage checkout controller
$checkout->getQuote()->getPayment()->importData(array(‘method’=>’checkmo’));
//
$checkout->saveOrder();
// Extra part not on the site but saw it in the original magento onpage checkout controller
$checkout->getQuote()->save();
//
Проблема в том, что при первом запуске кода метод доставки не устанавливается, я получаю сообщение об ошибке, в котором говорится, что метод доставки не был установлен.Тем не менее, только обновление страницы приводит к выполнению заказа.
Одно из решений состояло в том, что сразу после установки метода доставки с помощью saveShippingMethod было проверено, установлено ли оно с помощью:
Mage::getSingleton('checkout/type_onepage')->getQuote()->getShippingAddress()->getShippingMethod();
, что на 100%если это не так, то перенаправьте его обратно на ту же страницу, на которой во 2-м запуске устанавливается метод доставки ...
это кажется такой глупой ошибкой magento!какие-либо идеи о том, как это исправить с помощью этого перенаправления (например, обновление страницы)?