Skip to content

Customer Information Settings

Overview

Customer information settings control what identification and contact information is required from customers during checkout on the online ordering channel.

Key Purpose: Configure which customer fields are required at online ordering checkout.

Purpose

This setting (in the Online Ordering "Customer Information" / Checkout section) lets you choose which customer name and contact fields are required at checkout for a location's online ordering channel.

Key Concepts

  • Full Name Format: Controls whether the checkout requires both a first and last name, or only a first name — enum values are first_last_name or first_name.
  • Contact Details: Controls which contact information is required at checkout — enum values are phone_email (require both email and phone) or email (require email only). There are only these two options.
  • Per-Location Setting: These values are stored per location inside the online_ordering_setting object on the Location record, not globally.
  • Online Ordering Only: These two enum settings apply to the online ordering channel. QR ordering uses a separate mechanism (the boolean require_name and require_email fields — see QR Ordering).
  • Required Fields: Both settings are required when saving the online ordering configuration — the backend validates each as an enum value.

Actions

Configure Full Name Format

Navigate to Online → Online Ordering, open the Checkout / Customer Information section. Choose either "Require first and last name" (first_last_name) or "Only require first name" (first_name) using the radio buttons.

Configure Contact Details

In the same section, choose either "Require email and phone number" (phone_email) or "Only require email" (email) using the radio buttons.

Save Settings

Both fields are saved as part of the overall online ordering form submission (a single PUT of the online ordering configuration). Click Save to apply the changes for that location.

Business Rules

  • Default full name format is first_last_name; default contact details is phone_email. Both defaults are set in Constants.php ($DEFAULT_ONLINE_ORDERING_SETTING) and re-applied by the Location model when a value is missing.
  • Both settings are required by StoreOnlineOrderingRequest and are validated as enum values; saving fails if a value is missing or not a valid enum case.
  • customer_information_full_name accepts only first_last_name or first_name. There is no single combined "full name" field option.
  • customer_information_contact_details accepts only phone_email or email. There is no "Phone Only" option.
  • These two settings apply to online ordering. QR ordering does not use these enums; it uses the separate boolean fields require_name and require_email.

Location

  • Backoffice Route: /online/online-ordering (Online → Online Ordering)
  • Backend Controller: app/Http/Controllers/Api/BackOffice/OnlineOrderingController.php (update method)
  • Request Validator: app/Http/Requests/BackOffice/OnlineOrdering/StoreOnlineOrderingRequest.php
  • Enums: app/Enums/CustomerInformationFullNameOptions.php, app/Enums/CustomerInformationContactDetailsOptions.php
  • Defaults: app/Constants.php ($DEFAULT_ONLINE_ORDERING_SETTING)
  • Vue Component: src/views/online/online-ordering/forms/Checkout.vue
  • API Endpoint: PUT /api/back-office/online-ordering/{locationId}

Fields

Full Name Format

PropertyValue
Field IDcustomer_information_full_name
LabelFull name
TypeRadio (single choice)
Optionsfirst_last_name, first_name
Defaultfirst_last_name
Validationrequired, must be a CustomerInformationFullNameOptions enum value

Description: Whether checkout requires both a first and last name, or only a first name.

Options:

  • first_last_name — UI label "Require first and last name".
  • first_name — UI label "Only require first name".

Contact Details

PropertyValue
Field IDcustomer_information_contact_details
LabelContact details
TypeRadio (single choice)
Optionsphone_email, email
Defaultphone_email
Validationrequired, must be a CustomerInformationContactDetailsOptions enum value

Description: Which contact information is required at checkout.

Options:

  • phone_email — UI label "Require email and phone number".
  • email — UI label "Only require email".

POS Customer Name Format

PropertyValue
Field IDpos_customer_name_format
LabelCustomer name sent to POS
UI Section"Point of sale" card (directly below "Customer Information" on the same Checkout tab, route /online/online-ordering)
TypeRadio (single choice)
Optionsfirst_last_name, first_name
Defaultfirst_last_name
Validationnullable, must be a PosCustomerNameFormatOptions enum value

Description: Controls which name format is pushed to the connected POS when an online order syncs — distinct from what is collected at checkout (the two fields above). Optional/nullable, unlike the two required customer-information fields. Applies to POS sync generally (e.g. Square, MplusKassa), not a single named integration.

Options:

  • first_last_name — UI label "Send first and last name".
  • first_name — UI label "Send only first name".

Business Logic

Validation (backoffice save)

Save online ordering form


StoreOnlineOrderingRequest validates:
├── customer_information_full_name → required + enum (first_last_name | first_name)
└── customer_information_contact_details → required + enum (phone_email | email)


Valid?
├── Yes → persist into online_ordering_setting on the Location
└── No → validation error (field required / invalid)

The backoffice Checkout form also performs a client-side required check on both fields before submitting.

Storefront behavior (not-verified-here)

How the storefront checkout form renders fields based on these settings is the responsibility of the customer-facing online ordering application and is not verified in this backend/backoffice review.


Examples

Require first and last name, with email and phone

json
{
  "customer_information_full_name": "first_last_name",
  "customer_information_contact_details": "phone_email"
}

Require only first name, with email only

json
{
  "customer_information_full_name": "first_name",
  "customer_information_contact_details": "email"
}

Relations

Depends On

  • Locations: Stored per location in the online_ordering_setting object on the Location record.

Affects

  • Online Ordering: Determines which name and contact fields are required at online ordering checkout.

FAQs

  • "Can I require only a phone number without an email?" No. The contact options are phone_email (email and phone) or email (email only). There is no phone-only option.
  • "What does 'Only require first name' do?" Checkout requires only a first name (first_name); a last name is not required. Useful for quick orders where a full name is unnecessary.
  • "Are these settings per-location or global?" Per-location. They are stored in each location's online_ordering_setting.
  • "Where are these settings stored?" Inside the online_ordering_setting object on the Location record, alongside other online ordering fields.
  • "Do these settings apply to QR ordering?" No. These two enum settings apply to online ordering. QR ordering uses its own boolean fields, require_name and require_email.

Troubleshooting

  • Validation error when saving online ordering → Both Full name and Contact details must have a valid selection. Each must be one of the allowed enum values (first_last_name/first_name and phone_email/email).
  • Wrong contact fields expected at checkout → Confirm the correct option is selected in Online → Online Ordering → Checkout / Customer Information for the location.
  • QR ordering checkout requirements not matching → QR ordering is configured separately via require_name / require_email, not via these settings (see QR Ordering).