We are using Magento 2.2.6 and created a new category attribute. But the store_view scope is not working. I searched already in the database and also diverse blogs on the internet but don't get a reason why.

We did reindex and upgrade. The value of our attribute is also saving to the database - but seems to use globally.


namespace Vendor\Module\Setup;

use Magento\Framework\Setup\InstallDataInterface;
use Magento\Eav\Setup\EavSetup;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleDataSetupInterface;

class InstallData implements InstallDataInterface

    private $eavSetupFactory;

    public function __construct(EavSetupFactory $eavSetupFactory)
        $this->eavSetupFactory = $eavSetupFactory;

    public function install(
        ModuleDataSetupInterface $setup,
        ModuleContextInterface $context
    ) {
        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);

                'type' => 'varchar',
                'label' => 'vendor_short_description',
                'input' => 'textarea',
                'required' => false,
                'sort_order' => 3,
                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                'wysiwyg_enabled' => true,
                'is_html_allowed_on_front' => true,
                'group' => 'Content'


2 Answers 2


Its a default bug but there some workaround for this as well.

step1 Create a new module Vendor\Module\etc\di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Catalog\Model\Category\DataProvider">
        <plugin name="categoryCustomAttributes" type="Vendor\Module\Plugin\Model\Category\DataProvider" sortOrder="1" disabled="false"/>

step2 Create a file Vendor\Module\Plugin\Model\Category\DataProvider.php

namespace Vendor\Module\Plugin\Model\Category;

class DataProvider extends \Magento\Catalog\Model\Category\DataProvider {
    public function __construct(\Magento\Eav\Model\Config $eavConfig)
        $this->eavConfig = $eavConfig;

    public function afterPrepareMeta(\Magento\Catalog\Model\Category\DataProvider $subject, $result)
        $meta = array_replace_recursive($result, $this->_prepareFieldsMeta(
        return $meta;

    public function _prepareFieldsMeta($fieldsMap, $fieldsMeta)
        $result = [];
        foreach ($fieldsMap as $fieldSet => $fields) {
            foreach ($fields as $field) {
                if (isset($fieldsMeta[$field])) {
                    $result[$fieldSet]['children'][$field]['arguments']['data']['config'] = $fieldsMeta[$field];
        return $result;

    public function _getFieldsMap()
        $fields = parent::getFieldsMap();
        // Adjust per your needs here
        $fields['content'][] = 'long_description';
        return $fields;

I had the same issue: Magento 2: Custom category attribute is missing scope.

It is a magento bug discussed here:https://github.com/magento/magento2/issues/13440.

This solution worked for me: https://github.com/magento/magento2/issues/13440#issuecomment-436712363

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.