Magento:在产品页面上显示两次价格

时间:2013-10-17 11:04:21

标签: magento

这是在产品页面上生成价格的代码:

<?php  echo $this->getPriceHtml($_product) ?>

* app / design / frontend / default / CUSTOM_TEMPLATE / template / catalog / product / view.phtml *

我有一个简单的产品,有一些自定义选项。当客户选择其中一个选项时,价格会上涨。一切正常,直到这里。

我的问题是如何在同一页面上显示两次价格(需要这个用于设计)?

我尝试将上述代码复制并粘贴到同一页面上的两个位置,但问题是选择产品选项后第二个价格不会更新。只有一个价格更新,第二个不会。关于如何使其发挥作用的任何想法?

2 个答案:

答案 0 :(得分:2)

页面上很可能有一个JavaScript可以计算新价格,也可以使用AJAX获取它。因此输出的价格为:

<?php echo $this->getPriceHtml($_product) ?>

将被新的覆盖。解决这个问题需要您找到Javascript并找到它的位置。您还应该检查getPriceHtml调用周围的HTML元素。我想模板可能有这样的东西:

<p class="totalProductPrice"><?php echo $this->getPriceHtml($_product) ?></p>

如果您使用具有可识别的类名或ID的元素包围第二个价格输出的输出,您应该能够修改Javascript以将新计算的价格输出到该元素以及原始元素。

修改

检查我自己的代码库后,我认为您要查找的文件位于/js/varien/Product.js。在函数reloadPrice: function()内,检查第481行:

    if($('product-price-'+this.config.productId)){
        $('product-price-'+this.config.productId).innerHTML = price;
    }

并修改脚本以更新您的第二个价格元素。

答案 1 :(得分:0)

对我来说,解决方案是:

price_clone.phtml 复制到 price_clone2.phtml 并更改:

<?php echo $this->getPriceHtml($_product, false, '_clone2') ?>

catalog.xml

中添加该块
<block type="catalog/product_view" name="product.clone_prices2" as="prices2" template="catalog/product/view/price_clone2.phtml"/>

然后在 product.js 中更改 initPrices函数

initPrices: function() {
    this.containers[0] = 'product-price-' + this.productId;
    this.containers[1] = 'bundle-price-' + this.productId;
    this.containers[2] = 'price-including-tax-' + this.productId;
    this.containers[3] = 'price-excluding-tax-' + this.productId;
    this.containers[4] = 'old-price-' + this.productId;
    this.containers[5] = 'product-price-' + this.productId+'_clone2';
},