Я пытаюсь понять, как делается связь между параметрами атрибута и атрибута, а также продуктом и атрибутами в Magento. Есть ли какая-либо ссылка на то, как это работает? или кто-нибудь подскажет мне это.
Спасибо,
Балан
Я пытаюсь понять, как делается связь между параметрами атрибута и атрибута, а также продуктом и атрибутами в Magento. Есть ли какая-либо ссылка на то, как это работает? или кто-нибудь подскажет мне это.
Спасибо,
Балан
Как говорит Алан Сторм: "Вам не нужно знать о том, как работает ваша БД. Вы должны узнать, как работают модели". (Это не точная цитата. Я дал вам смысл).
Но я создал собственную схему, чтобы понять структуру БД. Итак, этот экран показывает, как это работает:
Надеюсь, поможет.
Также я рекомендую вам просмотреть эти ссылки:
http://www.magentocommerce.com/wiki/2_-_magento_concepts_and_architecture/magento_database_diagram
http://alanstorm.com/magento_advanced_orm_entity_attribute_value_part_1
1) Атрибуты хранятся в eav_attribute
. Там вы получите attribute_id
.
2) Параметры сохраняются в eav_attribute_option_value
. Там вы получите option_id
.
3) Параметры присваиваются продукту в catalog_product_entity_varchar
. Там вам нужно entity_id
продукта, attribute_id
от 1) и значение, разделенное запятыми option_ids
из 2)
Каждый раз, когда я хочу знать что-то о том, как работают magento db, я проверяю это
Атрибуты продукта - это дополнительные значения, которые вы можете назначить продукту и хранятся в основной таблице EAV по имени, а затем данные сохраняются в нескольких разных таблицах на основе типа данных, например, varchar, decimal, text Целое число, дата и т.д.
если у вас есть несколько значений для вашего атрибута продукта, то они будут сохранены в таблицах параметров атрибутов, опять же, в разных таблицах на основе типа данных.
следующая ссылка объясняет отношения лучше: http://www.magentocommerce.com/wiki/2_-_magento_concepts_and_architecture/magento_database_diagram
И более глубокая деталь разработчика: http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-7-advanced-orm-entity-attribute-value
И наборами атрибутов будет другая вещь, с которой вы сталкиваетесь, например название, набор атрибутов, сгруппированных вместе. http://www.magentocommerce.com/knowledge-base/entry/how-do-i-create-an-attribute-set
НТН Shaun
SELECT pei.value
FROM `catalog_product_entity_int` pei
JOIN `eav_attribute` ea
ON pei.attribute_id = ea .attribute_id
WHERE pei.entity_id = {your product_id}
AND ea.attribute_code = '{your attribute_code}'
Обратите внимание, что существует множество различных таблиц типа catalog_product_entity_int в зависимости от типа атрибута, поэтому один из них может быть подходящим.
Я нашел эти запросы очень полезными для поиска таких вещей, как - где он говорит, что цвет продукта черный?, например.
-- show_product_attr.sql
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_{datatype} av on
p.entity_id = av.entity_id
left join eav_attribute a on
av.attribute_id = a.attribute_id
where
-- p.entity_id = 28683
-- p.sku = '0452MR'
p.entity_id = {eid}
;
И для attr_options
-- show_product_attr_options.sql
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,
-- a.attribute_code,
av.value,
ao.*
from
catalog_product_entity p
left join catalog_product_entity_int av on
p.entity_id = av.entity_id
left join eav_attribute a on
av.attribute_id = a.attribute_id
left join eav_attribute_option_value ao on
av.value = ao.option_id
where
-- p.entity_id = 28683
p.entity_id = {eid}
;
Вам нужно заменить {datatype} текстом, varchar, int, decimal и т.д. для первого запроса и {eid} с entity_id для обоих запросов. Что вы можете сделать в команде, например:
$ cat show_product_attr_options.sql | sed -e "s/{eid}/30445/" | mysql -uUSER -pPASS DATABASE -t
+-----------+---------+--------------+--------------+---------------------------+-------+----------+-----------+----------+--------------------+-------------+
| entity_id | type_id | sku | attribute_id | attribute | value | value_id | option_id | store_id | value | colorswatch |
+-----------+---------+--------------+--------------+---------------------------+-------+----------+-----------+----------+--------------------+-------------+
| 30445 | simple | 840001179127 | 96 | Status | 1 | 5972 | 1 | 0 | Male | NULL |
| 30445 | simple | 840001179127 | 102 | Visibility | 1 | 5972 | 1 | 0 | Male | NULL |
| 30445 | simple | 840001179127 | 122 | Tax Class | 2 | 5973 | 2 | 0 | Female | NULL |
| 30445 | simple | 840001179127 | 217 | Size | 257 | 17655 | 257 | 0 | XS | NULL |
| 30445 | simple | 840001179127 | 217 | Size | 257 | 17657 | 257 | 1 | XS | NULL |
| 30445 | simple | 840001179127 | 224 | Color | 609 | 18717 | 609 | 0 | Arctic Ice Heather | NULL |
| 30445 | simple | 840001179127 | 260 | Featured | 0 | NULL | NULL | NULL | NULL | NULL |
| 30445 | simple | 840001179127 | 262 | Clearance Product | 0 | NULL | NULL | NULL | NULL | NULL |
| 30445 | simple | 840001179127 | 263 | Skip from Being Submitted | 0 | NULL | NULL | NULL | NULL | NULL |
| 30445 | simple | 840001179127 | 283 | Discontinued | 0 | NULL | NULL | NULL | NULL | NULL |
+-----------+---------+--------------+--------------+---------------------------+-------+----------+-----------+----------+--------------------+-------------+
Аналогичный набор sql-скриптов может быть создан для каталога.