2013-06-17 2 views
1

Работа на сайте с открытой корзиной, где я хочу отображать каждый из моих вариантов с его скорректированной ценой.Opencart category.php не обновляется цена

В контроллере я собираю все параметры, перебираю их и делаю простое добавление/форматирование конечного результата. Однако его просто не работает, и я понятия не имею, почему. Цена при рендеринге в шаблон, не отображается цена результата + 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) 
      ); 

ответ

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']); 
Смежные вопросы