получить информацию о заказе по идентификатору заказа в magento [дубликат]

magento.stackexchange https://magento.stackexchange.com//questions/39762

  •  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');

Вы должны получить загруженный заказ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top