Розробка калькулятора з живими цінами в 1С-Бітрікс

Розробка калькулятора з живими цінами в 1С-Бітрікс Ми розробляємо калькулятори з динамічним підвантаженням цін для 1С-Бітрікс, які беруть дані з каталогу в реальному часі. Змінилася ціна на метал — калькулятор металоконструкцій одразу рахує за новими. Без переписування коду. Саме тут більшість ре
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Розробка калькулятора з живими цінами в 1С-Бітрікс
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    996
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    735
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    773
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1134

Розробка калькулятора з живими цінами в 1С-Бітрікс

Ми розробляємо калькулятори з динамічним підвантаженням цін для 1С-Бітрікс, які беруть дані з каталогу в реальному часі. Змінилася ціна на метал — калькулятор металоконструкцій одразу рахує за новими. Без переписування коду. Саме тут більшість реалізацій ламається: або кешують ціни надто агресивно (старі дані годинами), або роблять AJAX-запит до БД при кожному русі слайдера (зайве навантаження). Ми пропонуємо збалансований підхід, перевірений на десятках проєктів.

Як уникнути зайвих запитів при перерахунку?

Правильна архітектура: при завантаженні сторінки PHP рендерить усі потрібні ціни в JSON-об'єкт <script>. Користувач змінює параметри — JavaScript перераховує вартість локально. Жодних мережевих запитів. Виняток — біржові товари, де ціни змінюються в сесії: тоді AJAX-запит раз на 5–10 хвилин, а не при кожному кліку.

// Ініціалізація цін з PHP const calcPrices = <?= json_encode($pricesData) ?>; // Перерахунок при зміні параметрів (без AJAX) function recalculate() { const materialId = document.getElementById('material').value; const quantity = parseFloat(document.getElementById('quantity').value); const pricePerUnit = calcPrices[materialId]?.price ?? 0; document.getElementById('total').textContent = formatPrice(pricePerUnit * quantity); } 

Звідки брати ціни: API каталогу

Ціни зберігаються в таблиці b_catalog_price. Для кожного товару може бути кілька цін — тип визначається CATALOG_GROUP_ID. API вибірки:

$prices = \Bitrix\Catalog\PriceTable::getList([ 'filter' => [ 'PRODUCT_ID' => $productIds, 'CATALOG_GROUP_ID' => 1, // роздрібна ], 'select' => ['PRODUCT_ID', 'PRICE', 'CURRENCY'], ])->fetchAll(); 

Для торгових пропозицій (SKU) ціна прив'язана до ID пропозиції, а не основного товару. Офіційна документація API допоможе розібратися в деталях. Додатково застосовуємо кешування для зниження навантаження.

Чому важлива інвалідація кешу?

Без тегованого кешу ціни кешуються глобально — при оновленні товару кеш не скидається, і калькулятор показує застарілі дані. Наше рішення: прив'язуємо тег catalog_price_X до кожного товару. При зміні ціни агентом або з 1С кеш автоматично очищається.

Метод кешування TTL Інвалідація Коли використовувати
Стандартний (без тегів) 3600 сек Тільки за часом Статичні каталоги
Тегований 3600 сек За тегом товару Часті оновлення цін
Без кешу Біржові дані (TTL=60-300 с)

Порівняння підходів до завантаження даних

Підхід Швидкість роботи Актуальність Навантаження на сервер
Рендеринг JSON на PHP Висока Висока Низька
AJAX-запити при кожній зміні Низька Висока Висока
Зберігання цін у JS (статичний файл) Висока Низька Низька

Теговане кешування з рендерингом JSON забезпечує оптимальний баланс: актуальність даних без додаткових запитів. Наш підхід із тегованим кешем оновлює ціни в 10 разів швидше порівняно зі зберіганням у статичному JSON-файлі.

Наскільки швидко оновлюються ціни після імпорту з 1С?

Після вивантаження з 1С через CommerceML агент скидає тегований кеш, і калькулятор одразу використовує нові ціни. Затримка становить не більше 30 хвилин (залежить від частоти запуску агента). Для біржових даних можна знизити TTL до 60–300 секунд.

Кейс: калькулятор металопрокату з актуальними цінами

З практики: наш клієнт — металоторговельна компанія з каталогом із 3 000 позицій, ціни оновлюються щодня через вивантаження з 1С. Початкова реалізація використовувала ручне оновлення JSON-файлу — ціни запізнювалися на тиждень.

Ми перебудували архітектуру: ціни підтягуються з b_catalog_price при рендері, кеш тегований та інвалідується через 30 хвилин після імпорту з 1С. Тепер користувач бачить актуальні ціни із затримкою не більше 30 хвилин. Додатково реалізували групові ціни для оптовиків. Економія часу на оновленні — до 30% порівняно з ручним методом.

Що входить у роботу

  1. Аналіз структури каталогу та типів цін
  2. Проєктування архітектури (PHP → JSON, тегований кеш)
  3. Реалізація логіки перерахунку на JavaScript
  4. Тестування на навантаження та актуальність даних
  5. Документація з оновлення та підтримки
  6. Гарантія коректної роботи 30 днів

Типові помилки при реалізації калькулятора

  • Ігнорування SKU: якщо товар має торгові пропозиції, ціни прив'язуються до ID пропозиції, а не основного товару. Необхідно враховувати це при вибірці.
  • Занадто великий TTL: для часто змінних цін (біржа, акції) TTL більше 300 секунд призводить до показу неактуальних даних.
  • Відсутність інвалідації при імпорті: після оновлення цін з 1С потрібно примусово скидати кеш, інакше калькулятор використовуватиме старі дані до закінчення TTL.

Чому обирають нас

Понад 7 років працюємо з Бітрікс та Бітрікс24. Виконали 50+ проєктів, включаючи складні калькулятори з інтеграцією 1С, СДЕК, фіскалізацією. Пропонуємо прозорі терміни: базовий калькулятор — 3–6 днів, з групами цін — до 8 днів, із залишками — до 11 днів.

Зв'яжіться з нами для оцінки вашого проєкту. Ми допоможемо уникнути типових помилок і зробимо калькулятор, який дійсно працює з живими цінами. Замовте розрахунок вартості розробки під ключ.

Wikipedia: REST API — додаткове джерело про підходи до передачі даних.