1.6 から 1.7.0.1 にアップグレードした後、おそらく js の問題が原因で、バンドル製品がフロントエンドに表示されない
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 ボタンが機能しなくなります。
解決策はありますか?