Как восстановить цитату в Magento при возврате к странице Onepage? - PullRequest
1 голос
/ 20 декабря 2010

Я использую Magento Enterprise с модулем оплаты Datacash 3D Secure.

В случае ошибки во время процесса оплаты, я хочу, чтобы пользователь вернулся на одностраничный заказ с неповрежденной корзиной.В настоящее время, когда пользователь возвращается к оформлению заказа, корзина пуста, поэтому его перенаправляют в «оформление заказа / корзину», поскольку у него нет товаров.

Я подумал, что это может быть проблема с моим кодом, поэтомупервоначальное действие по платежу, перенаправляющее сразу же с ошибкой обратно на одностраничный заказ.

 public function redirectAction() {
  Mage::getSingleton('core/session')->addError("There was a problem with the payment gateway. Please try again");
  $session = Mage::getSingleton('checkout/session');
  return $this->_redirect('checkout/onepage/', array('_secure'=>true));
}

Однако при возврате на страницу оформления заказа корзина пуста.Добавив в следующий логин в indexAction одной страницы оформления заказа, я получаю «Quote».При поиске в базе данных для активного предложения установлено значение 0.

 error_log("Quote ".Mage::getSingleton('checkout/session')->getQuoteId());

Я не сталкивался с этой проблемой при использовании стандартного Magento только с Enterprise.Кто-нибудь сталкивался с этой проблемой?В идеале я не хочу, чтобы покупатели снова добавляли продукты в корзину.Это похоже на конфликт с каким-то модулем Magento Enterprise.

Заранее спасибо за любую помощь!

1 Ответ

4 голосов
/ 20 декабря 2010

В основном вы ответили на свой вопрос.загрузить цитату (если она недоступна) и выполнить это:

$yourQuote()->setIsActive(true);
...