Cómo agregar un atributo de producto filtrable en “Productos en categoría” en Magento 2

Estás leyendo la publicación: Cómo agregar un atributo de producto filtrable en “Productos en categoría” en Magento 2

espacio de nombres Proveedor\Módulo\Bloque\Adminhtml\Categoría\Tab;

use Magento\Catálogo\Modelo\Producto\Atributo\Fuente\Estado;

use Magento\Catálogo\Modelo\Producto\Visibilidad;

use Magento\Framework\App\ObjectManager;

use Magento\Eav\Model\Config;

El producto de clase se extiende \Magento\Catalog\Block\Adminhtml\Category\Tab\Product

{

visibilidad protegida;

función pública __construct(\Magento\Backend\Block\Template\Context $context,

\Magento\Backend\Helper\Data $backendHelper,

\Magento\Catálogo\Modelo\ProductFactory $productFactory,

\Magento\Framework\Registro $coreRegistro,

matriz $datos = [],

Visibilidad $visibilidad = nulo,

Estado $estado = nulo,

Configuración $eavConfig)

{

$esto->eavConfig = $eavConfig;

$this->visibility = $visibility ?: ObjectManager::getInstance()->get(Visibility::class);

parent::__construct($context, $backendHelper, $productFactory, $coreRegistry, $data, $visibility, $status);

}

/**

* Establecer objeto de colección

*

* @param \Magento\Framework\Data\Collection $colección

* @retorno nulo

*/

función pública setCollection($colección)

{

$colección->addAttributeToSelect(‘is_giftable_product’);

padre::setCollection($colección);

}

/**

* @return $esto

*/

función protegida _prepareColumns()

{

$atributo = $this->eavConfig->getAttribute(‘catalog_product’, ‘is_giftable_product’);

si ($atributo) {

$vals = $atributo->getSource()->getAllOptions();

$arr = [];

foreach ($valores como $opción) {

si ($ opción[‘label’]) {

$arr[$option[‘value’]]= $opción[‘label’];

}

}

padre::_prepareColumns();

$this->addColumnAfter(‘is_giftable_product’, array(

‘header’ => __(‘Producto para regalar’),

‘index’ => ‘is_giftable_product’,

‘tipo’ => ‘opciones’,

‘opciones’ => $arr,

), ‘sku’);

$this->sortColumnsByOrder();

devolver $esto;

}

}

}

🔥 Recomendado:  Cómo eliminar una cuenta de YouTube