-
Ваша корзина пуста!
В этой статье вы узнаете как вывести скидку в процентах в шаблоне CMS Opencart.
В интернете почему-то крайне мало рабочих решений этой проблемы. В основном все модули и статьи написаны для административной части, что бы именно там менять цены в процентном соотношении.
Но мы с вами будем делать скидки и акции в % конкретно для клиентов, ведь для продаж лучше влияент именно процентная скидка, чем "старая цена" в цифрах.
Как добавить скидку в процентах для категорий и модулей?
Для первого раза можно взять любой файл модуля, категории, либо страницы товаров со скидкой.
В этой статье будем использовать файлы:
Шаг №1. Вносим коррективы в контроллер - (/catalog/controller/module/special.php)
Находим:
if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}
И заменяем на:
if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
$skidka = round(100-($result['special']/($result['price']/100)));
} else {
$skidka = false;
$special = false;
}
После находим:
$data['products'][] = array(
Под строкой:
'special' => $special,
Вставляем:
'skidka' => $skidka,
Внимание! Некоторые модули место $result используют $product_info, в таком случае меняем строку:
$skidka = round(100-($result['special']/($result['price']/100)));
на
$skidka = 100-($product_info['special']/($product_info['price']/100));
Шаг №2. Вносим правки в шаблон (/catalog/view/theme/default/template/module/special.tpl)
Ищем:
<span class="price-old"><?php echo $product['price']; ?></span>
<span class="price-new"><?php echo $product['special']; ?></span>
Добавляем:
<span class="procent"><?php echo $product['skidka']; ?>%</span>
Как добавить скидку в процентах для карточки товара?
Шаг №1. Меняем код в контроллере - (/catalog/controller/product/product.php)
Находим:
if ((float)$product_info['special']) {
$this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$this->data['special'] = false;
}
И заменяем на:
if ((float)$product_info['special']) {
$this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
$this->data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));
} else {
$this->data['special'] = false;
$this->data['skidka'] = false;
}
Внимание! Для Opencart 2.x меняем строку:
$this->data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));
на:
$data['skidka'] = 100-($product_info['special']/($product_info['price']/100));
Шаг №2. Редактируем шаблон карточки товара (/catalog/view/theme/default/template/product/product.tpl)
Находим:
<span class="price-old"><?php echo $product['price']; ?></span>
<span class="price-new"><?php echo $product['special']; ?></span>
И добавляем ниже или выше:
<span class="procent"><?php echo $product['skidka']; ?>%</span>
После чего Вы можете смело настраивать остальные модули и страницы, которые выводят товар.
Стилизация вывода процентов на CSS - ваше домашнее задание. Шутка, мы считаем, если вы способы залезть в PHP + HTML код даже на таком начальном уровне, то стилизовать скидку в % не составит никакого труда :)