0

编辑:所以这个线程中的一个人说:“Magento 中的所有订单数据都是特定于产品的。它不存储有关产品所属类别的任何信息。所以,正如您所发现的,没有可用的报告在 Magento 中处理这类事情。” 这是真的?我想做的事是失败的吗?

我正在尝试在 Magento 的后端销售 > 订单 > 特定订单视图 > 信息 > 已订购商品网格中显示产品类别。这不是您在导航到“销售”>“订单”时看到的主要“订单网格”。在单击第一个网格中的特定订单后,我想更改您看到的更详细的订单。

根据该线程的建议,我创建了一个新专栏并为其指定了正确的标题(类别)。

然后,为了尝试填充该列,我将 Joost de Valk 在此线程上的解决方案中的代码添加到 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 ...
4

2 回答 2

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());
于 2012-12-03T10:24:22.770 回答
0

所以看起来类别真的很复杂,而且肯定超出了我的能力范围。我想出了一个变通办法,不管多么丑陋。由于我没有使用制造商字段并且只有 4 个相关类别,因此我正在为这 4 个类别中的每一个创建“制造商”,将它们分配给所有产品,然后在相关文件中调用制造商。制造商代码如下:

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

感谢这篇文章的片段,并感谢其他所有人的帮助。

于 2012-12-07T05:48:25.240 回答