Editor Calling Modes
This page covers the technical implementation of the three calling modes.
Data Modes
The TronDesigner Editor automatically adapts its workflow based on the completeness of the product data provided in the initialization payload. The specific parameters you include determine whether the user lands directly in the design interface or must first configure the product in the Data Selector wizard.
👉 For a detailed explanation of the business logic and user journey impact of each mode, see: Integration Logic.
Quick Reference
The mode is defined by the dataMode property in the integration payload.
NOTE: Even if you send "Complete Data" in Free Mode, the user might not even notice the Data Selector exists – they land straight in the Editor. The only difference is that they could go back and change the product setup (e.g. shirt color) if they wanted to.
Exact Mode
Fixed Configuration: In this mode, the Editor expects a complete configuration. If any piece of the Mandatory Payload is missing or invalid, the Editor will fail to initialize.
Technical Requirements:
Must have a
supplierCode. For details see Quick Start.Must have a valid
modelCode.Must have specific
variants: productCode.Must have specific
printPositionCodeandprintTechnologyCode.
Examplewindow.tronDesigner.openDesigner({
dataMode: "Exact",
openMode: "Create",
printJob: {
addProducts: {
supplierGuid: "b2e32614-e01a-4ffc-97ac-b2c62c3aac70",
variants: [
{
productCode: "AAP003-160",
},
{
productCode: "AAP003-103",
},
],
},
addPrintings: [
{
printPositionCode: "AP01",
printTechnologyCode: "EDB1",
}
]
},
}, {mode: 'dialog'})Partial (Free) Mode
Flexible Configuration: The most common default integration mode. It allows the Editor to "fill the gaps" using the PromoTron database.
Technical Behavior:
Minimum Data: Requires only
supplierCodeandmodelCode.Automatic Fallback: If you provide
modelCodebut omitvariants: productCode, the Editor automatically opens the Data Selector at the color selection step. This behavior can be overriden (see Behavior Options)
Examplewindow.tronDesigner.openDesigner({
dataMode: 'Partial',
openMode: 'Create',
printJob: {
addProducts: {
supplierGuid: "b2e32614-e01a-4ffc-97ac-b2c62c3aac70",
model: { modelCode: "AAP003" },
variants:[]
},
addPrintings:[]
}
}, {mode: 'dialog'})Own (Custom) Mode
Manual Configuration: Use this for products that do not exist in the PromoTron database. You pass raw data (names, dimensions) instead of database references.
Required Parameters:
None: You can send an empty payload to let the user define the product from scratch (upload their own photo, draw print zones, and name the product). No database IDs (modelCode, productCode, etc.) are required.
Optional pre-fill: You can pass raw strings (e.g.,
"productName": "My Custom Pen") or abaseImageto save user the time.
Examplewindow.tronDesigner.openDesigner({
dataMode: "Own",
openMode: "Create",
printJob: {
addProducts: {
model: {
modelCode: "PEN",
title: "My Custom Pen",
isDimension1Color: true,
},
variants: [
{
productCode: "PEN-01",
dimension1Title: "Green",
dimension1Colors: ["#00FF00"],
overrides: { productName: "My Custom Pen Green" },
},
{
productCode: "PEN-02",
dimension1Title: "Red",
dimension1Colors: ["#FF0000"],
overrides: { productName: "My Custom Pen Red" },
},
],
},
addPrintings: [],
},
}, {mode: 'dialog'})Methods vs. Modes
Implementation Matrix. This table shows how different integration scenarios typically combine Opening Methods with Calling Modes.
Technical Summary & Constraints
The mode is determined by the dataMode property in your payload. You can mix and match these modes across your site — e.g. using Exact for catalog items and Own for custom warehouse items — without any conflict between sessions.
A Note on "Session Independence"
You are not forced to "pick a data mode" for your entire integration. The choice of mode is made per-call.
Catalog Products: If a product exists in the PromoTron database, use Exact or Partial.
Custom Products: If it's a unique item not in the database, use Own.
The Editor treats every call as a fresh start, allowing you to switch logic on a per-product basis.
NOTE: Own Mode is unavailable for HTML Data Attributes and Simple URL parameters methods because defining custom print zones and coordinate maps requires a structured JSON object that exceeds the practical limits of those methods. It is, however, fully supported via JS Builder and URL (Secure Token) methods.
Next Steps & Resources
Now that you understand how the calling modes affect the Editor's behavior, you can explore the technical implementation details:
Master JSON Example – See the full structure of the initialization payload.
Integration Recipes – Browse copy-paste examples for common scenarios.
Technical Reference – Auto-generated documentation, for the most granular details.