Автоматизация заказов типографии на 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 недель в зависимости от сложности. Стоимость рассчитывается индивидуально — свяжитесь с нами для оценки. Получите консультацию специалиста по вашему проекту.







