我的可配置产品未显示在前端。在后端,Magento似乎将可配置产品列为0库存(尽管可配置产品的数量没有输入框)。
请告知......
答案 0 :(得分:12)
以下是适合我的解决方案:
问题在于简单可配置产品(OrganicInternet)中使用的代码
我想要注意的是,我一次遇到两个单独的问题 - 以上,产品价格指数拒绝被编入索引(我收到了这条消息:无法初始化索引器进程,解释为 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'
));
来源:main issue和this(但请注意,正确的代码是'base_group_price'=>新的Zend_Db_Expr('pi.group_price'),和不是'base_group_price'=>新Zend_Db_Expr('pi。 base _ group_price'),
变化
$this->cloneIndexTable(true);
到
$this->clearTemporaryIndexTable();
来源:here
我花了几个小时来弄明白这一点所以我写这篇文章是为了帮助其他人浪费所有的时间。
祝你好运!