Прямое обновление базы данных Magento сложно, но выполнимо. С EAV нужно разобраться.
В этой таблице хранятся идентификатор продукта и артикул.
catalog_product_entity
Имена атрибутов продукта хранятся в одной из этих таблиц, в вашей системе могут быть и другие.
catalog_product_entity_datetime
catalog_product_entity_decimal
catalog_product_entity_gallery
catalog_product_entity_int
catalog_product_entity_media_gallery
catalog_product_entity_text
catalog_product_entity_url_key
catalog_product_entity_varchar
Значения атрибутов хранятся в
eav_attribute
Итак, вам нужно соединить эти три таблицы вместе. Вот диаграмма отношений сущностей, которая показывает, как это работает, и пример SQL.
![введите здесь описание изображения](https://i.stack.imgur.com/Y3RBN.png)
Хитрость заключается в том, чтобы знать, какую из таблиц entity_X использовать и какой атрибут attribute_id используется для конкретного атрибута. Атрибуты attribute_ids будут варьироваться от системы к системе. Этот запрос поможет вам увидеть свой. Этот пример ищет только в таблице _entity_varchar. Ваш атрибут может быть в _entity_int, _entity_text и т. д. В этом примере показаны значения для одного продукта, в данном случае где sku='0203MR-0'
Показать идентификаторы атрибутов продукта
select
p.entity_id,
p.entity_type_id,
p.attribute_set_id,
p.type_id,
p.sku,
a.attribute_id,
a.frontend_label as attribute,
av.value
from
catalog_product_entity p
left join catalog_product_entity_varchar av on
p.entity_id = av.entity_id
left join eav_attribute a on
av.attribute_id = a.attribute_id
where
p.sku = '0203MR-0'
;
Как только вы узнаете attribute_id для рассматриваемого атрибута, вы можете перечислить или обновить эти атрибуты. В данном случае нас интересует название продукта, а в моей системе attribute_id равен 71.
Список названий продуктов
select
p.entity_id,
p.entity_type_id,
p.attribute_set_id,
p.type_id,
p.sku,
a.attribute_id,
a.frontend_label as attribute,
av.value
from
catalog_product_entity p
join catalog_product_entity_text av on
p.entity_id = av.entity_id
join eav_attribute a on
av.attribute_id = a.attribute_id
where
a.attribute_id = 71
;
Обновить названия продуктов
update
catalog_product_entity p
join catalog_product_entity_text av on
p.entity_id = av.entity_id
join eav_attribute a on
av.attribute_id = a.attribute_id
set
av.value = replace(av.value,
'example',
'test')
where
a.attribute_id = 71
;
person
dlink
schedule
22.12.2016