Добавление пользовательских параметров в существующие продукты вручную - PullRequest
2 голосов
/ 14 июня 2011

Я пытаюсь добавить некоторые пользовательские опции к уже существующим продуктам в Magento.Кажется, работает нормально, я добавил необходимые строки в следующих таблицах:

catalog_product_option
catalog_product_option_title
catalog_product_option_type_value
catalog_product_option_type_price
catalog_product_option_type_title

Я также обновил has_options и required_options для нужного продукта, в следующих таблицах:

catalog_product_entity
catalog_product_flat_1
catalog_product_flat_2
catalog_product_flat_3

Когда я открываю продукт, параметры не отображаются, на самом деле, они показывают меньше.Кнопка для заказа исчезает.Когда я открываю страницу edit , она показывает опции.После сохранения он появляется и во внешнем интерфейсе.

Что мне не хватает?

Обновление: После ручного прохода буквально через каждый запрос, который был выполнен после сохранениядействие, я обнаружил, что мне не хватало.Когда у продукта есть параметры, он должен отображать их в другом шаблоне (или как он называется в Magento).Чтобы сделать это, вам нужно изменить значение атрибута options_container.

Итак, это действительно легко исправить.Просто посмотрите на attribute_id в таблице eav_attribute.Затем просто выполните следующий запрос для каждого продукта:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId;

Вот и все!:)

Ответы [ 2 ]

0 голосов
/ 12 марта 2012

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

  1. Расширьте Mage.php, если он находится за пределами magento (игнорируйте, если нет)
  2. Создайте коллекцию любых сущностей, которыми вы хотите манипулировать
  3. Используйте эту коллекцию для записи / чтения данных
  4. Избавьтесь от головной боли в будущем!
0 голосов
/ 17 июня 2011

После ручного прохождения буквально каждого запроса, который был выполнен после действия сохранения, я обнаружил, чего мне не хватало. Когда у продукта есть параметры, он должен отображать их в другом шаблоне (или как он называется в Magento). Для этого вам нужно изменить значение атрибута options_container.

Итак, это действительно легко исправить. Просто посмотрите на attribute_id в таблице eav_attribute. Затем просто выполните следующий запрос для каждого продукта:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId;

Это сработает! :)

...