The structure of your Ordering End-to-End data feed is defined by the relational inventory schema. The Ordering End-to-End data feed consists of the following top-level entities:

The following diagram shows how Service, Restaurant, and Menu entities represent a single restaurant:

Restaurant Service Menu class relationship diagram
Figure 1: Overall relationship of Ordering End-to-End data feed entities: Service, Restaurant, and Menu.

General guidelines

  • Restaurants per file: Each data file should represent one restaurant with its related Service and Menu entities. Use filenames that can help you search a file for a restaurant.

  • Data file format: Data files need to be formatted in newline-separated JSON files (ndjson format).

  • DateTime and Time values: For properties that require a DateTime or Time value, use the formats specified in DateTime and Time formats. For example, 2017-05-01T06:30:00+05:30 for DateTime and T08:08:00+05:30 for Time.

  • IDs: Use an @id property to identify all unique entities within an entity type. The maximum length is 300 characters. An @id is a unique identifier of the entity of that type, but across entities, IDs can overlap. For example, assume you define a Service entity with the @id property set to a16. You cannot create another Service entity with an @id of a16. However, you can use a16 as the @id value of a Menu entity.

  • ID Generation: Keep your ids stable - do not use UUIDs or otherwise change/randomize ids between feed uploads. This allows easier support for entity-related issues.

  • Null values: Do not use the value null in place of objects. If an object is optional, you must omit it from your feed.

Client Libraries

The client code generator in the Tools section is available to validate your Ordering End-to-End data feed.