Добавление нового столбца в позиции заказа клиента в Magento Admin - PullRequest
4 голосов
/ 18 октября 2010

В интерфейсе администрирования Magento мне нужно изменить таблицы в заказе Sales / Order / View, чтобы в нем кроме названия продуктов отображался также их производитель.

Я пытаюсь найти файл, который нужно изменить, чтобы это произошло. Я думал, что найду раздел со всеми столбцами, которые отображаются в app / code / core / Mage / Sales / Block / Order / Item / Renderer / Default.php, но, осматривая его, кажется, что нет ссылок на столбцы / атрибуты продукта.

Я тоже пытался изменить приложение / дизайн / adminhtml / по умолчанию / по умолчанию / шаблон / продажи / заказ / просмотр / элементы / визуализатор / default.phtml изменив

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

в

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

но это ничего не изменило, поэтому я предполагаю, что файл не задействован ...

Может кто-нибудь указать мне нужный файл для изменения?

Спасибо!

Ответы [ 6 ]

16 голосов
/ 20 октября 2010

После довольно продолжительного просмотра кода и с некоторой помощью коллеги мы обнаружили два файла, которые нужно изменить, чтобы добавить столбец к такому представлению:

  • 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для заполнения столбца данными для загружаемых продуктов.
2 голосов
/ 30 мая 2017

Для добавления заголовка таблицы и ее значения добавьте макет 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>

`Я добавил новый столбец с восстановлением имени.Теперь вы должны добавить значение для этого столбца.поэтому вы должны переопределить файл '\ Magento \ Sales \ Block \ Adminhtml \ Order \ View \ Items \ Renderer \ DefaultRenderer' в своем блоке, а в методе getColumnHtml () добавить значение для этого столбца.

2 голосов
/ 13 октября 2012

Для добавления заголовка таблицы: app/design/adminhtml/default/default/template/sales/order/view/items.phtml

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

Эти файлы полезны.

2 голосов
/ 19 октября 2010
1 голос
/ 28 августа 2012

Административные сетки часто контролируются их блоком. Для продаж это класс Mage_Adminhtml_Block_Sales_Order_Grid

метод модификации / переопределения _prepareColumns () должен сделать свое дело

0 голосов
/ 18 октября 2010

У меня нет доступной установки magento, но у меня есть некоторые идеи. Возможно, столбец определен не внутри файла шаблона (phtml), а внутри файла макета xml. Просто найдите в файле layout / sales.xml.

И, возможно, вы не отключили кэш magento, поэтому не видите никаких изменений.

...