i need to programmatically create a bunch of custom product attributes, some editable with Page Builder. So i followed https://devdocs.magento.com/page-builder/docs/how-to/how-to-use-pagebuilder-for-product-attributes.html
First of all, i developed a custom module and created my custom attributes via Setup script. For instance, nota_cata
has to be editable with PageBuilder:
'nota_cata' => [
'type' => 'text',
'backend' => '',
'frontend' => '',
'label' => 'Nota de cata',
'input' => 'textarea',
'class' => '',
'source' => '',
'global' =>
\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => true,
'used_in_product_listing' => false,
'unique' => false,
'apply_to' =>
'simple,grouped,configurable,downloadable,virtual,bundle',
'attribute_set_id' => self::ATTR_SET,
'group' => '',
'source' => '',
]
Next, i created app/code/Vendor/Module/view/adminhtml/ui_component/product_form.xml
file to change my attribute input to Page Builder:
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<fieldset name="drinks">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Drinks</item>
<item name="sortOrder" xsi:type="number">100</item>
</item>
</argument>
<field name="nota_cata">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="required" xsi:type="boolean">false</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">false</item>
</item>
<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="label" translate="true" xsi:type="string">Nota de Cata</item>
<item name="wysiwygConfigData" xsi:type="array">
<item name="is_pagebuilder_enabled" xsi:type="boolean">true</item>
<item name="pagebuilder_button" xsi:type="boolean">true</item>
</item>
<item name="template" xsi:type="string">ui/form/field</item>
<item name="source" xsi:type="string">product</item>
<item name="wysiwyg" xsi:type="boolean">true</item>
<item name="dataScope" xsi:type="string">nota_cata</item>
<item name="sortOrder" xsi:type="number">60</item>
<item name="rows" xsi:type="number">8</item>
</item>
</argument>
</field>
</fieldset>
</form>
But i get this in backend product form:
There's not only a pagebuilder button as expected, but also a text area with my attribute info. Both fields show attribute current data and change its value.
How can i make that only pagebuilder link is shown in frontend?
Any help will be appreciated. Thanks in advance, Antonio