price list · automatic PDFs

Tensomax Listino dinamico

The price list is built from the real prices and product sheets instead of being redone by hand: it checks itself and becomes a PDF for the web and for the printer.

tensomax-listino-dinamico — brief

cat ./context.md

Made-to-measure outdoor structures · 2026

./role --ours

Data model, automatic layout, PDF

Before and after

how it was

The price list was a static 36 MB PDF, redone by hand and uploaded among the portal’s documents. Across its whole history it had been downloaded eleven times: the only way to send it to a customer was to download it and attach it, and every price change meant going back into it.

what we built

A Partner Hub module that builds the price list from real data — products, prices, technical sheets —, lays it out in A4 on its own and lets people correct it in a visual editor. Two PDFs come out of it: a light one for the web and one for the printer, with bleed and crop marks.

$ ls ./components

How it is built

  1. 01

    One source for prices

    Price list and quote builder read the same prices, with no copies. A revision can be published, compared with the previous one or rolled back, and an increase can be applied in bulk.

  2. 02

    A release that stops itself

    One misaligned price, one forgotten placeholder text or one failed layout check, and the price list does not go out. The last check: 173 pages, zero errors.

  3. 03

    A separate service for PDFs

    The PDFs are generated by a dedicated container, outside the application: Chromium for the layout, Ghostscript and qpdf to slim it down. Every file carries the fingerprint of the data and code that produced it, so you know whether it is still current.

  4. 04

    Versions that only move forward

    Draft, review, approved, archived: on approval the content is frozen. Every release notifies the dealers, who download the current version from their area.

$ ./results --after

How it turned out

[ok] The price list is rebuilt from the data instead of being redone by hand

[ok] Automatic update every 15 minutes, without losing layout corrections

[ok] From the same content, a 12.6 MB PDF for the web and one ready for print

// services involved

$ ls ./other-cases

Got a similar project?

Thirty minutes on video to work out whether it is worth doing, and what it really costs. If we are not the right people, we will say so.