【问题标题】:Magento: Display custom product attribute in admin Items ordered blockMagento:在管理项目订购块中显示自定义产品属性
【发布时间】:2016-01-11 06:09:21
【问题描述】:

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

命名空间/模块名称/Block/Adminhtml/Sales/Order/View/Items/Renderer/Default.phtml

<?php

class Namespace_Modulename_Block_Adminhtml_Sales_Order_View_Items_Renderer_Default extends Mage_Adminhtml_Block_Sales_Order_View_Items_Renderer_Default
{

}

?>

app/design/adminhtml/design/design/layout/namespace/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>

app/design/adminhtml/default/default/template/namespace/modulename/sales/order/view/items/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
)
)

&lt;adminhtml_sales_order_view&gt; 更改为 &lt;sales_order_view&gt; 不会提供任何输出,并且不会显示自定义 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. 如何在商品上显示自定义产品属性的值 有序块?
  2. 如何在admin Invoice order details page中显示相同的值?
  3. 以上是在管理订单/发票/退款页面上显示自定义属性的最佳实践/方法,就像它显示 SKUSize 和其他值一样?

【问题讨论】:

    标签: magento magento-1.9 adminhtml


    【解决方案1】:

    最简单和最有效的方法是为商店管理员创建自定义主题,将请求的模板复制粘贴到其中,然后按照您想要的方式重写输出。

    因此,您将能够完全自定义它。此外,这种方法将降低出错的风险,并让您能够自定义任何模板(包括发票、贷项通知单等)

    看看:

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

    • 复制您需要的模板:

    • 根据需要进行调整:

    • 并得到你想要的结果:

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

    【讨论】:

    • sales_flat_order_item 表格将在订单信息页面上显示自定义属性值。在管理员和前端的客户发票上创建发票时,同样的工作吗?
    • 要从发票中提取此数据,该属性应参考sales_flat_invoice_item。或者,您可以从发票中获取订单商品,然后在此处获取属性值。
    • 假设,我没有使用&lt;sales_convert_quote_item&gt; &lt;customer_product_points&gt; &lt;to_order_item&gt;*&lt;/to_order_item&gt; &lt;to_invoice_item&gt;*&lt;/to_invoice_item&gt; &lt;to_shipment_item&gt;*&lt;/to_shipment_item&gt; &lt;to_cm_item&gt;*&lt;/to_cm_item&gt; &lt;/customer_product_points&gt; &lt;/sales_convert_quote_item&gt; 将自定义属性转换为相应的表。如何在前端发票上显示价值?订单商品未显示自定义属性值。还是我需要使用字段集将值插入表中?
    • 如果您在任何使用的实体中都没有这些属性,则需要从这些实体中获取报价商品对象(您可以在任何订单商品中找到报价商品id)。接下来,您可以使用它来获取必要的属性值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多