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