Правильный способ добавить дополнительные атрибуты продукта на Magento 2.2 - PullRequest
0 голосов
/ 21 сентября 2018

Я довольно новичок в разработке Magento (из разработки Wordpress и Prestashop), хотя у меня довольно большой опыт работы с PHP.

Моя цель - добавить дополнительный «атрибут», «дополнительный"Ску в частности.Я бродил по статьям и учебникам без удачи, некоторые из них были о создании атрибута в классе InstallData, а некоторые о создании product_form.xml в adminhtml.

Вся работа выполняется вновый модуль.

Ни один из них не работал, у меня было только одно изменение, чтобы увидеть мое новое поле с помощью метода .xml, но потом я не смог сохранить значения в базе данных.

Наконец-то мне никогда не удавалось создать новую запись в таблице eav_attribute (выполнял настройку bin / magento: обновление целую вечность).

Я опубликую два файла, которые у меня пока есть.

Что-то изменилось в 2.2 (поэтому примеры, которые я нашел в сети, не работают)?

Мы (имея в виду каждого разработчика, пытающегося изучить способы Magento), были бы более чем благодарны, если бы кто-то объяснилвся логика и шаги для добавления этой «мета» к продуктам.

Заранее спасибо

Мой product_form.xml

<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<fieldset name="extra_attributes">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="label" xsi:type="string" translate="true">Extra Attributes</item>
            <item name="sortOrder" xsi:type="number">90</item>
        </item>
    </argument>
    <field name="extra_code">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="dataType" xsi:type="string">text</item>
                <item name="label" xsi:type="string" translate="true">Extra Code</item>
                <item name="formElement" xsi:type="string">input</item>
                <item name="sortOrder" xsi:type="number">10</item>
                <item name="dataScope" xsi:type="string">mtrl</item>
                <item name="notice" xsi:type="string" translate="true">Softone Internal Id</item>
                <item name="validation" xsi:type="array">
                    <item name="required-entry" xsi:type="boolean">true</item>
                </item>
            </item>
        </argument>
    </field>
</fieldset>

InstallData.php

класс InstallData реализует InstallDataInterface {

private $eavSetupFactory;

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

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

    $eavSetup->addAttribute(
        \Magento\Catalog\Model\Product::ENTITY, 'extra_attribute', [
        'type' => 'text',
        'label' => 'ExtraAttribute',
        'input' => 'text',
        'group' => 'General',
        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
        'visible' =>    true,
        'required' => true,
        'user_defined' => true,
        'default' => '1',
        'unique' => false
        ]
    );
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...