1

从 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 按钮中断。

有什么解决办法吗?

4

2 回答 2

2

请检查 product.js 文件中是否有任何 js 错误

于 2012-12-26T20:04:42.773 回答
1

我会检查您的模板文件,可能是 /app/design/xxx/xxx/bundle/catalog/product/view/price.phtml - 确保对 $_product->getFinalPrice() 的调用正确连接(即,如果你 get_class_methods($this) 它是可以访问 getFinalPrice() 的正确类)

如果不是,您应该检查已安装的所有模块并检查是否正在重写 Mage_Bundle_Model_Product_Price。

或者,通过模块的 .xml 文件逐个检查并禁用模块,直到问题得到解决。从那里隔离。

于 2012-10-01T04:54:39.330 回答