openapi: 3.0.4 info: title: VirtoCommerce.Cart Catalog Inventory API version: v1 description: Easily manage your products, categories, variations, and properties tags: - name: Inventory description: Simplify inventory management functionality paths: /api/inventory/search: post: tags: - Inventory summary: Search inventories by given criteria operationId: InventoryModule_SearchInventories requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/InventorySearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/InventorySearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/InventorySearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/InventoryInfoSearchResult' application/json: schema: $ref: '#/components/schemas/InventoryInfoSearchResult' text/json: schema: $ref: '#/components/schemas/InventoryInfoSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:read - api_key: - inventory:read - api_key_header: - inventory:read - http-signature: - inventory:read - basic: - inventory:read x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/product/search: post: tags: - Inventory summary: Search inventories by given criteria operationId: InventoryModule_SearchProductInventories requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ProductInventorySearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/ProductInventorySearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/ProductInventorySearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/InventoryInfoSearchResult' application/json: schema: $ref: '#/components/schemas/InventoryInfoSearchResult' text/json: schema: $ref: '#/components/schemas/InventoryInfoSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:read - api_key: - inventory:read - api_key_header: - inventory:read - http-signature: - inventory:read - basic: - inventory:read x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/fulfillmentcenters/search: post: tags: - Inventory summary: Search fulfillment centers registered in the system operationId: InventoryModule_SearchFulfillmentCenters requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/FulfillmentCenterSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/FulfillmentCenterSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/FulfillmentCenterSearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/FulfillmentCenterSearchResult' application/json: schema: $ref: '#/components/schemas/FulfillmentCenterSearchResult' text/json: schema: $ref: '#/components/schemas/FulfillmentCenterSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:read - api_key: - inventory:fulfillment:read - api_key_header: - inventory:fulfillment:read - http-signature: - inventory:fulfillment:read - basic: - inventory:fulfillment:read x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/fulfillmentcenters/{id}: get: tags: - Inventory summary: Get fulfillment center by id operationId: InventoryModule_GetFulfillmentCenter parameters: - name: id in: path description: fulfillment center id required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/FulfillmentCenter' application/json: schema: $ref: '#/components/schemas/FulfillmentCenter' text/json: schema: $ref: '#/components/schemas/FulfillmentCenter' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:read - api_key: - inventory:fulfillment:read - api_key_header: - inventory:fulfillment:read - http-signature: - inventory:fulfillment:read - basic: - inventory:fulfillment:read x-virtocommerce-module-id: VirtoCommerce.Inventory patch: tags: - Inventory summary: Partial update for the specified FulfillmentCenter by id operationId: InventoryModule_PatchFulfillmentCenter parameters: - name: id in: path description: FulfillmentCenter id required: true schema: type: string requestBody: description: JsonPatchDocument object with fields to update content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/Operation' application/json: schema: type: array items: $ref: '#/components/schemas/Operation' text/json: schema: type: array items: $ref: '#/components/schemas/Operation' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:edit - api_key: - inventory:fulfillment:edit - api_key_header: - inventory:fulfillment:edit - http-signature: - inventory:fulfillment:edit - basic: - inventory:fulfillment:edit x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/fulfillmentcenters/outer/{outerId}: get: tags: - Inventory summary: Get fulfillment center by outer id operationId: InventoryModule_GetFulfillmentCenterByOuterId parameters: - name: outerId in: path description: fulfillment center outer id required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/FulfillmentCenter' application/json: schema: $ref: '#/components/schemas/FulfillmentCenter' text/json: schema: $ref: '#/components/schemas/FulfillmentCenter' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:read - api_key: - inventory:fulfillment:read - api_key_header: - inventory:fulfillment:read - http-signature: - inventory:fulfillment:read - basic: - inventory:fulfillment:read x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/fulfillmentcenters/plenty: post: tags: - Inventory summary: Get fulfillment centers by ids operationId: InventoryModule_GetFulfillmentCenters requestBody: description: fulfillment center ids content: application/json-patch+json: schema: type: array items: type: string application/json: schema: type: array items: type: string text/json: schema: type: array items: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' application/json: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' text/json: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:read - api_key: - inventory:fulfillment:read - api_key_header: - inventory:fulfillment:read - http-signature: - inventory:fulfillment:read - basic: - inventory:fulfillment:read x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/fulfillmentcenters: put: tags: - Inventory summary: Save fulfillment center operationId: InventoryModule_SaveFulfillmentCenter requestBody: description: fulfillment center content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/FulfillmentCenter' application/json: schema: allOf: - $ref: '#/components/schemas/FulfillmentCenter' text/json: schema: allOf: - $ref: '#/components/schemas/FulfillmentCenter' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/FulfillmentCenter' application/json: schema: $ref: '#/components/schemas/FulfillmentCenter' text/json: schema: $ref: '#/components/schemas/FulfillmentCenter' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:edit - api_key: - inventory:fulfillment:edit - api_key_header: - inventory:fulfillment:edit - http-signature: - inventory:fulfillment:edit - basic: - inventory:fulfillment:edit x-virtocommerce-module-id: VirtoCommerce.Inventory delete: tags: - Inventory summary: Delete fulfillment centers registered in the system operationId: InventoryModule_DeleteFulfillmentCenters parameters: - name: ids in: query schema: type: array items: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:delete - api_key: - inventory:fulfillment:delete - api_key_header: - inventory:fulfillment:delete - http-signature: - inventory:fulfillment:delete - basic: - inventory:fulfillment:delete x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/fulfillmentcenters/batch: post: tags: - Inventory summary: Save fulfillment centers operationId: InventoryModule_SaveFulfillmentCenters requestBody: description: fulfillment centers content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' application/json: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' text/json: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' application/json: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' text/json: schema: type: array items: $ref: '#/components/schemas/FulfillmentCenter' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:fulfillment:edit - api_key: - inventory:fulfillment:edit - api_key_header: - inventory:fulfillment:edit - http-signature: - inventory:fulfillment:edit - basic: - inventory:fulfillment:edit x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/products/{productId}: get: tags: - Inventory summary: Get inventories of product description: Get inventories of product for each fulfillment center. operationId: InventoryModule_GetProductInventories parameters: - name: productId in: path description: Product id required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' application/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' text/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:read - api_key: - inventory:read - api_key_header: - inventory:read - http-signature: - inventory:read - basic: - inventory:read x-virtocommerce-module-id: VirtoCommerce.Inventory put: tags: - Inventory summary: Update inventory description: Update given inventory of product. operationId: InventoryModule_UpdateProductInventory parameters: - name: productId in: path required: true schema: type: string requestBody: description: Inventory to update content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/InventoryInfo' application/json: schema: allOf: - $ref: '#/components/schemas/InventoryInfo' text/json: schema: allOf: - $ref: '#/components/schemas/InventoryInfo' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/InventoryInfo' application/json: schema: $ref: '#/components/schemas/InventoryInfo' text/json: schema: $ref: '#/components/schemas/InventoryInfo' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:update - api_key: - inventory:update - api_key_header: - inventory:update - http-signature: - inventory:update - basic: - inventory:update x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/products: get: tags: - Inventory summary: Get inventories of products description: Get inventory of products for each fulfillment center. operationId: InventoryModule_GetProductInventories parameters: - name: ids in: query description: Products ids schema: type: array items: type: string - name: fulfillmentCenterIds in: query description: The fulfillment centers that will be used to filter product inventories schema: type: array items: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' application/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' text/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:read - api_key: - inventory:read - api_key_header: - inventory:read - http-signature: - inventory:read - basic: - inventory:read x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/products/plenty: post: tags: - Inventory summary: Get inventories of products description: Get inventory of products for each fulfillment center. operationId: InventoryModule_GetProductsInventoriesByPlentyIds parameters: - name: fulfillmentCenterIds in: query description: The fulfillment centers that will be used to filter product inventories schema: type: array items: type: string requestBody: description: Products ids content: application/json-patch+json: schema: type: array items: type: string application/json: schema: type: array items: type: string text/json: schema: type: array items: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' application/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' text/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:read - api_key: - inventory:read - api_key_header: - inventory:read - http-signature: - inventory:read - basic: - inventory:read x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/plenty: put: tags: - Inventory summary: Upsert inventories description: Upsert (add or update) given inventories. operationId: InventoryModule_UpsertProductInventories requestBody: description: Inventories to upsert content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' application/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' text/json: schema: type: array items: $ref: '#/components/schemas/InventoryInfo' responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:update - api_key: - inventory:update - api_key_header: - inventory:update - http-signature: - inventory:update - basic: - inventory:update x-virtocommerce-module-id: VirtoCommerce.Inventory /api/inventory/{id}: patch: tags: - Inventory summary: Partial update for the specified inventory of product by id operationId: InventoryModule_PatchProductInventory parameters: - name: id in: path description: Inventory id required: true schema: type: string requestBody: description: JsonPatchDocument object with fields to update content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/Operation' application/json: schema: type: array items: $ref: '#/components/schemas/Operation' text/json: schema: type: array items: $ref: '#/components/schemas/Operation' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - inventory:update - api_key: - inventory:update - api_key_header: - inventory:update - http-signature: - inventory:update - basic: - inventory:update x-virtocommerce-module-id: VirtoCommerce.Inventory components: schemas: DynamicObjectProperty: type: object properties: objectId: type: string nullable: true values: type: array items: $ref: '#/components/schemas/DynamicPropertyObjectValue' nullable: true name: type: string nullable: true description: type: string nullable: true objectType: type: string nullable: true isArray: type: boolean isDictionary: type: boolean isMultilingual: type: boolean isRequired: type: boolean displayOrder: type: integer format: int32 nullable: true valueType: allOf: - $ref: '#/components/schemas/DynamicPropertyValueType' displayNames: type: array items: $ref: '#/components/schemas/DynamicPropertyName' nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false Operation: type: object properties: value: type: object nullable: true path: type: string nullable: true op: type: string nullable: true from: type: string nullable: true additionalProperties: false SortInfo: type: object properties: sortColumn: type: string nullable: true sortDirection: allOf: - $ref: '#/components/schemas/SortDirection' additionalProperties: false InventorySearchCriteria: type: object properties: fulfillmentCenterIds: type: array items: type: string nullable: true productIds: type: array items: type: string nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false FulfillmentCenterSearchCriteria: type: object properties: outerId: type: string nullable: true organizationId: type: string nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false AddressType: enum: - Undefined - Billing - Shipping - BillingAndShipping - Pickup type: string InventoryInfo: type: object properties: fulfillmentCenterId: type: string nullable: true fulfillmentCenterName: type: string nullable: true fulfillmentCenter: allOf: - $ref: '#/components/schemas/FulfillmentCenter' nullable: true productId: type: string nullable: true inStockQuantity: type: integer format: int64 reservedQuantity: type: integer format: int64 reorderMinQuantity: type: integer format: int64 preorderQuantity: type: integer format: int64 backorderQuantity: type: integer format: int64 allowBackorder: type: boolean allowPreorder: type: boolean inTransit: type: integer format: int64 preorderAvailabilityDate: type: string format: date-time nullable: true backorderAvailabilityDate: type: string format: date-time nullable: true status: allOf: - $ref: '#/components/schemas/InventoryStatus' outerId: type: string nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false FulfillmentCenterSearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/FulfillmentCenter' nullable: true additionalProperties: false InventoryInfoSearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/InventoryInfo' nullable: true additionalProperties: false InventoryStatus: enum: - Disabled - Enabled - Ignored type: string DynamicPropertyValueType: enum: - Undefined - ShortText - LongText - Integer - Decimal - DateTime - Boolean - Html - Image type: string InventoryAddress: type: object properties: addressType: allOf: - $ref: '#/components/schemas/AddressType' key: type: string nullable: true name: type: string nullable: true organization: type: string nullable: true countryCode: type: string nullable: true countryName: type: string nullable: true city: type: string nullable: true postalCode: type: string nullable: true zip: type: string nullable: true line1: type: string nullable: true line2: type: string nullable: true regionId: type: string nullable: true regionName: type: string nullable: true firstName: type: string nullable: true middleName: type: string nullable: true lastName: type: string nullable: true phone: type: string nullable: true email: type: string nullable: true outerId: type: string nullable: true isDefault: type: boolean description: type: string nullable: true additionalProperties: false ProductInventorySearchCriteria: type: object properties: productId: type: string nullable: true productIds: type: array items: type: string nullable: true withInventoryOnly: type: boolean responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false FulfillmentCenter: type: object properties: name: type: string nullable: true description: type: string nullable: true shortDescription: type: string nullable: true geoLocation: type: string nullable: true address: allOf: - $ref: '#/components/schemas/InventoryAddress' nullable: true outerId: type: string nullable: true organizationId: type: string nullable: true objectType: type: string nullable: true readOnly: true dynamicProperties: type: array items: $ref: '#/components/schemas/DynamicObjectProperty' nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false DynamicPropertyName: type: object properties: locale: type: string nullable: true name: type: string nullable: true additionalProperties: false SortDirection: enum: - Ascending - Descending type: string DynamicPropertyObjectValue: type: object properties: objectType: type: string nullable: true objectId: type: string nullable: true locale: type: string nullable: true value: type: object nullable: true valueId: type: string nullable: true valueType: allOf: - $ref: '#/components/schemas/DynamicPropertyValueType' propertyId: type: string nullable: true propertyName: type: string nullable: true additionalProperties: false securitySchemes: oauth2: type: oauth2 description: OAuth2 Resource Owner Password Grant flow flows: password: tokenUrl: /connect/token scopes: {} clientCredentials: tokenUrl: /connect/token scopes: {} api_key: type: apiKey description: API Key authentication name: api_key in: query api_key_header: type: apiKey description: API Key authentication (alternative via header) name: api_key in: header http-signature: type: http description: HTTP Signature authentication using Authorization header scheme: signature basic: type: http description: Basic authentication using username and password scheme: basic