Magento,目录\u产品\u平面出现问题
我们有一个网站,有两个商店视图:FR和EN。对于导入后的某些产品,EN store视图的目录\产品\平面未刷新。在EAV表格中,一切正常。数据重新索引应该截断这个平面表,并用更新的数据填充它。不知何故,它对某些项目不起作用 你们有没有人有过类似的问题?如果您能就这个话题提供任何线索或建议,我将不胜感激 编辑Magento,目录\u产品\u平面出现问题,magento,product,Magento,Product,我们有一个网站,有两个商店视图:FR和EN。对于导入后的某些产品,EN store视图的目录\产品\平面未刷新。在EAV表格中,一切正常。数据重新索引应该截断这个平面表,并用更新的数据填充它。不知何故,它对某些项目不起作用 你们有没有人有过类似的问题?如果您能就这个话题提供任何线索或建议,我将不胜感激 编辑 我做了进一步的检查,我对EAV表的看法是错误的。事实证明,catalog\u product\u entity\u varchar与catalog\u product\u flat是一致的。
我做了进一步的检查,我对EAV表的看法是错误的。事实证明,catalog\u product\u entity\u varchar与catalog\u product\u flat是一致的。所以平面表的数据与EAV表相同,但在管理面板中的值是错误的。对于EN store view,它们与默认值相同,仅适用于某些产品;。在我的本地PC上,我没有遇到这样的问题。这仅适用于我们的生产环境。据我所知,我们不使用任何数据库复制,这可能是这里的问题。请确保在导入目录产品时,在导入文件中为产品的所需属性提供了正确的值。如果未正确执行此操作,则数据重新索引可能无法正常工作 此外,在重新索引之前,最好从Magento安装目录的缓存管理和缓存文件夹中清除缓存
希望有帮助。请确保在导入目录产品时,在导入文件中为产品的必需属性提供了正确的值。如果未正确执行此操作,则数据重新索引可能无法正常工作 此外,在重新索引之前,最好从Magento安装目录的缓存管理和缓存文件夹中清除缓存
希望有帮助。我错了。数据库一切正常。问题是从数据库中检索的属性的顺序 在Mage_Eav_Model_Entity_Abstract中,我们可以找到:
$selects = array();
foreach ($this->getAttributesByTable() as $table=>$attributes) {
$selects[] = $this->_getLoadAttributesSelect($object, $table);
}
if (!empty($selects)) {
$values = $this->_getReadAdapter()->fetchAll(implode(' UNION ', $selects));
foreach ($values as $valueRow) {
$this->_setAttribteValue($object, $valueRow);
}
}
行内爆'UNION',$selects连接所有select语句。但是没有ORDERBY,所以数据可以按随机顺序检索。事实上,有些产品是这样的。“选择”始终为“存储视图0”和“选定存储视图当前”获取属性值
Array$值包含一组具有属性的数组。顺序在这里并不重要,因为如果存储视图(例如1)的属性(例如“名称”)在存储视图0的属性之前继续,那么它将被覆盖
解决方案是将ORDERBY子句添加到$selects或sort$values数组中。我错了。数据库一切正常。问题是从数据库中检索的属性的顺序 在Mage_Eav_Model_Entity_Abstract中,我们可以找到:
$selects = array();
foreach ($this->getAttributesByTable() as $table=>$attributes) {
$selects[] = $this->_getLoadAttributesSelect($object, $table);
}
if (!empty($selects)) {
$values = $this->_getReadAdapter()->fetchAll(implode(' UNION ', $selects));
foreach ($values as $valueRow) {
$this->_setAttribteValue($object, $valueRow);
}
}
行内爆'UNION',$selects连接所有select语句。但是没有ORDERBY,所以数据可以按随机顺序检索。事实上,有些产品是这样的。“选择”始终为“存储视图0”和“选定存储视图当前”获取属性值
Array$值包含一组具有属性的数组。顺序在这里并不重要,因为如果存储视图(例如1)的属性(例如“名称”)在存储视图0的属性之前继续,那么它将被覆盖
解决方案是将ORDER BY子句添加到$selects或sort$values数组中。EAV数据库模型由Magento使用,以便于升级和开发,因为该模型提供了更大的灵活性来处理数据和属性 在Magento中启用平面目录后,上述所有产品属性id、名称、价格都保存在一个名为catalog_product_flat的表中。然后,Magento从平面表中获取产品数据,而不是合并所有其他较小的表 平面目录有两种类型: 1平面目录产品 2平面目录类别 为提高性能,建议在任何Magento安装中使用平面类别。 扁平产品是为超过1000个SKU的产品目录设计和推荐的。 启用平面目录类别: 转到管理面板->系统->缓存管理->重建平面目录类别 转到管理面板->系统->配置->目录->前端->使用平面目录类别=是 启用平面目录产品: 转到管理面板->系统->缓存管理->重建平面目录产品 转到管理面板->系统->配置->目录->前端->使用平面目录产品=是 请记住,最初的选择列表 管理面板->系统->配置->目录->前端->使用平面目录产品 或 管理面板->系统->配置->目录->前端->使用平面目录产品
是不可编辑的。您必须从缓存管理重建平面目录。只有这样,选择列表才会变得可编辑 EAV数据库模型由Magento使用,便于升级和开发,因为该模型提供了更大的灵活性,可以处理数据和数据 属性 在Magento中启用平面目录后,上述所有产品属性id、名称、价格都保存在一个名为catalog_product_flat的表中。然后,Magento从平面表中获取产品数据,而不是合并所有其他较小的表 平面目录有两种类型: 1平面目录产品 2平面目录类别 为提高性能,建议在任何Magento安装中使用平面类别。 扁平产品是为超过1000个SKU的产品目录设计和推荐的。 启用平面目录类别: 转到管理面板->系统->缓存管理->重建平面目录类别 转到管理面板->系统->配置->目录->前端->使用平面目录类别=是 启用平面目录产品: 转到管理面板->系统->缓存管理->重建平面目录产品 转到管理面板->系统->配置->目录->前端->使用平面目录产品=是 请记住,最初的选择列表 管理面板->系统->配置->目录->前端->使用平面目录产品 或 管理面板->系统->配置->目录->前端->使用平面目录产品
是不可编辑的。您必须从缓存管理重建平面目录。只有这样,选择列表才会变得可编辑 几乎可以肯定的是,EAV表中缺少一些不明显的值。Magento使用复杂联接来完成重新索引,因此缺少值将导致没有为平面表创建条目。几乎可以肯定的是,EAV表中缺少一些不明显的值。Magento使用复杂联接来完成重新索引,因此缺少值将导致无法为平面表创建条目。