Magento 2 - 具有多选属性的Visual Merchandiser智能类别

时间:2017-05-25 19:44:02

标签: php magento2 multi-select

为什么Magento 2中对多选属性的支持明确地从视觉商家的允许属性集合中删除了#34;智能类别"?我们在Magento 1中使用过它,但需要一种方法在Magento 2中恢复相同的功能。

这是从集合中显式过滤掉属性的地方。

vendor/magento/module-visual-merchandiser/Model/Config/Source/AllowedAttributes.php

我可以这样删除:(显然我会通过插件来实现这个功能)

public function toOptionArray()
{
    $entityTypeId = $this->type->loadByCode(\Magento\Catalog\Model\Product::ENTITY)->getId();
    if ($entityTypeId) {
        $collection = $this->attribute->getCollection()
            ->removeAllFieldsFromSelect()
            ->addFieldToSelect('attribute_code', 'value')
            ->addFieldToSelect('frontend_label', 'label')
            ->addFieldToFilter('entity_type_id', ['eq' = $entityTypeId]);
// removes multi: ->addFieldToFilter('frontend_input', ['neq' => 'multiselect']);
        $attributes = $collection->toArray();
        if (isset($attributes['items'])) {
            $this->options = $attributes['items'];
        }
    }
    return $this->options;
}

但是我觉得这只是冰山的一角。需要什么显示逻辑才能正确解析这些属性并将相应的产品加入集合?

0 个答案:

没有答案