Нормализация цен в платежном модуле
Начиная с v22-3-4 в API добавлена функция нормализации цен.
Нормализация - это уменьшение стоимости товаров на скидку (если она есть в заказе) и с учетом копеек/округления, равномерно распределенную по всем товарам, причем таким образом, чтобы стоимость заказа и сумма позиций, передаваемых в фискальных данных полностью совпадали.
Получить товары с уже нормализоваными ценами из заказа № $order_id в платежном модуле очень просто:
$purchases = $fivecms->payment->normalize((int)$order_id);
т.о. для получения информации о товарах в заказе нужно использовать код выше вместо этого старого:
$purchases = $fivecms->orders->get_purchases(array('order_id' => intval($order_id)));
Важные нюансы по добавлению доставки в фискальные данные
- Доставка добавляется как отдельный товар и скидка на нее не распространяется.
- Не забывайте делать проверку на метку "оплачивается отдельно/separate_delivery" в информации о заказе:
if($order->delivery_id && !$order->separate_delivery && $order->delivery_price > 0) {
$delivery = $fivecms->delivery->get_delivery($order->delivery_id);
...
}
Если доставка бесплатна или оплачивается отдельно, то информацию о ней не нужно передавать.
Связанные статьи
UPD: обновлено 21.12.2022
Еще нет своего сайта? Создайте интернет-магазин на платформе 5CMS - Все для продаж уже внутри!
-
Как работает локализация админки
Как добавить свой язык
Как изменить текст того или иного слова в админке
-
Запрет обхода сайта сторонними ботами с помощью директив в .htaccess.