Magento: как предварительно заполнить значения выпадающего атрибута продукта

Только для добавления к тому, что другие сказали здесь необходимо быть НАМНОГО более конкретными, если это - произведенный на стороне проект по сравнению с внутренним проектом. И я не забочусь, производите ли Вы на стороне в Индию, Китай или парней вниз улица - если Вы не конкретны, Вы, вероятно, получите что-то, что встретит абсолютный минимум того, что Вы ставите бумагу, но не, что Вы хотели. В доме программисты, более вероятно, запросят разъяснение и сделают то, что Вы имеете в виду вместо только, что Вы запросили.

6
задан Martijn Heemels 6 October 2009 в 16:51
поделиться

3 ответа

Атрибуты продукта Magento чрезвычайно гибкие, но наличие динамических значений для каждого продукта означает, что вам понадобится один атрибут для каждого продукта, что не имеет особого смысла, поэтому я предполагаю, что эти значения атрибутов имеют общие черты. является общим для продуктов в вашем магазине, поэтому у вас будет ограниченное количество атрибутов (или один?). Для каждого такого атрибута вы должны заранее создать атрибут и базовую модель для него, а затем использовать задание cron или событие, обновить параметры значения атрибута из вашего API и кэшировать их локально в базе данных или каким-либо другим методом. Вы можете добавить атрибут в свой установщик модуля следующим образом:

$installer->addAttribute('catalog_product', 'my_attr_code', array(
    'label' => 'Attribute Name',
    'required' => false,
    'input' => 'select',
    'source' => 'namespace/source',
    'default' => 'none',
    'position' => 1,
    'sort_order' => 3,
));

Или сверните свой собственный оператор вставки SQL для таблицы eav_attribute . Обязательно назначьте новый атрибут атрибуту, установленному в бэкэнде, чтобы его можно было использовать с вашими продуктами. Затем вы создаете модель в My_Namespace_Model_Source , которая расширяет Mage_Eav_Model_Entity_Attribute_Source_Table (при условии, что вы хотите выбрать входные данные для значений ваших атрибутов) и реализует как минимум следующие методы: [from 1283] динамические параметры, которые кешируются локально, и по большей части ваш новый атрибут будет вести себя как любой другой в Magento. Обязательно используйте интеллектуальное кэширование, потому что эти методы потенциально могут быть задействованы много раз при загрузке одной страницы. Вы можете заметить событие, которое вызывается прямо перед отображением страницы создания или редактирования продукта, в противном случае просто переопределите класс или контроллер или используйте задачу cron Magento.

Изменить:

10
ответ дан 8 December 2019 в 13:00
поделиться

Not a good answer i guess but here goes, I would first add an attribute and then reverse engineer it to see how it is populated.

Then in the product display page on the admin, I would override the productController's edit and new actions, to load the values using curl for that attribute(you can lookup the id of the attribute in the eav_attribute table)

You can then package this as a custom extension, so you dont edit core code directly. Good luck!

4
ответ дан 8 December 2019 в 13:00
поделиться

Вам необходимо найти диспетчеров событий Magento.

В основном, каждый раз, когда происходит событие - обновление продукта, отправка заказа, удаление чего-либо и т. Д. - сообщение отправляется через систему. Эти сообщения могут быть перехвачены и затем могут запускать созданные вами методы. Чтобы достичь того, чего вы хотите, вам нужно будет поймать событие, которое запускается при создании и обновлении продукта, и получить его для запуска метода из одного из ваших настраиваемых модулей. Затем этот метод будет получать значение с удаленного сайта и обновлять продукт, используя его.

После быстрого поиска в Google я нашел следующую статью:

http://blog.baobaz.com/en/tag/ magento-events

Вы можете узнать, какие события Magento запускаются, посмотрев на соответствующий код модуля.

4
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: