我有一个只有一张商店视图的洋红色。但是,该商店不是默认的。创建了新闻店视图(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 属性。

现在是最后一件事。如果我将商店ID更改为 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.

许可以下: CC-BY-SA归因
scroll top