从 1.6 升级到 1.7.0.1 后,可能由于 js 问题,Bundle 产品在前端不可见
用firebug调试我发现以下js错误
<script type="text/javascript">
var optionsPrice = new Product.OptionsPrice(
Fatal error: Call to undefined method Mage_Bundle_Model_Product_Price::getBasePrice() in /var/www/vhosts/stage.planetjill.com/httpdocs/app/code/core/Mage/Bundle/Model/Product/Price.php on line 117
</script>
price.php 中的方法
public function getFinalPrice($qty = null, $product)
{
if (is_null($qty) && !is_null($product->getCalculatedFinalPrice())) {
return $product->getCalculatedFinalPrice();
}
$finalPrice = $this->getBasePrice($product, $qty);
//$finalPrice = $product->getPrice();
$product->setFinalPrice($finalPrice);
Mage::dispatchEvent('catalog_product_get_final_price', array('product' => $product, 'qty' => $qty));
$finalPrice = $product->getData('final_price');
$finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);
$finalPrice += $this->getTotalBundleItemsPrice($product, $qty);
$product->setFinalPrice($finalPrice);
return max(0, $product->getData('final_price'));
}
如果您看到注释行
// $finalPrice = $product->getPrice();
在magento 1.6中使用。如果我用这条线代替
$finalPrice = $this->getBasePrice($product, $qty);
捆绑产品现在可见,但配置的价格始终设置为 0,并且 addtocart 按钮中断。
有什么解决办法吗?