Налаштування правил округлення цін 1С-Бітрікс
Округлення цін у 1С-Бітрікс — точка, де математично коректний результат сприймається як артефакт. Знижка 7% на товар за 349 гривень дає 324,57 гривні. Відображати таку ціну на вітрині небажано. Бітрікс вирішує це через правила округлення в модулі каталогу.
Де налаштовується округлення
«Налаштування → Налаштування продуктів → Каталог → Округлення цін». У ранніх версіях — у налаштуваннях компонента bitrix:catalog.element та bitrix:catalog.section параметри PRICE_VAT_INCLUDE та окремі округлення.
Глобальні правила округлення — CCatalogProduct::getRoundRules() читає з b_catalog_rounding_rule.
Типи правил округлення
| Правило | Опис | Приклад |
|---|---|---|
| Математичне | Стандартне: 0.5 → вгору | 324.57 → 325 |
| Завжди вниз | floor() |
324.57 → 324 |
| Завжди вгору | ceil() |
324.01 → 325 |
| До потрібного знака | Точність у налаштуваннях | 324.57 → 320 або 324.6 |
Програмне налаштування правил
// Додавання правила округлення
\Bitrix\Catalog\RoundingTable::add([
'CATALOG_GROUP_ID' => $priceTypeId, // 0 = всі типи цін
'PRICE_FROM' => 0,
'PRICE_TO' => 999.99,
'ROUND_TYPE' => \Bitrix\Catalog\RoundingTable::ROUND_MATH,
'ROUND_PRECISION' => 0, // до цілих
]);
// Для цін від 1000 — інше правило
\Bitrix\Catalog\RoundingTable::add([
'CATALOG_GROUP_ID' => $priceTypeId,
'PRICE_FROM' => 1000,
'PRICE_TO' => null,
'ROUND_TYPE' => \Bitrix\Catalog\RoundingTable::ROUND_MATH,
'ROUND_PRECISION' => -1, // до десятків
]);
ROUND_PRECISION — кількість знаків після коми (від'ємні значення округлюють до десятків, сотень).
Округлення в кошику та на вітрині
Правила округлення застосовуються при обчисленні підсумкової ціни через CCatalogProduct::GetOptimalPrice(). У компоненті кошика — при перерахунку суми рядка. Важливо: ПДВ додається після округлення базової ціни, а не до.
Психологічне ціноутворення
Для цін виду «.99» правила округлення не підходять — це маркетингова задача, яка вирішується постфіксним обробником. Приклад — обробник події OnSaleOrderBeforeSaved або кастомний метод перерахунку цін.
Терміни виконання
Налаштування правил округлення для всіх типів цін — 1–3 години. Нестандартна логіка (психологічні ціни, різні правила для категорій) — 4–8 годин.







