1

在一个打开购物车的网站上工作,我想在其中显示我的每个选项及其调整后的价格。

在控制器中,我正在获取所有选项,循环它们,并对最终结果进行简单的添加/格式化。但是它只是不起作用,我完全不知道为什么。渲染到模板时的价格,不显示结果价格 + 123。

我的代码如下。

$options = $this->model_catalog_product->getProductOptions($result['product_id']);

            foreach ($options as $option) {
                foreach($option['option_value'] as $option_value) {
                    $option_value['price'] = $result['price'] = $option_value['price'];
                }
            }

            $this->data['products'][] = array(
                'options'     => $options,
                'product_id'  => $result['product_id'],
                'thumb'       => $image,
                'name'        => $result['name'],
                'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
                'price'       => $price,
                'special'     => $special,
                'tax'         => $tax,
                'rating'      => $result['rating'],
                'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
            );
4

1 回答 1

1
$option_value['price'] = $result['price'] = $option_value['price'];

实际上应该是

$option_value['price'] = $result['price'] + $option_value['price'];

虽然如果你想确保你也包括特价,你可以使用

$option_value['price'] = $option_value['price'] + (empty($result['special']) ? $result['price'] : $result['special']);
于 2013-06-17T22:18:25.623 回答