Skip to content

Fields Index

Complete reference of all fields across all features. Use this to understand which field ID corresponds to which UI element in the backoffice.

See also: Options Reference - All toggle states and dropdown options

Quick Field Lookup

Location Settings

Field IDLabelTypeFeature
nameLocation NametextLocations
address.line1Address Line 1textLocations
address.cityCitytextLocations
address.postal_codePostal CodetextLocations
address.countryCountryselectLocations
contact_information.emailEmailemailLocations
contact_information.phonePhonephoneLocations
preferred_languageLanguageselectLocations
timezoneTimezonederived (read-only)Locations
average_prep_timePrep Time (min)numberLocations
branding_profile_idBranding Profileselect (optional)Locations
billing_profile_idBilling Profileselect (optional)Locations
location_typeLocation Typeselect (required, LocationTypes)Locations
categoryCategoryselect (required)Locations
pinpoint.lat / pinpoint.lngMap pinnumberLocations
payment_profile_idPayment Profileselect (optional)Locations
stripe_customer_idStripe Customertext (optional)Locations

timezone is not a merchant-editable form field — it is absent from StoreLocationRequest::rules() and there is no timezone control in the Location form. It is set programmatically from the location's country or from a connected POS branch, defaulting to Europe/Brussels. preferred_language is required and stores an ObjectId, not a language code. billing_profile_id is nullable in StoreLocationRequest; existence is enforced in LocationService::applyBillingProfileLink() (404 when the profile does not exist) and re-pointing an already-linked location to a different Stripe customer is rejected (400, "This location is already linked to a different billing profile."). An incomplete billing profile (empty Stripe customer id) stays selectable and is not rejected.

Business Hours

Field IDLabelTypeFeature
business_hours.{day}.is_availableDay AvailabletoggleBusiness Hours
business_hours.{day}.timesTime RangesarrayBusiness Hours
restricted_datesRestricted DatesarrayRestricted Dates
restricted_dates.*.dateDatedateRestricted Dates
restricted_dates.*.yearlyRepeat YearlytoggleRestricted Dates

Online Ordering Settings

Field IDLabelTypeFeature
takeout.enabledEnable PickuptoggleOnline Ordering
takeout.delayPickup Delay (min)numberOnline Ordering
delivery.enabledEnable DeliverytoggleOnline Ordering
delivery.delayDelivery Delay (min)numberOnline Ordering
custom_availabilityCustom AvailabilitytoggleOnline Ordering
accept_orders_untilAccept Orders UntiltoggleQR Ordering
scheduleCustom SchedulescheduleOnline Ordering
custom_scheduled_ordersCustom Scheduled OrderstoggleOnline Ordering
hours_in_advanceHours in AdvancenumberOnline Ordering
minutes_before_pickup_delivery_timeSend to Kitchen BeforenumberOnline Ordering
idle_timeout_typeTimeout TypeselectIdle Timeout
idle_timeout_secondsTimeout DurationnumberIdle Timeout
show_warning_for_secondsWarning DurationnumberIdle Timeout
print_settingsPrint OrdersselectPrint Settings
send_to_posSend to POSselectPrint Settings
customer_information_full_nameName FormatselectCustomer Info
customer_information_contact_detailsContact DetailsselectCustomer Info

Delivery Settings

Field IDLabelTypeFeature
delivery_region.typeRegion TypeselectDelivery Settings
delivery_region.radiusRadius (km)numberDelivery Settings
delivery_region.postal_codesPostal CodesarrayDelivery Settings
delivery_fee.typeFee TypeselectDelivery Settings
delivery_fee.feeDelivery FeecurrencyDelivery Settings
delivery_fee.minimum_order_amount_for_free_deliveryFree Delivery MinimumcurrencyDelivery Settings
delivery_fee.custom_feesCustom Fees by Postal CodearrayDelivery Settings
minimum_order_amount.enabledMinimum Order EnabledtoggleDelivery Settings
minimum_order_amount.amountMinimum AmountcurrencyDelivery Settings

Pickup Settings

Field IDLabelTypeFeature
pick_up_instructions.enabledEnable InstructionstogglePickup Settings
pick_up_instructions.placeholderInstructions TexttextPickup Settings

Scheduled Orders

Field IDLabelTypeFeature
schedule_order_for_future_days.takeout.enabledEnable Scheduled PickuptoggleScheduled Orders
schedule_order_for_future_days.takeout.days_in_advancePickup Days AheadnumberScheduled Orders
schedule_order_for_future_days.delivery.enabledEnable Scheduled DeliverytoggleScheduled Orders
schedule_order_for_future_days.delivery.days_in_advanceDelivery Days AheadnumberScheduled Orders

Order Capacity

Field IDLabelTypeFeature
order_capacity.time_slot_duration_minTime Slot DurationselectOrder Capacity
order_capacity.limit_orders_per_time_slotLimit OrderstoggleOrder Capacity
order_capacity.number_of_orders_per_time_slotOrders Per SlotnumberOrder Capacity
order_capacity.enable_flexible_limit_order_per_time_slotFlexible OrderingtoggleOrder Capacity
order_capacity.allow_up_toFlexible LimitnumberOrder Capacity
order_capacity.value_threshold_per_time_slotValue ThresholdcurrencyOrder Capacity
order_capacity.limit_items_per_time_slotLimit ItemstoggleOrder Capacity
order_capacity.number_of_items_per_time_slotItems Per SlotnumberOrder Capacity
order_capacity.enable_limit_specific_categoriesCategory LimitstoggleOrder Capacity
order_capacity.limit_specific_categoriesCategory ListarrayOrder Capacity
order_capacity.time_specific_rulesTime RulesarrayOrder Capacity
delivery_available_daysDelivery DaysarrayOrder Capacity
pickup_available_daysPickup DaysarrayOrder Capacity

Tips & Notes

Field IDLabelTypeFeature
collect_tips.enabledCollect TipstoggleTips
collect_tips.optionsTip PercentagesarrayTips
collect_tips.calculate_tipsCalculate TipsselectTips
allow_notes.enabledAllow NotestoggleOrder Notes
allow_notes.placeholderNotes PlaceholdertextOrder Notes
Field IDLabelTypeFeature
nameItem NametextMenu Items
descriptionDescriptiontextareaMenu Items
pricePricecurrencyMenu Items
category_idCategoryselectMenu Items
imageImageimageMenu Items
statusStatusselectMenu Items
allergensAllergensmultiselectAllergens
dietary_preferencesDietary InfomultiselectAllergens
tagsTagsmultiselectAllergens
tax_rate_codeTax RateselectMenu Items

Stock is not an item field. There is no track_stock, stock or low_stock_threshold anywhere in the backend. "Tracked" is derived from the existence of an Inventory row — Item::getTrackQuantity() returns (bool) $this->getInventory() and serializes as track_quantity. Stock levels are edited in Inventory (quantity), not on the item. See Inventory.

order_quantities is not an editable item field. It is read-only, stored at external_data.mpluskassa.order_quantities and synced from the article's MplusKassa bestelbeperking (Item::getOrderQuantities()) — there is no control for it anywhere in the back office. An empty list means unrestricted; a non-empty list makes the item per-person.

persons is an order-line field, not an item field. Kiosk and Online Ordering send it as items.*.persons (nullable|integer|min:1); it is written onto the transaction item snapshot only when it is >= 1, and returned as persons (null on ordinary lines) on the order-detail payloads. quantity stays article units — party size × how many of the dish — so the back office divides by persons to show dishes.

Modifiers

Field IDLabelTypeFeature
details.nameModifier Group NametextModifiers
details.descriptionDescriptiontextModifiers
pos_namePOS NametextModifiers
priceGroup PricecurrencyModifiers
pricingPricing ModeselectModifiers
settings.is_mandatoryRequiredtoggleModifiers
settings.allow_select_more_than_oneAllow multiple selectionstoggleModifiers
settings.allow_same_modifier_more_than_oneAllow same option twicetoggleModifiers
visibilityChannel visibilitymultiselectModifiers
modifiersModifier OptionsarrayModifiers
modifiers.*.nameOption NametextModifiers
modifiers.*.kitchen_nameKitchen NametextModifiers
modifiers.*.priceOption PricecurrencyModifiers
modifiers.*.image.file / .sourceOption ImageimageModifiers

There is no required, min_selections, max_selections or modifiers.*.default. Mandatory-ness is settings.is_mandatory, and multi-select is expressed by the two settings.allow_* booleans rather than a min/max pair. (StoreModifierGroupRequest.)

Payment Settings

Field IDLabelTypeFeature
viva_wallet_physical_source_codePhysical Source Code (flat field on the Location)textViva Wallet
viva_wallet_online_source_codeOnline Source Code (flat field on the Location)textViva Wallet
payment_test_modeTest mode (per Location)togglePayments
processorProcessor (on the PaymentProfile)textPayments
merchant_idMerchant ID (on the PaymentProfile)textPayments
stripe_account_idStripe Account ID (on the PaymentProfile)textStripe

These are flat fields, not dotted paths. There is no viva_wallet.enabled, no stripe.enabled and no stripe.live_mode anywhere in the backend — test vs live is the per-location payment_test_mode flag, and Stripe payment-method availability comes from the connected account's capabilities rather than any toggle. See options-reference.md.

Loyalty Program

Field IDLabelTypeFeature
programProgram Typeselect (LoyaltyPrograms)Loyalty
points_earned_each_visitPoints per visitnumberLoyalty
points_earned_each_dollarPoints per currency unitnumberLoyalty
using_minimum_spendRequire minimum spendtoggleLoyalty
minimum_spend_to_earn_pointsMinimum spendcurrencyLoyalty
sign_up_bonus / sign_up_bonus_pointsSign-up bonustoggle / numberLoyalty
do_points_expire / months_to_expire_pointsPoint expirytoggle / selectLoyalty
birthday_bonusBirthday BonustoggleLoyalty
birthday_bonus_details.typeBonus Typeselect (RewardTypes)Loyalty
rewards.*RewardsarrayLoyalty

There is no enabled, points_per_currency, points_value or welcome_bonus. birthday_bonus is a plain boolean; the reward itself lives in the sibling object birthday_bonus_details (type, discount, discount_unit, eligible_items) — there is no birthday_bonus.enabled or birthday_bonus.value. (StoreLoyaltyRequest.)

Branding

Field IDLabelTypeFeature
primary_colorPrimary ColorcolorBranding
secondary_colorSecondary ColorcolorBranding
primary_text_colorPrimary TextcolorBranding
secondary_text_colorSecondary TextcolorBranding
primary_background_colorPrimary BackgroundcolorBranding
secondary_background_colorSecondary BackgroundcolorBranding
heading_text_fontHeading FontselectBranding
body_text_fontBody FontselectBranding
sloganSlogantextBranding
short_descriptionDescriptiontextareaBranding
social_linksSocial LinksarrayBranding

Receipt Settings

Field IDLabelTypeFeature
show_order_level_discounts_on_item_levelShow DiscountstoggleReceipts
show_tax_summaryShow Tax SummarytoggleReceipts
show_priceShow PricestoggleReceipts
show_addressShow AddresstoggleReceipts
display_contact_informationShow ContacttoggleReceipts
display_qr_codeShow QR CodetoggleReceipts
display_qr_code_applies_toQR Code TypeselectReceipts
custom_footer_textCustom FootertoggleReceipts
custom_footer_titleFooter TitletextReceipts
custom_footer_long_textFooter TexttextareaReceipts

KDS Settings

Field IDLabelTypeFeature
layoutLayoutselectKDS
filter.order_source.allAll SourcestoggleKDS
filter.order_source.kioskKiosk OrderstoggleKDS
filter.order_source.online_orderingOnline OrderstoggleKDS
orders.strike_through_individual_modifierStrike ThroughtoggleKDS
orders.reset_timer_on_recallReset TimertoggleKDS
orders.automatically_hold_scheduled_ordersHold ScheduledtoggleKDS
timers.for_here.caution_time_secondsFor Here CautionnumberKDS
timers.for_here.late_time_secondsFor Here LatenumberKDS
timers.pickup.caution_time_secondsPickup CautionnumberKDS
timers.pickup.late_time_secondsPickup LatenumberKDS
sound.mute_order_soundMute SoundstoggleKDS
sound.volumeVolumenumberKDS

Integrations

Field IDLabelTypeFeature
square.enable_auto_syncAuto-sync the Square catalog on a scheduletoggleSquare
credentials.site_idDeliveroo Site IDtextDeliveroo
is_sandboxDeliveroo sandbox modetoggleDeliveroo
credentials.store_idUber Eats Store IDtextUber Eats
settings.selected_store_idSelected Uber Eats store (falls back to credentials.store_id)textUber Eats

An integration is turned on and off by connecting / disconnecting it (an integration record with is_active), not by an enabled toggle. There is no square.connected, square.sync_menu, square.sync_orders, deliveroo.enabled or uber_eats.enabled field, and no deliveroo.restaurant_id or auto_accept on either delivery integration. Deliveroo is configured on its own page (/deliveroo). See options-reference.md, Deliveroo.

Field Documentation Template

Each field should include:

markdown
### Field Name
| Property | Value |
|----------|-------|
| **Field ID** | `snake_case_id` |
| **Label** | Human-readable label |
| **Type** | text/number/toggle/select/array/etc. |
| **Default** | Default value |
| **Required** | Yes/No |
| **Validation** | Validation rules |
| **Depends On** | Parent field (if conditional) |

**Description**: What this field does.

**Business Logic**: How it works internally.

**Customer Impact**:
- **Online Ordering**: Effect on OO
- **Kiosk**: Effect on Kiosk

**Examples**: Real-world usage examples.

**Troubleshooting**: Common issues with this field.

Field Types

Basic Types

  • text - Single line text input
  • textarea - Multi-line text input
  • number - Numeric input
  • currency - Money amount
  • toggle - Boolean on/off
  • checkbox - Boolean with label
  • select - Dropdown selection
  • multiselect - Multiple selection

Complex Types

  • array - List of items
  • object - Nested fields
  • date - Date picker
  • time - Time picker
  • datetime - Date and time
  • daterange - Date range
  • timerange - Time range
  • color - Color picker
  • image - Image upload
  • file - File upload

Special Types

  • address - Address with autocomplete
  • phone - Phone number with validation
  • email - Email with validation
  • url - URL with validation
  • schedule - Weekly schedule
  • json - Raw JSON editor

Statistics

  • Total Fields Documented: 150+
  • Categories: 15
  • All fields link to detailed feature documentation

How Emily Uses This

When a merchant asks about a setting, Emily can:

  1. Find the field by searching this index
  2. Understand the type (toggle, select, number, etc.)
  3. Link to full documentation for detailed explanation
  4. Explain customer impact from the feature docs

Example Usage

Merchant asks: "How do I limit orders during lunch rush?"

Emily looks up: order_capacity.time_specific_rules → links to Order Capacity

Emily explains: "You can create time-specific rules in Order Capacity settings. Go to Online Settings, scroll to Time Specific Rules, and add a rule for your lunch hours with custom order limits."