Skip to content

Keeta Menu Management API (v.1.0.0)

This API provides comprehensive menu management capabilities for Keeta platform integration, including menu synchronization, product status management, and real-time notifications.

Download OpenAPI description
Overview
Keeta Developer Website

https://developers.mykeeta.com/

Languages
Servers

https://open.mykeeta.com/api/open/

Operations
Webhooks
Operations

Batch bind Spus picture(support other image urls)

Request

  1. Noticed this is an Asynchronous API, if you want to subscribe error messages, please configure webhook with 「eventId=1201」;
  2. Make sure all spuIds are belong to shopId;
  3. Image requirements:
    1. Image url can be access directly. We only support HTTP/HTTPS protocol for default port (80/tcp or 443/tcp), please don't use other ports;
    2. Image size cannot exceed 5M, the minimum aspect of image is 600px * 450px;
    3. In image url's header field, the Content-Type can only be "image/jpeg" or "image/png";

Rate limit: 10 QPS by appId dimension.

Bodyapplication/jsonrequired
shopIdinteger(int64)required

store id in KeeTa

Example: 123
spuPictureListArray of objects(SpuPicture)required
spuPictureList[].​spuIdinteger(int64)

Unique identifier for the SPU, generated by Keeta system.

spuPictureList[].​urlListArray of strings

List of external image URLs associated with the product.

curl -i -X POST \
  https://open.mykeeta.com/api/open/product/spupicture/batchbind \
  -H 'Content-Type: application/json' \
  -d '{
    "shopId": 123,
    "spuPictureList": [
      {
        "spuId": 0,
        "urlList": [
          "string"
        ]
      }
    ]
  }'

Responses

Batch bind pictures task submitted.

Bodyapplication/json
codeintegerrequired

A numeric status identifier indicating the result of the interface call, used to determine whether the operation executed successfully.

Enum ValueDescription
0

The request was executed successfully.

Non-zero value

The request execution failed. Specific error details can be viewed in the message field.

Example: 0
messagestringrequired

Text description corresponding to the status code, explaining the operation result or error cause to users.

Example: "Success"
datainteger(int64)

taskId of this invocation

Response
application/json
{ "code": 0, "message": "Success", "data": 0 }

Request

  1. Query all ChoiceGroups in store.

Rate limit: 50 QPS by appId dimension.

Bodyapplication/jsonrequired
shopIdinteger(int64)required

store id in KeeTa

Example: 25381
curl -i -X POST \
  https://open.mykeeta.com/api/open/product/choicegroup/list \
  -H 'Content-Type: application/json' \
  -d '{
    "shopId": 25381
  }'

Responses

Successful returns ChoiceGroup list.

Bodyapplication/json
codeintegerrequired

A numeric status identifier indicating the result of the interface call, used to determine whether the operation executed successfully.

Enum ValueDescription
0

The request was executed successfully.

Non-zero value

The request execution failed. Specific error details can be viewed in the message field.

Example: 0
messagestringrequired

Text description corresponding to the status code, explaining the operation result or error cause to users.

Example: "Success"
dataArray of objects(ChoiceGroup)

ChoiceGroup data model

Response
application/json
{ "code": 0, "message": "Success", "data": [ {} ] }

Request

  1. if the ChoiceGroupSku.name is the same as Spu.name, normally they will bound.
  2. ChoiceGroup.maxNumber should greater than or equals to ChoiceGroup.minNumber and ChoiceGroup.maxNumber should greater than 0.
  3. ChoiceGroupSku.price is required, status is required.

Rate limit: 10 QPS by appId dimension.

Bodyapplication/jsonrequired
shopIdinteger(int64)required

store id in KeeTa

Example: 25381
choiceGroupListArray of objects(ChoiceGroup)required

ChoiceGroup data model

choiceGroupList[].​idinteger(int64)

Unique ChoiceGroup ID generated by Keeta system. Not required in OpenItemCode-based APIs. Required for updates in Keeta ID-based APIs.

Example: 0
choiceGroupList[].​namestringrequired

Display name of the ChoiceGroup

Example: "Sauces"
choiceGroupList[].​sourceLanguageTypestringrequired

Language code for name field (refer to Menu Integration Guide)

Example: "en"
choiceGroupList[].​nameTranslationstring

Localized name translation

Example: "選擇醬料"
choiceGroupList[].​targetLanguageTypestring

Language code for nameTranslation (required if translation exists), please refer to Menu API Integration Guide

Example: "zh-HK"
choiceGroupList[].​nameTranslateTypeinteger

Source of name translation. When the value equals 1, it indicates that the name translation was provided by the merchant.

Example: 1
choiceGroupList[].​minNumberintegerrequired

Minimum number of ChoiceGroupSkus that must be selected

Example: 0
choiceGroupList[].​maxNumberintegerrequired

Maximum number of ChoiceGroupSkus that can be selected

Example: 3
choiceGroupList[].​choiceGroupSkuListArray of objects(ChoiceGroupSku)required

List of available ChoiceGroupSkus in this ChoiceGroup

choiceGroupList[].​choiceGroupSkuList[].​idinteger(int64)

Primary key for ChoiceGroupSku, mainly used for order API alignment. Changes when names are modified. Not required in OpenItemCode-based APIs. Required for updates in Keeta ID-based APIs.

Example: 0
choiceGroupList[].​choiceGroupSkuList[].​namestringrequired

Display name of the ChoiceGroupSku. Should match SPU name when representing the same product for internal correlation.

Example: "Ketchup"
choiceGroupList[].​choiceGroupSkuList[].​sourceLanguageTypestringrequired

Language code for name field (refer to Menu Integration Guide)

Example: "en"
choiceGroupList[].​choiceGroupSkuList[].​nameTranslationstring

Localized name translation

Example: "番茄醬"
choiceGroupList[].​choiceGroupSkuList[].​targetLanguageTypestring

Language code for nameTranslation (required if translation exists), please refer to Menu API Integration Guide

Example: "zh-HK"
choiceGroupList[].​choiceGroupSkuList[].​nameTranslateTypeinteger

Source of name translation. When the value equals 1, it indicates that the name translation was provided by the merchant.

Example: 1
choiceGroupList[].​choiceGroupSkuList[].​pricestring

Delivery price (supports 2 decimal places)

Example: "12.33"
choiceGroupList[].​choiceGroupSkuList[].​pickPricestring

Pickup price (supports 2 decimal places)

Example: "12.33"
choiceGroupList[].​choiceGroupSkuList[].​canteenPricestring

Dine-in price (supports 2 decimal places)

Example: "12.33"
choiceGroupList[].​choiceGroupSkuList[].​currencystring

Currency code (refer to "Currency Symbols" enum). Defaults to merchant's currency.

Example: "HKD"
choiceGroupList[].​choiceGroupSkuList[].​statusintegerrequired

Availability status:

0: indicates the ChoiceGroupSku is unavailable / 1: indicates ChoiceGroupSku is available

Example: 1
choiceGroupList[].​choiceGroupSkuList[].​openItemCodestringrequired

Third-party ChoiceGroupSku identifier. Mandatory and unique in OpenItemCode-based APIs.

Example: "CHOICE#10001"
choiceGroupList[].​choiceGroupSkuList[].​nutritionalInfoobject

Nutritional components (refer to "Nutritional Elements" enum)

choiceGroupList[].​choiceGroupSkuList[].​allergensArray of strings

Allergen information (refer to "Allergens" enum)

choiceGroupList[].​choiceGroupSkuList[].​pictureListArray of objects

ChoiceGroupSku image URLs

choiceGroupList[].​choiceGroupSkuList[].​relatedSpuOpenItemCodestring

Third-party SPU identifier this ChoiceGroupSku should bind to. Using this to explicitly bind the ChoiceGroupSku to the given SPU.

choiceGroupList[].​choiceGroupSkuList[].​relatedSkuOpenItemCodestring

Third-party SKU identifier this ChoiceGroupSku should bind to. Using this to explicitly bind the ChoiceGroupSku to the given SKU. When a ChoiceGroupSku bind to a SKU, it will use the bounded SKU's ChoiceGroups to form a multi-layer ChoiceGroup structure.

choiceGroupList[].​openItemCodestringrequired

Developer-provided ChoiceGroup identifier. Mandatory and unique in OpenItemCode-based APIs.

Example: "GROUP#10001"
choiceGroupList[].​repeatableinteger

Multiple selection flag:

Enum ValueDescription
0

indicates single selection only

1

allows multiple selections of the same ChoiceGroupSku

Example: 0
curl -i -X POST \
  https://open.mykeeta.com/api/open/product/choicegroup/batchcreate \
  -H 'Content-Type: application/json' \
  -d '{
    "shopId": 25381,
    "choiceGroupList": [
      {
        "id": 0,
        "name": "Sauces",
        "sourceLanguageType": "en",
        "nameTranslation": "選擇醬料",
        "targetLanguageType": "zh-HK",
        "nameTranslateType": 1,
        "minNumber": 0,
        "maxNumber": 3,
        "choiceGroupSkuList": [
          {
            "id": 0,
            "name": "Ketchup",
            "sourceLanguageType": "en",
            "nameTranslation": "番茄醬",
            "targetLanguageType": "zh-HK",
            "nameTranslateType": 1,
            "price": "12.33",
            "pickPrice": "12.33",
            "canteenPrice": "12.33",
            "currency": "HKD",
            "status": 1,
            "openItemCode": "CHOICE#10001",
            "nutritionalInfo": {
              "property1": 0,
              "property2": 0
            },
            "allergens": [
              "string"
            ],
            "pictureList": [
              {
                "url": "https://img-ap-hongkong.mykeeta.net/sailorproduct/9c760595674b395e330cf94b0e5068b09999.jpg"
              }
            ],
            "relatedSpuOpenItemCode": "string",
            "relatedSkuOpenItemCode": "string"
          }
        ],
        "openItemCode": "GROUP#10001",
        "repeatable": 0
      }
    ]
  }'

Responses

Batch creation result.

Bodyapplication/json
codeintegerrequired

A numeric status identifier indicating the result of the interface call, used to determine whether the operation executed successfully.

Enum ValueDescription
0

The request was executed successfully.

Non-zero value

The request execution failed. Specific error details can be viewed in the message field.

Example: 0
messagestringrequired

Text description corresponding to the status code, explaining the operation result or error cause to users.

Example: "Success"
dataArray of objects(ChoiceGroup)

Successful ChoiceGroup data model

errorListArray of objects(ErrorChoiceGroup)

Failed ChoiceGroup informations

Response
application/json
{ "code": 0, "message": "Success", "data": [ {} ], "errorList": [ {} ] }
Operations