Magento:在admin Items ordered block中显示自定义产品属性

时间:2016-01-11 06:09:21

标签: magento magento-1.9 adminhtml

我正在尝试在管理订单上显示我的自定义属性值 - Items Ordered块。它将显示每个产品获得的积分,就像它显示SKU和其他信息一样。属性值保存在sales_flat_quote_itemsales_flat_order_item表中。

enter image description here

命名空间/ MODULENAME /砌块/ Adminhtml /销售/订购/视图/项目/渲染器/ Default.phtml

<?php

class Namespace_Modulename_Block_Adminhtml_Sales_Order_View_Items_Renderer_Default extends Mage_Adminhtml_Block_Sales_Order_View_Items_Renderer_Default
{

}

?>

应用/设计/ adminhtml /设计/设计/布局/命名空间/ modulename.xml

<adminhtml_sales_order_view>
        <reference name="order_items">
            <action method="addItemRender"><type>default</type>
                <block>sales/order_item_renderer_default</block>
                <template>namespace/modulename/sales/order/items/renderer/default.phtml</template>
            </action>
        </reference>
</adminhtml_sales_order_view>

应用/设计/ adminhtml /默认/默认/模板/命名空间/模块名/销售/订单/视图/项目/ rederer / default.phtml

    <?php $finalPointsEarned = ($_item->getCustomerProductPoints() * $_item->getQtyOrdered()); ?>
    <div class="product-cart-sku">
        <span style="color: #d4af37; font-weight: bold;"><?php echo $this->__('Points Earned:'); ?>
            <?php echo $finalPointsEarned ?>
        </span>
    </div>

执行上面的代码会给出以下异常

Invalid method Mage_Sales_Block_Order_Item_Renderer_Default::addColumnRender(Array
(
    [0] => qty
    [1] => adminhtml/sales_items_column_qty
    [2] => sales/items/column/qty.phtml
)
)

<adminhtml_sales_order_view>更改为<sales_order_view>不会显示任何输出,也不会显示自定义prod属性。

尝试二:

<adminhtml_sales_order_view>
        <reference name="order_items"> 
            <action method="addColumnRender">
                <column>NORTH FACE</column>
                <block>adminhtml/sales_items_column_name</block>
                <template>modulename/sales/items/column/name.phtml</template>
            </action>
        </reference> 
</adminhtml_sales_order_view>

name.phtml中添加了我的自定义代码,仍然没有输出。

  1. 如何在Items上显示自定义产品属性的值 有序的块?
  2. 如何显示管理员发票订单明细页面的相同值?
  3. 上面是在管理订单/发票/退款页面上显示自定义属性的最佳做法/方法,就像显示SKUSize和其他值一样?

1 个答案:

答案 0 :(得分:4)

最简单,最有效的方法是为商店管理员创建自定义主题,在此处复制粘贴所请求的模板,然后按照您希望的方式重写输出。

因此,您将能够完全自定义它。此外,这种方法可以降低出错的风险,并为您提供定制任何模板(包括发票,贷项凭证等)的能力。

看看:

  • 设置自定义主题:(可以在app/etc/local xml或扩展配置设置中完成):

Image1

  • 复制所需的模板:

Image 2

  • 根据需要进行调整:

Image 3

  • 得到你想要的结果:

Image 4

请注意,自定义属性通常通过get方法输入。如果您遇到任何问题,只需检查数据库中所选项目是否存在。在sales_flat_order_item表中 找到与所选订单相关的所有商品,并确保其价值与null不同。这就是我的情况:

Image 5 Image 6 Image 7