在捆绑产品页面中,我需要显示捆绑中的产品是否缺货。目前,该产品根本没有出现在下拉列表中。我查看了"select.phtml"文件,在开头发现这行代码获得了下拉列表的选项值:
<?php $_selections = $_option->getSelections(); ?>
不幸的是,这并不能带来"缺货"的商品。那么,有没有办法包括这些项目?
谢谢。
希望这能帮助到别人。经过数小时的搜索,终于在app/code/core/Mage/Bundle/Block/View/Type/Bundle.php 中找到了导致问题的行
你需要更改这条线路
$this->_options = $optionCollection->appendSelections($selectionCollection, false,
Mage::helper('catalog/product')->getSkipSaleableCheck()
);
到这个
$this->_options = $optionCollection->appendSelections($selectionCollection, false,
true
//Mage::helper('catalog/product')->getSkipSaleableCheck()
);
基于SimCity的答案,您可以执行以下操作,而不是扩展/覆盖块。我已经将此代码添加到bundle/cacatalog/product/view/type/bundle/options.phtml 的顶部
// Get the current value of SkipSaleableCheck
<?php $skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck() ?>
// Overwrite this value with a 'true' value
<?php Mage::helper('catalog/product')->setSkipSaleableCheck(true) ?>
然后,您可以使用以下代码在同一文件的底部重置此值:
<?php Mage::helper('catalog/product')->setSkipSaleableCheck($skipSaleableCheck) ?>
该方法在不必覆盖核心Magento块的情况下提供相同的结果。
在Magento 1.8.1中,您可以在app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php 中找到该文件
请注意,对核心进行更改将使您的网站无法进行更新。将文件复制到本地目录。