Proweb-zone
Делаем скидку на товар в процентах на OpenCart 2.x

Делаем скидку на товар в процентах на OpenCart 2.x

Делаем отображение скидки в процентах на OpenCart 2.x

Все привет. Сегодня покажу Вам один из способов, как сделать отображение скидки в процентах в одном из модулей на OpenCart 2.x.

 Рассмотрим на примере модуля отображения “Новинок” на главной странице. Все остальные модули работают по такому же принципу.

Для редактирования можете использовать любой ftp клиент или файловый менеджер своего хостинг провайдера.

Нам нужно отредактировать всего 4 файла:

  1. /catalog/controller/extension/module/latest.php
  2. /system/storage/modification/catalog/controller/extension/module/latest.php
  3. /catalog/view/theme/default/template/extension/module/latest.tpl
  4. /system/storage/modification/catalog/view/theme/default/template/extension/module/latest.tpl
  1. Файл контроллер php

В файле находим следующую строку.

if ((float)$result['special']) {

И добавляем новую новую переменную

$skidka = round(100-($result['special']/($result['price']/100)));

После else добавим.

$skidka = false;

Для понимания пробежимся немного по теории.

Делаем скидку на товар в процентах на OpenCart 2.x

Из курса PHP мы знаем что функция round() позволяет округлять числа до целых.

А дальше простая математика. Для того чтобы получить процент от числа пишем следущую формулу.

(100-(a/(b/100))) где a – акционная цена, b – обычная цена

На выходе у Вас должен получиться следующий код

if ((float)$result['special']) {
					$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
				$skidka = round(100-($result['special']/($result['price']/100)));
				} else {
					$special = false;
					$skidka = false;
				}

 

 

Далее в этом же файле находим строку

$data['products'][] = array(

 

И добавляем следующую строку

 'skidka' => $skidka, 

Наш массив пополнился новыми данными, а именно скидкой. Теперь мы сможем обращаться за информацией о скидке прямо из шаблона модуля latest.tpl

На выходе у Вас должен получиться следующий код

$data['products'][] = array(
					'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, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'skidka'     => $skidka,
					'tax'         => $tax,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
				);
  1. /system/storage/modification/catalog/controller/extension/module/latest.php

В этом файле проделываем те же самые действия, что и в предыдущем файле, поскольку этот файл является индентичным.

Для справки можете погуглить для чего служит папка storage/modification в OpenCart 2x, чтобы появилось большее понимание всех танцев с бубнами.

  1. /catalog/view/theme/default/template/extension/module/latest.tpl

Тут все простенько. Находим строку

<?php if (!$product['special']) { ?>

И прописываем

<span class="skidka">-<?php echo $product['skidka']; ?>%</span>

У вас должно получиться следущее

<?php if ($product['price']) { ?>


<?php if (!$product['special']) { ?>
<span class="price-stock"><?php echo $product['price']; ?></span>
<?php } else { ?>
<span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span><span class="skidka">-<?php echo $product['skidka']; ?>%</span>
<?php } ?>
<?php if ($product['tax']) { ?>
<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
<?php } ?>


<?php } ?>
  1. /system/storage/modification/catalog/view/theme/default/template/extension/module/latest.tpl

Делаем все по аналогии как в 3 пункте.

Результат:

Все сохраняем заливаем измененные файлы на место, обновляем кэш своего сайта и вот что у Вас должно получиться

Делаем скидку на товар в процентах на OpenCart 2.x

Если у Вас возникнут вопросы, можете задать в отзывах.

Рассказать друзьям:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *