Document Templates
Understand how PDF document templates work in the app, and how to use the Receipt Builder to design custom thermal receipt layouts.
The In-Store App supports two types of document templates: PDF templates for orders, carts, products, and other entities (configured in the back office), and receipt templates for thermal printers (designed directly in the app using the Receipt Builder). This page covers how both types work and how to manage them.
PDF Document Templates
PDF document templates are configured in your Omnium back office, not within the In-Store App itself. Once configured, they appear automatically as a print button wherever they apply — on order details, cart panels, product pages, and purchase orders.
How templates become available
Templates are defined per area in the back office's tenant settings:
| Area | Where the print button appears |
|---|---|
| Order | Order detail page |
| Cart | Cart panel |
| Product | Product detail page |
| Purchase Order | Purchase order detail page |
| Project | Project detail page |
If your market has specific templates configured, those take priority. If not, the tenant-level defaults are used. If no templates are configured for an area, no print button appears.
Printing a document
When at least one PDF template is configured for an area, a PDF icon button appears in the AppBar or action area of that page. The tooltip reads Select template.
If only one template is configured:
- Tap the PDF icon button.
- The app generates the PDF and opens the system print/share dialog immediately.
If multiple templates are configured:
- Tap the PDF icon button.
- The Select template dialog opens, listing all available templates by their display name.
- Tap a template name to select it.
- The app generates the PDF and opens the system print/share dialog.
While the PDF is being generated, the icon button is replaced by a small loading spinner. If generation fails, a snackbar shows Failed to generate PDF.
PDF templates are managed in the Omnium back office under tenant settings. Contact your Omnium administrator if templates are missing or if you need templates scoped to a specific market.
Receipt Builder
The Receipt Builder is a visual tool for designing thermal printer receipt layouts. It is available on Android, iOS, and Windows (not on web). Receipts designed here are used by the connected thermal printer when printing sale receipts.
The Receipt Builder requires a thermal printer to be paired with the device before templates can be test-printed. See Device Registration for pairing instructions.
Opening the Receipt Builder
- Open Settings (tap the gear icon in the sidebar).
- Scroll to the Printer section.
- Tap Receipt Templates — subtitle reads Design custom receipt templates.
The Receipt Builder page opens.
Builder layout
The builder adapts its layout to the screen size:
| Screen width | Layout |
|---|---|
| Narrow (phone) | Two tabs: Commands and Preview. A + floating button adds a command; an Edit floating button appears when a command is selected. |
| Tablet | Two-panel side-by-side: command list on the left, live preview on the right. |
| Desktop (wide) | Three-column: command palette on the far left, command list and property editor in the centre, live preview on the right. |
Adding commands
Commands are the building blocks of a receipt. On a wide screen, tap a command in the Add Command palette on the left to add it. On a tablet or phone, tap the + floating button to open the command palette as a bottom sheet.
Commands are grouped into four categories:
| Category | Commands |
|---|---|
| Content | Text — print text with styling; Table Row — a two-column row; Merge Group — repeat a section for each order line |
| Layout | Feed Lines — advance the paper; Divider — a horizontal line; Spacer — add blank space |
| Graphics | Image — print a logo or image; Barcode — CODE128 barcode; QR Code — QR code |
| Control | Cut Paper — cut the receipt |
Editing and reordering commands
The Commands panel shows the current list in print order.
- Tap a command to select it. On a desktop layout, its properties appear in the Property Editor panel below the list. On tablet and phone, tap the Edit floating button to open the property editor as a bottom sheet.
- Long-press or use the ⋮ menu on a command to Move Up, Move Down, Duplicate, or Delete it.
Using merge tags (variables)
Text fields in commands accept merge tags in the format {{variableName}}. Use these to insert live data from the order and store:
| Tag | Value |
|---|---|
{{store.name}} | Store name |
{{store.phoneNumber}} | Store phone number |
{{store.address.streetName}} | Store street address |
{{store.address.city}} | Store city |
{{order.orderNumber}} | Order number |
{{order.customerName}} | Customer name |
{{order.orderForm.total}} | Order total |
{{order.orderForm.subTotal}} | Subtotal |
{{order.billingCurrency}} | Currency code |
Inside a Merge Group command, use {{item.displayName}}, {{item.quantity}}, and {{item.placedPrice}} to access each line item.
Test printing
Tap the print icon in the AppBar to test-print the current template using sample data. A loading dialog appears while the job is sent to the printer.
If no printer is paired, a dialog appears:
- Title: Printer Not Configured
- Message: Please configure your printer in Settings before testing.
- Go to Settings — returns to the Printer section of Settings.
- OK — dismisses.
Saving a template
- Tap ⋮ in the AppBar.
- Select Save As... (or Save to overwrite an already-loaded template).
- The Save Template dialog opens with four fields:
| Field | Description |
|---|---|
| Template Name (required) | A name to identify this template in your library |
| Template Area | Sale Receipt or Other. Determines when the template is available. |
| Stores (Optional) | Tick one or more stores. Leave empty to apply to all stores. |
| Markets (Optional) | Enter a market ID and tap + to add it as a chip. Leave empty for all markets. |
- Tap Save to save the template to the server. A snackbar confirms Template "[name]" saved.
If the template builder is empty (no commands added), saving is blocked and a warning snackbar appears: Add some commands first before saving.
Template Settings
When a template is loaded (shown as a chip in the AppBar), you can update its name, area, stores, and markets without creating a new template:
- Tap ⋮ → Template Settings.
- The same Save Template dialog opens with the current values pre-filled.
- Make changes and tap Save.
My Templates
Tap the folder icon in the AppBar to open the My Templates screen, which shows all saved templates across the tenant.
The screen includes a Search templates field and filter chips (All, Sale Receipt, Other). On wide screens, templates are shown in a two- or three-column grid; on narrow screens, a scrollable list.
Each template card shows:
- A coloured accent bar (blue for Sale Receipt, grey for Other)
- An area icon and the template name
- An area badge and the last-modified date
- A red delete icon
Tap a card to load the template into the builder. The screen closes and a snackbar confirms Loaded: [name].
Tap the delete icon on a card. A confirmation dialog appears:
- Title: Delete Template
- Message: Are you sure you want to delete "[name]"? This cannot be undone.
- Cancel — dismisses.
- Delete (red) — removes the template permanently.
Advanced: Show JSON
Tap ⋮ → Show JSON to view the current template as raw JSON. In the dialog:
- Tap Copy to copy the JSON to the clipboard.
- Tap Edit to switch the dialog into edit mode, modify the JSON directly, and tap Apply to load the edited JSON into the builder.
If the JSON contains errors, an error banner appears in red and Apply is disabled until the JSON is valid.
Tutorial Mode
Tap ⋮ → Tutorial Mode to run an interactive walkthrough of the builder. The tutorial highlights the Add Command button, command list, preview, and My Templates in sequence. Tap ⋮ → Tutorial Mode again to exit.
