Magento - 在“销售订单”视图中显示类别信息

时间:2012-12-03 02:23:29

标签: php magento

编辑:this thread中有一位男士说: “Magento中的所有订单数据都是针对特定产品的。它不会存储产品所属类别的任何内容。因此,正如您所发现的那样,Magento中没有关于此类事件的报告。” 这是真的?我正在努力做一个失败的事业?

我正在尝试在Magento的后端Sales>上显示产品类别订单>具体的订单视图>信息>项目有序网格。这不是导航到Sales>时看到的主要“订单网格”。订购。我想更改在第一个网格中单击特定订单后看到的更详细的内容。

根据this thread的建议,我创建了一个新专栏并给出了正确的标题(类别)。

然后,为了尝试填充该列,我将来自Joost de Valk解决方案的代码添加到this thread到app / design / adminhtml / default / default / template / sales / order / view / items / renderer / default一个.phtml

我觉得我应该接近(或不接近),但目前该代码只是返回单词“Array”。有什么想法吗?

我目前的代码如下。有问题的列是第二个td - 与$ cats相呼应的那个:

<?php $_item = $this->getItem() ?>
// Here is the snippet I pasted in to define variables.
<?php $product = Mage::getModel('catalog/product')->load($productId);

$cats = $product->getCategoryIds();
foreach ($cats as $category_id) {
    $_cat = Mage::getModel('catalog/category')->load($category_id) ;
    echo $_cat->getName();
}  ?>
<?php $this->setPriceDataObject($_item) ?>
<tr<?php if (!$this->canDisplayGiftmessage()): ?> class="border"<?php endif; ?>>
    <td>
        <?php if ($this->canDisplayContainer()): ?>
        <div id="<?php echo $this->getHtmlId() ?>" class="item-container">
        <?php endif; ?>
        <div class="item-text">
            <?php echo $this->getColumnHtml($_item, 'name') ?>
        </div>
        <?php if ($this->canDisplayContainer()): ?>
        </div>
        <?php endif ?>
    </td>
// Here is the column in question.
    <td class="a-center"><?php echo $cats ?></td>
    <td class="a-center"><?php echo $_item->getStatus() ?></td>
    <td class="a-right"><?php echo $this->displayPriceAttribute('original_price') ?></td>

etc, etc, etc ...

2 个答案:

答案 0 :(得分:1)

$_cat是一个对象

$_cat = Mage::getModel('catalog/category')->load($category_id) ;

<td class="a-center"><?php echo $cats ?></td>

您需要知道要显示的属性

echo $_cat->getXyz();

例如

echo $_cat->getName();

要查看其中某些属性的列表,请尝试

print_r($_cat->getData());

答案 1 :(得分:0)

所以看起来类别真的很复杂,当然超出了我的能力。我想出了一个解决方案,无论多么丑陋。由于我没有使用制造商字段并且只有4个相关类别,因此我为这4个类别中的每个类别创建“制造商”,通过并将其分配给所有产品,然后在相关文件中呼叫制造商。制造商的代码如下:

 <?php 
$manufacturer = Mage::getModel('catalog/product')->load($_item['product_id'])->getAttributeText('manufacturer'); 
echo $manufacturer;
?> 

感谢this post获取该代码段并感谢其他所有人的帮助。