v1

latestOpenAPI 3.0.3Apache 2.02026-07-2478177179.1 KB
Menu API Grubtech Endpoints

Upload Menu

The Upload Menu endpoint on the Grubtech platform allows the creation of a menu for a specific store. This endpoint is designed to handle complex menu structures and ensures that all menu items, categories, and modifiers are uploaded and properly configured for integration with Grubtech's POS application.

  • Menu Creation: This endpoint facilitates the creation and structuring of a restaurant's menu on Grubtech's platform.

  • Store-Specific Menus: The menu being uploaded is associated with a specific store, ensuring that each store can have a distinct menu if needed.

  • Supports Nested Modifiers: For POS systems that support nested modifiers (i.e., modifiers within modifiers), this endpoint allows for the inclusion of those nested structures within the menu payload. Nested modifiers allow for hierarchical grouping, where a modifier can have additional sub-options. To properly configure nested modifiers, refer to the step-by-step process outlined in POS Platforms Supporting Nested Modifiers. Ensure that the payload follows the correct format to nest these modifiers.

put/menus

Request body

idstring required

Unique identifier for the menu, provided by Grubtech.

imageUrlstring

(optional) URL pointing to an image of the item. <br/>Image requirements <br/>- File size must be less than 10MB. <br/>- Image must be in GIF, JFIF, PJPEG, JPG, PJPG, PNG, WEBP <br/>- Minimum resolution for the images will be 200x200 px and maximum resolution will be 4000x4000

currencyCodestring required

Applicable currency code for the menu. According to ISO-4217

storeIdstring required

Unique identifier for the location in which the menu was created or updated. This ID will be provided by either Grubtech or the aggregator.

externalDatastring

(optional) Free-form text field reserved for the api consumer to use, e.g. for POS integrations.

latestNotificationIdstring required

Unique identifier for the latest menu update notification

lastUpdatedAtstring required

The time the menu updated, represented in ISO 8601 format.

Example request

{
  "id": "bc19f8e9-6b15-443f-a9c0-23daf8bc68b2",
  "name": {
    "translations": {
      "en-us": "grubtech"
    }
  },
  "description": {
    "translations": {
      "en-us": "grubtech"
    }
  },
  "imageUrl": "https://cdn.staging.grubtech.io/default-menu-cover.jpg",
  "currencyCode": "AED",
  "storeId": "a9f3ded6-c10b-4f17-ad42-5788e061b0a6",
  "items": [
    {
      "id": "601e50ce9509110c35650e01",
      "sku": "FG-00923",
      "barcodes": [
        "703546147070869504"
      ],
      "name": {
        "translations": {
          "en-us": "grubtech"
        }
      },
      "description": {
        "translations": {
          "en-us": "grubtech"
        }
      },
      "brandName": "Anchor",
      "imageUrl": "https://cdn.staging.grubtech.io/IMAGE_RECIPE-b086a720-63e1-480e-ace3-1973fa19cc40.jpeg",
      "unitPrice": 1200,
      "discountedPrice": 1000,
      "quantityInfo": {
        "amount": 100,
        "measureUnit": "g",
        "itemSize": "500"
      },
      "type": "ITEM",
      "availability": "AVAILABLE",
      "tags": [
        "Chef's special"
      ]
    }
  ],
  "categories": [
    {
      "id": "601e50cd6053727605dc5a17",
      "background": {
        "type": "IMAGE",
        "value": "IMAGE_CATEGORY-3cb9f4ed-48d6-4088-a88b-d04cc8faaaab.jpeg"
      },
      "name": {
        "translations": {
          "en-us": "grubtech"
        }
      },
      "description": {
        "translations": {
          "en-us": "grubtech"
        }
      },
      "items": [
        "601e50ce9509110c35650e01"
      ]
    }
  ],
  "latestNotificationId": "a9f3ded6-c10b-4f17-ad42-5788e061b0a6",
  "lastUpdatedAt": "2020-08-02T09:23:54.723Z"
}

Response

Successful response OK

idstring required

Unique id for the request.

externalReferenceIdstring required

Grubtech unique id for the request