Перейти к содержанию
zvekov

Вывод разницы цен между special и price

Рекомендуемые сообщения

Добрый день!
Подскажите как можно в шаблоне вывести разницу между двумя значениями цен special и price.
например

цена товара 100 000 руб

цена со скидкой 80 000 руб

хочу вывести

Экономия 20 000 руб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если в лоб(без заморочек) в карточке товара

файл  \catalog\view\theme\ваш_шаблон\template\product\product.tpl

                <?php if (!$special) { ?>
                <li>
                  <h2><?php echo $price; ?></h2>
                </li>
                <?php } else { ?>
                <li><span class="special-price"><?php echo $price; ?></span></li>
                <li>
                  <h2><?php echo $special; ?></h2>
                  <p>экономия - <?php echo (float)$price - (float)$special;?> руб</p>
                </li>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если почти по феншую

файл   \catalog\language\ru-ru\product\product.php

добавить 

$_['text_econom'] = 'Экономия: ';  

файл   \catalog\controller\product\product.php

находим строку

$data['text_option'] = $this->language->get('text_option');

после нее добавляем

$data['text_econom'] = $this->language->get('text_econom');

еще находим

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

после вставляем

                       if($data['price'] && $data['special']) {
                            $cost = (float)$product_info['price'] - (float)$product_info['special'];
                            $data['econom'] = $this->currency->format($this->tax->calculate($cost,$product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                        } else {
                            $data['econom'] = false;
                        }

файл   \catalog\view\theme\ваша_тема\template\product\product.tpl

              <?php if ($price) { ?>
              <ul class="list-unstyled full-price">
                <?php if (!$special) { ?>
                <li>
                  <h2><?php echo $price; ?></h2>
                </li>
                <?php } else { ?>
                <li><span class="special-price"><?php echo $price; ?></span></li>
                <li>
                  <h2><?php echo $special; ?></h2>
                  <p><?php echo $text_econom;?><?php echo $econom;?></p>
                </li>
                <?php } ?>
                <?php if ($tax) { ?>
                <li><?php echo $text_tax; ?> <?php echo $tax; ?></li>
                <?php } ?>
                <?php if ($points) { ?>
                <li><?php echo $text_points; ?> <?php echo $points; ?></li>
                <?php } ?>
                <?php if ($discounts) { ?>
                <?php foreach ($discounts as $discount) { ?>
                <li><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></li>
                <?php } ?>
                <?php } ?>
              </ul>
              <?php } ?>

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а вообще по феншую, все изменения делаем через модификатор

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавил в  \catalog\view\theme\ваш_шаблон\template\product\category.tpl

                <li>
                  <h2><?php echo $special; ?></h2>
                  <p>экономия - <?php echo (float)$price - (float)$special;?> руб</p>
                </li>

выводит ошибку
Notice: Undefined variable: price in/home/doma/мойсайт/docs/catalog/view/theme/default/template/product/category.tpl on line 126Notice: Undefined variable: special in /home/doma/мойсайт/docs/catalog/view/theme/default/template/product/category.tplon line 1260 руб

меня устроит этот вариант, т.е. в лоб)

Изменено пользователем zvekov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, zvekov сказал:

\product\category.tpl

 

В 19.05.2017 в 13:37, fanatic сказал:

duct\product.tpl

это для карточки товара.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для категории

                <?php if ($product['price']) { ?>
                <p class="price">
                  <?php if (!$product['special']) { ?>
                  <?php echo $product['price']; ?>
                  <?php } else { ?>
                  <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span>
                   <p>экономия - <?php echo (float)$product['price'] - (float)$product['special'];?> руб</p>
                  <?php } ?>
                  <?php if ($product['tax']) { ?>
                  <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
                  <?php } ?>
                </p>
                <?php } ?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, fanatic сказал:

для категории


                <?php if ($product['price']) { ?>
                <p class="price">
                  <?php if (!$product['special']) { ?>
                  <?php echo $product['price']; ?>
                  <?php } else { ?>
                  <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span>
                   <p>экономия - <?php echo (float)$product['price'] - (float)$product['special'];?> руб</p>
                  <?php } ?>
                  <?php if ($product['tax']) { ?>
                  <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
                  <?php } ?>
                </p>
                <?php } ?>

 

спасибо, от души!)

всё работает

Изменено пользователем zvekov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Знатоки нужна помощь. данное решение и при отсутствии скидки выводит цену товара (и в моем случае получается дубль, я оставил только что бы выводилась какая экономия у человека, без цены и скидки...они и так есть), а можно сделать так что если акции нет то строка не отображается? использовал метод который указан как почти правильный. Если можно прошу помочь подсказкой

Снимок экрана 2018-04-06 в 18.45.32.png

 

ЗЫ - как убрать точку перед зеленой рамкой?

Изменено пользователем davayigrat

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 20.05.2017 в 23:03, fanatic сказал:

для категории


                <?php if ($product['price']) { ?>
                <p class="price">
                  <?php if (!$product['special']) { ?>
                  <?php echo $product['price']; ?>
                  <?php } else { ?>
                  <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span>
                   <p>экономия - <?php echo (float)$product['price'] - (float)$product['special'];?> руб</p>
                  <?php } ?>
                  <?php if ($product['tax']) { ?>
                  <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
                  <?php } ?>
                </p>
                <?php } ?>

 

а как сделать что бы цена пересчитывалась при изменении опции и количества в категориях???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
42 минуты назад, svitlo сказал:

при изменении опции и количества в категориях

для начала, нужно вывести опции и количество в категории.  у вас выведены?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да модулем опции и атребуты в категориях.... проблема в том что я использую модуль дисконт сале про для создания акций однако он не создает акции как таковые и модуль их не пересчитывает! Старая цена пересчитывается без проблем а новая                   <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new" <?php echo isset($product['date_end']) && $product['date_end'] ? "data-end-date='{$product['date_end']}'" : ""; ?>><?php echo $product['special']; ?></span>

special которая просто стоит не движимо и все(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.