Appearance
Order Notes
Overview
Order notes allow customers to add special instructions to their orders. Can be enabled per item or for the entire order.
Key Purpose: Capture customer special requests and instructions.
Purpose
This feature lets customers add free-text special instructions to individual items in their order on kiosk, QR ordering, and online ordering channels.
Key Concepts
- Item-Level Notes: Notes are stored on the
TransactionItemmodel as anotesstring field — there is no separate order-level note in the backend - Per-Channel Toggle: The
allow_notessetting ({enabled, placeholder}) is stored independently per channel: inin_house_settingfor kiosk, and inonline_settingsfor online ordering and QR ordering - All Item Types: Notes can be added to regular shopping bag items, reward items, offer items, and birthday bonus items on both kiosk and online ordering
- Identity Exclusion: Items with different notes are treated as distinct entries in the shopping bag — note content is excluded from the item identity comparison used for quantity merging
- Receipt Display: Notes appear on printed receipts as "Note: {text}" after the item's modifiers, and are passed through to KDS and kitchen tickets
Actions
Enable Notes for a Channel
Toggle allow_notes.enabled in In-House Settings (for kiosk), Online Settings (for online ordering), or QR Ordering settings.
Set Placeholder Text
Configure allow_notes.placeholder — the hint text shown in the notes input field (max 150 chars in backoffice, default: "E.g. 'For Oliver' or 'I'm allergic to mushrooms'").
Add Note to Item (Customer)
Tap "Add note" on an item in the shopping bag, enter text (max 100 chars on online ordering), and save.
Edit/Remove Note (Customer)
Tap "Edit note" to modify, or tap the trash icon (kiosk) / "Remove note" button (online ordering) to clear the note.
Location
- Backoffice Route:
/in-house/settings(In-House) - Backoffice Route:
/online-settings(Online)
Fields
Notes Enabled
| Property | Value |
|---|---|
| Field ID | allow_notes.enabled |
| Label | Allow Notes |
| Type | Toggle |
| Default | false |
Description: Enable note input for customers.
Placeholder Text
| Property | Value |
|---|---|
| Field ID | allow_notes.placeholder |
| Label | Placeholder |
| Type | Text |
| Default | "E.g. 'For Oliver' or 'I'm allergic to mushrooms'" |
Description: Hint text shown in note input field.
Note Types
Item Notes
Notes attached to specific items.
Use Cases:
- "No onions"
- "Extra sauce"
- "Well done"
- "Allergies: nuts"
Order Notes
Notes for the entire order.
Use Cases:
- "Please ring doorbell"
- "Leave at door"
- "Call when arriving"
- "For Oliver's birthday"
Per-Channel Settings
In-House (Kiosk)
json
{
"in_house_setting": {
"allow_notes": {
"enabled": true,
"placeholder": "Add special instructions..."
}
}
}Online Ordering
json
{
"online_settings": {
"allow_notes": {
"enabled": true,
"placeholder": "E.g. 'For Oliver' or 'I'm allergic to mushrooms'"
}
}
}Business Logic
Note Flow
Customer adds item to cart
│
▼
Notes enabled?
├── No → No note option shown
│
└── Yes → Show "Add note" option
│
▼
Customer taps "Add note"
│
▼
Note input appears
│
▼
Customer enters note
│
▼
Note saved with itemNote Display
Order received
│
▼
Has notes?
├── No → Standard display
│
└── Yes → Highlight notes
│
├── KDS: Show note prominently
├── Receipt: Include note
└── Kitchen ticket: Print noteBusiness Rules
- Notes are only available when
allow_notes.enabledistruefor the specific channel — the "Add note" button is hidden otherwise - The placeholder text is required when notes are enabled (validated as
required|stringwhenallow_notes.enabledis true) - Online ordering limits notes to 100 characters per item (enforced by the
ShoppingBagNoteEditorcomponent's maxLength prop) - Two items that are otherwise identical but have different notes remain as separate line items in the shopping bag — notes are excluded from the identity comparison
- Notes are persisted on the
TransactionItemmodel and flow through to receipt printing, KDS display, and kitchen tickets
FAQs
- "Are there order-level notes separate from item notes?" No. Notes exist only at the item level on the
TransactionItemmodel. There is no dedicated order-level note field on theTransactionmodel. - "Where are note settings configured?" In three places: In-House Settings (for kiosk), Online Settings (for online ordering), and QR Ordering settings. Each channel has its own independent
allow_notestoggle. - "What is the maximum length for notes?" 100 characters on the online ordering frontend. The backoffice placeholder text field allows up to 150 characters.
- "Can notes be added to reward items and birthday bonuses?" Yes, both the kiosk and online ordering stores support notes on regular items, reward items, offer items, and birthday bonus items.
- "How are notes displayed on receipts?" The kiosk generates receipt lines with "Note: {text}" after the item's modifiers, using the same column layout as other receipt lines.
Customer Impact
Online Ordering
- "Add note" button per item
- Order-level notes at checkout
- Notes visible in order confirmation
Kiosk
- "Add note" option per item
- On-screen keyboard for input
- Notes shown in order summary
KDS
- Notes displayed prominently
- Different styling for visibility
- Notes printed on tickets
Troubleshooting
- "Add note" button not showing → Verify
allow_notes.enabledis set totruefor the correct channel (In-House for kiosk, Online Settings for online ordering). - Notes not appearing on KDS → Notes are included in the transaction item data sent to KDS. Verify the KDS is receiving updated order data and displaying item details.
- Same item showing as separate lines → Items with different notes are treated as distinct entries. This is by design — each unique note creates a separate line item in the order.
Relations
Depends On
- Locations: Notes per location
Affects
- Transactions: Notes stored with order
- KDS: Note display
- Receipts: Note printing
Related Features
Examples
Notes Enabled
json
{
"allow_notes": {
"enabled": true,
"placeholder": "Special instructions..."
}
}Item with Note
json
{
"item": {
"id": "item-123",
"name": "Margherita Pizza",
"quantity": 1,
"note": "No basil, extra cheese"
}
}Order with Notes
json
{
"order": {
"items": [
{
"name": "Burger",
"note": "Medium rare"
},
{
"name": "Fries",
"note": "Extra crispy"
}
],
"order_note": "Please include extra napkins"
}
}KDS Display
┌─────────────────────────────────────┐
│ Order #42 12:30 │
│ Pickup - John │
├─────────────────────────────────────┤
│ 1x Margherita Pizza │
│ ⚠️ NOTE: No basil, extra cheese │
│ │
│ 1x Caesar Salad │
│ ⚠️ NOTE: Dressing on the side │
├─────────────────────────────────────┤
│ ORDER NOTE: │
│ "For Oliver's birthday party" │
└─────────────────────────────────────┘Receipt with Notes
═══════════════════════════════════════
YOUR ORDER
═══════════════════════════════════════
1x Margherita Pizza €12.50
Note: No basil, extra cheese
1x Caesar Salad €8.50
Note: Dressing on the side
───────────────────────────────────────
Special Instructions:
"For Oliver's birthday party"
───────────────────────────────────────
TOTAL €21.00
═══════════════════════════════════════