实际上我这样做是为了在magento checkout成功页面上检索我的订单详情
<?php
$order_id = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order_details = Mage::getModel('sales/order')->loadByIncrementId($order_id);
$shipping_address_data = $order_details->getShippingAddress();
?>
<tr>
<th><?php echo $this->__('Item Description') ?></th>
<th><?php echo $this->__('Manufacture') ?></th>
<th><?php echo $this->__('Color') ?></th>
<th><?php echo $this->__('Size') ?></th>
<th><?php echo $this->__('Qty') ?></th>
<th><?php echo $this->__('Unit Price') ?></th>
</tr>
<?php foreach($order_details->getAllVisibleItems() as $item): ?>
<tr>
<td><?php echo $item->getName() ?></td>
<td><?php echo $item->getManufacture() ?> </td>
<td><?php echo $item->getSize() ?> </td>
<td><?php echo $item->getColor() ?></td>
<td><?php echo round($item->getQtyOrdered(), 0) ?></td>
<td><?php echo Mage::helper("core")->currency($item->getPrice()) ?></td>
</tr>
<?php endforeach ?>
<?php echo "<br>" . $shipping_address_data['country_name']; ?>
除尺寸,颜色,制造和国家名称(未显示)外,一切正常。
实际上代码有什么问题,有人有建议吗?
由于
答案 0 :(得分:1)
$ item不是give whole product dat
a,它是如何订购p roduct item
并且它产生一些产品名称,数量等。
如果您想获得产品,则需要按产品ID加载产品。
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku',$item->getSku());
echo $_product->getManufacture() ;
echo $_product->getSize(); //size optionid
echo $_product->getColor(); //color otion id
echo $_product->getAttributeText('color');
echo $_product->getAttributeText('size'); // size optionlabel
答案 1 :(得分:0)
使用getAllItems而不是getAllVisibleItems
<?php
foreach($order_details->getAllItems () as $item):
echo "<pre>";print_r($item->getData());die;
endforeach;
?>
打印结果并检查您是否获得属性值