Réponses:
Pour charger une commande par incrément ID on ferait:
Mage::getModel('sales/order')->loadByIncrementId('10000001'); //use a real increment order id here
Pour charger par identifiant d'entité, il vous suffit d'appeler load
:
Mage::getModel('sales/order')->load(24999); //use an entity id here
Obtenir les détails de la commande dépend de quelques composants:
Chargez votre commande: (db: sales_flat_order)
$OrderNumber = "100000001";//Put your order Number here
$order = Mage::getModel('sales/order')->load($OrderNumber, 'increment_id');
Ensuite, filtrez votre collection d'articles en fonction de la commande.
Ce que la plupart vont faire, c'est: (db: sales_flat_order_item)
$order->getAllVisibleItems();
Ce qui montrera les produits visibles. Le problème, c’est que l’objet «configurable» sera récupéré dans la collection (qui a étrangement le sku de l’enfant dans l’enregistrement). Je trouve cela imprévisible dans le cas des changements de SKU car le SKU historique n’est plus présent. Au lieu de cela, je trouve préférable de faire une approche alternative comme suit.
$orderItems = $order->getItemsCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('product_type', array('eq'=>'simple'))
->load();
itérer dans la collection d'articles de commande
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
la getQtyOrdered
, mais cela peut être une valeur décimale :)
addAttributeToSelect
. Merci.