質問

コード内の注文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 には、表示される注文 ID である連続した inctement_id があります。

magento は内部的に、データをリンクするために使用されるentity_idを使用します。

->load はデフォルトでentity_idを使用します。

コードを次のように変更すると、

$order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');

注文が読み込まれるはずです。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top