Dapatkan Detail Pesanan dengan Id Pemesanan

32

Saya perlu mengambil pesanan di Magento dengan ID-nya. Bagaimana cara memuat pesanan tertentu berdasarkan ID?

Sejauh ini saya sudah mendapatkan permintaan awal yang dibangun:

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

Jawaban:

61

Untuk memuat pesanan dengan penambahan id, orang akan melakukannya:

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

Untuk memuat menurut id entitas, Anda cukup menelepon load:

Mage::getModel('sales/order')->load(24999); //use an entity id here
Philwinkle
sumber
saya mengujinya dengan id pesanan dan kenaikan id tapi itu tidak menunjukkan kepada saya hal dan tidak ada kesalahan! magento.stackexchange.com/questions/39762/…
mahdi
Itulah yang saya butuhkan
FosAvance
17

Mendapatkan Detail Pesanan tergantung pada beberapa komponen:

  1. Pesanan (biasanya pesanan #)
  2. Isi dari Pesanan (Sederhana vs Dapat Dikonfigurasi, Tidak Terlihat dll.)
  3. Informasi yang ingin Anda Ekstrak (Harga vs Informasi lainnya)

Muat pesanan Anda: (db: sales_flat_order)

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

Selanjutnya, Saring Koleksi Barang Anda berdasarkan Pesanan.

Apa yang akan dilakukan kebanyakan adalah: (db: sales_flat_order_item)

$order->getAllVisibleItems();

Yang akan menampilkan produk yang terlihat. Masalahnya adalah, ia akan mendapatkan item yang "dapat dikonfigurasi" dari koleksi (yang anehnya memiliki sku anak dalam catatan). Saya menemukan ini tidak dapat diprediksi dalam kasus perubahan SKU karena SKU historis tidak lagi ada. Sebaliknya, saya merasa lebih baik melakukan pendekatan alternatif sebagai berikut.

 $orderItems = $order->getItemsCollection()
        ->addAttributeToSelect('*')
        ->addAttributeToFilter('product_type', array('eq'=>'simple'))
        ->load();
  • getItemsCollection () sebenarnya akan mengembalikan Parent and the Child, paling membingungkan. Mari kita fokus pada anak.
  • Secara tradisional, Induk (mis. Dikonfigurasi) akan memiliki informasi harga, di mana anak (sederhana) tidak akan. Dengan Child (produk sederhana) kami dapat menentukan apakah ada parent_id (tetapi bukan sebaliknya) dan kami juga dapat mengambil informasi produk dari entity_id (bukan sebaliknya) seperti dari getAllVisibleItems ().
  • iterate melalui koleksi item pesanan

    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";
    
            }
        }
    
JoshBelke
sumber
Hanya sebuah catatan, Anda intvalyang getQtyOrdered, tetapi itu bisa menjadi nilai desimal :)
Harry Mustoe-Playfair
Di mana saya dapat menemukan semua dokumentasi tentang seperti model fungsi built-in addAttributeToSelect. Terima kasih.
Iftakharul Alam