Skip to main content

Menu Order

Menu order schemas for restaurant and food service order management. Supports dine-in, takeout, and delivery order types.

Schema: MenuOrderSchema Source: src/core/business-mgt/menu.order.schema.ts


Individual items within a menu order.

Schema: MenuOrderItemSchema

Attributes​

AttributeTypeRequiredDefaultDescription
idstring——Unique identifier for this order item
menuOrderIdstringYes—References parent MenuOrder
menuItemIdstringYes—References MenuItem from catalog
itemNamestringYes—Display name captured at order time
quantitynumberYes—Number of units ordered
unitPricenumberYes—Price per unit at order time
totalPricenumberYes—Total price for this line item
specialInstructionsstring | nullNonullCustomer's special preparation requests
customizationsarray | nullNonullItem customizations with pricing
statusenumNoPENDINGCurrent preparation status. One of PENDING, CONFIRMED, PREPARING, READY, COMPLETED, or CANCELLED.
preparationTimenumber | nullNonullEstimated prep time in minutes
notesstring | nullNonullInternal notes for staff

Customization Object​

AttributeTypeDefaultDescription
namestring—Customization option name
valuestring—Selected customization value
additionalCostnumber0Extra charge for this customization

Complete menu order with items, customer, and pricing.

Attributes​

AttributeTypeRequiredDefaultDescription
idstring——Unique identifier for the order
orderNumberstring | nullNonullHuman-readable order number
typeenumYes—Order type. One of DINE_IN, TAKEOUT, or DELIVERY.
statusenumNoPENDINGCurrent order status. One of PENDING, CONFIRMED, PREPARING, READY, COMPLETED, or CANCELLED.
itemsarray<MenuOrderItem>Yes—Menu items in this order (min 1)
customerIdstringYes—References Customer
customerOrderCustomer | nullNonullPopulated customer information
pricingOrderPricingYes—Complete pricing breakdown
paymentStatusenumNoPENDINGPayment processing status. One of PENDING, PAID, FAILED, or REFUNDED.
paymentMethodstring | nullNonullPayment method used
paymentReferencestring | nullNonullExternal payment reference
orderDatenumberYes—Unix timestamp when order was placed
requestedTimenumber | nullNonullRequested pickup/delivery time
estimatedReadyTimenumber | nullNonullKitchen estimate for completion
actualReadyTimenumber | nullNonullActual completion time
specialInstructionsstring | nullNonullOrder-level special instructions
allergiesarray<string> | nullNonullCustomer allergy information
tableNumberstring | nullNonullTable number for DINE_IN orders
externalOrderIdstring | nullNonullExternal system order ID
sourcestringNodirectOrder source channel
cancelReasonstring | nullNonullReason for cancellation
notesstring | nullNonullInternal operational notes
serviceConversationConfigIdstring | nullNonullAI service conversation config ID
deliveryAddressobject | nullNonullDelivery address for DELIVERY orders
tipnumber | nullNonullTip amount for the order
createdAtnumber——Unix timestamp when created
updatedAtnumber——Unix timestamp when last updated

Example​

{
"id": "order_abc123",
"orderNumber": "#1234",
"type": "DINE_IN",
"status": "PREPARING",
"items": [
{
"id": "item_001",
"menuOrderId": "order_abc123",
"menuItemId": "menu_pizza",
"itemName": "Margherita Pizza",
"quantity": 2,
"unitPrice": 16.99,
"totalPrice": 33.98,
"specialInstructions": "Extra crispy",
"customizations": [
{
"name": "Extra Cheese",
"value": "Yes",
"additionalCost": 2.00
}
],
"status": "PREPARING"
}
],
"customerId": "cust_abc123",
"pricing": {
"subtotal": 37.98,
"tax": 3.04,
"tip": 7.00,
"total": 48.02,
"currency": "USD"
},
"paymentStatus": "PAID",
"tableNumber": "5",
"orderDate": 1709856000000,
"createdAt": 1709856000000,
"updatedAt": 1709856000000
}

Create / Update Schemas​

SchemaDescriptionOmits
CreateMenuOrderSchemaFor creating new ordersid, createdAt, updatedAt, actualReadyTime, cancelReason, serviceConversationConfigId
UpdateMenuOrderSchemaFor partial updatesAll fields optional except id
UpdateMenuOrderStatusSchemaFor quick status updatesOnly id, status, estimatedReadyTime, actualReadyTime