Magento: добавление нового атрибута в сгруппированные продукты в скрипте установки - PullRequest
3 голосов
/ 19 февраля 2012

Я разрабатываю небольшое расширение Magento для сгруппированных продуктов. Это расширение нуждается в другом атрибуте, поэтому я решил написать сценарий установки, который добавляет новый атрибут к сгруппированным продуктам. Но, как и все, что я пытался сделать в Magento, это оказалось намного сложнее, чем я ожидал. Официальный форум Magento не помогает, поэтому я надеюсь на некоторую поддержку здесь:)

Новый атрибут должен появляться только на вкладке «Общие» сгруппированных товаров; простые продукты, настраиваемые продукты, комплектные продукты и т. д. должны оставаться неизменными. Атрибут должен быть там независимо от выбранного набора атрибутов, так же, как это был системный атрибут.

Для этого я подумал, что могу просто добавить атрибут к сущности сгруппированных продуктов, но, как я выяснил, для сгруппированных продуктов нет особой сущности, только сущность "catalog_product" для товаров в целом. Таким образом, моя следующая мысль заключалась в том, что мне нужно было добавить атрибут к сущности «catalog_product», а затем присвоить его правильной группе атрибутов, чтобы он относился только к сгруппированным продуктам.

Проблема в том, что я еще не настолько глубоко погружен в Magento, и я не имею ни малейшего понятия, как мне найти соответствующую группу атрибутов или, если моя идея будет работать вообще, возможно, я здесь совершенно не на том пути : /

Просто чтобы вы знали, что я получил так далеко: Я зарегистрировал мой установочный скрипт в конфигурационном файле расширения, и он выполняется, единственная проблема - сам скрипт установки, он выглядит как следующий atm, потому что - как я уже сказал - у меня пока нет подсказки:

$installer = $this;
$installer->startSetup();
$installer->addAttribute("catalog_product", "my_attrib_name", array( /* just a placeholder */ ));
$installer->endSetup();

Довольно простой ...

1 Ответ

7 голосов
/ 22 февраля 2012

Я разобрался, как сделать это самому сейчас.Мой подход был правильным, мне просто нужно было найти соответствующие параметры.

Теперь вызов addAttribute () выглядит следующим образом:

// ...
$installer->addAttribute(
    "catalog_product", // Entity the new attribute is supposed to be added to
    "my_attrib_code", // attribute code
     array( // Array containing all settings:
        "type" => "varchar",
        "label" => "My attribute",
        "note" => "Insert additional information about the attribute here",
        "input" => "text",
        "global" => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
        // Dont know if this is really necessary, but it makes sure 
        // the attribute is created as a system attribute:
        "user_defined" => false,
        // This makes sure the attribute only applies to grouped products
        "apply_to" => Mage_Catalog_Model_Product_Type::TYPE_GROUPED
    )
);
// ...

Теперь атрибут, добавленный установщикомсистемный атрибут, он автоматически добавляется в группу «Общие» каждого набора атрибутов и не может быть изменен / перемещен.Как я и предполагал, это относится только к сгруппированным продуктам.

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