Автоматизація замовлень друкарні на 1С-Бітрікс з нелінійним калькулятором
Ми спроектували та запустили понад 15 сайтів для поліграфічних виробництв. Типова ситуація: менеджер витрачає годину на розрахунок замовлення за паперовими таблицями, а клієнт іде до конкурента з онлайн-калькулятором. Наш підхід — автоматизувати весь цикл: від завантаження макету з preflight-перевіркою до прозорого відстеження статусу. Замовте сайт друкарні під ключ з нелінійним калькулятором та preflight-перевіркою макетів — оцінимо ваш проєкт за 2 дні, просто напишіть нам.
Чому нелінійний калькулятор — ключовий елемент сайту друкарні?
У поліграфії вартість одиниці продукції нелінійна: тираж 100 візиток обходиться в $1–1/шт, а 1000 — вже $1–1/шт. Додавання ламінації збільшує ціну східчасто, а не пропорційно. Лінійний калькулятор дає похибку до 30%. Наш нелінійний використовує реальні тарифні матриці та забезпечує точність ±2%. Порівняйте: лінійний рахує "ціна × кількість", а нелінійний враховує технологічні залежності — приладку, спуск смуг, знижки від тиражу. Як показує практика, нелінійний калькулятор збільшує конверсію в 2-3 рази.
Як preflight-перевірка макетів автоматизує приймання?
Клієнт завантажує макет через форму. Після завантаження файл проходить автоматичну перевірку через ImageMagick. Прийнятні формати: PDF, AI, EPS, TIFF. Обмеження розміру — 200 МБ на файл. Перевіряються роздільна здатність (мінімум 300 DPI для офсету, 150 для широкоформатки), колірний простір (CMYK — пропускається, RGB — попередження), розмір документа (з допуском ±3 мм на вильоти) та наявність прозорості. Результат відображається кольоровим індикатором: зелений — все ок, жовтий — попередження, червоний — помилка. Це виключає ризик браку на виробництві та прискорює приймання замовлення.
Каталог продукції
Продукція друкарні оформлюється в інфоблоці Каталог з розділами: візитки, буклети, листівки, каталоги, упаковка, POS-матеріали, широкоформатний друк. Кожен елемент містить опис, доступні формати (A3, A4, A5, A6, євроформат, нестандартний), типи паперу (прив'язка до Highload-довідника Папір із зазначенням щільності), постдрукарську обробку (ламінація, УФ-лак, тиснення, вирубка, биговка, фальцювання), мінімальний тираж та технічні вимоги до макету.
Deep-dive: калькулятор поліграфічної продукції з нелінійною тарифікацією
Калькулятор друкарні — найскладніший технічний елемент сайту. На відміну від лінійного «ціна × кількість», вартість поліграфії залежить від багатьох параметрів з нелінійними залежностями: тираж 100 візиток може коштувати $1–1ів за штуку, а тираж 1000 — вже $1–1 за штуку. Додавання ламінації збільшує вартість не пропорційно, а східчасто. Ціна паперу залежить від щільності та формату нелінійно. Використовуйте онлайн-калькулятор друку, щоб клієнти миттєво бачили реальну вартість.
Модель даних Тарифікація зберігається в кількох пов'язаних Highload-інфоблоках: HlPaper (папір):
| Поле | Тип | Приклад |
|---|---|---|
| UF_NAME | рядок | Крейдова глянцева |
| UF_DENSITY | число | 300 |
| UF_PRICE_PER_KG | число | 85 |
| UF_SHEET_WEIGHT | число (float) | Вага листа формату в грамах |
| UF_FORMAT | список | SRA3, SRA2, 620×940 |
HlPrintRun (тарифи за тиражем):
| Поле | Тип | Приклад |
|---|---|---|
| UF_PRODUCT_TYPE | прив'язка | Візитки |
| UF_RUN_FROM | число | 100 |
| UF_RUN_TO | число | 499 |
| UF_COLORS | список | 4+0, 4+4, 1+0, 1+1 |
| UF_SETUP_COST | число | Вартість приладки |
| UF_PRINT_COST_PER_SHEET | число (float) | Вартість друку за лист |
HlPostpress (постдрукарська обробка):
| Поле | Тип | Приклад |
|---|---|---|
| UF_TYPE | список | Ламінація матова |
| UF_SETUP_COST | число | 800 |
| UF_COST_PER_UNIT | число (float) | 0.45 |
| UF_MIN_RUN | число | 100 |
| UF_DISCOUNT_THRESHOLD | число | 1000 |
| UF_DISCOUNT_PERCENT | число | 15 |
Детальний розрахунок вартості
Підсумкова вартість складається з компонентів:
-
Вартість паперу = кількість аркушів × вага аркуша × ціна за кг / 1000. Кількість аркушів розраховується з тиражу з урахуванням спуску смуг: скільки виробів поміщається на друкарський аркуш (залежить від формату виробу та формату паперу). Додається технологічний запас: 3% для тиражу до 500, 2% для 500–5000, 1.5% понад 5000.
-
Вартість друку = приладка + (кількість друкарських аркушів × вартість за аркуш). Приладка — фіксована сума за налаштування обладнання, не залежить від тиражу. Вартість за аркуш знижується східчасто: визначається рядком з HlPrintRun за діапазоном тиражу.
-
Постдрукарська обробка = приладка + (кількість одиниць × вартість за одиницю). Якщо тираж перевищує поріг UF_DISCOUNT_THRESHOLD, застосовується знижка UF_DISCOUNT_PERCENT.
-
Разом = папір + друк + сума постдрукарських операцій.
Backend-реалізація
AJAX-обробник (/ajax/calc_print.php) приймає параметри: тип продукції, формат, тираж, кольоровість, тип паперу, щільність, масив постдрукарських операцій. Для кожного компонента формули виконується запит до відповідного Highload через ORM DataManager. Результати проміжних обчислень кешуються в $_SESSION для відображення деталізації. Відповідь містить JSON з повною деталізацією: вартість паперу, друку (з виділенням приладки), кожної постдрукарської операції, разом та ціна за одиницю.
Інтерфейс
Калькулятор вбудований в детальну сторінку кожного продукту. При виборі параметрів перерахунок відбувається в реальному часі через AJAX з debounce (300ms затримка). Результат відображається в закріпленій бічній панелі (sticky sidebar), на мобільних — нижня шторка (bottom sheet).
Відстеження замовлення
Замовлення проходить через виробничі статуси, що зберігаються в модулі sale (компонент bitrix:sale.personal.order.detail). Статуси: Прийнято, Макет перевірено, В друку, Постдрукарська обробка, Готовий до видачі, Відвантажено. При зміні статусу спрацьовує обробник події OnSaleStatusOrder, що надсилає SMS через сервіс SMS.ru та email через поштову подію. Клієнт бачить поточний статус в особистому кабінеті — візуальний прогрес-бар з підсвічуванням поточного етапу.
Інтеграція з 1С:Поліграфія
Обмін даними налаштовується через модуль catalog та кастомний обробник. З Бітрікс в 1С вивантажуються нові замовлення як замовлення покупців з прив'язкою до номенклатури. З 1С в Бітрікс статуси виробництва оновлюються через REST-виклики; при зміні статусу в 1С скрипт обміну викликає метод CSaleOrder::Update(). Номенклатура синхронізується з 1С, включаючи актуальні тарифи. Періодичність обміну — cron-задача кожні 15 хвилин для статусів, раз на добу для номенклатури.
Що входить в роботу
Після завершення проєкту ви отримуєте повний вихідний код з коментарями, залитий в Git, документацію щодо структури Highload-довідників та інтеграції з 1С, інструкцію з адміністрування сайту, навчання менеджерів, 12 місяців гарантії на всі модулі та пост-релізну підтримку: моніторинг, бекапи, оновлення ядра.
Етапи реалізації
| Етап | Роботи | Термін |
|---|---|---|
| Аналітика | Збір тарифних матриць, формули розрахунку, ТЗ на калькулятор | 2 тижні |
| Проєктування | Структура Highload, прототипи, UX калькулятора | 1.5 тижня |
| Дизайн | Макети каталогу, калькулятора, особистого кабінету | 2 тижні |
| Backend | Інфоблоки, Highload-довідники, логіка калькулятора | 4 тижні |
| Preflight-модуль | Інтеграція ImageMagick, обробник перевірки макетів | 1 тиждень |
| Frontend | Верстка, інтерактивний калькулятор, адаптив | 2 тижні |
| Інтеграція 1С | Налаштування обміну статусів та номенклатури | 1.5 тижня |
| Тестування | Перевірка формул, навантажувальне тестування, UAT | 1.5 тижня |
| Запуск | Деплой, наповнення каталогу, моніторинг | 1 тиждень |
Терміни — від 9 до 12 тижнів залежно від складності. Вартість розраховується індивідуально — зв'яжіться з нами для оцінки. Отримайте консультацію спеціаліста щодо вашого проєкту.







