首页 文章

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

提问于
浏览
0

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

所以我更改了这个文件: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

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

    自定义选项价格仅可从产品对象获得,而不是来自item对象(这是's readily available from the cart/item/default.phtml template). You'll必须从项目中找到产品ID($ _item-> getProductId())然后加载此产品 . 从那里你'我想加载产品选项,遍历自定义选项选择值(在我的情况下),并在选项值ids与产品和项目对象匹配时提取价格(http://subesh.com.np/2009/12/custom-options-product-magento/以获得更多帮助) .

    希望这可以帮助你顺利上路:)

  • 1

    打开模板文件

    app/design/frontend/default/theme/template/checkout/cart/item/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);
            }
    
    ?>
    

相关问题