Pankaj Pareek
Pankaj Pareek

Reputation: 3836

Add New Column in Admin Product Grid In Magento 2

I want to add a new column in Product Grid in Magento 2. I have created di.xml file in module etc folder with the below code:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
    <preference for="Magento\Catalog\Block\Adminhtml\Product\Grid" type="Package\Module\Block\Grid" />
</config>

In The Grid block, I have the below code:

namespace Package\Module\Block;
use Magento\Store\Model\Store;
class Grid extends \Magento\Catalog\Block\Adminhtml\Product\Grid
{
    protected function _prepareColumns()
    {

        $this->addColumn(
            'newfield',
            [
                'header' => __('Test Name'),
                'index' => 'name',
                'class' => 'xxx'
            ]
        );

        return parent::_prepareColumns();
    }
}

Can someone guide me for this.

Upvotes: 0

Views: 4771

Answers (2)

gelanivishal
gelanivishal

Reputation: 318

Just add fieldClass property to the column configuration:

<column name="column_name">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="fieldClass" xsi:type="string">xxx-class-name</item>
        </item>
    </argument>
</column>

Upvotes: 0

Sunil Patel
Sunil Patel

Reputation: 536

you can add using product_listing.xml view\adminhtml\ui_component\product_listing.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="product_columns" class="Magento\Catalog\Ui\Component\Listing\Columns">
        <column name="new_field">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="filter" xsi:type="string">text</item>
                    <item name="add_field" xsi:type="boolean">true</item>
                    <item name="label" xsi:type="string" translate="true">Ne Field</item>
                    <item name="sortOrder" xsi:type="number">75</item>
                </item>
            </argument>
        </column>
    </columns>
</listing>

Upvotes: 1

Related Questions