我的开发网站有一个交通灯图形系统,用于说明每个项目的库存水平。 在这些简单的产品中,我有一些捆绑产品(未来会有更多产品)。 在产品列表(和详细信息)页面上,库存图形始终显示为红色或缺货 - 即使捆绑包中包含的每个产品都是库存。
我认为唯一可以隐藏所有捆绑产品的库存图形。
有谁知道怎么做? 如何在代码中执行测试以显示(或不显示)基于产品type_id为捆绑的股票图形?
我担心这是不是一个好主意,因为在显示页面之前测试每个产品会增加额外开销?
欢迎任何其他建议! 干杯!
答案 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; ?>
我希望帮助其他人寻找这个!