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 に答える