在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') ?>
但它没有改变,所以我认为该文件没有涉及......
有人可以指出我要修改的正确文件吗?
谢谢!
答案 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缓存,这就是你没有看到任何变化的原因。