Setup
<?php
namespace Maijindou\Sales\Setup;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Sales\Model\Order;
class InstallData implements InstallDataInterface
{
/**
* @var \Magento\Sales\Setup\SalesSetupFactory
*/
protected $salesSetupFactory;
/**
* @param \Magento\Sales\Setup\SalesSetupFactory $salesSetupFactory
*/
public function __construct(
\Magento\Sales\Setup\SalesSetupFactory $salesSetupFactory
) {
$this->salesSetupFactory = $salesSetupFactory;
}
/**
* {@inheritDoc}
*/
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
$salesSetup = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $installer]);
// 物流单号字段
$salesSetup->addAttribute(Order::ENTITY, 'is_synchronize', [
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
'length'=> 1,
'default'=>0,
'visible' => false,
'nullable' => true
]);
$installer->getConnection()->addColumn(
$installer->getTable('sales_order_grid'),
'is_synchronize',
[
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
'length' => 1,
'default'=>0,
'comment' =>'是否将订单同步到OMS'
]
);
$installer->endSetup();
}
}
/etc/di.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<!--Sync the sales_order table and sales_order_grid-->
<virtualType name="Magento\Sales\Model\ResourceModel\Order\Grid" type="Magento\Sales\Model\ResourceModel\Grid">
<arguments>
<argument name="columns" xsi:type="array">
<item name="is_synchronize" xsi:type="string">sales_order.is_synchronize</item>
</argument>
</arguments>
</virtualType>
</config>
view/adminhtml/ui_component/sales_order_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_columns">
<column name="is_synchronize">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">Maijindou\Sales\Ui\Order\Grid\IsSynchronize</item>
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">select</item>
<item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item>
<item name="dataType" xsi:type="string">select</item>
<item name="label" xsi:type="string" translate="true">Is Synchronize</item>
</item>
</argument>
</column>
</columns>
</listing>