From f139eb48a94d18393896208e99bf39d459815bbc Mon Sep 17 00:00:00 2001 From: HiveCPQIntegration <142023066+HiveCPQIntegration@users.noreply.github.com> Date: Tue, 19 Nov 2024 12:26:37 +0100 Subject: [PATCH] HiveCPQ Product Configurator (Certified Connector) (#3704) * Initial * Update readme document * add known issues and limitations * fix validation issues * provide actions as a capability * remove a property which does not seem supported * add some missing punctuation * Fix a mistake in the readme.md * Fix bad response schemas found during certified connector testing * add new updates + bugfixes & support new 500 server error code * update readme with new operations * add integer format for successCount * Address global redirect security issue * [ID-234] - update swagger & readme for the Q2 release * [ID-256] - remove recursive reference * 2024 Q4 update * Remove double for in description --- .../apiDefinition.swagger.json | 1004 +++++++++++++---- .../HiveCPQ - Product configurator/readme.md | 23 +- 2 files changed, 800 insertions(+), 227 deletions(-) diff --git a/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json b/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json index 573654a54..69b5c885e 100644 --- a/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json +++ b/certified-connectors/HiveCPQ - Product configurator/apiDefinition.swagger.json @@ -242,6 +242,42 @@ "tags": [ "Company" ] + }, + "delete": { + "summary": "Delete a company", + "description": "Delete a specific company of a manufacturer.", + "operationId": "DeleteACompanyOfAManufacturer", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathCompanyId" + } + ], + "responses": { + "204": { + "$ref": "#/responses/defaultNoContent" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Company" + ] } }, "/manufacturers/{manufacturerId}/companies/{companyId}/archive": { @@ -715,6 +751,42 @@ "tags": [ "Contact" ] + }, + "delete": { + "summary": "Delete a distributor contact", + "description": "Delete a specific contact of a distributor.", + "operationId": "DeleteADistributorContact", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathContactId" + } + ], + "responses": { + "204": { + "$ref": "#/responses/defaultNoContent" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Contact" + ] } }, "/manufacturers/{manufacturerId}/contacts/{contactId}/archive": { @@ -1456,7 +1528,10 @@ "name": "articleCode", "x-ms-summary": "Article Code", "description": "Filter on the article code of the components.", - "type": "string" + "type": "array", + "items": { + "type": "string" + } }, { "in": "query", @@ -1748,6 +1823,58 @@ ] } }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/components/bulkUpsert": { + "post": { + "summary": "Upsert components in bulk", + "description": "Create or update multiple components in master data.", + "operationId": "PostBulkUpsertComponents", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/requestPostBulkUpsertComponents" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/responseBulkResults" + } + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Component" + ] + } + }, "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/components/setPrices": { "post": { "summary": "Upsert component prices in bulk", @@ -1776,7 +1903,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/responsePostBulkUpsertComponentPrices" + "$ref": "#/definitions/responseBulkResults" } }, "400": { @@ -2619,6 +2746,105 @@ ] } }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/components/{componentId}/quantities": { + "get": { + "summary": "Search component quantities", + "description": "Search quantities of a component in master data.", + "operationId": "GetComponentQuantities", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "$ref": "#/parameters/pathComponentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/responseGetComponentQuantities" + } + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Component" + ] + } + }, + "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/components/{componentId}/setQuantities": { + "post": { + "summary": "Set component quantities", + "description": "Set quantities for a component in master data. Existing quantities are overwritten or deleted.", + "operationId": "SetOrUpdateMultipleComponentQuantities", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathName" + }, + { + "$ref": "#/parameters/pathVersion" + }, + { + "$ref": "#/parameters/pathComponentId" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/requestPostSetComponentQuantities" + }, + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/defaultNoContent" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Component" + ] + } + }, "/manufacturers/{manufacturerId}/containers/{name}/versions/{version}/components/{componentId}/copyToVersion": { "post": { "summary": "Copy a component to another version", @@ -4976,7 +5202,10 @@ "name": "companyBId", "x-ms-summary": "Company ID", "description": "Filter on the distributor company the project segments are created for.", - "type": "string" + "type": "array", + "items": { + "type": "string" + } }, { "in": "query", @@ -4993,6 +5222,9 @@ "ARCHIVED" ] }, + { + "$ref": "#/parameters/queryUpdatedSince" + }, { "$ref": "#/parameters/queryPageIn" }, @@ -5151,7 +5383,7 @@ "/manufacturers/{manufacturerId}/projectSegments/{projectSegmentId}/unarchive": { "post": { "summary": "Unarchive a project segment", - "description": "Unarchive a specifc project segment of a manufacturer.", + "description": "Unarchive a specific project segment of a manufacturer.", "operationId": "UnarchiveAProjectSegment", "parameters": [ { @@ -5468,7 +5700,7 @@ }, "/manufacturers/{manufacturerId}/projectSegments/{projectSegmentId}/addConfiguration": { "post": { - "summary": "Add a configuration to a segment", + "summary": "Add a configuration to a project segment", "description": "Add a V1 configuration to a specific project segment.", "operationId": "AddAConfiguration", "parameters": [ @@ -5512,6 +5744,44 @@ ] } }, + "/manufacturers/{manufacturerId}/projectSegments/{projectSegmentId}/proceedRecalculation": { + "post": { + "summary": "Continue recalculation of a project segment", + "description": "Continues the recalculation of a project segment if it was paused by an external recalculation.", + "operationId": "ProceedRecalculation", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/pathProjectSegmentId" + } + ], + "responses": { + "204": { + "$ref": "#/responses/defaultBadRequest" + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "ProjectSegment" + ] + } + }, "/manufacturers/{manufacturerId}/projectSegments/{projectSegmentId}/attachments": { "get": { "summary": "Search attachments of a project segment", @@ -5693,6 +5963,19 @@ }, { "$ref": "#/parameters/queryPageSize" + }, + { + "in": "query", + "name": "sort", + "x-ms-summary": "Sort", + "description": "Sort the project segment items. Prefix with '-' to sort with a descending order.", + "type": "string", + "enum": [ + "updatedAt", + "-updatedAt", + "sortingSequence", + "-sortingSequence" + ] } ], "responses": { @@ -5993,6 +6276,16 @@ "FULL_CONFIGURATION" ], "default": "DEFAULT" + }, + { + "in": "query", + "name": "language", + "x-ms-summary": "Language", + "description": "Filter the BOM and configuration descriptions on language.", + "type": "array", + "items": { + "type": "string" + } } ], "responses": { @@ -8291,6 +8584,50 @@ "SalesConditions" ] } + }, + "/manufacturers/{manufacturerId}/languages": { + "get": { + "summary": "Search supported languages", + "description": "Search the supported languages.", + "operationId": "GetSupportedLanguagesOfAManufacturer", + "parameters": [ + { + "$ref": "#/parameters/pathManufacturerId" + }, + { + "$ref": "#/parameters/queryPageIn" + }, + { + "$ref": "#/parameters/queryPageSize" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/responseGetSupportedLanguages" + } + }, + "400": { + "$ref": "#/responses/defaultBadRequest" + }, + "401": { + "$ref": "#/responses/defaultNotAuthorized" + }, + "403": { + "$ref": "#/responses/defaultForbidden" + }, + "404": { + "$ref": "#/responses/defaultNotFound" + }, + "500": { + "$ref": "#/responses/defaultServerError" + } + }, + "tags": [ + "Common" + ] + } } }, "definitions": { @@ -8518,6 +8855,16 @@ "items": { "$ref": "#/definitions/requestPostSetPropertyValue" } + }, + "quantities": { + "type": "array", + "description": "The collection of component quantities which need to be set.", + "items": { + "$ref": "#/definitions/requestComponentQuantity" + } + }, + "tooltip": { + "$ref": "#/definitions/requestPutComponentTooltip" } }, "description": "Manage relations between a component and other Hive resources. Not including the extensions or underlying properties will not cause existing relations to be removed, this needs to be specified explicitly with an empty list." @@ -8751,6 +9098,170 @@ } } }, + "companyInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the company." + }, + "description": { + "type": "string", + "description": "Additional info about the company." + }, + "vatNumber": { + "type": "string", + "description": "VAT number of the company." + }, + "email": { + "type": "string", + "description": "E-mail address of the company.", + "format": "email" + }, + "telephone": { + "type": "string", + "description": "Phone number of the company." + }, + "websiteUrl": { + "type": "string", + "description": "URL to the website of the company." + }, + "preferredLanguage": { + "type": "string", + "description": "The default language for the company in ISO 639-1 format." + }, + "address": { + "$ref": "#/definitions/address" + }, + "externalSystemId1": { + "type": "string", + "description": "An ID used to identify the company in an external system. It is usually recommended to use a system link instead." + }, + "externalSystemId2": { + "type": "string", + "description": "An ID used to identify the company in an external system. It is usually recommended to use a system link instead." + } + }, + "description": "The general info about a company.", + "required": [ + "name" + ] + }, + "companyAdvanced": { + "type": "object", + "properties": { + "salesRepresentativeContactId": { + "type": "string", + "description": "ID of a contact who functions as sales representative." + }, + "techSupportManagerContactId": { + "type": "string", + "description": "ID of a contact who functions as technical support manager." + }, + "orderProcessingManagerContactId": { + "type": "string", + "description": "ID of a contact who functions as order processing manager." + }, + "shippingManagerContactId": { + "type": "string", + "description": "ID of a contact who functions as shipping support manager." + } + }, + "description": "The advanced info about a company." + }, + "companySalesConditions": { + "type": "object", + "properties": { + "vatConditionCode": { + "type": "string", + "description": "The default VAT condition code for projects of this company. Available codes are defined inside your HiveCPQ environment." + }, + "deliveryConditionCode": { + "type": "string", + "description": "The default delivery condition code for projects of this company. Available codes are defined inside your HiveCPQ environment." + }, + "paymentConditionCode": { + "type": "string", + "description": "The default payment condition code for projects of this company. Available codes are defined inside your HiveCPQ environment." + }, + "baseDiscount": { + "type": "number", + "format": "float", + "description": "The default discount for configurations in projects of this company." + }, + "orderCurrency": { + "type": "string", + "description": "Default order currency of the company." + }, + "administrationFee": { + "type": "object", + "properties": { + "fee": { + "type": "number", + "format": "float", + "minimum": 0, + "maximum": 1000000000, + "exclusiveMinimum": true, + "description": "The fee applied if a project for this company does not reach the fee threshold." + }, + "threshold": { + "type": "number", + "format": "float", + "minimum": 0, + "maximum": 1000000000, + "exclusiveMinimum": true, + "description": "The minimum price below which a fee will be applied." + } + }, + "description": "Administration fee applied to projects of this company." + } + }, + "description": "The conditions and defaults applied to projects of this company." + }, + "companyProductStore": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Allow this company to access the product store", + "default": false + }, + "priceCatalogId": { + "type": "string", + "description": "ID of the price catalog used for this company." + }, + "storeDiscountPercentage": { + "type": "number", + "format": "float", + "description": "The discount percentage applied to product store items in a project of this company.", + "minimum": -100, + "maximum": 100 + } + }, + "description": "Product store settings of this company." + }, + "companyDefaultProjectSettings": { + "type": "object", + "properties": { + "defaultVatConditionCode": { + "type": "string", + "description": "The default VAT condition code for projects for this company. Available codes are defined inside your HiveCPQ environment." + }, + "defaultPaymentConditionCode": { + "type": "string", + "description": "The default payment condition code for projects for this company. Available codes are defined inside your HiveCPQ environment." + }, + "salesPricingStrategy": { + "type": "string", + "description": "The default pricing strategy for projects for this company.", + "enum": [ + "MARKUP", + "LIST_PRICE_DISCOUNT" + ] + } + }, + "description": "The default project settings of the company." + }, "defaultObjectCreatedResponse": { "type": "object", "properties": { @@ -9219,175 +9730,11 @@ }, "paymentCondition": { "type": "string", - "description": "The default payment condition code for for this contact. Available codes are defined inside your HiveCPQ environment." + "description": "The default payment condition code for this contact. Available codes are defined inside your HiveCPQ environment." } }, "description": "Sales conditions of the contact." }, - "requestCompanyInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the company." - }, - "description": { - "type": "string", - "description": "Additional info about the company." - }, - "vatNumber": { - "type": "string", - "description": "VAT number of the company." - }, - "email": { - "type": "string", - "description": "E-mail address of the company.", - "format": "email" - }, - "telephone": { - "type": "string", - "description": "Phone number of the company." - }, - "websiteUrl": { - "type": "string", - "description": "URL to the website of the company." - }, - "preferredLanguage": { - "type": "string", - "description": "The default language for the company in ISO 639-1 format." - }, - "address": { - "$ref": "#/definitions/address" - }, - "externalSystemId1": { - "type": "string", - "description": "An ID used to identify the company in an external system. It is usually recommended to use a system link instead." - }, - "externalSystemId2": { - "type": "string", - "description": "An ID used to identify the company in an external system. It is usually recommended to use a system link instead." - } - }, - "description": "The general info about a company.", - "required": [ - "name" - ] - }, - "requestCompanyAdvanced": { - "type": "object", - "properties": { - "salesRepresentativeContactId": { - "type": "string", - "description": "ID of a contact who functions as sales representative." - }, - "techSupportManagerContactId": { - "type": "string", - "description": "ID of a contact who functions as technical support manager." - }, - "orderProcessingManagerContactId": { - "type": "string", - "description": "ID of a contact who functions as order processing manager." - }, - "shippingManagerContactId": { - "type": "string", - "description": "ID of a contact who functions as shipping support manager." - } - }, - "description": "The advanced info about a company." - }, - "requestCompanySalesConditions": { - "type": "object", - "properties": { - "vatConditionCode": { - "type": "string", - "description": "The default VAT condition code to use in projects of this company. Available codes are defined inside your HiveCPQ environment." - }, - "deliveryConditionCode": { - "type": "string", - "description": "The default delivery condition code to use in projects of this company. Available codes are defined inside your HiveCPQ environment." - }, - "paymentConditionCode": { - "type": "string", - "description": "The default payment condition code to use in projects of this company. Available codes are defined inside your HiveCPQ environment." - }, - "baseDiscount": { - "type": "number", - "format": "float", - "description": "The default discount to use for configurations in projects of this company." - }, - "orderCurrency": { - "type": "string", - "description": "Default order currency of the company." - }, - "administrationFee": { - "type": "object", - "properties": { - "fee": { - "type": "number", - "format": "float", - "minimum": 0, - "maximum": 1000000000, - "exclusiveMinimum": true, - "description": "The fee applied if a project for this company does not reach the fee threshold." - }, - "threshold": { - "type": "number", - "format": "float", - "minimum": 0, - "maximum": 1000000000, - "exclusiveMinimum": true, - "description": "The minimum price below which a fee will be applied." - } - }, - "description": "Administration fee applied to projects of this company." - } - }, - "description": "The conditions and defaults applied to projects of this company." - }, - "requestCompanyProductStore": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Allow this company to access the product store", - "default": false - }, - "priceCatalogId": { - "type": "string", - "description": "ID of the price catalog used for this company." - }, - "storeDiscountPercentage": { - "type": "number", - "format": "float", - "description": "The discount percentage applied to product store items in a project of this company.", - "minimum": -100, - "maximum": 100 - } - }, - "description": "Product store settings of this company." - }, - "requestCompanyDefaultProjectSettings": { - "type": "object", - "properties": { - "defaultVatConditionCode": { - "type": "string", - "description": "The default VAT condition code to use in projects for this company. Available codes are defined inside your HiveCPQ environment." - }, - "defaultPaymentConditionCode": { - "type": "string", - "description": "The default payment condition code to use in projects for this company. Available codes are defined inside your HiveCPQ environment." - }, - "salesPricingStrategy": { - "type": "string", - "description": "The default pricing strategy to use in projects for this company.", - "enum": [ - "MARKUP", - "LIST_PRICE_DISCOUNT" - ] - } - }, - "description": "The default project settings of the company." - }, "requestPostCopyToVersion": { "type": "object", "properties": { @@ -9489,6 +9836,47 @@ "propertyValues" ] }, + "requestComponentQuantity": { + "type": "object", + "properties": { + "unitCode": { + "type": "string", + "description": "Code of the unit to use for this component quantity." + }, + "minimum": { + "type": "integer", + "description": "The minimum quantity to use for this component quantity." + }, + "maximum": { + "type": "integer", + "description": "The optional maximum quantity to use for this component quantity." + }, + "step": { + "type": "integer", + "description": "The step value to use for each incremental step for this component quantity." + } + }, + "required": [ + "unitCode", + "minimum", + "step" + ] + }, + "requestPostSetComponentQuantities": { + "type": "object", + "properties": { + "quantities": { + "type": "array", + "items": { + "$ref": "#/definitions/requestComponentQuantity" + }, + "description": "The collection of quantities which need to be set." + } + }, + "required": [ + "quantities" + ] + }, "requestPostComponentPrice": { "type": "object", "properties": { @@ -9532,6 +9920,68 @@ "unitId" ] }, + "requestPostBulkUpsertComponents": { + "type": "object", + "properties": { + "integratedSystemName": { + "type": "string", + "description": "Optional integrated system name used to create integrated system links for your components." + }, + "components": { + "type": "array", + "items": { + "type": "object", + "properties": { + "itemId": { + "type": "string", + "description": "A custom identifier of this item that must be unique within the entire request. This is not the component ID." + }, + "articleCode": { + "type": "string", + "maxLength": 200, + "description": "The unique article code." + }, + "names": { + "$ref": "#/definitions/requestTranslations" + }, + "eanCode": { + "type": "string", + "maxLength": 14, + "description": "The European Article Number." + }, + "gtinCode": { + "type": "string", + "maxLength": 14, + "description": "The Global Trade Item Number." + }, + "descriptions": { + "$ref": "#/definitions/requestTranslations" + }, + "productGroup": { + "type": "string", + "maxLength": 50, + "description": "The group to which your component belongs." + }, + "extensions": { + "$ref": "#/definitions/componentExtensions" + }, + "integratedSystemId": { + "type": "string", + "description": "Optional integrated system ID used to create an integrated system link for this component." + } + }, + "required": [ + "articleCode", + "itemId", + "names" + ] + } + } + }, + "required": [ + "components" + ] + }, "requestPostBulkUpsertComponentPrices": { "type": "object", "properties": { @@ -10077,19 +10527,19 @@ "type": "object", "properties": { "info": { - "$ref": "#/definitions/requestCompanyInfo" + "$ref": "#/definitions/companyInfo" }, "advanced": { - "$ref": "#/definitions/requestCompanyAdvanced" + "$ref": "#/definitions/companyAdvanced" }, "salesConditions": { - "$ref": "#/definitions/requestCompanySalesConditions" + "$ref": "#/definitions/companySalesConditions" }, "productStore": { - "$ref": "#/definitions/requestCompanyProductStore" + "$ref": "#/definitions/companyProductStore" }, "defaultProjectSettings": { - "$ref": "#/definitions/requestCompanyDefaultProjectSettings" + "$ref": "#/definitions/companyDefaultProjectSettings" }, "subDistributorSettings": { "type": "object", @@ -10125,19 +10575,19 @@ "type": "object", "properties": { "info": { - "$ref": "#/definitions/requestCompanyInfo" + "$ref": "#/definitions/companyInfo" }, "advanced": { - "$ref": "#/definitions/requestCompanyAdvanced" + "$ref": "#/definitions/companyAdvanced" }, "salesConditions": { - "$ref": "#/definitions/requestCompanySalesConditions" + "$ref": "#/definitions/companySalesConditions" }, "productStore": { - "$ref": "#/definitions/requestCompanyProductStore" + "$ref": "#/definitions/companyProductStore" }, "defaultProjectSettings": { - "$ref": "#/definitions/requestCompanyDefaultProjectSettings" + "$ref": "#/definitions/companyDefaultProjectSettings" }, "subDistributorSettings": { "type": "object", @@ -10514,6 +10964,10 @@ "type": "string", "description": "Name of the configuration." }, + "configurationCode": { + "type": "string", + "description": "Unique code from another configuration from which a new configuration will be created." + }, "initialValues": { "type": "array", "items": { @@ -10521,6 +10975,14 @@ }, "description": "The input values to initialize the configuration." }, + "containerName": { + "type": "string", + "description": "Optionally choose a container from which the configurator should be used." + }, + "version": { + "type": "string", + "description": "Optionally choose a version from which the configurator should be used. This is the number of the version (e.g. 1.0.0) you want to access. Providing 'top' accesses the highest available version." + }, "integratedSystemLink": { "$ref": "#/definitions/requestBasicIntegratedSystemLink" } @@ -11422,6 +11884,35 @@ }, "description": "A list of translations." }, + "responseKeyValueTranslations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "languageCode": { + "type": "string", + "description": "Language code in ISO 639-1 format." + }, + "translations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The translated key." + }, + "value": { + "type": "string", + "description": "The translated value." + } + } + }, + "description": "A collection of translated keys & values." + } + } + } + }, "responsePrice": { "type": "object", "properties": { @@ -11448,6 +11939,10 @@ "unitCode": { "type": "string", "description": "The Unit." + }, + "markup": { + "type": "string", + "description": "The price markup." } }, "description": "The pricing information." @@ -11554,6 +12049,9 @@ "selectedComponent": { "$ref": "#/definitions/responseConfigurationNodeComponentData" }, + "descriptions": { + "$ref": "#/definitions/responseKeyValueTranslations" + }, "nodes": { "type": "array", "items": { @@ -11707,49 +12205,10 @@ "$ref": "#/definitions/externalLinks" }, "info": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the company." - }, - "description": { - "type": "string", - "description": "Additional info about the company." - }, - "vatNumber": { - "type": "string", - "description": "VAT number of the company." - }, - "email": { - "type": "string", - "description": "E-mail address of the company." - }, - "telephone": { - "type": "string", - "description": "Phone number of the company." - }, - "websiteUrl": { - "type": "string", - "description": "URL to the website of the company." - }, - "preferredLanguage": { - "type": "string", - "description": "The language of the company in ISO 639-1 format." - }, - "address": { - "$ref": "#/definitions/address" - }, - "externalSystemId1": { - "type": "string", - "description": "An ID used to identify the company in an external system." - }, - "externalSystemId2": { - "type": "string", - "description": "An ID used to identify the company in an external system." - } - }, - "description": "General info about the company." + "$ref": "#/definitions/companyInfo" + }, + "advanced": { + "$ref": "#/definitions/companyAdvanced" }, "subDistributorSettings": { "type": "object", @@ -11770,7 +12229,16 @@ }, "archived": { "type": "boolean", - "description": "archived" + "description": "Indicates if the company is archived." + }, + "salesConditions": { + "$ref": "#/definitions/companySalesConditions" + }, + "productStore": { + "$ref": "#/definitions/companyProductStore" + }, + "defaultProjectSettings": { + "$ref": "#/definitions/companyDefaultProjectSettings" } } }, @@ -11932,6 +12400,46 @@ } } }, + "responseGetComponentQuantities": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the component quantity." + }, + "unit": { + "$ref": "#/definitions/unitLink" + }, + "minimum": { + "type": "integer", + "description": "The minimum of this component quantity." + }, + "maximum": { + "type": "integer", + "description": "The optional maximum of this component quantity." + }, + "step": { + "type": "integer", + "description": "The step for this component quantity." + }, + "audit": { + "$ref": "#/definitions/responseAudit" + } + }, + "description": "A component quantity." + }, + "description": "A list of component quantities." + }, + "total": { + "$ref": "#/definitions/responseTotalCount" + } + } + }, "responseGetComponentAttachments": { "type": "object", "properties": { @@ -12012,7 +12520,7 @@ } } }, - "responsePostBulkUpsertComponentPrices": { + "responseBulkResults": { "type": "object", "properties": { "results": { @@ -12024,7 +12532,11 @@ "properties": { "itemId": { "type": "string", - "description": "The custom identifier of this item." + "description": "Custom identifier of the item." + }, + "resourceId": { + "type": "string", + "description": "Technical ID of the created or updated item." }, "status": { "$ref": "#/definitions/enumBulkResponseStatus" @@ -12945,6 +13457,10 @@ "configurationStatus": { "$ref": "#/definitions/enumConfigurationStatus" }, + "sortingSequence": { + "type": "integer", + "description": "Position of the project segment item in its segment." + }, "quantity": { "type": "integer", "format": "int32", @@ -13609,6 +14125,32 @@ } } }, + "responseGetSupportedLanguages": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "description": "A supported language.", + "properties": { + "isoCode": { + "type": "string", + "description": "ISO code of the language." + }, + "nativeName": { + "type": "string", + "description": "Native name of the language." + } + } + }, + "description": "A list of supported languages." + }, + "total": { + "$ref": "#/definitions/responseTotalCount" + } + } + }, "responseGetOutputDocumentTemplates": { "type": "object", "properties": { @@ -13776,6 +14318,16 @@ "type": "string", "description": "ID of the configuration" }, + "configuredProduct": { + "$ref": "#/definitions/componentLink" + }, + "configurationCode": { + "type": "string", + "description": "A unique code identifying this configuration." + }, + "descriptions": { + "$ref": "#/definitions/responseKeyValueTranslations" + }, "configurationStatus": { "$ref": "#/definitions/enumConfigurationStatus" }, diff --git a/certified-connectors/HiveCPQ - Product configurator/readme.md b/certified-connectors/HiveCPQ - Product configurator/readme.md index cdc077499..a9c875f1d 100644 --- a/certified-connectors/HiveCPQ - Product configurator/readme.md +++ b/certified-connectors/HiveCPQ - Product configurator/readme.md @@ -26,6 +26,9 @@ Get a specific company linked to a manufacturer. ### Update a company Update a specific company of a manufacturer. +### Delete a company +Delete a specific company of a manufacturer. + ### Archive a company Archive a company together with all of its contacts. @@ -59,6 +62,9 @@ Get a specific contact of a manufacturer or its companies. ### Update a manufacturer contact Update a specific contact of a manufacturer or its companies. +### Delete a distributor contact +Delete a specific contact of a distributor. + ### Archive a contact Archive a specific contact and remove its invites. @@ -119,6 +125,9 @@ Update a specific component in master data ### Delete components in bulk Delete multiple components in master data +### Upsert components in bulk +Create or update multiple components in master data. + ### Upsert component prices in bulk Create or update multiple component prices in master data. @@ -176,6 +185,12 @@ Links one or more features to a component in master data. Existing links will be ### Unlink a feature from a component Unlinks a feature from a specific component in master data. +### Search component quantities +Search quantities of a component in master data. + +### Set component quantities +Set quantities for a component in master data. Existing quantities are overwritten or deleted. + ### Link a feature to a component Links one feature to a component in master data. @@ -350,9 +365,12 @@ Cancel the order process and move a project segment back to step 2. ### Change the settings of a project segment Change the settings of a project segment. Settings are only available if a segment configurator is configured. -### Add a configuration to a segment +### Add a configuration to a project segment Add a V1 configuration to a specific project segment. +### Continue recalculation of a project segment +Continues the recalculation of a project segment if it was paused by an external recalculation. + ### Search attachments of a project segment Search attachments of a specific project segment. @@ -524,6 +542,9 @@ Search payment conditions of a manufacturer. ### Search tax conditions Search tax conditions of a manufacturer. +### Search supported languages +Search the supported languages. + ## Obtaining Credentials A request needs to be made to support@hivecpq.com requesting API credentials in the form of a username & password.