Risposte:
Per caricare un ordine in base all'ID di incremento si dovrebbe fare:
Mage::getModel('sales/order')->loadByIncrementId('10000001'); //use a real increment order id here
Per caricare per ID entità devi semplicemente chiamare load
:
Mage::getModel('sales/order')->load(24999); //use an entity id here
Ottenere i dettagli dell'ordine dipende da alcuni componenti:
Carica il tuo ordine: (db: sales_flat_order)
$OrderNumber = "100000001";//Put your order Number here
$order = Mage::getModel('sales/order')->load($OrderNumber, 'increment_id');
Successivamente, filtra la tua raccolta di articoli in base all'ordine.
Quello che la maggior parte farà è: (db: sales_flat_order_item)
$order->getAllVisibleItems();
Che mostrerà i prodotti visibili. Il problema è che otterrà l'elemento "configurabile" dalla raccolta (che stranamente ha lo sku del bambino nel record). Trovo che ciò sia imprevedibile nel caso di modifiche dello SKU poiché lo SKU storico non è più presente. Invece, trovo meglio fare un approccio alternativo come segue.
$orderItems = $order->getItemsCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('product_type', array('eq'=>'simple'))
->load();
scorrere la raccolta degli articoli dell'ordine
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
il getQtyOrdered
, ma che può essere un valore decimale :)
addAttributeToSelect
. Grazie.