Incentivio Item Controller API

The item-controller API from Incentivio — 9 operation(s) for item-controller.

Operations 10

PUT /incentivio-ordering-service/items #
PATCH /incentivio-ordering-service/items #
POST /incentivio-ordering-service/items/list #
POST /incentivio-ordering-service/items/delete #
PATCH /incentivio-ordering-service/item/{itemId} #
GET /incentivio-ordering-service/adminitems #
GET /incentivio-ordering-service/adminitems/{itemid} #
GET /incentivio-ordering-service/adminitems/downloadcsv #
GET /incentivio-ordering-service/adminitems/by-displayinfo-title #
DELETE /incentivio-ordering-service/items/{itemid} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/incentivio-item-controller-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

incentivio-item-controller-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenAPI definition Item Controller API
  version: v0
servers:
- url: https://adminapi.incentivio.com/incentivio-admin-api
  description: Generated server url
tags:
- name: item-controller
paths:
  /incentivio-ordering-service/items:
    put:
      tags:
      - item-controller
      operationId: addOrUpdateItem
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateItemRequestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreateItemResponseDTO'
    patch:
      tags:
      - item-controller
      operationId: patchItems
      parameters:
      - name: storeId
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateRequest'
        required: true
      responses:
        '200':
          description: OK
  /incentivio-ordering-service/items/list:
    post:
      tags:
      - item-controller
      operationId: listItems
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ItemSearchRequestDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ListItemResponseWithPagingForAdminDTO'
  /incentivio-ordering-service/items/delete:
    post:
      tags:
      - item-controller
      operationId: deleteItems
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: OK
  /incentivio-ordering-service/item/{itemId}:
    patch:
      tags:
      - item-controller
      operationId: patchItem
      parameters:
      - name: itemId
        in: path
        required: true
        schema:
          type: string
      - name: storeId
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PatchRequestDTO'
        required: true
      responses:
        '200':
          description: OK
  /incentivio-ordering-service/adminitems:
    get:
      tags:
      - item-controller
      operationId: listItemByGroupAndTimeForAdmin
      parameters:
      - name: groupId
        in: query
        required: false
        schema:
          type: string
      - name: catalogId
        in: query
        required: false
        schema:
          type: string
      - name: title
        in: query
        required: false
        schema:
          type: string
      - name: count
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 300
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      - name: incentivioIds
        in: query
        required: false
        schema:
          type: string
      - name: externalIds
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/Status'
      - name: outOfStock
        in: query
        required: false
        schema:
          type: boolean
      - name: outOfStockToday
        in: query
        required: false
        schema:
          type: boolean
      - name: sortDirection
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/Direction'
          default: ASC
      - name: sortBy
        in: query
        required: false
        schema:
          type: string
          default: title
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ListItemResponseWithPagingForAdminDTO'
  /incentivio-ordering-service/adminitems/{itemid}:
    get:
      tags:
      - item-controller
      operationId: viewItemByIdForAdmin
      parameters:
      - name: itemid
        in: path
        required: true
        schema:
          type: string
      - name: includeStores
        in: query
        required: false
        schema:
          type: boolean
      - name: includeChildElements
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ViewItemAdminDTO'
  /incentivio-ordering-service/adminitems/downloadcsv:
    get:
      tags:
      - item-controller
      operationId: downloadItemsCSV
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
  /incentivio-ordering-service/adminitems/by-displayinfo-title:
    get:
      tags:
      - item-controller
      operationId: getItemsByDisplayInfoTitleForAdmin
      parameters:
      - name: displayInfoTitle
        in: query
        required: false
        schema:
          type: string
      - name: languageCode
        in: query
        required: false
        schema:
          type: string
      - name: itemType
        in: query
        required: false
        schema:
          type: string
      - name: count
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 300
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FindItemsDisplayInfoResponse'
  /incentivio-ordering-service/items/{itemid}:
    delete:
      tags:
      - item-controller
      operationId: deleteItem
      parameters:
      - name: itemid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
components:
  schemas:
    DiscountValueType:
      type: string
      enum:
      - AMOUNT
      - PERCENTAGE
    OrderType:
      type: string
      enum:
      - DELIVERY
      - PICKUP
    ListItemAdminDTO:
      type: object
      properties:
        clientId:
          type: string
        merchantId:
          type: string
        externalId:
          type: string
        extTargetingId:
          type: string
        title:
          type: string
        createdDate:
          type: string
          format: date-time
        updatedDate:
          type: string
          format: date-time
        startDate:
          type: string
        endDate:
          type: string
        displayRank:
          type: integer
          format: int32
        displayInfo:
          type: array
          items:
            $ref: '#/components/schemas/DisplayInfo'
        status:
          type: string
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
        extendedAttributes:
          type: object
          additionalProperties:
            type: string
        privateAttributes:
          type: object
          additionalProperties:
            type: string
        storeIds:
          type: array
          items:
            type: string
        storeInfos:
          type: array
          items:
            $ref: '#/components/schemas/StoreInfo'
        originalTitle:
          type: string
        itemId:
          type: string
        price:
          type: integer
          format: int32
        unformattedPrice:
          type: number
        unformattedPriceWithTax:
          type: number
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        optionGroupIds:
          type: array
          items:
            type: string
        optionGroupSettings:
          type: array
          items:
            $ref: '#/components/schemas/OptionGroupSettingDTO'
          uniqueItems: true
        uom:
          type: string
        sku:
          type: string
        upc:
          type: string
        brandId:
          type: string
        categoryId:
          type: string
        maxItemSelections:
          type: integer
          format: int32
        maxQuantity:
          type: integer
          format: int32
        minQuantity:
          type: integer
          format: int32
        inheritParentOptions:
          type: boolean
        taxes:
          type: array
          items:
            $ref: '#/components/schemas/TaxInfoDTO'
        invertParentTaxable:
          type: boolean
        orderingChannels:
          type: array
          items:
            $ref: '#/components/schemas/OrderingChannels'
        itemType:
          $ref: '#/components/schemas/ItemType'
        outOfStock:
          type: boolean
        outOfStockToday:
          type: boolean
        taxable:
          type: boolean
      required:
      - clientId
      - merchantId
      - title
    PagingDTO:
      type: object
      properties:
        total:
          type: integer
          format: int32
        count:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        currentPage:
          type: integer
          format: int32
    GroupItemSetting:
      type: object
      properties:
        itemId:
          type: string
        itemGuid:
          type: string
        maxItemSelections:
          type: integer
          format: int32
        price:
          type: integer
          format: int32
        isDefault:
          type: boolean
        displayRank:
          type: integer
          format: int32
    ViewItemAdminDTO:
      type: object
      properties:
        clientId:
          type: string
        merchantId:
          type: string
        externalId:
          type: string
        extTargetingId:
          type: string
        title:
          type: string
        createdDate:
          type: string
          format: date-time
        updatedDate:
          type: string
          format: date-time
        startDate:
          type: string
        endDate:
          type: string
        displayRank:
          type: integer
          format: int32
        displayInfo:
          type: array
          items:
            $ref: '#/components/schemas/DisplayInfo'
        status:
          type: string
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
        extendedAttributes:
          type: object
          additionalProperties:
            type: string
        privateAttributes:
          type: object
          additionalProperties:
            type: string
        storeIds:
          type: array
          items:
            type: string
        storeInfos:
          type: array
          items:
            $ref: '#/components/schemas/StoreInfo'
        originalTitle:
          type: string
        itemId:
          type: string
        price:
          type: integer
          format: int32
        unformattedPrice:
          type: number
        unformattedPriceWithTax:
          type: number
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        optionGroups:
          type: array
          items:
            $ref: '#/components/schemas/ViewGroupAdminDTO'
        optionGroupIds:
          type: array
          items:
            type: string
        optionGroupSettings:
          type: array
          items:
            $ref: '#/components/schemas/OptionGroupSettingDTO'
          uniqueItems: true
        uom:
          type: string
        sku:
          type: string
        upc:
          type: string
        brandId:
          type: string
        categoryId:
          type: string
        maxItemSelections:
          type: integer
          format: int32
        maxQuantity:
          type: integer
          format: int32
        minQuantity:
          type: integer
          format: int32
        inheritParentOptions:
          type: boolean
        invertParentTaxable:
          type: boolean
        taxes:
          type: array
          items:
            $ref: '#/components/schemas/TaxInfoDTO'
        outOfStock:
          type: boolean
        outOfStockToday:
          type: boolean
        orderingChannels:
          type: array
          items:
            $ref: '#/components/schemas/OrderingChannels'
        itemType:
          $ref: '#/components/schemas/ItemType'
        taxable:
          type: boolean
      required:
      - clientId
      - merchantId
      - title
    CreateItemResponseDTO:
      type: object
      properties:
        itemId:
          type: string
    CreateItemRequestDTO:
      type: object
      properties:
        clientId:
          type: string
          minLength: 1
        merchantId:
          type: string
          minLength: 1
        externalId:
          type: string
        title:
          type: string
          minLength: 1
        createdDate:
          type: string
          format: date-time
        updatedDate:
          type: string
          format: date-time
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        displayRank:
          type: integer
          format: int32
        displayInfo:
          type: array
          items:
            $ref: '#/components/schemas/DisplayInfo'
        status:
          type: string
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
        extendedAttributes:
          type: object
          additionalProperties:
            type: string
        privateAttributes:
          type: object
          additionalProperties:
            type: string
        storeIds:
          type: array
          items:
            type: string
        itemId:
          type: string
        price:
          type: integer
          format: int32
        unformattedPrice:
          type: number
        unformattedPriceWithTax:
          type: number
        sku:
          type: string
        upc:
          type: string
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/DiscountDTO'
        uom:
          type: string
        brandId:
          type: string
        categoryId:
          type: string
        optionGroups:
          type: array
          items:
            type: string
          uniqueItems: true
        optionGroupSettings:
          type: array
          items:
            $ref: '#/components/schemas/OptionGroupSettingDTO'
          uniqueItems: true
        maxItemSelections:
          type: integer
          format: int32
        maxQuantity:
          type: integer
          format: int32
        minQuantity:
          type: integer
          format: int32
        inheritParentOptions:
          type: boolean
        taxes:
          type: array
          items:
            $ref: '#/components/schemas/TaxInfoDTO'
        orderingChannels:
          type: array
          items:
            $ref: '#/components/schemas/OrderingChannels'
        itemType:
          $ref: '#/components/schemas/ItemType'
        invertParentTaxable:
          type: boolean
        outOfStock:
          type: boolean
        outOfStockToday:
          type: boolean
        taxable:
          type: boolean
      required:
      - clientId
      - merchantId
      - price
      - title
    Discount:
      type: object
      properties:
        discountId:
          type: string
        extDiscountId:
          type: string
        description:
          type: string
        discountType:
          $ref: '#/components/schemas/DiscountType'
        discountValueType:
          $ref: '#/components/schemas/DiscountValueType'
        amount:
          type: integer
          format: int32
        percentage:
          type: number
          format: float
        name:
          type: string
    Direction:
      type: string
      enum:
      - ASC
      - DESC
    ListItemResponseWithPagingForAdminDTO:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ListItemAdminDTO'
        paging:
          $ref: '#/components/schemas/PagingDTO'
    DisplayInfo:
      type: object
      properties:
        langCode:
          type: string
        title:
          type: string
        shortDescription:
          type: string
        longDescription:
          type: string
        smallImage:
          type: array
          items:
            type: string
        mediumImage:
          type: array
          items:
            type: string
    GroupType:
      type: string
      enum:
      - OPTION_GROUP
      - CATALOG_GROUP
    Operation:
      type: string
      enum:
      - TEST
      - REMOVE
      - ADD
      - REPLACE
      - MOVE
      - COPY
    OptionGroupSetting:
      type: object
      properties:
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
        defaultSelectedItemIds:
          type: array
          items:
            type: string
          uniqueItems: true
        displayRank:
          type: integer
          format: int32
        externalOptionGroupId:
          type: string
        inheritGroupSettings:
          type: boolean
        itemIdsAreMongoMapped:
          type: boolean
        mandatoryItemIds:
          type: array
          items:
            type: string
          uniqueItems: true
        maxItemSelections:
          type: integer
          format: int32
        minItemSelections:
          type: integer
          format: int32
        optionGroupId:
          type: string
        selectionMandatory:
          type: boolean
        selectionType:
          $ref: '#/components/schemas/SelectionType'
    ViewGroupAdminDTO:
      type: object
      properties:
        clientId:
          type: string
        merchantId:
          type: string
        externalId:
          type: string
        extTargetingId:
          type: string
        title:
          type: string
        createdDate:
          type: string
          format: date-time
        updatedDate:
          type: string
          format: date-time
        startDate:
          type: string
        endDate:
          type: string
        displayRank:
          type: integer
          format: int32
        displayInfo:
          type: array
          items:
            $ref: '#/components/schemas/DisplayInfo'
        status:
          type: string
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
        extendedAttributes:
          type: object
          additionalProperties:
            type: string
        privateAttributes:
          type: object
          additionalProperties:
            type: string
        storeIds:
          type: array
          items:
            type: string
        storeInfos:
          type: array
          items:
            $ref: '#/components/schemas/StoreInfo'
        originalTitle:
          type: string
        groupId:
          type: string
        groupType:
          $ref: '#/components/schemas/GroupType'
        items:
          type: array
          items:
            $ref: '#/components/schemas/ViewItemAdminDTO'
        itemIds:
          type: array
          items:
            type: string
        defaultSelectedItems:
          type: array
          items:
            type: string
        defaultSelectedItemObjects:
          type: array
          items:
            $ref: '#/components/schemas/ViewItemAdminDTO'
        mandatoryItems:
          type: array
          items:
            type: string
        mandatoryItemObjects:
          type: array
          items:
            $ref: '#/components/schemas/ViewItemAdminDTO'
        optionGroups:
          type: array
          items:
            $ref: '#/components/schemas/ViewGroupAdminDTO'
        optionGroupSetting:
          $ref: '#/components/schemas/OptionGroupSettingDTO'
        optionGroupIds:
          type: array
          items:
            type: string
        subGroups:
          type: array
          items:
            $ref: '#/components/schemas/ViewGroupAdminDTO'
        subGroupIds:
          type: array
          items:
            type: string
        selectionMandatory:
          type: boolean
        selectionType:
          $ref: '#/components/schemas/SelectionType'
        inheritParentOptions:
          type: boolean
        maxItemSelections:
          type: integer
          format: int32
        minItemSelections:
          type: integer
          format: int32
        groupItemSettings:
          type: array
          items:
            $ref: '#/components/schemas/GroupItemSetting'
          uniqueItems: true
      required:
      - clientId
      - merchantId
      - title
    TaxInfo:
      type: object
      properties:
        amount:
          type: number
          format: double
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
        extTaxId:
          type: string
        id:
          type: string
        percentage:
          type: number
          format: double
        taxDescription:
          type: string
        taxType:
          $ref: '#/components/schemas/TaxType'
    ItemDTO:
      type: object
      properties:
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
        brandId:
          type: string
        calories:
          type: number
          format: double
        categoryId:
          type: string
        clientId:
          type: string
          deprecated: true
        createdDate:
          type: string
          deprecated: true
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        displayInfo:
          type: array
          items:
            $ref: '#/components/schemas/DisplayInfo'
        displayRank:
          type: integer
          format: int32
        extendedAttributes:
          type: object
          additionalProperties:
            type: string
        externalId:
          type: string
        extTargetingId:
          type: string
        inheritParentOptions:
          type: boolean
        isTaxable:
          type: boolean
        itemId:
          type: string
        itemType:
          $ref: '#/components/schemas/ItemType'
        maxItemSelections:
          type: integer
          format: int32
        maxQuantity:
          type: integer
          format: int32
        merchantId:
          type: string
          deprecated: true
        minQuantity:
          type: integer
          format: int32
        optionGroupExternalIds:
          type: array
          items:
            type: string
          uniqueItems: true
        optionGroupSettings:
          type: array
          items:
            $ref: '#/components/schemas/OptionGroupSetting'
          uniqueItems: true
        orderingChannels:
          type: array
          items:
            $ref: '#/components/schemas/OrderingChannels'
        outOfStock:
          type: boolean
        price:
          type: integer
          format: int32
        privateAttributes:
          type: object
          additionalProperties:
            type: string
        sku:
          type: string
          deprecated: true
        status:
          $ref: '#/components/schemas/Status'
        storeIds:
          type: array
          items:
            type: string
        taxes:
          type: array
          items:
            $ref: '#/components/schemas/TaxInfo'
        title:
          type: string
        unformattedPrice:
          type: number
        unformattedPriceWithTax:
          type: number
        uom:
          type: string
          deprecated: true
        upc:
          type: string
          deprecated: true
        updatedDate:
          type: string
          deprecated: true
    ItemDisplayInfoDTO:
      type: object
      properties:
        id:
          type: string
        idType:
          type: string
        displayInfoTitles:
          type: array
          items:
            type: string
        itemType:
          type: string
        itemsByDisplayInfoTitle:
          type: array
          items:
            $ref: '#/components/schemas/ItemDTO'
    OptionGroupSettingDTO:
      type: object
      properties:
        optionGroupId:
          type: string
        displayRank:
          type: integer
          format: int32
        inheritGroupSettings:
          type: boolean
        defaultSelectedItemIds:
          type: array
          items:
            type: string
          uniqueItems: true
        mandatoryItemIds:
          type: array
          items:
            type: string
          uniqueItems: true
        selectionMandatory:
          type: boolean
        selectionType:
          $ref: '#/components/schemas/SelectionType'
        maxItemSelections:
          type: integer
          format: int32
        minItemSelections:
          type: integer
          format: int32
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderType'
    TaxType:
      type: string
      enum:
      - AMOUNT
      - OPEN
      - PERCENTAGE
    OrderTypeDTO:
      type: string
      enum:
      - DELIVERY
      - PICKUP
    DiscountDTO:
      type: object
      properties:
        discountId:
          type: string
        extDiscountId:
          type: string
        description:
          type: string
        discountType:
          $ref: '#/components/schemas/DiscountType'
        discountValueType:
          $ref: '#/components/schemas/DiscountValueType'
        amount:
          type: integer
          format: int32
        percentage:
          type: number
          format: float
        name:
          type: string
    FindItemsDisplayInfoResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ItemDisplayInfoDTO'
        paging:
          $ref: '#/components/schemas/PagingDTO'
    SelectionType:
      type: string
      enum:
      - MULTI_SELECT
      - SINGLE_SELECT
    TaxTypeDTO:
      type: string
      enum:
      - OPEN
      - AMOUNT
      - PERCENTAGE
    DiscountType:
      type: string
      enum:
      - ITEM
      - ORDER
    TaxInfoDTO:
      type: object
      properties:
        id:
          type: string
        extTaxId:
          type: string
        taxDescription:
          type: string
        taxType:
          $ref: '#/components/schemas/TaxTypeDTO'
        amount:
          type: number
          format: double
        percentage:
          type: number
          format: double
        applicableOrderTypes:
          type: array
          items:
            $ref: '#/components/schemas/OrderTypeDTO'
    StoreInfo:
      type: object
      properties:
        smallImage:
          type: string
        storeId:
          type: string
        title:
          type: string
    BulkUpdateRequest:
      type: object
      properties:
        field:
          type: string
        ids:
          type: array
          items:
            type: string
        value: {}
      required:
      - field
      - ids
      - value
    Status:
      type: string
      enum:
      - ACTIVE
      - INACTIVE
    OrderingChannels:
      type: string
      enum:
      - MOBILE
      - FACEBOOK
      - NONE
    PatchRequestDTO:
      type: object
      properties:
        op:
          $ref: '#/components/schemas/Operation'
        path:
          type: string
        value:
          type: string
    ItemType:
      type: string
      enum:
      - MAIN
      - MODIFIER
    ItemSearchRequestDTO:
      type: object
      properties:
        clientId:
          type: string
        count:
          type: integer
          format: int32
        externalIds:
          type: array
          items:
            type: string
          uniqueItems: true
        filterByAllowedLocations:
          type: boolean
        imported:
          type: boolean
        incentivioIds:
          type: array
          items:
            type: string
          uniqueItems: true
        includeStores:
          type: boolean
        originalTitle:
          type: string
        page:
          type: integer
          format: int32
        sortBy:
          type: string
        sortDirection:
          $ref: '#/components/schemas/Direction'
        status:
          $ref: '#/components/schemas/Status'
        title:
          type: string
        catalogIds:
          type: array
          items:
            type: string
          uniqueItems: true
        extendedAttributes:
          type: object
          additionalProperties:
            type: string
        groupIds:
          type: array
          items:
            type: string
          uniqueItems: true
        outOfStock:
          type: boolean
        outOfStockToday:
          type: boolean