Вы не авторизованы.
Я писал об этой ситуации в техподдержку. Поблагодарили за найденную ошибку в программном коде. Но, похоже, так и не собираются исправлять.
У нас есть способы доставки, рассчитываемые по способу «Фиксированная стоимость доставки + процент».
ПРИМЕР:
Расчет: 300 руб. + 5%
Стоимость заказа 490 руб.
Стоимость доставки: 300 + 490*5% = 324,50
Интересно, что заказ обсчитывается с разным округлением:
1. Во время оформления заказа клиенту показывается стоимость доставки без копеек (325 рублей из примера)
2. Письмо о заказе клиенту приходит с копейками (324,50 рублей)
3. В административной панели в карточке заказа сумма доставки идет с копейками (324,50)
4. Письмо администратору магазина приходит так же с копейками (324,50)
5. В админке (см. скриншот) так же считается по-разному.
Пример:
Неактивен
Такая же проблема была, только со скидками. При подсчете скидки в заказе вылезало что-то вроде 4505.47 руб, приходилось постоянно править. Хотя цены в магазине целые, формула подсчета скидки высчитывала десятичные. Решил проблему следующим образом, на самом деле оказалось достаточно просто, путем округления конечной суммы средствами PHP.
В данном случае мне необходимо было изменить формулу подсчета скидки, ищем фаил discount_functions.php в папке core_functions
В нужной группе скидок вставляем следующий код:
$discount_order_price1 = ($cart_subtotal * $discount_percent / 100); $discount_order_price2 = round($discount_order_price1,-1); // -1 отвечает за число округления, чем выше число тем больше в идет дробную часть и меньше округление return ($discount_order_price2);
У меня это выглядит вот так:
function _getDiscountByCustomerGroup($cart_subtotal, $log) { if(!is_bool($customerID=regGetIdByLogin($log))) { $customer_group = GetCustomerGroupByCustomerId( $customerID ); $discount_percent = ($customer_group !==false ? $customer_group["custgroup_discount"] : 0); }; $discount_order_price1 = ($cart_subtotal * $discount_percent / 100); $discount_order_price2 = round($discount_order_price1,-1); return ($discount_order_price2); }
Не стал заморачиваться поисками для "всемирного" округления всего на сайте, в данном случае нужно было округлить 10 целые числа, чтобы это выглядело вместо 8567,56 руб. вот так ==> 8570.00 руб. при расчете скидки "групп покупателей" во время оформления заказа.
Отредактировано Merc (2012-07-21 06:23)
Неактивен
Я приобрел скрипт в августе 2012, в первом-же тестовом заказе посчитало сумму с лишними копейками, это без скидок и с одной установленной валютой, код не менял.
Разработчики тоже поблагодарили и пообещали, а как мне быть ?[img]zakaz1[/img]
Отредактировано Kmit (2012-10-14 13:44)
Неактивен