Magento Custom Options显示购物车/结账页面的价格

时间:2012-08-15 08:36:03

标签: magento

我试图在购物车页面和结帐页面显示自定义选项的每个价格。

所以我更改了这个文件:app / code / core / Mage / Catalog / Helper / Product / Configuration.php 这里是第75行

 $options[] = array(
                    'label' => $option->getTitle(),
                    'value' => $group->getFormattedOptionValue($itemOption->getValue()),
                    'print_value' => $group->getPrintableOptionValue($itemOption->getValue()),
                    'option_id' => $option->getId(),
                    'option_type' => $option->getType(),
                    'custom_view' => $group->isCustomizedView(),

                    //##my changing
                   'my_price' => $option->getPrice()
                );

但这只适用于字段,当我的自定义选项是选择框或单选按钮时,它不起作用。

有人可以帮忙,谢谢!

2 个答案:

答案 0 :(得分:1)

打开模板文件

应用/设计/前端/默认/主题/模板/结帐/购物车/项目/ default.phtml

找到foreach循环:

<?php foreach ($_options as $_option) : ?>

在该foreach循环中,添加以下代码:

<?php

        $optionId = $_option['option_id'];
        $product = $_item->getProduct();
        $option = $product->getOptionById($optionId);
        $itemOption = $_item->getOptionByCode('option_' . $option->getId());
        $price = false;
        foreach ($option->getValues() as $values) {
            if ($values->getId() == $itemOption['value']) {
                $price = $values->price;
            }
        }
        if ($price !== false) {
            echo Mage::helper('core')->currency($price);
        }

?>

答案 1 :(得分:0)

不确定你是否已经解决了你的问题,但这里的参考就是我所做的......

自定义选项价格仅可从产品对象获得,而不是来自item对象(可从cart / item / default.phtml模板中获得)。您必须从项目中找到产品ID($ _item-&gt; getProductId())然后加载此产品。从那里你需要加载产品选项,遍历自定义选项选择值(在我的情况下)并在选项值ids与产品和项目对象(http://subesh.com.np/2009/12/custom-options-product-magento/匹配时)提取价格以获得更多帮助)。

希望这可以帮助您顺利前进:)