Appearance
Receipts
Overview
Receipt settings control what information appears on printed and digital receipts. Configure receipt content, layout, and legal information.
Key Purpose: Customize receipt content and appearance.
Purpose
This page lets you customize what information appears on customer receipts, kitchen tickets, and delivery slips, including header/footer text, logo, tax details, and paper formatting.
Key Concepts
- Receipt Setting: A per-location configuration object stored on the Location model that controls all receipt display toggles and custom text fields.
- Auto-Translation: When custom text fields (footer, QR code title) are updated, the
ReceiptSettingServiceautomatically translates them into all configured languages using theTranslationService. - Receipt Delivery: The
ReceiptServicesends receipts via email (EmailService) or SMS (SMSService) based on the customer's preferred contact method. - Receipt Types: Three distinct formats exist -- customer receipt (full details with payment info), kitchen ticket (items and modifiers only), and delivery receipt (includes customer address and driver instructions).
- Menu Reload: Saving receipt settings triggers a
ReloadMenuevent so that connected devices (kiosks, printers) pick up the changes immediately.
Actions
Edit Receipt Content
Toggle which fields appear on the receipt (logo, business name, address, VAT number, tax breakdown, loyalty points, etc.) and set custom header/footer text.
Configure Print Format
Select paper width (58mm or 80mm) and font size (small, medium, large) to match your thermal printer hardware.
Preview Receipt
View a live preview of your receipt layout before saving changes.
Location
- Backoffice Route:
/settings/receipts - Backend Controller:
app/Http/Controllers/Api/ReceiptController.php - Vue Component:
src/views/settings/ReceiptsComponent.vue
Fields
Header Text
| Property | Value |
|---|---|
| Field ID | header_text |
| Label | Header Text |
| Type | Textarea |
| Required | No |
| Validation | max: 200 characters |
Description: Custom text at the top of receipts (below logo).
Examples:
- "Welcome to Mario's Restaurant"
- "Thank you for dining with us!"
Footer Text
| Property | Value |
|---|---|
| Field ID | footer_text |
| Label | Footer Text |
| Type | Textarea |
| Required | No |
| Validation | max: 300 characters |
Description: Custom text at the bottom of receipts.
Examples:
- "Thank you for your order! See you again soon."
- "Follow us @marios_restaurant"
- "Allergen information available on request"
Show Logo
| Property | Value |
|---|---|
| Field ID | show_logo |
| Label | Print Logo |
| Type | Toggle |
| Default | true |
Description: Include business logo on receipts.
Show Business Name
| Property | Value |
|---|---|
| Field ID | show_business_name |
| Label | Show Business Name |
| Type | Toggle |
| Default | true |
Description: Display business name on receipt.
Show Address
| Property | Value |
|---|---|
| Field ID | show_address |
| Label | Show Address |
| Type | Toggle |
| Default | true |
Description: Display location address on receipt.
Show Phone
| Property | Value |
|---|---|
| Field ID | show_phone |
| Label | Show Phone Number |
| Type | Toggle |
| Default | true |
Description: Display phone number on receipt.
Show VAT Number
| Property | Value |
|---|---|
| Field ID | show_vat_number |
| Label | Show VAT Number |
| Type | Toggle |
| Default | true |
Description: Display VAT registration number (legally required in EU).
Show Tax Breakdown
| Property | Value |
|---|---|
| Field ID | show_tax_breakdown |
| Label | Show Tax Breakdown |
| Type | Toggle |
| Default | true |
Description: Show itemized tax amounts by rate.
Example:
VAT 9%: €1.62
VAT 21%: €0.84Show Order Number
| Property | Value |
|---|---|
| Field ID | show_order_number |
| Label | Show Order Number |
| Type | Toggle |
| Default | true |
Description: Display order number prominently.
Show Date/Time
| Property | Value |
|---|---|
| Field ID | show_datetime |
| Label | Show Date & Time |
| Type | Toggle |
| Default | true |
Description: Display order date and time.
Show Payment Method
| Property | Value |
|---|---|
| Field ID | show_payment_method |
| Label | Show Payment Method |
| Type | Toggle |
| Default | true |
Description: Display how the order was paid.
Show Item Modifiers
| Property | Value |
|---|---|
| Field ID | show_modifiers |
| Label | Show Modifiers |
| Type | Toggle |
| Default | true |
Description: Display selected modifiers for each item.
Show Item Notes
| Property | Value |
|---|---|
| Field ID | show_item_notes |
| Label | Show Item Notes |
| Type | Toggle |
| Default | true |
Description: Display special instructions per item.
Show Customer Name
| Property | Value |
|---|---|
| Field ID | show_customer_name |
| Label | Show Customer Name |
| Type | Toggle |
| Default | true |
Description: Display customer name on receipt.
Show Loyalty Points
| Property | Value |
|---|---|
| Field ID | show_loyalty |
| Label | Show Loyalty Info |
| Type | Toggle |
| Default | true |
Description: Display points earned and balance.
Paper Width
| Property | Value |
|---|---|
| Field ID | paper_width |
| Label | Paper Width |
| Type | Select |
| Options | 58mm, 80mm |
| Default | 80mm |
Description: Receipt paper width for formatting.
Font Size
| Property | Value |
|---|---|
| Field ID | font_size |
| Label | Font Size |
| Type | Select |
| Options | small, medium, large |
| Default | medium |
Description: Text size on printed receipts.
Receipt Types
Customer Receipt
Given to customer after payment.
Contents:
- Logo
- Business info
- Order details
- Payment info
- Thank you message
Kitchen Ticket
For kitchen preparation.
Contents:
- Order number (large)
- Items and modifiers
- Special instructions
- Dining option
Delivery Receipt
For delivery orders.
Contents:
- Customer info
- Delivery address
- Order details
- Driver instructions
Business Logic
Receipt Generation
Order completed
│
▼
Generate receipt data:
├── Business info (from location)
├── Order details (from transaction)
├── Tax calculations
├── Loyalty info (if applicable)
└── Custom text (header/footer)
│
▼
Format for output:
├── Print → Thermal printer format
├── Email → HTML template
└── PDF → PDF generationCustomer Impact
Printed Receipt
- Physical copy for customer
- Proof of purchase
- Tax documentation
Email Receipt
- Digital copy
- Order confirmation
- Reorder link
In-App Receipt
- View in order history
- Digital proof
Relations
Depends On
- Locations: Business info from location
- Branding: Logo from branding
- Tax Rates: Tax breakdown
Affects
- Transactions: Receipt attached to order
- Printers: Receipt format for printing
Related Features
Business Rules
- Receipt settings are stored per location as a
receipt_settingobject on the Location model; each location can have its own configuration. - When custom text fields (footer text, QR code title) are updated, the
ReceiptSettingServiceauto-translates them into every configured language via theTranslationService; if the text has not changed, translation is skipped. - The
ReceiptServicedetermines the delivery channel (email or SMS) by checking the transaction's customer email first, then phone, then the linked customer record. - Saving receipt settings fires a
ReloadMenuevent so connected devices (kiosks, KDS, printers) refresh immediately. - Translation keys for receipt text are conditionally included:
display_qr_code_titleis only translated when the QR code display toggle is on, and footer fields are only translated whencustom_footer_textis enabled.
FAQs
- "Can I have different receipt settings per location?" Yes, receipt settings are stored on each location independently, so multi-location merchants can customize per site.
- "Are custom header and footer texts automatically translated?" Yes, whenever you save custom text the system auto-translates it into all configured languages using Google Cloud Translate.
- "How are digital receipts sent?" The system checks for a customer email first (sends via
EmailService), then falls back to phone number (sends viaSMSService); if neither is available, no receipt is sent. - "Does changing receipt settings affect past orders?" No, past transactions retain the receipt as it was at the time of the order; changes only apply to future receipts.
- "What paper widths are supported?" The system supports 58mm and 80mm thermal paper widths, with 80mm as the default.
Troubleshooting
Problem: Receipt missing information
Causes:
- Setting toggled off
- Data not available
- Template issue
Solutions:
- Enable the setting
- Ensure data is configured
- Check receipt template
Problem: Receipt formatting wrong
Causes:
- Wrong paper width
- Font size too large
- Printer compatibility
Solutions:
- Set correct paper width
- Reduce font size
- Test with printer
Examples
Full Receipt Template
[LOGO]
MARIO'S RESTAURANT
═══════════════════════
123 Main Street
Amsterdam, 1012 AB
Tel: +31 20 123 4567
───────────────────────
Order #1234
15 Jan 2024 12:45
Type: Delivery
───────────────────────
Customer: Jan de Vries
1x Margherita Pizza €12.50
- Large +€3.00
- Extra Cheese +€1.50
1x Garlic Bread €4.50
2x Cola €5.00
───────────────────────
Subtotal €26.50
Delivery Fee €3.50
───────────────────────
VAT 9% €2.52
───────────────────────
TOTAL €32.52
───────────────────────
Paid: iDEAL ✓
───────────────────────
Points Earned: 32
Your Balance: 482 points
───────────────────────
VAT Nr: NL123456789B01
Thank you for your order!
See you again soon.Minimal Receipt
Order #1234
15 Jan 2024 12:45
1x Margherita Pizza (L) €17.00
1x Garlic Bread €4.50
2x Cola €5.00
TOTAL €26.50
Paid: CardKitchen Ticket
╔═══════════════════════╗
║ ORDER #1234 ║
║ 12:45 ║
╠═══════════════════════╣
║ ** DELIVERY ** ║
╠═══════════════════════╣
1x MARGHERITA PIZZA
→ Large
→ Extra Cheese
→ NO OLIVES
1x GARLIC BREAD
───────────────────────
Customer: Jan
───────────────────────