Автоматизація замовлень друкарні на 1С-Бітрікс з нелінійним калькулятором
Ми спроектували та запустили понад 15 сайтів для поліграфічних виробництв. Типова ситуація: менеджер витрачає годину на розрахунок замовлення за паперовими таблицями, а клієнт іде до конкурента з онлайн-калькулятором. Наш підхід — автоматизувати весь цикл: від завантаження макету з preflight-перевіркою до прозорого відстеження статусу. Замовте сайт друкарні під ключ з нелінійним калькулятором та preflight-перевіркою макетів — оцінимо ваш проєкт за 2 дні, просто напишіть нам.
Чому нелінійний калькулятор — ключовий елемент сайту друкарні?
У поліграфії вартість одиниці продукції нелінійна: тираж 100 візиток обходиться в 5 руб/шт, а 1000 — вже 1.5 руб/шт. Додавання ламінації збільшує ціну східчасто, а не пропорційно. Лінійний калькулятор дає похибку до 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 візиток може коштувати 5 рублів за штуку, а тираж 1000 — вже 1.5 рубля за штуку. Додавання ламінації збільшує вартість не пропорційно, а східчасто. Ціна паперу залежить від щільності та формату нелінійно. Використовуйте онлайн-калькулятор друку, щоб клієнти миттєво бачили реальну вартість.
Модель даних
Тарифікація зберігається в кількох пов'язаних 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 тижнів залежно від складності. Вартість розраховується індивідуально — зв'яжіться з нами для оцінки. Отримайте консультацію спеціаліста щодо вашого проєкту.
Як правильно проектувати інфоблоки?
Ми бачимо десятки проєктів, де неправильна структура інфоблоків перетворює сайт на гальмо. Типовий сценарій: замовник просить «каталог товарів». Розробник створює один інфоблок catalog, закидає туди 15 властивостей. Через півроку — 40 властивостей, 8 з яких використовуються лише для однієї категорії. Фільтр гальмує, таблиця b_iblock_element_property розрослася до мільйонів рядків, CIBlockElement::GetList виконується 3 секунди. Наслідки — падіння конверсії, втрата клієнтів, додаткові витрати на оптимізацію. В одному проєкті після рефакторингу каталогу час генерації сторінки знизився з 4,2 до 0,8 секунди, а вартість підтримки значно скоротилася — за рахунок усунення надлишкових запитів та агентів.
Наш підхід: проектуємо інфоблоки до першого рядка коду. Окремі інфоблоки під сутності (товари, категорії, бренди), властивості-довідники через HL-блоки, торгові пропозиції для SKU. Це закладає продуктивність на роки вперед. Якщо хочете отримати попередній аудит вашої схеми інфоблоків — зв'яжіться з нами, розберемо типові помилки та надамо рекомендації.
Чому 1С-Бітрікс вигідніший за альтернативи?
Вибір CMS диктується не уподобаннями, а бізнес-завданнями. Ось ключові аргументи:
- Нативний обмін з 1С — модуль
catalog.import.1c забезпечує двосторонній обмін товарами, цінами, залишками та замовленнями через CommerceML. Без сторонніх модулів. Це в 5 разів швидше, ніж розробка власного обміну на OpenCart або WordPress. Економія на інтеграції — до 200 000 грн порівняно з кастомними рішеннями.
- Проактивний захист — модуль
security включає WAF, контроль цілісності файлів, захист від SQL-ін'єкцій, двофакторну автентифікацію. Для проєктів з вимогами ФСТЭК — сертифіковане рішення (згідно з Wikipedia, це стандарт для корпоративних систем).
- Модульна архітектура — підключаємо лише потрібні модулі:
iblock, catalog, sale, search. Менше модулів — менше запитів до БД на кожен хіт.
- Регулярні патчі — вендор випускає security-патчі, закриваючи вразливості швидше, ніж open-source проєкти (середній час виправлення CVE — 2 тижні). Офіційна документація по модулях доступна на сайті розробника.
Що дають HL-блоки і як ми прискорюємо каталог
Highload-блоки — це альтернатива розширеним властивостям інфоблоків, коли список значень може зростати до тисяч записів. Типовий приклад: виробники, країни, кольори. Якщо зберігати їх як властивості-списки в інфоблоці, кожна фільтрація викликає повне сканування таблиці b_iblock_property_enum. З HL-блоками вибірка йде по індексу — час відповіді фільтра знижується з 1–2 секунд до 50 мс. Продуктивність HL-блоків у 8 разів вища за властивості-списки інфоблоків. Ми використовуємо HLB компонент і кастомні запити через Bitrix\Highloadblock\DataManager. Це особливо критично для каталогів з 100 000+ товарами.
З нашої практики — проєкт інтернет-магазину з 500 000 товарів. Стандартний фільтр по бренду виконувався 4 секунди. Сервер не витримував навантаження в 50 одночасних запитів — сторінки падали. Ми перевели довідник брендів у HL-блок, додали теговане кешування на 15 хвилин і налаштували агент для скидання кешу при зміні. Після доопрацювання час фільтрації склав 120 мс, середній LCP сторінки — 1,8 секунди. Проєкт працює стабільно без збоїв.
Що входить у розробку сайту на 1С-Бітрікс
Кожен проєкт включає повний комплект документації та артефактів, що виключає втрату знань після передачі.
- Технічне завдання — user stories, діаграми інфоблоків, схеми інтеграцій.
- Вихідний код у Git — з історією комітів, тегами релізів, правилами гілкування.
- Адміністративна документація — опис кастомних компонентів, інструкції з розгортання, перелік агентів і подій.
- Навчання співробітників — до 3 годин вебінару: панель управління, робота з замовленнями, налаштування цін. Записуємо, щоб можна було переглянути.
- Доступ до staging на час розробки — тестуєте самостійно до деплою на продуктив.
- Гарантійна підтримка — виправлення помилок коду протягом 30 днів після запуску. Післягарантійні абонентські пакети з SLA (реакція 2 години, рішення 8 годин).
Наш процес і технології
| Тип проєкту |
Терміни |
Складність |
Ключові особливості |
| Корпоративний сайт |
від 1 місяця |
Середня |
Каталог, новини, форми, CRM-інтеграція |
| Інтернет-магазин |
від 2 місяців |
Висока |
54-ФЗ, маркетплейси, обмін з 1С, SKU |
| B2B-портал |
від 3 місяців |
Дуже висока |
Персональні ціни, документообіг, Bizproc |
| Лендінг |
від 2 тижнів |
Низька |
LCP < 2с, композитний кеш, статика |
| Багатосайтова структура |
від 1,5 місяців |
Висока |
Роздільний контент, спільний каталог, hreflang |
Стек: верстка mobile-first, тестуємо на фізичних пристроях (iPhone, iPad, Android). Використовуємо BrowserStack для Safari на iOS. Продуктивність — LCP < 2,5 с, FID < 100 мс, CLS < 0,1. Включаємо композитний сайт (composite), CDN, теговане кешування, WebP/AVIF, lazy loading. SEO — Schema.org через JSON-LD, автогенерація sitemap.xml модулем seo, canonical і hreflang для мультимовних версій. robots.txt закриваємо /bitrix/ від індексації. CI/CD — Git, автодеплой через GitLab CI, staging. Міграції бази — модуль sprint.migration з версіонуванням.
Процес роботи:
- Аналітика — вивчаємо конкурентів, збираємо вимоги, малюємо прототипи в Figma. На виході — ТЗ з user stories.
- Дизайн — UI/UX з дизайн-системою. Компоненти перевикористовуються.
- Розробка — пишемо компоненти з кастомними шаблонами в
local/templates/. Бізнес-логіку виносимо в модулі local/modules/.
- Тестування — функціональне, кросбраузерне, навантажувальне (до 1000 запитів). Критичні баги виправляємо до запуску.
- Запуск — деплой на прод, моніторинг через UptimeRobot, алерти в Telegram. Усуваємо перші 48 годин.
Інтеграції, мультимовність і редизайн
| Напрямок |
Сервіси |
| CRM та аналітика |
Бітрікс24 (нативна), amoCRM, Roistat, Calltouch, Mindbox |
| Платежі |
ЮKassa, CloudPayments, Тінькофф, Apple Pay, Google Pay |
| Фіскалізація 54-ФЗ |
АТОЛ, OrangeData — налаштування через sale.cashbox |
| Логістика |
СДЕК, Boxberry, ПЕК, Укрпошта, Яндекс.Доставка |
| Комунікації |
JivoSite, Carrot Quest, SendPulse |
-
Повна локалізація через мовні файли lang/ і механізм SITE_ID. hreflang для кожної версії. Регіональні версії з різними цінами та контентом — визначення за IP (main.geo) або ручний вибір. Мультидоменність — єдине управління кількома доменами.
-
Редизайн без втрати позицій: аудит продуктивності (PageSpeed, WebPageTest), SEO (Screaming Frog). Новий шаблон у local/templates/ із збереженням URL-структури. 301-редиректи лише якщо URL змінюється суттєво. Оновлення ядра, перехід на D7 ORM, реструктуризація інфоблоків, міграція через sprint.migration з Git.
Типові помилки при проектуванні інфоблоків
- Один інфоблок на всі сутності замість окремих під товари, категорії, бренди.
- Використання властивостей-списків замість HL-блоків для довідників з великою кількістю записів.
- Відсутність індексів на полях, що використовуються у фільтрації каталогу.
- Нехтування тегованим кешуванням — призводить до скидання всього кешу при зміні одного елемента.
Гарантія та підтримка
Ми працюємо з 1С-Бітрікс 12+ років, реалізували 500+ проєктів. У штаті сертифіковані розробники. Фіксована вартість у договорі — без сюрпризів. Гарантійний період покриває помилки коду. Після — абонентські пакети з SLA (час реакції — 2 години, рішення — 8 годин). Моніторинг доступності 24/7, алерти в Telegram. За потреби отримайте попередній аудит — зв'яжіться з нами через форму на сайті або напишіть у чат, відповімо протягом години. Замовте розробку під ключ — ми спроєктуємо інфоблоки, інтегруємо 1С і розженимо каталог. Якщо вже є сайт на іншій CMS — замовте аудит продуктивності та міграцію на Бітрікс.