Automating Printing House Orders on 1C-Bitrix with a Non-linear Calculator
We have designed and launched over 15 websites for printing productions. Our service specializes in printing website development, 1C-Bitrix printing integration, and online print calculator for printing company websites. We offer bitrix printing site solutions with online print ordering and preflight macro checking as part of our turnkey printing website packages. A typical situation: a manager spends an hour calculating an order using paper tables, and the client leaves for a competitor with an online calculator. Our approach automates the entire cycle: from uploading a macro with preflight checking to transparent status tracking. Order a turnkey printing website with a non-linear calculator and preflight macro checking – we will evaluate your project in 2 days, just write to us.
Why is a Non-linear Calculator a Key Element of a Printing Website?
In printing, the cost per unit is non-linear: a run of 100 business cards costs 5 rubles/piece, while 1000 costs 1.5 rubles/piece. Adding lamination increases the price stepwise, not proportionally. A linear calculator gives an error of up to 30%, while our non-linear calculator uses real tariff matrices and ensures accuracy of ±2%. This precision is up to 15 times better than linear estimates. Compare: a linear calculator calculates "price × quantity", while a non-linear one takes into account technological dependencies – setup, sheet imposition, volume discounts. As practice shows, a non-linear calculator increases conversion by 2-3 times, leading to additional revenue of $5,000-$10,000 per month for an average print shop.
How Does Preflight Macro Checking Automate Acceptance?
The client uploads a macro via a form. After upload, the file undergoes automatic verification via ImageMagick. Accepted formats: PDF, AI, EPS, TIFF. File size limit – 200 MB per file. Checks include resolution (minimum 300 DPI for offset, 150 for large format), color space (CMYK – allowed, RGB – warning), document size (tolerance ±3 mm for bleeds), and presence of transparency. The result is displayed with a color indicator: green – OK, yellow – warning, red – error. This eliminates the risk of production defects and speeds up order acceptance.
Product Catalog
Printing products are arranged in the Catalog information block with sections: business cards, brochures, flyers, catalogs, packaging, POS materials, large format printing. Each element contains a description, available formats (A3, A4, A5, A6, Euro format, custom), paper types (linked to a Highload directory Paper with density indication), post-printing processing (lamination, UV varnish, embossing, die-cutting, creasing, folding), minimum run, and technical requirements for the macro.
Deep-dive: Printing Product Calculator with Non-linear Tariff
The printing calculator is the most technically complex element of the site. Unlike the linear "price × quantity", printing costs depend on many parameters with non-linear dependencies: a run of 100 business cards may cost 5 rubles each, while a run of 1000 – already 1.5 rubles each. Adding lamination increases the cost stepwise, not proportionally. Paper price depends on density and format non-linearly. Use the online print calculator so clients instantly see the real cost.
Data Model
Tariff data is stored in several linked Highload information blocks:
HlPaper (Paper)
| Field | Type | Example |
|---|---|---|
| UF_NAME | string | Coated glossy |
| UF_DENSITY | number | 300 |
| UF_PRICE_PER_KG | number | 85 |
| UF_SHEET_WEIGHT | float | Weight of a sheet of format in grams |
| UF_FORMAT | list | SRA3, SRA2, 620×940 |
HlPrintRun (Tariffs by Run)
| Field | Type | Example |
|---|---|---|
| UF_PRODUCT_TYPE | link | Business cards |
| UF_RUN_FROM | number | 100 |
| UF_RUN_TO | number | 499 |
| UF_COLORS | list | 4+0, 4+4, 1+0, 1+1 |
| UF_SETUP_COST | number | Setup cost |
| UF_PRINT_COST_PER_SHEET | float | Print cost per sheet |
HlPostpress (Post-printing Processing)
| Field | Type | Example |
|---|---|---|
| UF_TYPE | list | Matte lamination |
| UF_SETUP_COST | number | 800 |
| UF_COST_PER_UNIT | float | 0.45 |
| UF_MIN_RUN | number | 100 |
| UF_DISCOUNT_THRESHOLD | number | 1000 |
| UF_DISCOUNT_PERCENT | number | 15 |
Detailed Cost Calculation
The total cost consists of the following components:
-
Paper cost = number of sheets × sheet weight × price per kg / 1000. The number of sheets is calculated from the run, taking into account sheet imposition: how many items fit on a printed sheet (depends on item format and paper format). A technological buffer is added: 3% for runs up to 500, 2% for 500–5000, 1.5% for over 5000.
-
Print cost = setup + (number of printed sheets × cost per sheet). Setup is a fixed amount for equipment adjustment, independent of run size. Cost per sheet decreases stepwise: determined by the row from HlPrintRun based on the run range.
-
Post-printing processing = setup + (quantity × cost per unit). If the run exceeds the UF_DISCOUNT_THRESHOLD, a discount UF_DISCOUNT_PERCENT is applied.
-
Total = paper + print + sum of post-printing operations.
Backend Implementation
AJAX handler (/ajax/calc_print.php) accepts parameters: product type, format, run, color scheme, paper type, density, array of post-printing operations. For each component of the formula, a query is made to the corresponding Highload via ORM DataManager. Intermediate calculation results are cached in $_SESSION for displaying details. The response contains JSON with full detail: paper cost, print cost (with setup highlighted), each post-printing operation cost, total, and price per unit.
Interface
The calculator is embedded on the detail page of each product. When parameters are selected, recalculation happens in real time via AJAX with debounce (300ms delay). The result is displayed in a fixed sidebar (sticky sidebar); on mobile, a bottom sheet.
Order Tracking
The order goes through production statuses stored in the sale module (bitrix:sale.personal.order.detail component). Statuses: Accepted, Macro checked, In print, Post-printing processing, Ready for pickup, Shipped. When the status changes, the OnSaleStatusOrder event handler triggers an SMS via SMS.ru and an email via a mail event. The client sees the current status in the personal account – a visual progress bar highlighting the current stage.
Integration with 1C:Polygraphy
Data exchange is configured through the catalog module and a custom handler. From Bitrix to 1C, new orders are exported as customer orders linked to items. From 1C to Bitrix, production statuses are updated via REST calls; when a status changes in 1C, the exchange script calls the CSaleOrder::Update() method. Item nomenclature is synchronized from 1C, including current tariffs. Exchange frequency – cron job every 15 minutes for statuses, once a day for nomenclature.
Project Deliverables
After project completion, you receive the full source code with comments, uploaded to Git, documentation on Highload directory structure and 1C integration, site administration guide, manager training, 12-month warranty on all modules, and post-release support: monitoring, backups, core updates.
Implementation Stages
| Stage | Work | Duration |
|---|---|---|
| Analysis | Collect tariff matrices, calculation formulas, calculator specification | 2 weeks |
| Design | Highload structure, prototypes, calculator UX | 1.5 weeks |
| Visual Design | Catalog, calculator, personal account layouts | 2 weeks |
| Backend | Information blocks, Highload directories, calculator logic | 4 weeks |
| Preflight Module | ImageMagick integration, macro checking handler | 1 week |
| Frontend | Layout, interactive calculator, responsiveness | 2 weeks |
| 1C Integration | Set up status and nomenclature exchange | 1.5 weeks |
| Testing | Formula check, load testing, UAT | 1.5 weeks |
| Launch | Deployment, catalog population, monitoring | 1 week |
Timeline – from 9 to 12 weeks depending on complexity. Cost is calculated individually – contact us for an estimate. Typical project costs start at $15,000. Compared to linear calculators, our non-linear model saves up to $2,000 per month in incorrect pricing. Get a specialist consultation on your project.







