Seuraava artikkeli auttaa sinua: Suodatettavan tuotteen määritteen lisääminen Magento 2:n Products in Category -kohtaan
nimiavaruus Vendor\Module\Block\Adminhtml\Category\Tab;
käytä Magento\Catalog\Model\Product\Attribute\Source\Status;
käytä Magento\Catalog\Model\Product\Visibility;
käytä Magento\Framework\App\ObjectManager;
käytä Magento\Eav\Model\Config;
luokka Tuote laajenee \Magento\Catalog\Block\Adminhtml\Category\Tab\Product
{
suojattu $näkyvyys;
julkinen funktio __construct(\Magento\Backend\Block\Template\Context $context,
\Magento\Backend\Helper\Data $backendHelper,
\Magento\Catalog\Model\ProductFactory $productFactory,
\Magento\Framework\Registry $coreRegistry,
taulukko $data = [],
Näkyvyys $näkyvyys = null,
Tila $tila = null,
Config $eavConfig)
{
$this->eavConfig = $eavConfig;
$this->visibility = $näkyvyys ?: ObjectManager::getInstance()->get(Visibility::class);
parent::__construct($context, $backendHelper, $productFactory, $coreRegistry, $data, $näkyvyys, $tila);
}
/**
* Aseta kokoelmaobjekti
*
* @param \Magento\Framework\Data\Collection $kokoelma
* @return mitätön
*/
julkinen funktio setCollection($collection)
{
$kokoelma->lisääAttributeToSelect(‘on_giftable_product’);
vanhempi::setCollection($kokoelma);
}
/**
* @return $this
*/
suojattu funktio _prepareColumns()
{
$attribuutti = $this->eavConfig->getAttribute(‘catalog_product’, ‘on_giftable_product’);
if ($attribuutti) {
$vals = $attribuutti->getSource()->getAllOptions();
$arr = [];
foreach ($vals $optiona) {
jos ($optio[‘label’]) {
$arr[$option[‘value’]]= $optio[‘label’];
}
}
vanhempi::_prepareColumns();
$this->addColumnAfter(‘on_giftable_product’, array(
‘header’ => __(‘Lahjatuote’),
‘index’ => ‘on_giftable_product’,
‘type’ => ‘optiot’,
‘optiot’ => $arr,
), ‘sku’);
$this->sortColumnsByOrder();
palauta $this;
}
}
}