首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento,catalog_product_flat的问题

Magento,catalog_product_flat的问题
EN

Stack Overflow用户
提问于 2011-03-04 11:32:21
回答 3查看 15.9K关注 0票数 1

我们有一个网站,有两个商店的意见: FR和EN。对于某些产品,导入后不会刷新EN存储视图catalog_product_flat。在EAV表中,一切都很好。数据重新索引应该截断这个平面表,并用更新的数据填充它。不知怎么的,它对某些物品不起作用。

你们中有谁有类似的问题吗?如果有任何关于这个话题的线索或建议,我将不胜感激。

编辑

我已经做了进一步的检查,我对EAV表的看法是错误的。事实证明,catalog_product_entity_varcharcatalog_product_flat是一致的。因此,平面表具有与EAV表相同的数据,但在Admin中,值是错误的。对于EN store视图,它们与默认值相同,仅适用于某些产品(魔术?;)。在我的本地电脑上,我没有遇到这样的问题。这只是在我们的生产环境上。据我所知,我们不使用任何DB复制(这可能是这里的问题)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-11 10:50:05

我搞错了什么不对。所有的数据库都没问题。问题是从DB检索的属性顺序。

Mage_Eav_Model_Entity_Abstract中我们可以找到:

代码语言:javascript
复制
$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);
   }
}

implode(' UNION ', $selects)连接所有select语句。但是不存在ORDER BY,因此可以按随机顺序检索数据。事实上,对于一些产品来说,它是这样的。该选择获取存储视图0(始终)和选定存储视图(当前)的属性值。

数组$values包含具有属性的数组。Order在这里确实很重要,因为如果存储视图(例如1)的属性(例如'name')将在存储视图0的属性之前继续进行,那么它将被覆盖。

解决方案是将ORDER BY子句添加到$selects$values数组中。

票数 0
EN

Stack Overflow用户

发布于 2011-10-13 18:25:59

EAV数据库模型被Magento使用,以便于升级和开发,因为该模型为处理数据和属性提供了更大的灵活性。

当在Magento中启用平面目录时,上述所有产品属性(id、name、price)都保存在一个名为catalog_product_flat的表中。然后Magento从平面表中获取产品数据,而不是连接所有其他较小的表。

平面目录有两种类型: 1)平面目录产品2)平面目录类别

任何改进performance.

  • Flat产品的Magento安装都推荐使用
  • 平面类别,并推荐用于具有超过1000SKU.

的目录。

启用平面目录类别:

Panel->System->Configuration->Catalog->Frontend->Use

  • 转到管理面板->System->Cache管理->>重建平面目录类别

  • 到Admin

  • 平面目录类别=是

启用平面目录产品:

  • 转到管理面板->System->Cache管理->重建平面目录产品
  • 到Admin
  • 平面目录产品= Yes

记住,最初的选择列表是

管理Panel->System->Configuration->Catalog->Frontend->Use平面目录产品或,管理Panel->System->Configuration->Catalog->Frontend->Use平面目录产品

是不可编辑的。您必须从缓存管理重新生成平面目录。只有这样,选择列表才可编辑。

票数 3
EN

Stack Overflow用户

发布于 2011-03-04 13:57:19

确保在导入Catalog产品时,导入文件中为产品的所需属性提供了正确的值。如果没有正确地完成这一操作,那么数据重新索引可能无法正常工作。

在重新索引之前,最好还是从"Cache Management“和Magento安装目录的"cache”文件夹中清除缓存。

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5193150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档