получить информацию о заказе по идентификатору заказа в magento [дубликат]
-
12-12-2019 - |
Вопрос
Я пытаюсь получить информацию о заказе по идентификатору заказа в моем коде.Для этого я создал php-файл и скопировал этот файл в папку в public_html.это мой код :
<?php
error_reporting( E_ALL );
require_once "lib/nusoap.php";
require_once "../app/Mage.php";
try {
$order = Mage::getModel('sales/order')->load('100000234');
$orderData = $order->getData();
print_r($orderData);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
?>
Но когда я запускаю этот код, он показывает мне "ничего"!
Я пытался var_dump($order)
, но он также ничего не показывает и никакой ошибки нет!
Может ли кто-нибудь помочь мне получить подробную информацию о заказе и показать ее?
Спасибо
Решение
Существует специфический loadByIncrementId
функция для загрузки с использованием идентификатора приращения.
$order = Mage::getModel('sales/order')->loadByIncrementId('100000234');
Однако я не верю, что вы правильно загружаете Magento, что объяснило бы, почему вы не обязательно получаете то, что хотите.В то время как включение app/Mage.php
это даст вам доступ к классу Mage, но на самом деле это не приведет к загрузке Magento.Вам нужно запустить приложение, что-то вроде этого:
<?php
error_reporting( E_ALL );
require_once "lib/nusoap.php";
require_once "../app/Mage.php";
Mage::app('admin');
try {
$order = Mage::getModel('sales/order')->loadByIncrementId('100000234');
print_r($order->debug());
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
Другие советы
Число, которое вы используете, - это increment_id
В magento у вас есть sequencial inctement_id, который является видимым идентификатором заказа.
Внутренне magento использует entity_id, который используется для связывания данных.
В ->load по умолчанию используется entity_id.
Если вы измените свой код на
$order = Mage::getModel('продажи/заказ')->загрузить($incrementId, 'increment_id');
Вы должны получить загруженный заказ.