Magento Получить последний идентификатор заказа по электронной почте - PullRequest
1 голос
/ 10 февраля 2012

Magento New Order Email

См. Выше изображение электронной почты с подтверждением заказа Magento. На веб-сайте, который мы разрабатываем, мы используем расширение Fontis Australia (http://www.magentocommerce.com/magento-connect/fontis-australia.html) для реализации метода оплаты BPay. Расширение работает нормально, за исключением того, что в электронном письме с подтверждением заказа в сообщении электронной почты всегда отображается 000000.

Я пытаюсь взглянуть на него и увидеть, что для сгенерированного номера ссылки требуется идентификатор заказа в качестве входных данных, чтобы сгенерировать правильный номер ссылки. Расширение использует этот код для получения последнего номера заказа в блоке информации о платеже: $ order_id = Mage :: getSingleton ('checkout / session') -> getLastRealOrderId ();

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

Может ли кто-нибудь предложить другой способ получения идентификатора последнего заказа в блоке информации об оплате в электронной почте Magento?

1 Ответ

3 голосов
/ 10 февраля 2012

В информационном шаблоне вы можете использовать $order = $this->getInfo()->getOrder();, чтобы получить Mage_Sales_Model_Order объект. Тогда вы можете получить идентификатор текущего заказа по $ order->getData('increment_id').

Но с этим кодом вы получаете ошибку в процессе оформления заказа, потому что $this->getInfo() возвращает другую модель.

Итак, грязное решение, которое работает для меня без ошибок:

$info = $this->getInfo();   
if ($info instanceof Mage_Sales_Model_Order_Payment) {
    $order = $info->getOrder();
    echo $order->getData('increment_id'));
}
...