Проблема потягиваю атрибут с определенным видом на магазин
-
16-10-2019 - |
Вопрос
У меня есть Magento только с одним видом на магазин. Однако этот магазин не по умолчанию. Был создан представление о магазине новостей (ID: 2) и по умолчанию один удален.
Тогда у меня есть продукты и изображения, импортированные с помощью некоторых инструментов. В администраторе все искрутно. Правильная миниатюра, небольшое изображение и базовое изображение выбираются, а изображение не исключено. На переднем конце изображение правильно отображается на странице информации о продуктах, но не отображается в списке продуктов.
Если я распечатаю объект продукта в списке категории, я вижу, что изображения даже не загружаются. Никаких свойств вообще. Однако метки изображений загружаются хорошо.
Вот пример ряда моего catalog_product_entity_varchar
:
value_id entity_type_id attribute_id store_id entity_id value
--------------------------------------------------------------------------------------------
1004 4 86 2 101 /2/7/271074_2.jpg
Где 86
соответствует small_image
атрибут.
И теперь последнее. Если я заменю идентификатор магазина на 0
изображение показано правильно. Я могу легко установить это на 0
для всех продуктов, если у меня есть только один вид в магазине, но не должно быть показано с 2
? Почему с 2
Он отображает на странице сведений о продуктах, а не в списке?
PS: представление магазина по умолчанию, без расширений.
Решение
У вас есть значение по умолчанию для этого элемента или просто конкретное значение StoreView?
SELECT
`t_d`.`entity_id`,
`t_d`.`attribute_id`,
`t_d`.`value` AS `default_value`,
`t_s`.`value` AS `store_value`,
IF(t_s.value_id IS NULL, t_d.value, t_s.value) AS `value`
FROM `catalog_product_entity_varchar` AS `t_d`
LEFT JOIN `catalog_product_entity_varchar` AS `t_s`
ON t_s.attribute_id = t_d.attribute_id AND t_s.entity_id = t_d.entity_id AND t_s.store_id = 2
...
Вот фрагмент из запросов, которые загружают атрибуты в списках продуктов. Как вы можете видеть, если у вас нет значения по умолчанию для этого атрибута, первая часть не вернет результатов, а левое соединение не будет работать правильно. Это означает, что вам всегда нужно значение по умолчанию и значение Storeview; Magento определит правильное значение в расчетном поле IF(...) as value
.