Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

ОС15511

 

Пример:

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

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

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

 

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

2550 - 383 = 2168

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

 

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

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

Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

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

$discount = floor($product['total'] / 100 * $coupon_info['discount']);
Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

 

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

строку

$total -= $discount_total;

заменить на 

$total -= floor($discount_total);
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.