--- sidebar_label: 'Order classification' sidebar_position: 2 --- # Order classification Every order in Future Ordering carries three classification fields that describe what kind of order it is, where it came from, and how the guest will receive it. Understanding these fields is essential for selecting the correct menu and building integrations that behave correctly across different fulfilment scenarios. ## Order type The `orderTypeId` field identifies the type chosen by the guest at the start of an order's flow. It drives store-level configuration such as which menu is presented. `orderTypeId` is always present on an order - it is never absent or unknown. The field is case-insensitive and accepts the following values: | Value | Description | |-------|-------------| | `eatin` | The guest will consume their order at the venue. | | `takeaway` | The guest will take their order away from the venue. | | `delivery` | The order will be delivered to the guest. | :::note In some legacy contexts, order type may be referred to as **order class**. The two terms refer to the same concept. ::: ## Sales channel The `salesChannel` object describes the channel through which the order was placed. Use this field to identify the originating client and adapt integration behaviour accordingly. The `type` property indicates the channel: | Value | Description | |-------|-------------| | `browser` | The order was placed in a web browser. | | `mobileApp` | The order was placed in a mobile application. | | `kiosk` | The order was placed at a self-service kiosk. | | `external` | The order originated from an external system. | Depending on the channel, `salesChannel` can carry additional metadata. For browser and mobile app orders, this includes the user agent string, client version, and operating system. ```json { "type": "mobileApp", "webClientVersion": "9.3.8", "operatingSystem": "iOS", "mobileAppVersion": "10.0.29", "userAgentString": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X)..." } ``` ## Collection details The `collectionDetails` object describes how the order will be collected. The `type` property specifies the fulfilment method: | Value | Description | |-------|-------------| | `pickup` | The guest collects the order at a designated pickup point. | | `curbside` | The order is brought to the guest's vehicle outside the venue. | | `drivethru` | The guest collects the order at a drive-through window. | | `pickuplocker` | The order is placed in a locker for self-service collection. | | `roomservice` | The order is delivered to a room (for example, in a hotel or stadium.) | | `tableservice` | The order is delivered to a table at the venue. | Depending on the type, `collectionDetails` may include additional properties. For example, a `pickup` order can include a `pickupZone` identifying where in the venue the guest should collect the order: ```json { "type": "pickup", "pickupZone": "Counter 3 — Main entrance" } ``` A `curbside` order may include vehicle details supplied by the guest, which the venue uses to identify the car on arrival. :::note In some cases, `collectionDetails` may include a guest's personal data and will require special client permissions to read. See [Obtaining an API Client](using-the-api/obtaining-a-client.md) for more information. :::