我的可配置产品没有显示在前端。在后端,Magento 似乎将可配置产品列为 0 库存(尽管没有可配置产品的数量输入框)。
- 他们所有的产品都设置为“有货”并且数量高于零
- 可配置产品本身也设置为“有货”[没有数量设置-如上所述]
- 数据被重新索引并且缓存已经被刷新
- 使用 Magento 1.7.0.2
- 在此处使用流行的扩展简单可配置产品
请指教...
我的可配置产品没有显示在前端。在后端,Magento 似乎将可配置产品列为 0 库存(尽管没有可配置产品的数量输入框)。
请指教...
这是对我有用的解决方案:
问题在于简单可配置产品(有机互联网)中使用的代码
我想指出,我同时遇到了两个单独的问题 - 上述问题,并且产品价格指数拒绝被索引(我收到此消息:无法初始化索引器进程,解释为SQLSTATE [21S01]:插入值列表与列列表不匹配:1136 列计数与第 1 行的值计数不匹配)
事实证明这两个问题是相关的,下面解决了它们;)
改变:
$select->columns(array(
'entity_id' => new Zend_Db_Expr('e.entity_id'),
'customer_group_id' => new Zend_Db_Expr('pi.customer_group_id'),
'website_id' => new Zend_Db_Expr('cw.website_id'),
'tax_class_id' => new Zend_Db_Expr('pi.tax_class_id'),
'orig_price' => new Zend_Db_Expr('pi.price'),
'price' => new Zend_Db_Expr('pi.final_price'),
'min_price' => new Zend_Db_Expr('pi.final_price'),
'max_price' => new Zend_Db_Expr('pi.final_price'),
'tier_price' => new Zend_Db_Expr('pi.tier_price'),
'base_tier' => new Zend_Db_Expr('pi.tier_price'),
));
至:
$select->columns(array(
'entity_id' => new Zend_Db_Expr('e.entity_id'),
'customer_group_id' => new Zend_Db_Expr('pi.customer_group_id'),
'website_id' => new Zend_Db_Expr('cw.website_id'),
'tax_class_id' => new Zend_Db_Expr('pi.tax_class_id'),
'orig_price' => new Zend_Db_Expr('pi.price'),
'price' => new Zend_Db_Expr('pi.final_price'),
'min_price' => new Zend_Db_Expr('pi.final_price'),
'max_price' => new Zend_Db_Expr('pi.final_price'),
'tier_price' => new Zend_Db_Expr('pi.tier_price'),
'base_tier' => new Zend_Db_Expr('pi.tier_price'),
'group_price' => new Zend_Db_Expr('pi.group_price'),
'base_group_price' => new Zend_Db_Expr('pi.group_price'),
));
和
$outerSelect->columns(array(
'customer_group_id',
'website_id',
'tax_class_id',
'orig_price',
'price',
'min_price',
'max_price' => new Zend_Db_Expr('MAX(inner.max_price)'),
'tier_price',
'base_tier',
#'child_entity_id'
));
至
$outerSelect->columns(array(
'customer_group_id',
'website_id',
'tax_class_id',
'orig_price',
'price',
'min_price',
'max_price' => new Zend_Db_Expr('MAX(inner.max_price)'),
'tier_price',
'base_tier',
'group_price',
'base_group_price',
#'child_entity_id'
));
来源:与此一起的主要问题(但请注意,正确的代码是'base_group_price' => new Zend_Db_Expr('pi.group_price'),而不是'base_group_price' => new Zend_Db_Expr(' pi.base_group_price '),
改变
$this->cloneIndexTable(true);
至
$this->clearTemporaryIndexTable();
来源:这里
我花了几个小时才弄清楚这一点,所以我写了这篇文章来帮助其他人避免浪费所有的时间。
祝你好运!