Magento 2 属性未显示在导航中
Magento 2 Attribute Not Show In Navigation
我在将 magento 2.1.9 应用到我的项目时遇到问题。
我的属性是ab_size
我已经用代码 blow 创建了那个属性。
$categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
$entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);
foreach ($singleAttributeCodes as $key => $label) {
$categorySetup->removeAttribute($entityTypeId, $key);
$categorySetup->addAttribute(
$entityTypeId,
$key,
[
'type' => 'varchar',
'label' => $label,
'input' => 'select',
'required' => false,
'sort_order' => $sortOrder,
'visible' => true,
'user_defined' => true,
'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
'filterable' => 0,
'visible_on_front' => true,
'used_in_product_listing' => true,
'group' => $group,
'apply_to' => 'simple,configurable,bundle,downloadable,grouped',
]
);
}
后台有配置。
- 启用过滤器(有结果)完成
- 类别是锚点完成
- 重建索引完成
- 启用分类平面完成
- 启用产品扁平化完成
- 重新索引所有数据完成
- 清除缓存完成
- 使用magento clean没有任何扩展完成
- 检查属性颜色(在导航中显示)
- 产品价格显示
类别显示
关于我的系统信息
CentOS 7.0
- Litespeed
- Php7.0
- Magento CE 2.1.9
我已调试产品收集桶 return 为空
我认为创建属性代码的问题,有没有人遇到同样的问题。
谢谢大家指教。
我认为您用这段代码弄乱了您的属性。
看看它,它删除了所有属性并添加了它们,但是作为 varchar 类型,这可能不适用于所有属性。
我建议重置您的 Magento 数据库,然后使用如下代码添加属性。
由于我不知道您打算使用此属性做什么,下面的某些设置可能不适用于您的用例。
$categorySetup->addAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'ab_size',
[
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => 'AB Size',
'input' => 'select',
'class' => '',
'source' => '',
'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend',
'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => 0,
'searchable' => false,
'filterable' => true,
'comparable' => false,
'visible_on_front' => true,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
对于 select 属性,我们必须使用 int..
类型
我在将 magento 2.1.9 应用到我的项目时遇到问题。
我的属性是ab_size
我已经用代码 blow 创建了那个属性。
$categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
$entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);
foreach ($singleAttributeCodes as $key => $label) {
$categorySetup->removeAttribute($entityTypeId, $key);
$categorySetup->addAttribute(
$entityTypeId,
$key,
[
'type' => 'varchar',
'label' => $label,
'input' => 'select',
'required' => false,
'sort_order' => $sortOrder,
'visible' => true,
'user_defined' => true,
'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
'filterable' => 0,
'visible_on_front' => true,
'used_in_product_listing' => true,
'group' => $group,
'apply_to' => 'simple,configurable,bundle,downloadable,grouped',
]
);
}
后台有配置。
- 启用过滤器(有结果)完成
- 类别是锚点完成
- 重建索引完成
- 启用分类平面完成
- 启用产品扁平化完成
- 重新索引所有数据完成
- 清除缓存完成
- 使用magento clean没有任何扩展完成
- 检查属性颜色(在导航中显示)
- 产品价格显示
类别显示
关于我的系统信息
CentOS 7.0
- Litespeed
- Php7.0
- Magento CE 2.1.9
我已调试产品收集桶 return 为空
我认为创建属性代码的问题,有没有人遇到同样的问题。
谢谢大家指教。
我认为您用这段代码弄乱了您的属性。 看看它,它删除了所有属性并添加了它们,但是作为 varchar 类型,这可能不适用于所有属性。 我建议重置您的 Magento 数据库,然后使用如下代码添加属性。
由于我不知道您打算使用此属性做什么,下面的某些设置可能不适用于您的用例。
$categorySetup->addAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'ab_size',
[
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => 'AB Size',
'input' => 'select',
'class' => '',
'source' => '',
'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend',
'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => 0,
'searchable' => false,
'filterable' => true,
'comparable' => false,
'visible_on_front' => true,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
对于 select 属性,我们必须使用 int..
类型