รับรายละเอียดการสั่งซื้อตามรหัสการสั่งซื้อ


32

ฉันจำเป็นต้องเรียกคืนคำสั่งซื้อใน Magento ด้วยรหัสของมัน ฉันจะโหลดคำสั่งซื้อเฉพาะด้วยรหัสได้อย่างไร

จนถึงตอนนี้ฉันได้รับข้อความค้นหาเริ่มต้นที่สร้างแล้ว:

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

คำตอบ:


61

หากต้องการโหลดคำสั่งซื้อโดยเพิ่มรหัสจะทำ:

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

ในการโหลดโดยใช้รหัสเอนทิตี้คุณจะต้องโทรload:

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

ฉันทดสอบโดยรหัสคำสั่งซื้อและรหัสที่เพิ่มขึ้น แต่มันแสดงให้ฉันเห็นไม่มีอะไรและไม่มีข้อผิดพลาด! magento.stackexchange.com/questions/39762/…
mahdi

นั่นคือสิ่งที่ฉันต้องการ
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 () จริง ๆ แล้วจะคืนค่าผู้ปกครองและเด็กสับสนมากที่สุด ให้ความสำคัญกับเด็ก
  • ตามเนื้อผ้าผู้ปกครอง (ie.Configurable) จะมีข้อมูลราคาซึ่งเด็ก (ง่าย) จะไม่ ด้วย Child (ผลิตภัณฑ์อย่างง่าย) เราสามารถตรวจสอบว่ามี parent_id (แต่ไม่ใช่ reverse) และเรายังสามารถรับข้อมูลผลิตภัณฑ์จาก entity_id (ไม่ใช่ reverse) ได้จาก getAllVisibleItems ()
  • วนซ้ำผ่านการรวบรวมรายการสั่งซื้อ

    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ได้อย่างไร ขอขอบคุณ.
Iftakharul Alam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.