上周我一直在与这个问题作斗争,我真的希望这里有人可以帮助我。
在使用 Import 和 Dataflow/Import All Products 工具从不同(且稍旧的)Magento 商店生成的 CSV 反复导入产品后,我可以让它们显示在后端,似乎所有数据都完好无损带有图像和所有内容,但它们根本不会出现在前端。
似乎让它们出现在前端的唯一方法是将它们从管理产品页面中保存,我宁愿不让客户端在 1922 产品上这样做。如果我将它们添加到类别管理器的类别中,它们不会显示,只有(据我所知)如果我从产品管理器页面保存它们。
另请注意,所有产品
- 已启用
- 库存数量 > 0,重量 > 0 和价格 > 0
- 有现货 = 有货
- 有可见性=“目录,搜索”
- 为他们分配了正确的网站
- 有与他们相关的正确税级
此外,缓存已被完全禁用,我已经为所有内容重新索引了至少两打。我还尝试运行以下 PHP 片段:
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*');
foreach ($products as $product) {
if ($product->isSaleable())
Mage::log("Sellable product: {$product->getId()}");
else
Mage::log("Unsellable product: {$product->getId()}");
}
并且日志文件随后只包含"Sellable product: ..."。我也用同样的产品循环设置产品的网站ID,然后保存,也没什么区别。我已经尝试通过产品经理在保存之前和之后输出各种隐形产品的属性值(使用$product->getData()
),但我找不到任何差异。我没有在保存之前和之后检查每个 MySQL 表,坦率地说,我宁愿不必这样做。
我无计可施。我不知道还能尝试什么。我可以无数次地重新导入产品列表,但我怀疑它会有所作为。我可以尝试再次批量更新产品(使用产品经理的“操作”下拉菜单设置为“更新属性”),但这次可能也无济于事。有没有人有任何想法?
如果这不是此类问题的正确地点,我深表歉意;如果是这样的话,请随时指出我正确的方向。
更新
事实证明,这些产品实际上并没有设置正确的网站,尽管管理面板明确声称我查看的所有产品都是如此(前端都没有出现)。
解决方案:管理产品 > 全选,然后选择操作更新属性并将产品添加到正确的网站。不要忘记重建索引。