注文IDで注文の詳細を取得する


32

IdでMagentoの注文を取得する必要があります。IDで特定の注文を読み込むにはどうすればよいですか?

これまでに、最初のクエリが作成されました。

Mage::getModel('sales/order');

回答:


61

IDをインクリメントして注文を読み込むには、次のようにします。

Mage::getModel('sales/order')->loadByIncrementId('10000001'); //use a real increment order id here

エンティティIDで読み込むには、次を呼び出しますload

Mage::getModel('sales/order')->load(24999); //use an entity id here

私は注文IDと増分IDでテストしますが、何もエラーも表示されません!magento.stackexchange.com/questions/39762/...
マハディ

それが私が必要としたものです
-FosAvance

17

注文の詳細を取得するには、いくつかのコンポーネントが必要です。

  1. 注文(通常注文番号)
  2. 注文の内容(シンプルvs構成可能、非表示など)
  3. 抽出する情報(価格とその他の情報)

注文を読み込みます:(db:sales_flat_order)

$OrderNumber = "100000001";//Put your order Number here
$order = Mage::getModel('sales/order')->load($OrderNumber, 'increment_id');

次に、注文に基づいてアイテムのコレクションをフィルタリングします。

ほとんどがやることは:(db:sales_flat_order_item)

$order->getAllVisibleItems();

目に見える製品が表示されます。これに関する問題は、コレクションから「構成可能な」アイテムを取得することです(奇妙なことに、レコードに子のskuがあります)。SKUが変更された場合、履歴SKUはもう存在しないため、これは予測不能です。代わりに、次のような代替アプローチを行う方が良いと思います。

 $orderItems = $order->getItemsCollection()
        ->addAttributeToSelect('*')
        ->addAttributeToFilter('product_type', array('eq'=>'simple'))
        ->load();
  • getItemsCollection()は実際には親と子を返しますが、ほとんどの場合混乱します。子供に焦点を当てましょう。
  • 従来、親(構成可能)には価格設定情報があり、子(単純)にはありません。Child(単純な製品)を使用すると、parent_id(逆ではない)があるかどうかを判断できます。また、getAllVisibleItems()からのようにentity_id(逆ではない)から製品情報を取得することもできます。
  • 注文アイテムのコレクションを反復処理する

    foreach($orderItems as $sItem) {
    
        //Ignore conf for now
        //Alt. Mage_Catalog_Model_Product_Type::TYPE_SIMPLE = 'simple';
        if($sItem->getProductType() == "simple")
        {
    
    
    
            echo "\n*********************************\nMage Order #: ".$OrderNumber."\n";
            //Simple Item Info from Order
            echo "Type: ".$sItem->getProductType()."\n";
            echo "Order Id: ".$sItem->getOrderId()."\n";
            echo "Product Id: ".$sItem->getProductId()."\n";
            echo "Item Id: ".$sItem->getId()."\n";
            echo "Item Name: ".$sItem->getName()."\n";
            echo "Item Sku: ".$sItem->getSku()."\n";
            echo "Item Price: ".$sItem->getPrice()."\n";
    
            $pItemId = $sItem->getParentItemId();
            echo "Parent Item Id: ".$pItemId."\n";
    
            echo "\n*****\n";
    //Get Parent Item Information
    $item = Mage::getModel('sales/order_item')->load("$pItemId"); //use an item_id here
    
            //Testing, want to see whats inside the parent/configurable item?
            //print_r($item->toArray());
    
            echo "Parent Type: ".$item->getProductType()."\n";
            echo "Parent Order Id: ".$item->getOrderId()."\n";
            echo "Product Id: ".$item->getProductId()."\n";
            echo "Item Id: ".$item->getId()."\n";
            echo "Parent Item Price: ".$item->getPrice()."\n";
            echo "Qty: ".$qty = intval($item->getQtyOrdered())."\n";
    
            //get Active Product Data
            $nProduct = Mage::getModel('catalog/product')->load($sItem->getProductId());
    $nSku = $nProduct->getSku();
        echo "new Product UPC:".$nUpc = $nProduct->getUpc() . "\n";
            echo "new Product Price:".$nPrice = $nProduct->getPrice(). "\n";
    
            }
        }
    

ただ、ノート、あなた、それは十進値:)することができintvalgetQtyOrdered
ハリーMustoe-プレイフェア

のようなモデルの組み込み関数に関するすべてのドキュメントを見つけることができますaddAttributeToSelect。ありがとうございました。
イフタカルールアラム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.