Я создал пользовательский модуль, который добавит пользовательский атрибут в сущность «Заказ на продажу», а затем отобразит в сетке «Заказ на продажу администратора».
Файл module.xml для определения модуля. App \ код \ Компания \ МОДУЛЬ \ и т.д. \ module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="COMPANY_MODULE" setup_version="1.0.0">
<sequence>
<module name="Magento_Sales"/>
<module name="Magento_Quote"/>
<module name="Magento_Checkout"/>
</sequence>
</module>
</config>
Файл di.xml в приложении \ code \ COMPANY \ MODULE \ etc \ di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<virtualType name="Magento\Sales\Model\ResourceModel\Order\Grid" type="Magento\Sales\Model\ResourceModel\Grid">
<arguments>
<argument name="columns" xsi:type="array">
<item name="export_status" xsi:type="string">sales_order.export_status</item>
</argument>
</arguments>
</virtualType>
</config>
InstallData.php для добавления пользовательского атрибута export_status в таблицу базы данных
App \ код \ Компания \ МОДУЛЬ \ Setup \ InstallData.php
<?php
namespace COMPANY\MODULE\Setup;
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
/**
* @codeCoverageIgnore
*/
class InstallData implements InstallDataInterface
{
/**
* EAV setup factory
*
* @var EavSetupFactory
*/
private $eavSetupFactory;
/**
* Init
*
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
/**
* {@inheritdoc}
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
/** @var EavSetup $eavSetup */
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
if (version_compare($context->getVersion(), '1.0.0') < 0){
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$salesSetup = $objectManager->create('Magento\Sales\Setup\SalesSetup');
$salesSetup->addAttribute('order', 'export_status', ['type' =>'varchar']);
$quoteSetup = $objectManager->create('Magento\Quote\Setup\QuoteSetup');
}
}
}
sales_order_grid.xml, чтобы добавить пользовательский столбец в сетке администратора заказа клиента.
<?xml version="1.0" encoding="UTF-8"?>
<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_columns">
<column name="export_status">
<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">XML Exported</item>
</item>
</argument>
</column>
</columns>
</listing>
Вы можете скачать полный модуль, нажав на ссылку ниже
http://vdcstaging.co.in/download/add-custom-culumn-to-admin-grid.zip