Я добавил новый столбец в таблицу с sales_order
именем export_status
, теперь я хочу добавить новый столбец сетки заказов с данными из новогоsales_order
столбца.
Мне удалось добавить столбец в the sales_order_grid
таблицу.
$installer->getConnection()->addColumn($installer->getTable("sales_order_grid"), "xml_exported", [
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'comment' => 'XML Exported'
]);
Как я могу теперь сделать так, чтобы это отображалось в сетке заказов со значением из sales_order
export_status
столбца?
magento2
magento-2.1
order-grid
Андре Феррас
источник
источник
Ответы:
После долгих поисков кода ядра magento я нашел решение для своего вопроса. Вместо добавления столбца в сетку через базу данных, я создал компонент пользовательского интерфейса
sales_order_grid.xml
под[COMPANY]/[MODULE]/view/adminhtml/ui_component/sales_order_grid.xml
Затем создал класс пользовательского интерфейса под
[COMPANY]/[MODULE]/Ui/Component/Listing/Column/Status.php
источник
filter_condition_callback
где вы можете добавить свой собственный фильтр в соответствии с полем. Пожалуйста, не говори "Что ты имеешь в виду?" на этот раз;)Мое решение может быть немного более эффективным, поскольку оно следует родному способу добавления столбца в сетку, и вам не нужно загружать каждый заказ, отображаемый на странице, для получения данных столбца (используя вместо этого таблицу sales_order_grid ). Выше приведен отличный пример того, как создать персонализированный рендер.
продавец / [поставщиков] / [пакет] /view/adminhtml/ui_component/sales_order_grid.xml
Обратите внимание, что вы должны включить столбец с помощью раскрывающегося виджета над сеткой заказов, прежде чем он появится.
продавец / [поставщиков] / [пакет] /etc/di.xml
Пример кода установки для добавления столбца в таблицу sales_order_grid (используйте это в вашем скрипте установки / обновления). Этот же код работает для таблицы sales_order.
Надеюсь, это поможет! :-)
источник
sales_order_grid.xml
вы должны закрыть свой тег <list> </ list>, иначе он вернет ошибку xmlДля создания нового столбца в таблице заказов, я сослался на Magento Default Module vendor / magento / module-customer-balance
В моем случае столбец «custom_column» уже существует в таблице sales_order.
Я должен показать столбец «custom_column» в сетке заказов
Шаг 1. Добавьте новый столбец в таблицу sales_order_grid.
Шаг 2: файл di.xml в приложении \ code [Vendor] [NameSpace] \ etc \ di.xml
Шаг 3. Создайте файл макета sales_order_grid.xml в папке app \ code [Vendor] [NameSpace] \ view \ adminhtml \ ui_component
Примечание: это было проверено в версии 2.2.6 Magento
источник
Затем создал класс пользовательского интерфейса для его рендеринга.
Не забудьте очистить кеш.
источник
Я создал пользовательский модуль, который добавит пользовательский атрибут в сущность «Заказ на продажу», а затем отобразит в сетке «Заказ на продажу администратора».
Файл module.xml для определения модуля. App \ код \ Компания \ МОДУЛЬ \ и т.д. \ module.xml
Файл di.xml в приложении \ code \ COMPANY \ MODULE \ etc \ di.xml
InstallData.php для добавления пользовательского атрибута export_status в таблицу базы данных
App \ код \ Компания \ МОДУЛЬ \ Setup \ InstallData.php
sales_order_grid.xml, чтобы добавить пользовательский столбец в сетке администратора заказа клиента.
Вы можете скачать полный модуль, нажав на ссылку ниже http://vdcstaging.co.in/download/add-custom-culumn-to-admin-grid.zip
источник