2

The custom extension in which I am working is working correctly till 2.0.7, but not in 2.1. So my question is, how to create category attribute programmatically?

Below code was working in 2.0.7, but it is not working in 2.1.

$eavSetup->addAttribute(
            \Magento\Catalog\Model\Category::ENTITY,
            'customattribute',
   [
     'group' => 'Custom Group',
                 'type' => 'varchar',
                 'label' => 'Custom Group',
                 'input' => 'textarea',
     'source' => '',
                 'required' => false,
                 'sort_order' => 49,
                 'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
     'wysiwyg_enabled' => true,
                 'is_used_in_grid' => true,
                 'is_visible_in_grid' => false,
                 'is_filterable_in_grid' => true
            ]
        );
Mohit Patel
  • 3,778
  • 4
  • 22
  • 52
Gaurav Jain
  • 1,013
  • 3
  • 12
  • 22

1 Answers1

6

Magento2.1, all attribute load via UI_Component. So you need to assign as a form element following way:

Create Vendor/Module/view/adminhtml/ui_component/category_form.xml

<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="display_settings">
        <field name="customattribute">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="class" xsi:type="string">Magento\Catalog\Ui\Component\Category\Form\Element\Wysiwyg</item>
                    <item name="formElement" xsi:type="string">wysiwyg</item>
                    <item name="wysiwygConfigData" xsi:type="array">
                        <item name="settings" xsi:type="array">
                            <item name="theme_advanced_buttons1" xsi:type="string">bold,italic,|,justifyleft,justifycenter,justifyright,|,fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,|,code</item>
                            <item name="theme_advanced_buttons2" xsi:type="boolean">false</item>
                            <item name="theme_advanced_buttons3" xsi:type="boolean">false</item>
                            <item name="theme_advanced_buttons4" xsi:type="boolean">false</item>
                            <item name="theme_advanced_statusbar_location" xsi:type="boolean">false</item>
                        </item>
                        <item name="files_browser_window_url" xsi:type="boolean">false</item>
                        <item name="height" xsi:type="string">100px</item>
                        <item name="toggle_button" xsi:type="boolean">false</item>
                        <item name="add_variables" xsi:type="boolean">false</item>
                        <item name="add_widgets" xsi:type="boolean">false</item>
                        <item name="add_images" xsi:type="boolean">false</item>
                    </item>
                    <item name="template" xsi:type="string">ui/form/field</item>
                    <item name="source" xsi:type="string">category</item>
                    <item name="wysiwyg" xsi:type="boolean">true</item>
                    <item name="dataScope" xsi:type="string">customattribute</item>
                    <item name="sortOrder" xsi:type="number">50</item>
                    <item name="rows" xsi:type="number">8</item>
                    <item name="label" xsi:type="string" translate="true">Custom Group</item>
                </item>
            </argument>
        </field>
    </fieldset>
</form>

Go here for more information

Sohel Rana
  • 35,846
  • 3
  • 72
  • 90
  • Thank you, that seems to be working. Just have one query, when I applied this code , enable category, include in menu and caetgory name, shows below (at last) instead of upper area, I hope you are getting me. – Gaurav Jain Jul 28 '16 at 11:40