Magento: increment_id пуст после первого заказа

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

$chkoutSess = Mage::getSingleton('checkout/session');
$lastOrderId = $chkoutSess->getLastOrderId();
$order = Mage::getModel('sales/order');
$order->load($lastOrderId);
$incid = $order->getData("increment_id");

Я думаю, это можно сделать намного проще, но это работает для меня. У меня проблема с этим в том, что $order совершенно пуст, когда я заказываю что-то "в первый раз". После этого всегда работает. Поэтому я думаю, что могу получить эти данные из объекта сеанса только тогда, когда есть реальный сеанс... это, конечно, бессмысленно, потому что всегда должен быть «lastOrderId», когда клиент что-то заказывает. Есть ли другой способ просто получить последний заказ и увеличить его из базы данных? Я пробовал несколько вещей, но объекты всегда были пустыми.

Используемая мной функция выполняется сразу после того, как пользователь успешно нажимает кнопку отправки заказа (наблюдатель событий «sales_order_place_after»). Кто-нибудь может помочь мне с этим?


person Mikaelik    schedule 14.11.2011    source источник
comment
Но весь объект заказа передается sales_order_place_after наблюдателю, вы можете использовать его там ($event->getOrder()). Почему вы пытаетесь получить идентификатор заказа из сеанса?   -  person Dmytro Zavalkin    schedule 15.11.2011
comment
Ваше решение до сих пор работало для меня... думаю, это то, что я здесь пропустил... Спасибо!   -  person Mikaelik    schedule 15.11.2011


Ответы (1)


Попробуйте $chkoutSess->getRealOrderId();, а не $chkoutSess->getLastOrderId();

person Sylvain Rayé    schedule 15.11.2011