Antworten:
Um eine Bestellung mit einer inkrementellen ID zu laden, würde man folgendes tun:
Mage::getModel('sales/order')->loadByIncrementId('10000001'); //use a real increment order id here
Zum Laden nach Entitäts-ID rufen Sie einfach Folgendes auf load
:
Mage::getModel('sales/order')->load(24999); //use an entity id here
Das Abrufen der Bestelldetails hängt von einigen Komponenten ab:
Laden Sie Ihre Bestellung: (db: sales_flat_order)
$OrderNumber = "100000001";//Put your order Number here
$order = Mage::getModel('sales/order')->load($OrderNumber, 'increment_id');
Filtern Sie anschließend Ihre Artikelsammlung anhand der Bestellung.
Was die meisten tun werden, ist: (db: sales_flat_order_item)
$order->getAllVisibleItems();
Welches wird die sichtbaren Produkte zeigen. Das Problem dabei ist, dass es das "konfigurierbare" Element aus der Sammlung erhält (das seltsamerweise die SKU des Kindes im Datensatz hat). Ich halte dies für unvorhersehbar, wenn sich die Artikelnummer ändert, da die historische Artikelnummer nicht mehr vorhanden ist. Stattdessen finde ich es besser, wie folgt einen alternativen Ansatz zu verfolgen.
$orderItems = $order->getItemsCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('product_type', array('eq'=>'simple'))
->load();
Durchlaufen Sie die Sammlung der Bestellpositionen
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
die getQtyOrdered
, aber das kann ein Dezimalwert sein :)
addAttributeToSelect
. Vielen Dank.