Appearance
Print Settings
Overview
Print settings control when and how orders are printed to kitchen printers and receipt printers.
Key Purpose: Configure order printing behavior.
Purpose
This page lets you control when online orders are printed to kitchen printers and when order data is sent to the POS system, based on pickup/delivery timing or immediately upon placement.
Key Concepts
- Print Settings: Part of Online Ordering settings (not a standalone feature), controlling when kitchen tickets are physically printed — options are "Based on Pickup Time" (
pickup_time) or "When Order is Placed" (when_order_is_placed) - Send to POS: Separate setting controlling when order data is sent to the POS system — options are "Pickup/Delivery Time" (
pickup_delivery_time) or "When Order is Placed" (order_placed) - Star Micronics Integration: Cloud printing via OAuth2 with PKCE for secure authorization, supporting printer configuration, device management, and receipt printing scopes
- Printer Devices: Physical printers registered with a unique MAC address and optional printer profile — managed alongside kiosks and KDS in device management
- Printer Profiles: Configuration templates for printers — currently a stub (
PrinterProfileControllerreturns empty array), with the full CRUD still in development
Actions
Set Print Timing
Navigate to Pickup & Delivery -> Online Ordering -> Printing section. Choose "Based on Pickup Time" (prints at optimal time considering prep time) or "When Order is Placed" (prints immediately) via radio buttons.
Set POS Send Timing
In the Receiving Orders section, choose "Pickup/Delivery Time" (holds until scheduled time) or "When Order is Placed" (sends immediately).
Connect Star Micronics Printer
Initiate OAuth2 flow via the backoffice, authorize on Star Micronics Cloud, and complete callback to store access/refresh tokens.
Register Printer Device
Create a device with type "Printer," provide the required unique MAC address, and optionally assign a printer profile.
Location
- Backoffice Route:
/pickup-and-delivery/online-ordering - Vue Component:
src/views/pickup-and-delivery/online-ordering/forms/Printing.vue
Fields
Print Settings
| Property | Value |
|---|---|
| Field ID | print_settings |
| Label | Print Orders |
| Type | Select |
| Options | Based on Pickup Time, Immediately |
| Default | Based on Pickup Time |
Description: When to print order tickets.
Options:
- Based on Pickup Time: Print based on prep time before pickup
- Immediately: Print as soon as order is placed
Send to POS
| Property | Value |
|---|---|
| Field ID | send_to_pos |
| Label | Send to POS |
| Type | Select |
| Options | Pickup/Delivery Time, Immediately |
| Default | Pickup/Delivery Time |
Description: When to send order to POS system.
Options:
- Pickup/Delivery Time: Send based on scheduled time
- Immediately: Send as soon as order is placed
Business Logic
Print Timing
Order placed at 10:00
Pickup time: 12:30
Prep time: 20 minutes
Print setting: Based on Pickup Time
Print at: 12:10 (pickup - prep time)
Print setting: Immediately
Print at: 10:00 (immediately)Print Flow
Order received
│
▼
Print setting?
├── Immediately → Print now
│
└── Based on Pickup Time
│
▼
Calculate print time:
Pickup time - Prep time
│
▼
Schedule print job
│
▼
Print at scheduled timeScheduled Order Handling
Scheduled order for tomorrow 14:00
│
▼
Send to POS setting?
├── Immediately → Send now, mark as scheduled
│ KDS holds until print time
│
└── Pickup/Delivery Time
│
▼
Hold order
│
▼
Send at: 14:00 - prep timeBusiness Rules
print_settingsdefaults topickup_time(Based on Pickup Time);send_to_posdefaults topickup_delivery_time— both validated as required enum values- Print settings and send-to-POS are independent — you can send to POS immediately but print based on pickup time, or vice versa
- When
custom_scheduled_ordersis enabled,minutes_before_pickup_delivery_timemust be >= the sum of delivery/takeout delay and average prep time - Star Micronics OAuth uses PKCE with S256 code challenge; the code verifier is cached for 10 minutes in MongoDB
- Printer devices require a unique MAC address — validated with
mac_addressformat rule and uniqueness check
FAQs
- "Where do I configure print settings?" Print settings are within Online Ordering settings at Pickup & Delivery -> Online Ordering, not in a separate print settings page.
- "What is the difference between print settings and send to POS?" Print settings control when kitchen tickets are physically printed. Send to POS controls when order data is sent to the POS system. They can be set independently.
- "What does 'Based on Pickup Time' mean?" The system calculates when to print by subtracting prep time from the scheduled pickup/delivery time, so the kitchen starts preparation at the optimal moment.
- "Is the printer profile system fully built?" No. The
PrinterProfileController::options()currently returns an empty array. Devices can reference aprinter_profile_id, but profile management CRUD is not yet implemented. - "How does Star Micronics cloud printing connect?" Via OAuth2 with PKCE flow — the backoffice redirects to Star Micronics Cloud for authorization, receives a callback with an auth code, and exchanges it for access/refresh tokens.
Customer Impact
KDS
- Orders appear based on print timing
- Scheduled orders held until appropriate time
- Prevents kitchen overwhelm
Kitchen
- Tickets print at right time
- Prep starts at appropriate time
- Orders ready on time
Troubleshooting
- Orders printing too early/late → Check whether print settings are set to "Based on Pickup Time" or "When Order is Placed." For scheduled orders, verify prep time and delay values are accurate.
- Star Micronics authorization failing → The PKCE code verifier is cached for only 10 minutes. If the OAuth flow takes too long, the verifier expires. Try the connection again.
- Printer not showing in device list → Ensure the printer's MAC address is entered correctly and is unique. Duplicate MAC addresses are rejected by validation.
Relations
Depends On
- Locations: Print settings per location
- Order Capacity: Prep time settings
- Printers: Printer configuration
Affects
- KDS: Order timing
- Transactions: Print status
- Printers: Print jobs
Related Features
Examples
Print Based on Pickup Time
json
{
"print_settings": "Based on Pickup Time",
"send_to_pos": "Pickup/Delivery Time"
}Print Immediately
json
{
"print_settings": "Immediately",
"send_to_pos": "Immediately"
}Order Print Timeline
Timeline for order:
- Order placed: 10:00
- Pickup time: 12:30
- Prep time: 20 min
With "Based on Pickup Time":
┌────────────────────────────────────────┐
│ 10:00 Order received, confirmed │
│ 12:10 Print ticket, send to KDS │
│ 12:30 Order ready for pickup │
└────────────────────────────────────────┘
With "Immediately":
┌────────────────────────────────────────┐
│ 10:00 Order received, print ticket │
│ 10:00 Appears on KDS (scheduled) │
│ 12:30 Order ready for pickup │
└────────────────────────────────────────┘