Deliverect · Schema

InsertUpdateProductsAndCategories

Deliverect Insert/update Products and Categories

RestaurantDeliveryOnline OrderingPoint of SaleOrder ManagementIntegration

Properties

Name Type Description
accountId string The customer account ID in Deliverect
locationId string
products array
categories array
priceLevels array
View JSON Schema on GitHub

JSON Schema

pos-api-insert-update-products-and-categories-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/deliverect/refs/heads/main/json-schema/pos-api-insert-update-products-and-categories-schema.json",
  "title": "InsertUpdateProductsAndCategories",
  "description": "Deliverect Insert/update Products and Categories",
  "type": "object",
  "properties": {
    "accountId": {
      "type": "string",
      "example": "5b71c6489f00290d4",
      "description": "The customer account ID in Deliverect"
    },
    "locationId": {
      "type": "string",
      "example": "5cecc6489f0001b8"
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Deliverect's Pizza Place"
          },
          "plu": {
            "type": "string",
            "example": "PIE1"
          },
          "price": {
            "type": "integer",
            "format": "int32",
            "example": 1250
          },
          "description": {
            "type": "string",
            "example": "No salad"
          },
          "productType": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "gtin": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "string"
            },
            "default": [],
            "description": "GTIN (Global Trade Item Number) for product, which could be EAN code"
          },
          "isVariant": {
            "type": "boolean",
            "example": true
          },
          "isCombo": {
            "type": "boolean",
            "example": true
          },
          "deliveryTax": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "takeawayTax": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "eatInTax": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "priceLevels": {
            "type": "object",
            "properties": {
              "TA": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "DL": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "UE": {
                "type": "integer",
                "format": "int32",
                "example": 1
              }
            }
          },
          "overloads": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "scopes": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "example": "string"
                  },
                  "default": []
                },
                "bundlePrice": {
                  "type": "integer",
                  "format": "int32",
                  "example": 1250
                },
                "price": {
                  "type": "integer",
                  "format": "int32",
                  "example": 1250
                },
                "name": {
                  "type": "string",
                  "example": "Deliverect's Pizza Place"
                }
              }
            }
          },
          "posProductId": {
            "type": "string",
            "example": "609a1b2c3d4e5f6a7b8c9d0e"
          },
          "posCategoryIds": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "string"
            },
            "default": []
          },
          "imageUrl": {
            "type": "string",
            "example": "https://example.com/path/abc123"
          },
          "nameTranslations": {
            "type": "object",
            "properties": {
              "en": {
                "type": "string",
                "example": "string"
              },
              "es": {
                "type": "string",
                "example": "string"
              },
              "fr": {
                "type": "string",
                "example": "string"
              },
              "nl": {
                "type": "string",
                "example": "string"
              },
              "ar": {
                "type": "string",
                "example": "string"
              },
              "el": {
                "type": "string",
                "example": "string"
              }
            }
          },
          "productTags": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "default": []
          },
          "multiMax": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "sets the maximum quantity orderable of any one item in a group, can also set the maximum quantity of a product to be ordered in a basket"
          },
          "defaultQuantity": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "applicable to modifiers (productType: 2) to 'pre-select' an option"
          },
          "nutritionalInfo": {
            "type": "object",
            "properties": {
              "fat": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "protein": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "sugar": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "addedSugar": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "saturatedFat": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "carbohydrates": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "salt": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "transFat": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "monoUnsaturatedFat": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "polyUnsaturatedFat": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "cholesterol": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "starch": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "sodium": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "fiber": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "vitaminC": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "calcium": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "magnesium": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "chloride": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "fluoride": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "potassium": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "polyols": {
                "type": "integer",
                "format": "int32",
                "example": 1
              },
              "servingSize": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "integer",
                    "format": "int32",
                    "example": 1250
                  },
                  "unitType": {
                    "type": "integer",
                    "format": "int32",
                    "example": 1
                  },
                  "countUnitDescription": {
                    "type": "string",
                    "example": "No salad"
                  }
                }
              },
              "netQuantity": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "integer",
                    "format": "int32",
                    "example": 1250
                  },
                  "unitType": {
                    "type": "integer",
                    "format": "int32",
                    "example": 1
                  },
                  "countUnitDescription": {
                    "type": "string",
                    "example": "No salad"
                  }
                }
              }
            }
          },
          "supplementalInfo": {
            "type": "object",
            "properties": {
              "instructionsForUse": {
                "type": "string",
                "example": "string"
              },
              "ingredients": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "string"
                }
              },
              "additives": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "string"
                }
              },
              "prepackaged": {
                "type": "boolean",
                "example": true
              },
              "deposit": {
                "type": "integer",
                "format": "int32",
                "example": 1
              }
            }
          },
          "bottleDepositPrice": {
            "type": "integer",
            "format": "int32",
            "example": 1250
          },
          "visible": {
            "type": "boolean",
            "example": true
          },
          "subProducts": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "string"
            },
            "default": []
          },
          "kitchenName": {
            "type": "string",
            "example": "Deliverect's Pizza Place",
            "description": "An optional additional name for the product that will be sent through with the order"
          }
        },
        "required": [
          "name",
          "plu",
          "price",
          "productType",
          "deliveryTax"
        ]
      }
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "default": "Build your own Pizza",
            "example": "Build your own Pizza"
          },
          "posCategoryId": {
            "type": "string",
            "default": "PZ",
            "example": "PZ"
          }
        }
      }
    },
    "priceLevels": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "default": "Takeaway",
            "example": "Takeaway"
          },
          "posId": {
            "type": "string",
            "default": "TA",
            "example": "TA"
          }
        }
      }
    }
  },
  "required": [
    "accountId",
    "locationId",
    "products",
    "categories"
  ],
  "example": {
    "accountId": "6**f578fa205bc3eca854***",
    "locationId": "6**91e9273d6950b4b0a8***",
    "products": [
      {
        "productType": 1,
        "plu": "STK-01",
        "price": 1500,
        "name": "Delicious Steak Frites",
        "kitchenName": "Steak",
        "posProductId": "POS-ID-001",
        "posCategoryIds": [
          "STK"
        ],
        "imageUrl": "https://storage.googleapis.com/ikona-bucket-staging/images/5ff6ee089328c8aefeeabe33/steak-622862588c506f015be6018e.jpeg",
        "description": "Delicious Steak Frites",
        "descriptionTranslations": {
          "es": "Deliciosos Bistecs Fritos",
          "fr": "Steak Frites D\u00e9licieux",
          "nl": "Heerlijke Biefstuk Frites",
          "ar": "\u0634\u0631\u064a\u062d\u0629 \u0644\u062d\u0645 \u0641\u0631\u064a\u062a\u0633",
          "el": "\u039d\u03bf\u03c3\u03c4\u03b9\u03bc\u03b7 \u03c7\u03bf\u03b9\u03c1\u03b9\u03bd\u03ae \u03c0\u03b1\u03bd\u03c4\u03c3\u03ad\u03c4\u03b1 \u03bc\u03b5 \u03c0\u03b1\u03c4\u03ac\u03c4\u03b5\u03c2"
        },
        "deliveryTax": 9000,
        "takeawayTax": 9000,
        "nameTranslations": {
          "en": "Delicious Steak Frites",
          "es": "Deliciosos Bistecs Fritos",
          "fr": "Steak Frites D\u00e9licieux",
          "nl": "Heerlijke Biefstuk Frites",
          "ar": "\u0634\u0631\u064a\u062d\u0629 \u0644\u062d\u0645 \u0641\u0631\u064a\u062a\u0633",
          "el": "\u039d\u03bf\u03c3\u03c4\u03b9\u03bc\u03b7 \u03c7\u03bf\u03b9\u03c1\u03b9\u03bd\u03ae \u03c0\u03b1\u03bd\u03c4\u03c3\u03ad\u03c4\u03b1 \u03bc\u03b5 \u03c0\u03b1\u03c4\u03ac\u03c4\u03b5\u03c2"
        },
        "eatInTax": 9000,
        "multiMax": 1,
        "nutritionalInfo": {
          "fat": 1,
          "sugar": 4,
          "saturatedFat": 1,
          "carbohydrates": 1,
          "protein": 1,
          "salt": 1
        },
        "subProducts": [
          "AUTO-01",
          "MOD-01",
          "MOD-02"
        ]
      },
      {
        "productType": 3,
        "plu": "MOD-01",
        "name": "Cooking instructions",
        "posProductId": "POS-ID-009",
        "posCategoryIds": [
          "POS-CAT-001"
        ],
        "imageUrl": "",
        "description": "Cooking Instructions",
        "descriptionTranslations": {
          "es": "Cocinado",
          "fr": "Cuisson",
          "nl": "Kook instructies",
          "ar": "\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0637\u0628\u062e",
          "el": "\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03bc\u03b1\u03b3\u03b5\u03b9\u03c1\u03ad\u03bc\u03b1\u03c4\u03bf\u03c2"
        },
        "deliveryTax": 6000,
        "takeawayTax": 6000,
        "nameTranslations": {
          "en": "Cooking Instructions",
          "es": "Cocinado",
          "fr": "Cuisson",
          "nl": "Kook instructies",
          "ar": "\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0637\u0628\u062e",
          "el": "\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03bc\u03b1\u03b3\u03b5\u03b9\u03c1\u03ad\u03bc\u03b1\u03c4\u03bf\u03c2"
        },
        "min": 1,
        "max": 1,
        "subProducts": [
          "COOK-01",
          "COOK-02",
          "COOK-03"
        ]
      },
      {
        "productType": 3,
        "plu": "MOD-02",
        "name": "Add a side",
        "posProductId": "POS-ID-014",
        "posCategoryIds": "INTERNAL-POS-CAT-2",
        "imageUrl": "https://www.stockvault.net/data/2009/07/20/109569/preview16.jpg",
        "description": "Pizza made for cheese fanatics",
        "deliveryTax": 6000,
        "takeawayTax": 6000,
        "nameTranslations": {
          "en": "Choose a side",
          "es": "Elige tu acompa\u00f1amiento",
          "fr": "Choisissez votre garniture",
          "nl": "Kies je bijgerecht",
          "ar": "\u0627\u062e\u062a\u0631 \u0637\u0628\u0642\u0643 \u0627\u0644\u062c\u0627\u0646\u0628\u064a",
          "el": "\u0394\u03b9\u03b1\u03bb\u03ad\u03be\u03c4\u03b5 \u03b1\u03ba\u03cc\u03bc\u03b1"
        },
        "subProducts": [
          "SI-01",
          "SI-02",
          "SI-03"
        ],
        "min": 0,
        "max": 0,
        "multiMax": 3
      },
      {
        "productType": 3,
        "plu": "AUTO-01",
        "price": 900,
        "name": "Garnishes",
        "posProductId": "POS-ID-032",
        "imageUrl": "",
        "description": "",
        "deliveryTax": 6000,
        "takeawayTax": 6000,
        "min": 0,
        "max": 0,
        "autoApply": [
          {
            "plu": "PR1"
          },
          {
            "plu": "PR2"
          }
        ],
        "subProducts": [
          "PR1",
          "PR2"
        ]
      },
      {
        "productType": 2,
        "plu": "PR1",
        "price": 0,
        "name": "Parsley",
        "posProductId": "PA_POS-0023",
        "posCategoryIds": "",
        "imageUrl": "",
        "description": "",
        "deliveryTax": 0,
        "takeawayTax": 0,
        "defaultQuantity": 3
      },
      {
        "productType": 2,
        "plu": "PR2",
        "price": 0,
        "name": "Melted Butter",
        "posProductId": "PA_POS-0024",
        "posCategoryIds": "",
        "imageUrl": "",
        "description": "",
        "deliveryTax": 0,
        "takeawayTax": 0
      },
      {
        "productType": 2,
        "plu": "COOK-01",
        "price": 0,
        "name": "Rare",
        "posProductId": "POS-ID-003",
        "posCategoryIds": [
          "POS-CAT-001"
        ],
        "imageUrl": "",
        "description": "",
        "deliveryTax": 9000,
        "takeawayTax": 9000,
        "nameTranslations": {
          "en": "Rare",
          "es": "Poco hecho",
          "fr": "Saignant",
          "nl": "Rood",
          "ar": "\u063a\u064a\u0631 \u0646\u0627\u0636\u062c \u062c\u064a\u062f\u0627",
          "el": "\u03a9\u03bc\u03cc"
        }
      },
      {
        "productType": 2,
        "plu": "COOK-02",
        "price": 0,
        "name": "Medium Rare",
        "posProductId": "POS-ID-004",
        "posCategoryIds": "INTERNAL-POS-CAT-2",
        "imageUrl": "",
        "description": "",
        "deliveryTax": 9000,
        "takeawayTax": 9000,
        "nameTranslations": {
          "en": "Medium Rare",
          "es": "Al punto",
          "fr": "\u00c0 point",
          "nl": "Half doorbakken",
          "ar": "\u0645\u064f\u062a\u064e\u0648\u064e\u0633\u0651\u0650\u0637 \u0627\u0644\u0646\u064f\u0636\u0652\u062c\u0650",
          "el": "\u039c\u03b9\u03c3\u03bf\u03c8\u03b7\u03bc\u03ad\u03bd\u03bf"
        }
      },
      {
        "productType": 2,
        "plu": "COOK-03",
        "price": 0,
        "name": "Well Done",
        "posProductId": "POS-ID-005",
        "posCategoryIds": "INTERNAL-POS-CAT-2",
        "imageUrl": "",
        "description": "",
        "deliveryTax": 9000,
        "takeawayTax": 9000,
        "nameTranslations": {
          "en": "Well done",
          "es": "Muy hecho",
          "fr": "Bien cuit",
          "nl": "Doorbakken",
          "ar": "\u0645\u0637\u0628\u0648\u062e \u062c\u064a\u062f\u0627",
          "el": "\u03ba\u03b1\u03bb\u03bf\u03c8\u03b7\u03bc\u03ad\u03bd\u03bf"
        }
      },
      {
        "productType": 2,
        "plu": "SI-01",
        "price": 0,
        "name": "Fries",
        "posProductId": "POS-ID-012",
        "posCategoryIds": [
          "SD"
        ],
        "imageUrl": "",
        "description": "Fries",
        "descriptionTranslations": {
          "es": "Patatas fritas",
          "fr": "Frites",
          "nl": "Frietjes",
          "ar": "\u0628\u0637\u0627\u0637\u0633 \u0645\u0642\u0644\u064a\u0629",
          "\u03b5\u03bb": "\u03a0\u03b1\u03c4\u03ac\u03c4\u03b5\u03c2"
        },
        "deliveryTax": 9000,
        "takeawayTax": 9000,
        "nameTranslations": {
          "en": "Fries",
          "es": "Patatas fritas",
          "fr": "Frites",
          "nl": "Frietjes",
          "ar": "\u0628\u0637\u0627\u0637\u0633 \u0645\u0642\u0644\u064a\u0629",
          "\u03b5\u03bb": "\u03a0\u03b1\u03c4\u03ac\u03c4\u03b5\u03c2"
        },
        "eatInTax": 9000,
        "defaultQuantity": 1
      },
      {
        "productType": 2,
        "plu": "SI-02",
        "price": 200,
        "name": "Salad",
        "kitchenName": "",
        "posProductId": "POS-ID-013",
        "posCategoryIds": [
          "SD"
        ],
        "imageUrl": "",
        "description": "Salad",
        "descriptionTranslations": {
          "es": "Ensalada",
          "fr": "Salade",
          "nl": "Salade",
          "ar": "\u0633\u0644\u0637\u0629",
          "\u03b5\u03bb": "\u03a3\u03b1\u03bb\u03ac\u03c4\u03b1"
        },
        "deliveryTax": 9000,
        "takeawayTax": 9000,
        "nameTranslations": {
          "en": "Salad",
          "es": "Ensalada",
          "fr": "Salade",
          "nl": "Salade",
          "ar": "\u0633\u0644\u0637\u0629",
          "\u03b5\u03bb": "\u03a3\u03b1\u03bb\u03ac\u03c4\u03b1"
        },
        "eatInTax": 9000
      },
      {
        "productType": 2,
        "plu": "SI-03",
        "price": 100,
        "name": "Mashed Potato",
        "kitchenName": "Mash",
        "posProductId": "POS-ID-014",
        "posCategoryIds": [
          "SD"
        ],
        "imageUrl": "",
        "description": "Mashed Potato",
        "descriptionTranslations": {
          "es": "Pur\u00e9 de patata",
          "fr": "Pur\u00e9e de pommes de terre",
          "nl": "Aardappelpuree",
          "ar": "\u0627\u0644\u0628\u0637\u0627\u0637\u0627 \u0627\u0644\u0645\u0647\u0631\u0648\u0633\u0629",
          "el": "\u03a0\u03bf\u03c5\u03c1\u03ad\u03c2 \u03c0\u03b1\u03c4\u03ac\u03c4\u03b1\u03c2"
        },
        "deliveryTax": 9000,
        "takeawayTax": 9000,
        "nameTranslations": {
          "en": "Mashed Potato",
          "es": "Pur\u00e9 de patata",
          "fr": "Pur\u00e9e de pommes de terre",
          "nl": "Aardappelpuree",
          "ar": "\u0627\u0644\u0628\u0637\u0627\u0637\u0627 \u0627\u0644\u0645\u0647\u0631\u0648\u0633\u0629",
          "el": "\u03a0\u03bf\u03c5\u03c1\u03ad\u03c2 \u03c0\u03b1\u03c4\u03ac\u03c4\u03b1\u03c2"
        },
        "eatInTax": 9000
      }
    ],
    "categories": [
      {
        "name": "Steaks",
        "posCategoryId": "STK"
      },
      {
        "name": "Sides",
        "posCategoryId": "SD"
      }
    ]
  }
}