在Magento Admin中的销售订单查看项目中添加新列

时间:2010-10-18 12:11:07

标签: magento admin

在Magento的管理界面中,我需要修改销售/订单/查看订单中的表格,以便除产品名称外还显示其制造商。

我正在尝试查找要修改的文件以实现此目的。我以为我会找到一个包含所有列的部分,这些列显示在app / code / core / Mage / Sales / Block / Order / Item / Renderer / Default.php中,但通过检查它似乎没有对列的引用/产品属性。<​​/ p>

我也尝试过修改   应用程序/设计/ adminhtml /默认/缺省的/模板/销售/订单/视图/项目/渲染/ default.phtml 通过改变

<?php echo $this->getColumnHtml($_item, 'name') ?>

进入

<?php echo $this->getColumnHtml($_item, 'manufacturer') ?>

但它没有改变,所以我认为该文件没有涉及......

有人可以指出我要修改的正确文件吗?

谢谢!

6 个答案:

答案 0 :(得分:16)

经过大量浏览代码并在同事的帮助下,我们发现要更改的两个文件是为了向此类视图添加列:

  • app/design/adminhtml/default/default/template/sales/order/view/items.phtml 用于添加表头

  • app/design/adminhtml/default/default/template/sales/order/view/items/renderer/default.phtml用于填充数据列。

我对Magento并不是很熟悉,但我想,为了做一个“干净的工作”,我不应该直接修改这些文件,而是覆盖它们。

修改

  • app/design/adminhtml/default/default/template/downloadable/sales/order/view/items/renderer/downloadable.phtml用于填充可下载产品数据的列。

答案 1 :(得分:2)

答案 2 :(得分:2)

添加表头: app/design/adminhtml/default/default/template/sales/order/view/items.phtml

app/design/adminhtml/default/default/template/sales/order/view/items/renderer/default.phtml

这些文件很有用。

答案 3 :(得分:2)

要添加表头及其值,请在主题或模块中使用新参数添加布局sales_order_view.xml。

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
    <referenceBlock name="order_items">
        <arguments>
            <argument name="columns" xsi:type="array">
                <item name="product" xsi:type="string" translate="true">Product</item>
                <item name="status" xsi:type="string" translate="true">Item Status</item>
                <item name="price-original" xsi:type="string" translate="true">Original Price</item>
                <item name="price" xsi:type="string" translate="true">Price</item>
                <item name="ordered-qty" xsi:type="string" translate="true">Qty</item>
                <item name="subtotal" xsi:type="string" translate="true">Subtotal</item>
                <item name="tax-amount" xsi:type="string" translate="true">Tax Amount</item>
                <item name="tax-percent" xsi:type="string" translate="true">Tax Percent</item>
                <item name="discont" xsi:type="string" translate="true">Discount Amount</item>
                <item name="total" xsi:type="string" translate="true">Row Total</item>
                <item name="repair" xsi:type="string" translate="true">Repair</item>
            </argument>
        </arguments>
        <block class="Namespace\Module\Block\Adminhtml\DefaultRenderer" as="default" template="Magento_Sales::order/view/items/renderer/default.phtml">
        <arguments>
            <argument name="columns" xsi:type="array">
                <item name="product" xsi:type="string" translate="false">col-product</item>
                <item name="status" xsi:type="string" translate="false">col-status</item>
                <item name="price-original" xsi:type="string" translate="false">col-price-original</item>
                <item name="price" xsi:type="string" translate="false">col-price</item>
                <item name="qty" xsi:type="string" translate="false">col-ordered-qty</item>
                <item name="subtotal" xsi:type="string" translate="false">col-subtotal</item>
                <item name="tax-amount" xsi:type="string" translate="false">col-tax-amount</item>
                <item name="tax-percent" xsi:type="string" translate="false">col-tax-percent</item>
                <item name="discont" xsi:type="string" translate="false">col-discont</item>
                <item name="total" xsi:type="string" translate="false">col-total</item>
                <item name="repair" xsi:type="string" translate="false">col-repair</item>
            </argument>
        </arguments>
        </block>   
    </referenceBlock>     
</body>

` 我添加了名称修复的新列。 现在你必须为该列添加值。所以你必须覆盖&#39; \ Magento \ Sales \ Block \ Adminhtml \ Order \ View \ Items \ Renderer \ DefaultRenderer&#39;在块中的文件和getColumnHtml()方法中,您必须为该列添加值。

答案 4 :(得分:1)

管理网格受其阻止控制。 对于销售,它是Mage_Adminhtml_Block_Sales_Order_Grid类

修改/覆盖方法_prepareColumns()应该做的伎俩

答案 5 :(得分:0)

我没有可用的magento安装,但我有一些想法。 可能列未在模板文件(phtml)中定义,但在xml布局文件中。 只需在layout / sales.xml文件中搜索。

也许你还没有禁用magento缓存,这就是你没有看到任何变化的原因。