[Php] Идентификатор увеличения заказа в Magento



Answers

$ order в вашем коде - это последний идентификатор заказа ... как следует из названия функции. Если это не значение, которое вы хотите, используйте его для загрузки заказа, а затем используйте геттер:

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

Я пытаюсь получить Id Increment Order в Magento на странице success.phtml, чтобы использовать это для отслеживания партнерских отношений.

Я использую следующий код, но он дает ошибку во второй строке;

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

Ошибка:

Неустранимая ошибка: вызов функции-члена getIncrementId () для не объекта в строке 34: $ LastOrderId = $ order-> getIncrementId ();

Мне было интересно, есть ли у кого-нибудь идеи о том, как получить Идентификатор увеличения заказа? Это ссылочный номер, видимый в админе, обычно что-то вроде: # 1000123




Вы можете получить идентификатор инкремента, используя этот фрагмент кода:

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

Теперь вы можете сделать эхо переменной $ Incrementid и увидеть идентификатор инкремента.

Надеюсь, это поможет.




$shipmentID = $shipment->increment_id;

$order   = $shipment->getOrder();
$orderID = $order->increment_id; 



Ваш звонок

Mage::getSingleton('sales/order')

не возвращает объект. Пытаться

var_dump(Mage::getSingleton('sales/order'));

подтвердить.

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

«Правильным» способом сделать это было бы создание наблюдателя для одного из событий, которые Magento срабатывает во время проверки.

checkout_onepage_controller_success_action

событие должно быть достаточным, если предположить, что вы не слишком много настраивали процесс оформления заказа.

Есть краткое объяснение того, как это сделать на Wiki (для другого события)

После того, как вы получите настройки своего мероприятия и ответите, сделайте

$event = $observer->getEvent();
var_dump($event->getData());

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




Если вы находитесь в режиме администратора - попробуйте следующее:

$orderModel = Mage::getModel('sales/order'); $orders = $orderModel->getCollection()->setOrder('increment_id', 'DESC')->setPageSize(1)->setCurPage(1); $orderId = $orders->getFirstItem()->getIncrementId();