我正在尝试通过代码中的订单 ID 获取订单详细信息。为此,我创建了一个 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 使用增量 id 进行加载的函数。

$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 中,您有序列 inctement_id,它是可见的订单 id。

magento内部使用entity_id,它用于链接数据。

->load 默认使用entity_id。

如果您将代码更改为

$order = Mage::getModel('销售/订单')->load($incrementId, 'increment_id');

您应该加载订单。

许可以下: CC-BY-SA归因
scroll top