Magento平面索引器不';t复制';图像';目录\产品\平面表格的属性
我正在使用Magento社区1.7.0.2 最近,我决定在我的商店中打开“使用平面目录类别”和“使用平面目录类别”选项。我的前端上所有使用“图像”属性的图像都消失了(它们被默认图像占位符替换)。使用“小图像”或“缩略图”属性显示的所有图像均正确显示 我查看了catalog_product_flat_1表,没有“image”列(但有“image_label”列…)。我查看了平面索引器代码,并能够打印用于获取插入到平面表中的所有属性的SQL语句:Magento平面索引器不';t复制';图像';目录\产品\平面表格的属性,magento,flat,Magento,Flat,我正在使用Magento社区1.7.0.2 最近,我决定在我的商店中打开“使用平面目录类别”和“使用平面目录类别”选项。我的前端上所有使用“图像”属性的图像都消失了(它们被默认图像占位符替换)。使用“小图像”或“缩略图”属性显示的所有图像均正确显示 我查看了catalog_product_flat_1表,没有“image”列(但有“image_label”列…)。我查看了平面索引器代码,并能够打印用于获取插入到平面表中的所有属性的SQL语句: SELECT `main_table`.*, `ad
SELECT `main_table`.*, `additional_table`.*
FROM `eav_attribute` AS `main_table`
INNER JOIN `catalog_eav_attribute` AS `additional_table`
ON additional_table.attribute_id = main_table.attribute_id
WHERE (main_table.entity_type_id = :entity_id) AND (main_table.backend_type = 'static'
OR additional_table.is_used_for_promo_rules = 1 OR additional_table.used_in_product_listing = 1 OR additional_table.used_for_sort_by = 1
OR main_table.attribute_code IN('sku', 'type_id', 'name', 'status', 'visibility', 'price', 'weight', 'url_path', 'url_key', 'thumbnail', 'small_image',
'tax_class_id', 'special_from_date', 'special_to_date', 'special_price', 'cost', 'is_recurring', 'recurring_profile', 'msrp_enabled', 'msrp',
'msrp_display_actual_price_type', 'enable_googlecheckout', 'gift_message_available', 'price_view', 'price_type', 'shipment_type', 'weight_type',
'sku_type', 'links_purchased_separately', 'links_title', 'short_description', 'image_label', 'thumbnail_label', 'small_image_label', 'news_from_date',
'news_to_date', 'created_at', 'updated_at', 'required_options'))
因为您在列表中看不到“image”属性
默认Magento发行版的前端使用了“image”属性,所以我想知道这是一个bug吗?我前几天刚谈到这个问题。相同的Magento版本(1.7.0.2),但症状不同。事实上,我在我的网站上看到的图像是正确的。我的问题是,我的定制报告中的产品数量(总计、活动、无描述/简短描述、无图像/小/缩略图)开始给出错误的结果,并发现这是因为我激活了平面产品表 事实证明,MagentoAPI(Mage::getModel('catalog/product')->getCollection())自动使用了平面表,那里的信息量并不相同,但只有严格必要的信息 例如,并不是所有属性都被复制,而只是那些被分类为“用于产品列表”的属性。 在我的例子中,描述和图像都没有被复制,所以我去了管理员那里,将两者的“用于产品列表”设置为“是” 对于图像,这并不容易,因为它的“店主目录输入类型”(媒体图像)有效地隐藏了“用于产品列表”字段。因此,我需要一个浏览器开发工具(如Firebug或Chrome开发工具)首先从“商店所有者的目录输入类型”字段中删除disabled=“disabled”HTML属性,并将其更改为其他值。现在“用于产品列表”字段可见,请将其设置为“是”。最后将“商店所有者的目录输入类型”值恢复为“媒体图像” 如果您检查展开表(目录\产品\展开),则会看到图像和描述属性,并且您可以使用 这个过程对我很有效。然后我重新检查了我的目录列表和类似的页面,只是为了避免任何令人讨厌的副作用。。。
希望它对你有用我前几天刚谈到这个问题。相同的Magento版本(1.7.0.2),但症状不同。事实上,我在我的网站上看到的图像是正确的。我的问题是,我的定制报告中的产品数量(总计、活动、无描述/简短描述、无图像/小/缩略图)开始给出错误的结果,并发现这是因为我激活了平面产品表 事实证明,MagentoAPI(Mage::getModel('catalog/product')->getCollection())自动使用了平面表,那里的信息量并不相同,但只有严格必要的信息 例如,并不是所有属性都被复制,而只是那些被分类为“用于产品列表”的属性。 在我的例子中,描述和图像都没有被复制,所以我去了管理员那里,将两者的“用于产品列表”设置为“是” 对于图像,这并不容易,因为它的“店主目录输入类型”(媒体图像)有效地隐藏了“用于产品列表”字段。因此,我需要一个浏览器开发工具(如Firebug或Chrome开发工具)首先从“商店所有者的目录输入类型”字段中删除disabled=“disabled”HTML属性,并将其更改为其他值。现在“用于产品列表”字段可见,请将其设置为“是”。最后将“商店所有者的目录输入类型”值恢复为“媒体图像” 如果您检查展开表(目录\产品\展开),则会看到图像和描述属性,并且您可以使用 这个过程对我很有效。然后我重新检查了我的目录列表和类似的页面,只是为了避免任何令人讨厌的副作用。。。
希望它对你有用,尽管@Jordi Buj的答案会有用,但它不是很可持续。 例如,如果在另一个Magento实例上重用该代码,则在有人按照所述步骤将图像包含在平面表中之前,该代码可能无法工作 一种更正确、基于代码的方法是将以下内容添加到Mage_目录、模型、资源、产品集合中:
->joinAttribute('image', 'catalog_product/image', 'entity_id', null, 'left')
而不是典型的:
->addAttributeToSelect('image')
后者只是将“image”添加到要选择的列中(这没有帮助,因为它不是平面产品表中的列),前者将显式地与EAV表中的image属性连接
希望这会有所帮助。尽管@Jordi Buj的答案会奏效,但它不是很可持续。 例如,如果在另一个Magento实例上重用该代码,则在有人按照所述步骤将图像包含在平面表中之前,该代码可能无法工作 一种更正确、基于代码的方法是将以下内容添加到Mage_目录、模型、资源、产品集合中:
->joinAttribute('image', 'catalog_product/image', 'entity_id', null, 'left')
而不是典型的:
->addAttributeToSelect('image')
后者只是将“image”添加到要选择的列中(这没有帮助,因为它不是平面产品表中的列),前者将显式地与EAV表中的image属性连接
希望能有所帮助。我也花了一些时间来解决这个问题,下面是我发现的最干净的解决方案,它使用Magento的XML样式抽象将
图像
列添加到目录产品平面1
表中:
在config.xml中:
<config>
<frontend>
<product>
<collection>
<attributes>
<image />
</attributes>
</collection>
</product>
</frontend>
</config>
然后勒住