不显示捆绑产品的库存柜台

时间:2011-01-31 09:44:35

标签: magento bundle product

我的开发网站有一个交通灯图形系统,用于说明每个项目的库存水平。 在这些简单的产品中,我有一些捆绑产品(未来会有更多产品)。 在产品列表(和详细信息)页面上,库存图形始终显示为红色或缺货 - 即使捆绑包中包含的每个产品都是库存。

我认为唯一可以隐藏所有捆绑产品的库存图形。

有谁知道怎么做? 如何在代码中执行测试以显示(或不显示)基于产品type_id为捆绑的股票图形?

我担心这是不是一个好主意,因为在显示页面之前测试每个产品会增加额外开销?

欢迎任何其他建议! 干杯!

2 个答案:

答案 0 :(得分:1)

通过查看默认主题,我看到捆绑包有自己的模板,用于显示检查Mage_Bundle_Model_Product_Type::isSalable()的库存状态,这已经完成了加载所有组件产品并单独检查它们的昂贵操作。此外,价格也以类似的方式运行,加载组件。这是昂贵的,因为这是一个很大的EAV操作。我工作过的一些最慢的商店显然有很多捆绑/可配置的产品。

所以这项工作已经由数据库完成,并且再次循环加载的产品再次检查库存可能不是什么大问题。此外,您可以使用CatalogCache之类的内容来限制影响。

很遗憾,我没有看到库存数量事件,因此您可能需要使用自己的Mage_Bundle_Model_Product_Type方法扩展getStockQty()以进行相应的查找和计算。

如果您已经更改了库存显示,那么它就会出现在template/bundle/catalog/product/view/type/bundle.phtml文件中。如果您想要最简单的方法来隐藏捆绑的库存水平,请从那里删除“红绿灯”。这不会影响其他产品类型。

答案 1 :(得分:1)

事实证明这比以前认为的要简单得多。 以下代码将检查产品是否为" Bundle"然后有条件地显示股票柜台。

<?php if($_product->getTypeId() != "bundle"): ?>
[Stock counter display code here]
<?php endif; ?>

我希望帮助其他人寻找这个!