Получить текущий код заказа в модуле оплаты magento во время оформления заказа - PullRequest
4 голосов
/ 13 января 2012

Я реализую свой собственный модуль оплаты для Magento, где я применил метод getCheckoutRedirectUrl () в своей модели оплаты.

class My_Module_Model_Payment extends Mage_Payment_Model_Method_Abstract {}

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

Проблема не в том, что я не могу получить orderId.Я пробовал решение, так как принято здесь

$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();

, но я получил пустой $ orderId.Так что, похоже, это не работает в моем методе.Вызов не приводит к ошибке, поэтому я получаю объект (например, Mage :: getSingleton ('checkout / session') -> getQuote () -> getSubtotal () возвращает сумму заказа), но orderId пуст.

Я также пытался:

$order = Mage::getModel('sales/order');
$order->load(Mage::getSingleton('sales/order')->getLastOrderId());
$orderId = $order->getIncrementId();

, который снова возвращает пустой $ orderId.

Любые идеи?

1 Ответ

15 голосов
/ 13 января 2012

Ваш вопрос, как написано, нелогичен.

Нет идентификатора заказа во время оформления заказа . Пока вы проверяете, Magento создает объект sales/quote. Этот объект используется для отслеживания элементов цитаты. Только когда проверка завершена, объект sales/order создается из цитаты.

Причина, по которой getLastOrderId возвращается пустым, заключается в том, что не было размещено ни одного заказа.

Повторение вашего вопроса с точкой, в которой вы находитесь, и то, что вы пытаетесь сделать с помощью идентификатора заказа, может помочь кому-то найти часть информации, которая вам не нужна.

Удачи!


Авторское решение:

Проблема была решена первым получением идентификатора цитаты из оформления заказа / сессии:

Mage::getSingleton('checkout/session')->getQuoteId(); 

и затем заключить объект в кавычку с идентификатором:

$quote = Mage::getModel("sales/quote")->load($quoteId); 
...