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

Округление цены дважды при скидке (итог не в пользу покупателя)

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

ОС15511

 

Пример:

Установлено округление цены до рублей, без копеек. Товар стоит 2550 и клиент к нему применяет купон на скидку на 15%.

Математически это должно быть так

2550 - 382,5 = 2167,5. Округляя цену, к оплате 2168 рублей.

 

Но магазин помимо итоговой цены округляет и скидку, так что клиент видит математику:

2550 - 383 = 2168

Что просто дико и Пифагор с Евклидом и Лобачевским негодуют.

 

Как можно это исправить? Доводить цены до целых сотен не хочется. Может, показать копейки в скидке и округлять только итог? Это реально сделать?

Какие еще идеи?

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


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

Наконец, сделал - округление купона вниз при любых значениях. Теперь 100,5 руб станут 100.

В файле catalog/model/total/coupon.php на строке (47) обернуть выражение в floor():

$discount = floor($product['total'] / 100 * $coupon_info['discount']);

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


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

Неправильно сделал. Так как это округление прописано в цикле, получается, что несколько товаров имеет дробную скидку 222,50 р, например и эти 50 копеек откидываются у каждого, снижая размер скидки на несколько рублей. Вместо 983 рублей скидки выходит, к примеру 980.

 

Округление надо ставить в самом конце условия if ($coupon_info) { }

строку

$total -= $discount_total;

заменить на 

$total -= floor($discount_total);

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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