[Помогите] Акции для опций

Тема в разделе "OpenCart", создана пользователем Funya, 3 июл 2013.

  1. Funya

    Funya

    Регистрация:
    5 апр 2013
    Сообщения:
    11
    Симпатии:
    2
    Как сделать акции на опции? В магазине опции идут как различные варианты определённого товара (разный объём, цвет и т.д.) с своей кнопкой купить. Сейчас акции действуют на основную цену товара, и работают для опций только в том случае если цена опции +-0, если идет изменение то показывается основная цена (без учета акционной цены) +- цена опции.

    Проблема тут:
    Код:
    if ($option_value['price_prefix'] == '+') {
    									$price = $price + $this->data['price'] . ' грн';
    								} else {
    									if ($option_value['price_prefix'] == '-') {
    										$price = $this->data['price'] - $price  . ' грн';
    									}
    								}
    Если прописать вместо $this->data['price'] = $this->data['special'] то цена отображается нормально (правда показывается не как акционная(с перечеркнутой предыдущей), а как обычная), но только в тех товарах где есть акции. Как можно сделать что б $this->data['special'] использовалось только в тех случаях если есть акции в товаре или подскажите модуль для решения этой проблемы? Спасибо.
     
  2. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Прописать условие на special, тоесть типа:
    Код:
    if (!$special) {нормальный вывод}else{вывод со скидкой}
     
  3. Funya

    Funya

    Регистрация:
    5 апр 2013
    Сообщения:
    11
    Симпатии:
    2
    Заработало с таким кодом:
    Код:
     if ($option_value['price_prefix'] == '+') { if ($product_info['special']) {
    $price = $price + $this->data['special'] . ' грн';
    } else { $price = $price + $this->data['price'] . ' грн';}
    }
    Но в карточке товара цена отображается не как акционная (если опция идет +-0 то все хорошо). Вот код с product.tpl:
    Код:
     <?php if ($option_value['price']) { ?>
    <?php echo $text_price; ?> <strong><?php echo ($option_value['price']); ?></strong>
    <?php } else { ?>
    <?php echo $text_price; ?>
    <?php if (!$special) { ?>
    <strong><?php echo $price; ?></strong>
    <?php } else { ?>
    <span class="price-old"><strong><?php echo $price; ?></strong></span> <span class="price-new"><strong><?php echo $special; ?></strong></span>
    <?php } ?>
    <br />
    <?php } ?>
    Что-то в данной ситуации можно изменить?
     
  4. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    $price = $price + $this->data['special'] . ' грн'; замените на $special = $price + $this->data['special'] . ' грн';
     
    Funya нравится это.