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()
                );

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

有人可以帮忙吗,谢谢!

4

2 回答 2

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);
        }

?>
于 2014-04-16T04:18:47.237 回答
0

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

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

希望这可以帮助您上路:)

于 2012-10-11T11:33:22.760 回答