Как сохранить данные в таблице сетки отгрузки продаж, сохранив их в таблице отгрузки продаж в Magento 2?


После создания отгрузки я сохраняю в нее дополнительные данные, и мне нужно отобразить эти данные в таблице отгрузки.

Я добавил столбец с именем 'some_data' в таблицы sales_shipment и sales_shipment_grid в базе данных. Также добавлены компоненты пользовательского интерфейса для отображения этого столбца в shipment_grid:

sales_order_shipment_grid.xml

<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <columns name="sales_order_shipment_columns">
        <column name="some_data">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="filter" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">Some Data</item>
                </item>
            </argument>
        </column>
    </columns>
</listing>

Также добавлена конфигурация в MyNamespace/MyModule/etc/adminhtml/di.xml :

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<virtualType name="ShipmentGridAggregator" type="Magento\Sales\Model\ResourceModel\Grid">
    <arguments>
        <argument name="columns" xsi:type="array">
            <item name="some_data" xsi:type="string">sales_shipment.some_data</item>
        </argument>
    </arguments>
</virtualType>

Значение успешно сохраняется в таблице sales_shipment, но не в таблице sales_shipment_grid, поэтому столбец в сетка отгрузки администратора остается пустой.

Как я могу заполнить этот пользовательский столбец данными из столбца таблицы sales_shipment?

Может быть, есть другие подходы? Все примеры, которые я нашел, были для sales_order_grid, и они не работают для sales_shipment_grid.

Author: jurgen, 2016-09-14

1 answers

Что ж, это работает. Единственное, что требовало изменений, - это добавить вышеуказанную конфигурацию di в MyNamespace/MyModule/etc/di.xml (не MyNamespace/MyModule/etc/adminhtml/di.xml).

 0
Author: jurgen, 2016-09-16 12:52:15