Skip to content

Print Settings

Overview

Print settings control when pickup & delivery order tickets are printed. The setting lives inside the Online Ordering settings page as a single radio choice.

Key Purpose: Choose when online-ordering order tickets print.

Purpose

This page lets you choose whether pickup & delivery order tickets print based on the required prep time before the order is due, or as soon as the order is placed.

Key Concepts

  • Print Settings (print_settings): A single radio choice in the "Printing" section of the Online Ordering settings page. Options are "Print order tickets based on pickup and delivery time" (pickup_time) or "Print order tickets when the order is placed" (when_order_is_placed). Validated by the PrintSettingOptions enum.
  • Send to POS (send_to_pos): A separate radio choice in the "Receiving Orders" section that controls when orders are sent to the POS. Options are "Receive orders based on pickup and delivery time" (pickup_delivery_time) or "Receive orders when the order is placed" (order_placed). Validated by the SendToPosOptions enum. This is the setting that actually drives order timing in the backend (see Business Rules).
  • Single setting, not a sub-page: print_settings is one field on the Online Ordering settings form (StoreOnlineOrderingRequest); there is no standalone print-settings page.

Actions

Set Print Timing

Open the Online Ordering settings page and scroll to the "Printing" section. Choose one of two radio options: "Print order tickets based on pickup and delivery time" (pickup_time) or "Print order tickets when the order is placed" (when_order_is_placed).

Set POS Send Timing

In the "Receiving Orders" section of the same page, choose "Receive orders based on pickup and delivery time" (pickup_delivery_time) or "Receive orders when the order is placed" (order_placed).

Location

  • Backoffice Route: /online/online-ordering
  • Parent Vue Component: src/views/online/online-ordering/OnlineOrdering.vue (the "Printing" section is anchored at #Printing)
  • Print Settings Component: src/views/online/online-ordering/forms/Printing.vue
  • Send to POS Component: src/views/online/online-ordering/forms/ReceivingOrders.vue
  • Backend Request: app/Http/Requests/BackOffice/OnlineOrdering/StoreOnlineOrderingRequest.php
  • Enums: app/Enums/PrintSettingOptions.php, app/Enums/SendToPosOptions.php

Fields

PropertyValue
Field IDprint_settings
LabelPrint settings
TypeRadio group
Optionspickup_time, when_order_is_placed
Defaultpickup_time
Validationrequired, enum PrintSettingOptions

Description: When pickup & delivery order tickets print. The section subtitle reads "When should pickup & delivery order tickets print?"

Options:

  • pickup_time — "Print order tickets based on pickup and delivery time" — "Order tickets will print based on how much prep time is required before the order is due."
  • when_order_is_placed — "Print order tickets when the order is placed" — "All order tickets will print when the order is placed, even if the order is scheduled for a future pickup or delivery time."

Send to POS

PropertyValue
Field IDsend_to_pos
LabelSend to POS
TypeRadio group
Optionspickup_delivery_time, order_placed
Defaultpickup_delivery_time
Validationrequired, enum SendToPosOptions

Description: When pickup & delivery orders are sent to the POS. The section description reads "When should pickup & delivery orders be sent to the POS?"

Options:

  • pickup_delivery_time — "Receive orders based on pickup and delivery time" — "Order tickets will be sent based on how much prep time is required before the order is due."
  • order_placed — "Receive orders when the order is placed" — "Orders will be sent when the order is placed, even if the order is scheduled for a future pickup or delivery time."

Business Rules

  • print_settings defaults to pickup_time and is validated as a required PrintSettingOptions enum value. send_to_pos defaults to pickup_delivery_time and is validated as a required SendToPosOptions enum value.
  • In the backend, send_to_pos (not print_settings) drives order timing: OrderCapacityService sets the transaction's sent_at. When send_to_pos is order_placed, sent_at is set to "now" (immediately). For pickup_delivery_time, sent_at is derived from the order's prep time / pickup-delivery time.
  • The stored print_settings value is validated and persisted on the online-ordering settings, but the backend code does not read it anywhere to schedule or trigger printing. Actual ticket-printing/device behavior driven by this value is not verified in this repo.
  • When custom_scheduled_orders is enabled, the frontend requires minutes_before_pickup_delivery_time to be at least the larger of the takeout/delivery delay plus the average prep time (minutesBeforePickupDeliveryTimeValidator in ReceivingOrders.vue); the backend additionally requires hours_in_advance and minutes_before_pickup_delivery_time to be present and >= 1.
  • Print settings and send-to-POS are independent radio choices — you can, for example, send to POS immediately while printing based on pickup time, or vice versa.

FAQs

  • "Where do I configure print settings?" In the "Printing" section of the Online Ordering settings page (/online/online-ordering), not on a separate print-settings page.
  • "What is the difference between print settings and send to POS?" Both are radio choices on the same Online Ordering page. print_settings (Printing section) controls when order tickets print; send_to_pos (Receiving Orders section) controls when orders are sent to the POS. They are set independently.
  • "What does 'based on pickup and delivery time' mean?" Tickets/orders are timed using how much prep time is required before the order is due, rather than printing/sending immediately at order placement.
  • "Does choosing a print setting guarantee tickets print at a specific time?" The setting is stored, but the backend in this repository does not act on print_settings to schedule printing. The actual on-device printing behavior is handled elsewhere and is not verified here. Order send timing to the POS is driven by send_to_pos.

Customer Impact

  • The choice affects when staff/kitchen receive the order ticket for a given pickup/delivery time. "When the order is placed" surfaces orders immediately even when scheduled for the future; "based on pickup and delivery time" defers based on required prep time.
  • Note: the order-send timing that the backend actually enforces is driven by send_to_pos, not print_settings.

Relations

Depends On

  • Online Ordering: print_settings and send_to_pos are part of the Online Ordering settings.
  • Order Capacity: Prep time / order_prep_time feeds the sent_at calculation used by send_to_pos.

Affects

  • Transactions: send_to_pos determines a transaction's sent_at.

Examples

json
{
  "print_settings": "pickup_time",
  "send_to_pos": "pickup_delivery_time"
}
json
{
  "print_settings": "when_order_is_placed",
  "send_to_pos": "order_placed"
}