ฉันจำเป็นต้องเรียกคืนคำสั่งซื้อใน Magento ด้วยรหัสของมัน ฉันจะโหลดคำสั่งซื้อเฉพาะด้วยรหัสได้อย่างไร
จนถึงตอนนี้ฉันได้รับข้อความค้นหาเริ่มต้นที่สร้างแล้ว:
Mage::getModel('sales/order');
ฉันจำเป็นต้องเรียกคืนคำสั่งซื้อใน Magento ด้วยรหัสของมัน ฉันจะโหลดคำสั่งซื้อเฉพาะด้วยรหัสได้อย่างไร
จนถึงตอนนี้ฉันได้รับข้อความค้นหาเริ่มต้นที่สร้างแล้ว:
Mage::getModel('sales/order');
คำตอบ:
หากต้องการโหลดคำสั่งซื้อโดยเพิ่มรหัสจะทำ:
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
การรับรายละเอียดการสั่งซื้อขึ้นอยู่กับองค์ประกอบบางประการ:
โหลดคำสั่งซื้อของคุณ: (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();
วนซ้ำผ่านการรวบรวมรายการสั่งซื้อ
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";
}
}
intval
getQtyOrdered
addAttributeToSelect
ได้อย่างไร ขอขอบคุณ.