Câu trả lời:
Để tải một đơn đặt hàng theo id tăng, người ta sẽ làm:
Mage::getModel('sales/order')->loadByIncrementId('10000001'); //use a real increment order id here
Để tải theo id thực thể, bạn chỉ cần gọi load
:
Mage::getModel('sales/order')->load(24999); //use an entity id here
Lấy chi tiết đơn hàng phụ thuộc vào một vài thành phần:
Tải Đơn hàng của bạn: (db: sales_flat_order)
$OrderNumber = "100000001";//Put your order Number here
$order = Mage::getModel('sales/order')->load($OrderNumber, 'increment_id');
Tiếp theo, Lọc Bộ sưu tập Vật phẩm của bạn dựa trên Đơn hàng.
Những gì hầu hết sẽ làm là: (db: sales_flat_order_item)
$order->getAllVisibleItems();
Mà sẽ hiển thị các sản phẩm có thể nhìn thấy. Vấn đề với điều này là, nó sẽ lấy vật phẩm "có thể cấu hình" từ bộ sưu tập (điều kỳ lạ là có sku của đứa trẻ trong hồ sơ). Tôi thấy điều này là không thể đoán trước trong trường hợp SKU thay đổi vì SKU lịch sử không còn nữa. Thay vào đó, tôi thấy tốt hơn để làm một cách tiếp cận khác như sau.
$orderItems = $order->getItemsCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('product_type', array('eq'=>'simple'))
->load();
lặp qua bộ sưu tập các mục đặt hàng
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
sự getQtyOrdered
, nhưng điều đó có thể là một giá trị thập phân :)
addAttributeToSelect
. Cảm ơn bạn.