Level 2 — TronCalculator: Requirements

digitize print options & print price logic for online calculation; can also provide “print options only” (no pricing). Feeds accepted: CSV/XML/JSON (one structure per feed).

L2 feeds

  • Print Options Feed — what can be printed and where.

  • Print Prices Feed — how much it costs (logic & matrices).

“Print options only” is allowed (no pricing) and still enables locations/technologies in webshops.

L2 Print Options — required fields (per SKU or per Model+Color)

Field

Type

Constraints / Notes

PrintCode

string

Required, unique technique identifier (e.g., PAD, LASER, DTF).

ProductRef

string

Required, either ProductCode or tuple (ModelCode + Color). Must match L1.

PrintName

string

Required, human-readable (e.g., “Pad Print”, “Laser Engraving”). (“name of printing”)

LocationName

string

Required, e.g., “Barrel Left”, “Front Chest”. (“location of printing on the product”)

LocationCoordinates

string/json

Optional; designer-coordinates in px/mm (% allowed). Keep origin & orientation consistent.

MaxColors

integer

Required for color-based techniques.

MaxAreaW/H

number

Optional; printable area width/height with units.

PrintableSides

string

Optional; e.g., “Front”, “Back”, “Both”.

Notes

string

Optional; any constraints (e.g., curved surface).

L2 Print Prices — required fields (“full print price logic”)

Your logic must be explicitly computable from the feed—no hidden text rules. We support common pricing models below; choose one or combine as needed.

Field

Type

Constraints / Notes

ProductRef

string

Required (ProductCode or Model+Color).

PrintCode

string

Required, ties to Print Options.

Currency

ISO 4217

e.g., EUR, CZK.

QtyBreak

integer

Required tier (1, 50, 100, 250…)

BaseSetupFee

decimal

Per order or per position (see FeeScope)

FeeScope

enum

per_order, per_position, per_color

RunPricePerUnit

decimal

Base cost per unit at the QtyBreak before color/area surcharges.

ColorStepPrice

decimal

Optional, add per extra print color.

AreaTier

enum

Optional, e.g., {S,M,L} or area-range in cm².

AreaSurchargePerUnit

decimal

Optional per-unit surcharge by area tier.

PositionsAllowed

integer

Optional max printed positions included; extra position surcharge defined separately.

ExtraPositionSurcharge

decimal

Optional per additional position per unit.

MinCharge

decimal

Optional minimum order charge for the technique.

Notes

string

Optional technical notes (curved, special handling).

Validation rules

  • Every (ProductRef, PrintCode) present in Print Prices must exist in Print Options.

  • QtyBreak tiers must be strictly increasing per (ProductRef, PrintCode, Currency).

  • If MaxColors = 1, then ColorStepPrice must be 0 or omitted.

  • If AreaTier is present, AreaSurchargePerUnit must be provided.

  • Currency must match platform configuration (EUR by default unless specified).

  • “Print options only” delivery: you may skip the Price feed entirely.