Как вывести процент скидки на странице товара?

голоса: +4
На странице товара нужна формула или скрипт, помогите с реализацией.

Текущая цена - $PRICE_RAW$

Старая цена - $PRICE_OLD$и

 

Надо вывести % скидки исходя из

$PRICE_OLD$ - $PRICE_RAW$ / 100 =  ?%
| Автор: | Категория: Интернет-магазин
Интересный вопрос, если решат, то пригодится и возьму себе :)

Ответов: 1

голоса: +4
 
Лучший ответ

Здравствуйте!

Вот код:

Экономия <?int(100 - ($PRICE_RAW$ / $PRICE_OLD_RAW$ * 100))?> %

| Автор:
Редактирование | | Автор: Артём Гурнович
Не верно считает. Получается так http://joxi.ru/MAjp7leujXgDme

Что может быть не так?
Делит только $PRICE_RAW$. Не считает разницу.
Я отредактировал код, посмотрите выше.
При "Экономия <?100 / ($PRICE_OLD$ - $PRICE_RAW$)?>%"

получается так:

http://joxi.ru/LmGjqDphw5Narl

Т.е тоже не работает. Не считает в скобках вычитание
Экономия <?100 - ($PRICE_RAW$ / $PRICE_OLD$ * 100)?>%

Что тут исправить чтоб заработало?
Вставил вот этот код на свой сайт на Ucoz. В итоге получилось:
<?(4850 - 4350) / 100?> - это выражение вывело ответ 5%
<?($PRICE_OLD - $PRICE_RAW$) / 100?> - должно вывести тоже самое.
А должно получится 10,3%
Т.к скидка 500 рублей от суммы 4850 это 10,3 %
Либо так:
Экономия <?( $PRICE_OLD$ - $PRICE_RAW$ ) / ( $PRICE_OLD$ * 100 )?>%

Но у меня не работает, пишет http://joxi.ru/KAgW7GJUE3DLAl
Сейчас попробую подкорректировать.
Получилось что нибудь с кодом?
Немного странно то, что в итоге получается не то значение, что Вы указывали. Вы уверенные что эта формула действительно правильна?
Да. Цель: получить процент скидки.
По этой формуле должно считаться, но выдает ошибку.

Экономия <?100 - ($PRICE_RAW$ / $PRICE_OLD$ * 100)?>%
Попробуйте так
<?int(100 - ($PRICE_RAW$ / $PRICE_OLD$ * 100))?>
И можно ссылку на Ваш сайт?
Я вставил Ваши значения новой и старой цены <?int(100 - (4350 / 4850 * 100))?>, в итоге (С помощью функции округления) получил 10.
Все верно, так и должно получится. 500 рублей скидка от 4850 рублей, это почти 10.3 %.

Только как заставить эту формулу работать в шаблоне? У меня выдает ошибку.
Переменные $PRICE_RAW$ и $PRICE_OLD$ выдают числа без всяких "примесей"? Без html-тегов?
Тег $PRICE_OLD$, выводиться с примесью, а вот тег $PRICE_OLD_RAW$ без. Замените в формуле тег $PRICE_OLD$ на $PRICE_OLD_RAW$
Заменил в формуле тег $PRICE_OLD$ на $PRICE_OLD_RAW$. Заработало.
А как можно округлить до десятых? Т.е оставить одну цифру после запятой?
До десятых функции у Ucoz нет, но вот до целых есть:
<?int(100 - ($PRICE_RAW$ / $PRICE_OLD_RAW$ * 100))?>
Отлично, спасибо.
Не за что! Рад был помочь.
...