PROS ECommerce - ECommerce Quote public API (1.0.47)
Download OpenAPI specification:Download
Warnings
This API is a Version BETA which is under preview.
All the signatures are in version BETA and are subject to change.
How to work with the PROS ECommerce API?
Disclaimer: The workflow is subject to change at any time. To use the API you need to be Authorized.
You are authorized when you have a valid Token.
Once you have a Token, you can Authorize and call the ecommerce APIs.
What is a token
A token is a unique identifier resulting from the quote sharing action in QuoteX.
A token identify a QuoteId and all the associated parameters such as QuoteModelName, AccessMode, MailTo, EditPassword, ViewPassword, Language, Country, Currency.
This Token has a limited lifespan. It is set to 30 days (subject to change).
After 30 days the token expire and the access is no longer possible.
You have to generate a new token.
You can have a token by using the QuoteX Public API;
First you need to have a valid access to the QuoteX Public API.
Then go to the Collaboration Portal operations section.
Execute the /quote/{quoteId}/sharing/url. API
You have then an URL for your collaboration portal.
The URL is the form: https://<domain>/ecommerce/quote/<token>
Use this token to call the ECommerce APIs.
The purpose is different:
With an AppPortal Token, you can connect to the QuoteX API to get a ECommerce Token.
The AppPortal Token is managed by AppPortal and is valid for 30 minutes.
The ECommerce Token is used by the ECommerceAPI and is valid for 30 days.
If your AppPortal Token expire, the ECommerce Token is still valid.
Important : You can't revoke an ECommerce Token.
Workflow
Here is the global workflow when working with a Quote using ECommerce API:1 - Request the Microsite Settings
Request the settings of the current microsite (/quote/microsite/settings).
You have then the parameters to call the quote APIs such as QuoteId, AccessMode, Locale, Currency.
2 - Request Access Right
According the AccessMode, you can call request an Access Right.
Call the related APIs (/quote/requestAccessRight) with the requested AccessRight and the correct Password (the password should match editPassword or viewPassword, if set).
Note that for security concerns, the requestAccessRight API can be called only once every 5 seconds. If this rate is exceeded, this will result in a 'retry later' error.
3 - Use Quote and Catalog APIs
With the QuoteId and the correct access right, you can now call the quote and catalog APIs.
Here is a diagram representing this general workflow :
Initialize a Quote session. - BETA version, API signature is subject to change.
Initializes a Quote session and returns a session identifier which is required for any further call to the Quote API.
Authorizations:
header Parameters
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- default
{- "sessionId": "string"
}
Request an access right. - BETA version, API signature is subject to change.
This operation request an access right (VIEW or EDIT) with a password. You can request an access once every 5 seconds per token.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Request Access Right Request
accessRight | string Enum: "VIEW" "EDIT" The access mode. VIEW Login to view data. EDIT Login to edit data. |
password | string The password. |
Responses
Request samples
- Payload
{- "accessRight": "VIEW",
- "password": "string"
}
Response samples
- default
{- "operationId": "b91bbf81beb74397ae282d1186aa1798",
- "code": 500,
- "message": "string"
}
Create a quote. - BETA version, API signature is subject to change.
Create a quote. This will create a Quote using the given model name.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Create Quote Request
modelName required | string |
description required | string |
language required | string (Language) The language code in lowercase |
country required | string (Country) The country code in uppercase. |
currency required | string (Currency) The currency code. |
Responses
Request samples
- Payload
{- "modelName": "string",
- "description": "string",
- "language": "fr",
- "country": "FR",
- "currency": "EUR"
}
Response samples
- 200
- default
{- "quoteId": "string"
}
Open a quote. - BETA version, API signature is subject to change.
Open a quote. This will activate the quote and open a user session. Quote data can be refreshed if this is specfied in the model. If a quote migration is necessary it will be performed. This is a operation, you must set a RETRY on this operation as it could timeout in case of long refresh time or long migration time. In case of retry you must provide the "processId" value returned by the first API call.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Open Quote Request
timeout | integer [ 1 .. 20 ] Default: 5 Open operation timeout in seconds. If the process is still in progress after this timeout value the API will provide a process id to retry the operation and to continue where it stopped during the first call. Please notice that this timeout value cannot be precise and is used to limit wait time for a single request : It's not an Http timeout. This value can be majorated by network request time and some server internal processing time. |
processId | string This parameter must be provided if you retry the open operation. It will allow the API to check the open quote state and continue the process. |
Responses
Request samples
- Payload
{- "timeout": 5,
- "processId": "string"
}
Response samples
- 200
- 202
- default
{- "processId": "string",
- "state": "INITIALIZING",
- "modelId": "string",
- "modelName": "string",
- "errorMessage": "string",
- "errorCorrelationId": "string"
}
Resolve the locale to use. - BETA version, API signature is subject to change.
The quote is able to manage a list of locale. Providing the browser locale, the API will let you know which is the better locale to use.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Resolve locale request
modelId required | string The quote model id to use for all following operations. This model if provided will be checked and an error will be raised if your quote model evolved |
browserLocale | string The locale of the browser |
Responses
Request samples
- Payload
{- "modelId": "string",
- "browserLocale": "string"
}
Response samples
- 200
- default
{- "locale": "string",
- "decimalSeparator": "string",
- "monetaryDecimalSeparator": "string",
- "thousandSeparator": "string",
- "monetaryPattern": "string",
- "datePattern": "string",
- "dateTimePattern": "string",
- "amPmStrings": [
- "string"
], - "shortWeekDays": [
- "string"
], - "shortMonths": [
- "string"
], - "clock": 0,
- "firstDayOfWeek": 0
}
Push an encrypted context. - BETA version, API signature is subject to change.
This operation pushes an encrypted context to the server.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Push encrypted context request.
encryptedContext required | string Encrypted context. Check ECommerceContexts object for the schema of contexts to encrypt |
Responses
Request samples
- Payload
{- "encryptedContext": "string"
}
Response samples
- default
{- "operationId": "b91bbf81beb74397ae282d1186aa1798",
- "code": 500,
- "message": "string"
}
Get list of available Quote models. - BETA version, API signature is subject to change.
Retrieve the list of available models for Quote creation.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- default
{- "models": [
- "string"
]
}
Get list of my Quotes. - BETA version, API signature is subject to change.
This operation retrieves the list of my Quotes (created by my authenticated user). If dates are not provided it will use by default last 7 days
Authorizations:
query Parameters
startDate | string <dateTime> Start date to filter on Quote creation date. A date as defined by full-date in RFC3339 format, with full-date = date-fullyear - date-month - date-day . Example: 2023-11-26 |
endDate | string <dateTime> End date to filter on Quote creation date. A date as defined by full-date in RFC3339 format, with full-date = date-fullyear - date-month - date-day . example: 2023-12-27 |
keywords | string Keywords to search on Quote description to filter the result list. The search is not case sensitive |
locale | string The display locale that will be used to format values formatted like en-US. |
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- 500
{- "partial": true,
- "allQuotesContributors": [
- {
- "userId": "string",
- "username": "string",
- "read": true,
- "write": true,
- "negotiate": true
}
], - "quotes": [
- {
- "quoteId": "string",
- "quoteModelName": "string",
- "description": "string",
- "creationDate": "string",
- "lastUpdateDate": "string",
- "contributors": [
- {
- "userId": "string",
- "username": "string",
- "read": true,
- "write": true,
- "negotiate": true
}
], - "highlightedFields": [
- {
- "fieldId": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}
}
], - "sellerNotificationStatus": {
- "notified": true,
- "lastUpdateDate": "string"
}, - "status": {
- "name": "string",
- "label": "string"
}
}
]
}
Get list of pending requests. - BETA version, API signature is subject to change.
This operation retrieves the list of pending requests for the attention of the connected user.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- 500
{- "pendingRequests": [
- {
- "id": "string",
- "kind": "COLLABORATION",
- "allQuotes": true,
- "quoteDescription": "string",
- "contributorUsername": "string",
- "requestedAccess": "READ",
- "canNegotiate": true,
- "creationDate": "string"
}
]
}
Review a pending request. - BETA version, API signature is subject to change.
This operation review a pending request, by accepting or rejecting it.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Review a Pending Request
requestId required | string |
reviewStatus required | string Enum: "ACCEPT" "REJECT" |
Responses
Request samples
- Payload
{- "requestId": "string",
- "reviewStatus": "ACCEPT"
}
Response samples
- 200
- 500
{- "pendingRequests": [
- {
- "id": "string",
- "kind": "COLLABORATION",
- "allQuotes": true,
- "quoteDescription": "string",
- "contributorUsername": "string",
- "requestedAccess": "READ",
- "canNegotiate": true,
- "creationDate": "string"
}
]
}
Generate an invitation to collaborate link. - BETA version, API signature is subject to change.
This operation generate an invitation link. The recipient will access to the dashboard and is prompted to share all its quotes with the sender via a pending request.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Generate an invite to collaborate link
mailTo required | string The recipient email |
canNegotiate required | boolean The user sending the request requests the right to negotiate. |
Responses
Request samples
- Payload
{- "mailTo": "string",
- "canNegotiate": true
}
Response samples
- 200
- 500
{- "link": "string"
}
Generate an invitation link to access to a quote. - BETA version, API signature is subject to change.
This operation generates an invitation link to access to a quote. The recipient will access to the dashboard and a notification.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Generate an invite to collaborate link
mailTo required | string The recipient email |
quoteId required | string The quote id |
quoteDescription required | string The quote description |
allQuotes required | boolean The request is about all the quotes |
accessMode required | string Enum: "READ" "READ_WRITE" The access mode |
canNegotiate required | boolean The user sending the request requests the right to negotiate. |
Responses
Request samples
- Payload
{- "mailTo": "string",
- "quoteId": "string",
- "quoteDescription": "string",
- "allQuotes": true,
- "accessMode": "READ",
- "canNegotiate": true
}
Response samples
- 200
- 500
{- "link": "string"
}
Get sharing permissions
Get permissions set for the contributor user or on a shared Quote or on all current user Quotes
Authorizations:
query Parameters
contributor required | string The Quote contributor |
quoteId | string The QuoteId to check permissions on. If QuoteId is not provided API will get permissions of the contributor on all curent user Quotes (If current user shared all his Quotes with the contributor) |
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- 400
- 500
{- "access": "NONE",
- "canNegotiate": false
}
Set sharing permissions
Set permissions for the contributor user or on a Quote or on all current user Quotes.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Quote sharing permissions request body
contributor required | string The contributor userId to set permissions for |
quoteId | string The QuoteId to set permissions on. If not provided permissions will be set for contributor on all current user Quotes |
required | object (SharingPermissions) Permissions for a contributor on a Quote or list of Quotes |
Responses
Request samples
- Payload
{- "contributor": "string",
- "quoteId": "string",
- "permissions": {
- "access": "NONE",
- "canNegotiate": false
}
}
Response samples
- 400
- 500
{- "operationId": "b91bbf81beb74397ae282d1186aa1798",
- "code": 500,
- "message": "string"
}
Get collaboration status targets
This operation retrieves the list of possible changes for the collaboration status of the given Quote. List of available target status are based on the current user profile that is also returned by the API.
Authorizations:
query Parameters
language required | string The language code in lowercase |
country required | string The country code in uppercase |
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- 400
- 500
{- "currentStatus": {
- "name": "string",
- "label": "string"
}, - "targetstatus": [
- {
- "transition": {
- "name": "string",
- "label": "string"
}, - "targetStatus": {
- "name": "string",
- "label": "string"
}
}
], - "userProfile": "BUYER",
- "sellerNotified": true,
- "sellerNotifyLabel": "string"
}
Change collaboration status for a Quote
This operation sets a collaboration status on the given Quote. Operation is authorized based on the current user profile. (Authorized or not to change status on the Quote) CAUTION: This API is a BETA version, API signature can change at any time or can be removed.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Quote collaboration status request body
status | string The collaboration status name to set |
transition | string The collaboration status target transition |
Responses
Request samples
- Payload
{- "status": "string",
- "transition": "string"
}
Response samples
- 200
- 400
- 500
{- "id": "string"
}
Change seller notification status
This operation will update the notify seller flag on a Quote.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Quote collaboration status request body
notify required | boolean Boolean to set or remove notification of the seller on the request |
Responses
Request samples
- Payload
{- "notify": true
}
Response samples
- 200
- 400
- 500
{- "id": "string"
}
Generate a document from the quote. - BETA version, API signature is subject to change.
This operation triggers a quote document generation. The operation executes asynchronously. Once completed, the document can be retrieved later using the get docgen operation.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Generate document request
actionName | string Configured docgen action name |
Responses
Request samples
- Payload
{- "actionName": "string"
}
Response samples
- 202
- default
{- "documentId": "string"
}
Get a generated document. - BETA version, API signature is subject to change.
This operation retrieves an already generated quote document if available.
The document format depends on the docgen template and action type.
User should retry on this operation if returned HTTP code is 202, this means that document generation is still in progress. Check response codes for details.
Authorizations:
path Parameters
docgenId required | string Quote generated document identifier returned by docgen API |
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- 404
Get the catalog collections. - BETA version, API signature is subject to change.
Retrieve collections from catalog with their identiefiers (CPEs)
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
dataProviderName required | string The data provider name that is linked to the catalog |
quoteModelName required | string The quote model name. This will be used to find the right catalog |
cpes | Array of strings The product CPEs array |
Array of objects (UserType) |
Responses
Request samples
- Payload
{- "dataProviderName": "string",
- "quoteModelName": "string",
- "cpes": [
- "string"
], - "rmoUserTypes": [
- {
- "type": "ANY",
- "customValue": "string"
}
]
}
Response samples
- 200
- 500
{- "collections": [
- {
- "name": "string",
- "cpe": "string",
- "description": "string",
- "workspace": "string",
- "exists": true,
- "userType": "string",
- "rmo": {
- "workspace": "string",
- "name": "string",
- "fileLinks": [
- {
- "title": "string",
- "icon": "string",
- "file": "string",
- "userType": "string"
}
], - "plugins": [
- {
- "path": "string",
- "parameter": "string",
- "url": "string",
- "userType": "string"
}
], - "texts": [
- {
- "text": "string",
- "url": "string",
- "userType": "string"
}
], - "onImages": [
- {
- "url": "string",
- "userType": "string"
}
]
}, - "productCollections": [
- "string"
], - "products": [
- "string"
], - "productTeasers": [
- {
- "name": "string",
- "cpe": "string",
- "description": "string",
- "workspace": "string",
- "exists": true,
- "userType": "string",
- "rmo": {
- "workspace": "string",
- "name": "string",
- "fileLinks": [
- {
- "title": "string",
- "icon": "string",
- "file": "string",
- "userType": "string"
}
], - "plugins": [
- {
- "path": "string",
- "parameter": "string",
- "url": "string",
- "userType": "string"
}
], - "texts": [
- {
- "text": "string",
- "url": "string",
- "userType": "string"
}
], - "onImages": [
- {
- "url": "string",
- "userType": "string"
}
]
}, - "associatedCpe": "string"
}
]
}
]
}
Get the catalog structure. - BETA version, API signature is subject to change.
Retrieve catalog structure
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
dataProviderName required | string The data provider name that is linked to the catalog |
quoteModelName required | string The quote model name. This will be used to find the right catalog |
Responses
Request samples
- Payload
{- "dataProviderName": "string",
- "quoteModelName": "string"
}
Response samples
- 200
- 500
{- "structure": {
- "cpe": "string",
- "name": "string",
- "description": "string",
- "type": "string",
- "userType": "string",
- "rmo": {
- "workspace": "string",
- "name": "string",
- "fileLinks": [
- {
- "title": "string",
- "icon": "string",
- "file": "string",
- "userType": "string"
}
], - "plugins": [
- {
- "path": "string",
- "parameter": "string",
- "url": "string",
- "userType": "string"
}
], - "texts": [
- {
- "text": "string",
- "url": "string",
- "userType": "string"
}
], - "onImages": [
- {
- "url": "string",
- "userType": "string"
}
]
}, - "path": [
- "string"
], - "children": [
- { }
]
}
}
Search in the catalog. - BETA version, API signature is subject to change.
Search products in the catalog and get their properties.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
dataProviderName required | string The data provider name that is linked to the catalog |
quoteModelName required | string The quote model name. This will be used to find the right catalog |
searchKeywords required | string The search keywords |
rootCollection | string The catalog root collection |
nbResults | integer [ 1 .. 50 ] Default: 50 Max number of search results to return. The provided number should be within the authorized interval, if not max results number will be used |
eligibilityInfo | boolean Default: true Set to true to get eligible products |
replacementInfo | boolean Default: true Set to true to get remplacement products info |
computationLinkInfo | boolean Default: true Set to true to get computation links |
configurationLinkInfo | boolean Default: true Set to true to get related configurable products |
Array of objects (SearchGeneralSetting) | |
Array of objects (SearchProductProperty) |
Responses
Request samples
- Payload
{- "dataProviderName": "string",
- "quoteModelName": "string",
- "searchKeywords": "string",
- "rootCollection": "string",
- "nbResults": 50,
- "eligibilityInfo": true,
- "replacementInfo": true,
- "computationLinkInfo": true,
- "configurationLinkInfo": true,
- "generalSettings": [
- {
- "key": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}
}
], - "productProperties": [
- {
- "propertyKey": "string",
- "propertyType": "String"
}
]
}
Response samples
- 200
- 500
{- "products": [
- {
- "name": "string",
- "namespace": "string",
- "type": "SI",
- "title": "string",
- "description": "string",
- "imageUrl": "string",
- "isEligible": true,
- "eligibilityMessages": [
- "string"
], - "productProperties": [
- {
- "columnId": "string",
- "columnName": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "inputValue": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "status": "string",
- "updatable": true,
- "errors": [
- "string"
], - "warnings": [
- "string"
], - "columnType": "String"
}
], - "computationLink": {
- "valueType": "Empty",
- "formattedValue": "string",
- "name": "string",
- "imageUrl": "string",
- "longDescription": "string",
- "type": "SI",
- "namespace": "string",
- "description": "string",
- "path": "string"
}, - "configurationLink": {
- "valueType": "Empty",
- "formattedValue": "string",
- "name": "string",
- "imageUrl": "string",
- "longDescription": "string",
- "type": "SI",
- "namespace": "string",
- "description": "string",
- "path": "string"
}, - "replacementProduct": {
- "product": {
- "valueType": "Empty",
- "formattedValue": "string",
- "name": "string",
- "imageUrl": "string",
- "longDescription": "string",
- "type": "SI",
- "namespace": "string",
- "description": "string",
- "path": "string"
}, - "name": "string",
- "namespace": "string",
- "type": "SI",
- "title": "string",
- "description": "string",
- "imageUrl": "string",
- "quantity": 0,
- "productProperties": [
- {
- "columnId": "string",
- "columnName": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "inputValue": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "status": "string",
- "updatable": true,
- "errors": [
- "string"
], - "warnings": [
- "string"
], - "columnType": "String"
}
], - "computationLink": {
- "valueType": "Empty",
- "formattedValue": "string",
- "name": "string",
- "imageUrl": "string",
- "longDescription": "string",
- "type": "SI",
- "namespace": "string",
- "description": "string",
- "path": "string"
}, - "configurationLink": {
- "valueType": "Empty",
- "formattedValue": "string",
- "name": "string",
- "imageUrl": "string",
- "longDescription": "string",
- "type": "SI",
- "namespace": "string",
- "description": "string",
- "path": "string"
}, - "isBundle": true,
- "isSubscription": false,
- "isEligible": true,
- "eligibilityMessages": [
- "string"
]
}, - "isBundle": true,
- "isSubscription": false
}
]
}
Search in the catalog. - BETA version, API signature is subject to change.
Search products in the catalog and get their properties.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
dataProviderName required | string The data provider name that is linked to the catalog |
quoteModelName required | string The quote model name. This will be used to find the right catalog |
searchKeywords required | string The search keywords |
rootCollection | string The catalog root collection |
nbResults | integer [ 1 .. 50 ] Default: 50 Max number of search results to return. The provided number should be within the authorized interval, if not max results number will be used |
eligibilityInfo | boolean Default: true Set to true to get eligible products |
replacementInfo | boolean Default: true Set to true to get remplacement products info |
computationLinkInfo | boolean Default: true Set to true to get computation links |
configurationLinkInfo | boolean Default: true Set to true to get related configurable products |
Array of objects (SearchGeneralSetting) | |
Array of objects (SearchProductProperty) |
Responses
Request samples
- Payload
{- "dataProviderName": "string",
- "quoteModelName": "string",
- "searchKeywords": "string",
- "rootCollection": "string",
- "nbResults": 50,
- "eligibilityInfo": true,
- "replacementInfo": true,
- "computationLinkInfo": true,
- "configurationLinkInfo": true,
- "generalSettings": [
- {
- "key": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}
}
], - "productProperties": [
- {
- "propertyKey": "string",
- "propertyType": "String"
}
]
}
Response samples
- 200
- 500
{- "products": [
- "string"
]
}
Get the products in the catalog. - BETA version, API signature is subject to change.
This operation retrieves products in the catalog
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Get Products Request
dataProviderName required | string The data provider name that is linked to the catalog |
displayLocale | string The locale in which format response |
quoteModelName required | string The quote model name. This will be used to find the right catalog |
productsCPEs required | Array of strings The product CPEs array |
priceCPE required | string The price CPE to retrieve |
strikethroughPriceCPE required | string The strikethrough price CPE to retrieve |
Array of objects (UserType) | |
Array of objects (SearchGeneralSetting) |
Responses
Request samples
- Payload
{- "dataProviderName": "string",
- "displayLocale": "string",
- "quoteModelName": "string",
- "productsCPEs": [
- "string"
], - "priceCPE": "string",
- "strikethroughPriceCPE": "string",
- "rmoUserTypes": [
- {
- "type": "ANY",
- "customValue": "string"
}
], - "generalSettings": [
- {
- "key": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}
}
]
}
Response samples
- 200
- default
{- "products": [
- {
- "type": "SI",
- "name": "string",
- "cpe": "string",
- "workspace": "string",
- "description": "string",
- "eligible": true,
- "userType": "string",
- "rmo": {
- "workspace": "string",
- "name": "string",
- "fileLinks": [
- {
- "title": "string",
- "icon": "string",
- "file": "string",
- "userType": "string"
}
], - "plugins": [
- {
- "path": "string",
- "parameter": "string",
- "url": "string",
- "userType": "string"
}
], - "texts": [
- {
- "text": "string",
- "url": "string",
- "userType": "string"
}
], - "onImages": [
- {
- "url": "string",
- "userType": "string"
}
]
}, - "productLinks": [
- {
- "type": "UPSELLING",
- "name": "string",
- "cpe": "string",
- "product": { }
}
], - "businessPropertySets": [
- {
- "name": "string",
- "description": "string",
- "visible": true,
- "cpe": "string",
- "businessProperties": [
- {
- "name": "string",
- "cpe": "string",
- "description": "string",
- "leading": true,
- "comparable": true,
- "filterable": true,
- "visible": true,
- "values": [
- {
- "valueType": "Empty",
- "formattedValue": "string"
}
]
}
]
}
], - "price": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "strikethroughPrice": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "replacement": { }
}
]
}
Get the product path. - BETA version, API signature is subject to change.
This operation retrieves a product path from its CPE
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Get Products Request
dataProviderName required | string The data provider name that is linked to the catalog |
quoteModelName required | string The quote model name. This will be used to find the right catalog |
productCPE required | string The product CPE |
Responses
Request samples
- Payload
{- "dataProviderName": "string",
- "quoteModelName": "string",
- "productCPE": "string"
}
Response samples
- 200
- default
{- "productPath": "string"
}
Set a field value. - BETA version, API signature is subject to change.
This operation sets a value in a field. A field is defined by a field Id, the field Id can normally be found in the model. This operation is asynchronous so if an error occurs the client will not be notified. The correlation id returned can be used to check the command's execution status.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Set Field Value Request
fieldId required | string |
required | object (ECommerceGridValue) See different ECommerceGridValue subtypes definitions for more information. Example: StringECommerceGridValue |
Responses
Request samples
- Payload
{- "fieldId": "string",
- "inputValue": {
- "valueType": "Empty",
- "formattedValue": "string"
}
}
Response samples
- 200
- default
{- "id": "string"
}
Set a cell value. - BETA version, API signature is subject to change.
This operation sets a value in a grid cell. A cell is defined by a row Id and column Id. This operation is asynchronous so if an error occurs the client will not be notified. The correlation id returned can be used to check the command's execution status.\n Warning: This API is aimed at unitary cell update. If one has to update a large number of cells, the import API should be used instead.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Set Cell Value Request
rowId required | string |
colId required | string |
required | object (ECommerceGridValue) See different ECommerceGridValue subtypes definitions for more information. Example: StringECommerceGridValue |
Responses
Request samples
- Payload
{- "rowId": "string",
- "colId": "string",
- "inputValue": {
- "valueType": "Empty",
- "formattedValue": "string"
}
}
Response samples
- 200
- default
{- "id": "string"
}
Get Quote data including fields and lines values. - BETA version, API signature is subject to change.
This operation retrieves a snapshot of data of the Quote.
If a list of rows identifiers is provided, only those rows are returned. A single call to the API is needed in that case. Otherwise, all rows are returned in a paginated mode, the size of the page being given as a request attribute (default 1000). In the response of the first call to the API, the total number of pages is returned, computed based on given page size. There must be as many calls to the API as the total of pages. In following calls you can avoid requesting fields as they will be all returned in the first call The number of lines in the result can be different from number of requested lines. The API returns only found lines even if rowIds are set in the request.
Field ids should be provided in the request to get field values, if no field id is provided the API will return only request rows or rows related to the given view and component.
To ensure results consistency, some snapshot identifiers are provided in the response. They represent the state of quote structure and quote data. These snapshot identifiers vary when quote data are modified or when structure changes (lines are moved, added or deleted, field values change,....) When requesting a new page of rows, these identifiers should be provided in the request to be compared with current states.
Returned rows can be differently filtered and sorted depending on the combination of two request body attributes: type of the given componentId, value of the rowIds attribute. Expected behavior is detailed below:
- if componentId identifies a grid component
- rowIds contains one single row identifier
- Row is returned except if it is filtered by user or model view filter
- rowIds contains a list of row identifiers
- Rows are returned in numeric increasing order and filtered by user and model view
- rowIds is empty (to get a range of rows)
- Rows range is returned sorted by user sort if any, otherwise by model component sort (if any) and filtered by user and model view
- rowIds contains one single row identifier
- if componentId identifies a non grid component or a fields component
- rowIds contains one single row identifier
- useAdminView = true or false: row is returned (no filter applied)
- rowIds contains a list of row identifiers
- empty result
- rowIds is empty (to get a range of rows)
- empty result
- rowIds contains one single row identifier
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
quoteModelId required | string the quote model id |
viewId required | string The quote view identifier |
componentId required | string The quote component identifier |
displayLocale required | string The locale in which format response formatted like en-US. |
fieldIds | Array of strings The list of field ids to retrieve. If field Ids are not provided the request will only return requested rows and no fields. |
rowIds | Array of strings (Row id) Identifiers of the rows to retrieve. This is an optional attribute, if no row identifiers are provided, the rows within the range of the current page are returned. |
columnIds | Array of strings (Column id) Identifiers of the columns to retrieve for each line. This is an optional attribute, if no column identifiers are provided, all columns of the component will be returned. |
pageNumber | integer >= 0 The page number, pages start at index 1. If set to 0, rows will not be requested unless specific rows are requested with their Ids |
maxLinesPerPage | integer [ 1 .. 1000 ] The maximum number of lines to retrieve by page |
object (Snap Ids) Quote and component snap Ids. These Ids can change if quote data are updated. When provided in a getData request the API will compare provided ones with current and return data only if they change. |
Responses
Request samples
- Payload
{- "quoteModelId": "string",
- "viewId": "string",
- "componentId": "string",
- "displayLocale": "string",
- "fieldIds": [
- "string"
], - "rowIds": [
- "string"
], - "columnIds": [
- "string"
], - "pageNumber": 0,
- "maxLinesPerPage": 1,
- "snapIds": {
- "sessionStateSnapId": 0,
- "dataSnapId": 0,
- "metadataSnapId": 0,
- "indexSnapId": 0,
- "nodeId": "string",
- "weakDataSnapId": 0,
- "weakMetadataSnapId": 0,
- "weakIndexSnapId": 0
}
}
Response samples
- 200
- default
{- "fieldsData": [
- {
- "fieldId": "string",
- "fieldName": "string",
- "fieldType": "String",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "isUserInput": true,
- "updatable": true,
- "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "rowsData": {
- "rows": [
- {
- "rowId": "string",
- "lineItemTemplateId": "string",
- "rowParents": [
- "string"
], - "rowType": "PRODUCT",
- "cells": [
- {
- "columnId": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "isUserInput": true,
- "updatable": true,
- "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "columns": [
- {
- "columnId": "string",
- "columnName": "string",
- "columnType": "String"
}
], - "pageNumber": 0,
- "totalPages": 0,
- "totalRows": 0,
- "totalRowsFormattedValue": "string"
}, - "snapIds": {
- "sessionStateSnapId": 0,
- "dataSnapId": 0,
- "metadataSnapId": 0,
- "indexSnapId": 0,
- "nodeId": "string",
- "weakDataSnapId": 0,
- "weakMetadataSnapId": 0,
- "weakIndexSnapId": 0
}
}
Get Quote row data children
"This operation retrieves a snapshot of row data from the Quote with it's hierarchy.\n All rows returned are children of the parent row given in parameter. \n The operation also returns the parent folder and parent products of the given row if they exists.\n If the number of rows found exceed the max children depth limit (500 by default), the operation will end in error. All rows are returned in a paginated mode, the size of the page being given as a request attribute (default 1000).\n In the response of the first call to the API, the total number of pages is returned, computed based on given page size.\n There must be as many calls to the API as the total of pages. In following calls you can avoid requesting fields as they will be all returned in the first call\n The number of lines in the result can be different from number of requested lines. The API returns only found lines.\n To ensure results consistency, some snapshot identifiers are provided in the response. They represent the state of quote structure and quote data.\n These snapshot identifiers vary when quote data are modified or when structure changes (lines are moved, added or deleted, field values change,....)\n When requesting a new page of rows, these identifiers should be provided in the request to be compared with current states.\n Returned rows can be differently filtered and sorted depending on the combination of three request body attributes: type of the given componentId, value of the rowIds attribute.\n"
Authorizations:
path Parameters
rowId required | string The rowId to request |
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
quoteModelId | string the quote model id |
displayLocale | string The locale in which format response formatted like en-US. |
viewId required | string The quote view identifier |
componentId required | string The quote component identifier |
columnIds | Array of strings (Column id) Identifiers of the columns to retrieve for each line. This is an optional attribute, if no column identifiers are provided, all columns of the component will be returned. |
pageNumber | integer >= 1 Default: 1 The page number, pages start at index 1. |
maxLinesPerPage | integer [ 1 .. 1000 ] Default: 1000 The maximum number of lines to retrieve by page |
getAllDepths | boolean Default: false true if API has to get data for all the folder or bundle depths, false otherwise |
object (Snap Ids) Quote and component snap Ids. These Ids can change if quote data are updated. When provided in a getData request the API will compare provided ones with current and return data only if they change. |
Responses
Request samples
- Payload
{- "quoteModelId": "string",
- "displayLocale": "string",
- "viewId": "string",
- "componentId": "string",
- "columnIds": [
- "string"
], - "pageNumber": 1,
- "maxLinesPerPage": 1000,
- "getAllDepths": false,
- "snapIds": {
- "sessionStateSnapId": 0,
- "dataSnapId": 0,
- "metadataSnapId": 0,
- "indexSnapId": 0,
- "nodeId": "string",
- "weakDataSnapId": 0,
- "weakMetadataSnapId": 0,
- "weakIndexSnapId": 0
}
}
Response samples
- 200
- 500
{- "rowsData": {
- "rows": [
- {
- "rowId": "string",
- "lineItemTemplateId": "string",
- "rowParents": [
- "string"
], - "rowType": "PRODUCT",
- "cells": [
- {
- "columnId": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "isUserInput": true,
- "updatable": true,
- "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "columns": [
- {
- "columnId": "string",
- "columnName": "string",
- "columnType": "String"
}
], - "pageNumber": 0,
- "totalPages": 0,
- "totalRows": 0,
- "totalRowsFormattedValue": "string"
}, - "parentFolders": [
- {
- "rowId": "string",
- "lineItemTemplateId": "string",
- "rowParents": [
- "string"
], - "rowType": "PRODUCT",
- "cells": [
- {
- "columnId": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "isUserInput": true,
- "updatable": true,
- "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "parentProducts": [
- {
- "rowId": "string",
- "lineItemTemplateId": "string",
- "rowParents": [
- "string"
], - "rowType": "PRODUCT",
- "cells": [
- {
- "columnId": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "isUserInput": true,
- "updatable": true,
- "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "status": "OK",
- "errors": [
- "string"
], - "warnings": [
- "string"
]
}
], - "snapIds": {
- "sessionStateSnapId": 0,
- "dataSnapId": 0,
- "metadataSnapId": 0,
- "indexSnapId": 0,
- "nodeId": "string",
- "weakDataSnapId": 0,
- "weakMetadataSnapId": 0,
- "weakIndexSnapId": 0
}
}
Delete lines from the quote. - BETA version, API signature is subject to change.
This operation delete lines from a Quote.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Delete lines Request
rowIds required | Array of strings (Row id) Identifiers of the rows to delete. |
Responses
Request samples
- Payload
{- "rowIds": [
- "string"
]
}
Response samples
- 200
- default
{- "rows": [
- {
- "rowId": "string",
- "status": "string",
- "errors": [
- "string"
], - "warnings": [
- "string"
], - "lineItemTemplateId": "string",
- "rowParents": [
- "string"
], - "rowType": "PRODUCT",
- "cells": [
- {
- "columnId": "string",
- "columnName": "string",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "inputValue": {
- "valueType": "Empty",
- "formattedValue": "string"
}, - "status": "string",
- "updatable": true,
- "errors": [
- "string"
], - "warnings": [
- "string"
], - "columnType": "String"
}
]
}
], - "metadata": {
- "snapId": 0,
- "pageNumber": 0,
- "totalPages": 0,
- "totalRows": 0,
- "totalRowsFormattedValue": "string"
}
}
Retrieve a cell or field domain. - BETA version, API signature is subject to change.
This operation retrieves the domain of the given field or cell.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Get Domain Request
variableId required | string The field id or the columnId if domain to retrieve concerns a cell |
rowId | string The row id to retrieve concerns a cell domain |
filter | string Optional keyword to filter on domain results |
authorizedOnly | boolean Default: true Retrieve only authorized domain values for user if set true or all values if false |
displayLocale | string The locale in which format response formatted like en-US. |
Responses
Request samples
- Payload
{- "variableId": "string",
- "rowId": "string",
- "filter": "string",
- "authorizedOnly": true,
- "displayLocale": "string"
}
Response samples
- 200
- default
{- "domainType": "ExtensionalECommerceDomain",
- "sortingCriteria": "KEEP_DOMAIN_DEFINITION_ORDER",
- "domainProperties": {
- "currency": "string",
- "maxSize": 0,
- "regexp": "string"
}, - "open": true,
- "partial": true,
- "domain": [
- {
- "status": "AUTHORIZED",
- "value": {
- "valueType": "Empty",
- "formattedValue": "string"
}
}
], - "homogeneousValueStatus": "AUTHORIZED"
}
Get the quote status. - BETA version, API signature is subject to change.
This operation retrieves the quote status
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- default
{- "status": "string"
}
Change the quote status. - BETA version, API signature is subject to change.
This operation changes the status of the quote with given status
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
Change Status Request
status required | string The quote status to be used |
Responses
Request samples
- Payload
{- "status": "string"
}
Response samples
- 200
- default
{- "id": "string"
}
Retrieve the quote access rights. - BETA version, API signature is subject to change.
This operation retrieves access rights on Quote elements (Global, fields,... ).
Authorizations:
path Parameters
sessionStateSnapId required | integer <int64> The session state snapshot id |
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- default
{- "globalAccessRights": [
- "CREATE"
], - "fieldAccessRights": [
- {
- "id": "string",
- "accessRights": [
- "CREATE"
]
}
], - "columnAccessRights": [
- {
- "id": "string",
- "accessRights": [
- "CREATE"
]
}
], - "lineTemplateAccessRights": [
- {
- "id": "string",
- "accessRights": [
- "CREATE"
]
}
]
}
Retrieve the quote session states. - BETA version, API signature is subject to change.
This operation retrieves session states for the current session and context.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- default
{- "sessionStates": [
- "string"
], - "sessionStateSnapId": 0
}
Retrieve the execution status for an async request. - BETA version, API signature is subject to change.
This operation retrieves the execution status of an async request. This API can be used to check if an async request succeeded or failed when it returns a 202 status. For example with setFieldValue or setCellValue
Authorizations:
path Parameters
correlationId required | string The async request identifier returned by the original edit request |
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- default
{- "status": "Failed",
- "errorMessage": {
- "logCorrelationId": "string",
- "code": 0,
- "message": "string"
}
}
Add a row in the quote. - BETA version, API signature is subject to change.
Add a product or sales product into the quote.
Authorizations:
header Parameters
sessionId required | string Session identifier. Call initSession API to get a session Id |
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Request Body schema: application/json
dataProviderName required | string the data provider name |
insertionPoint | string the insertionPoint if any |
required | Array of objects (Define a new row to add) Identifiers of the rows to retrieve. This is an optional attribute, if no row identifiers are provided, the rows within the range of the current page are returned. |
Responses
Request samples
- Payload
{- "dataProviderName": "string",
- "insertionPoint": "string",
- "rows": [
- {
- "businessValueType": "SI",
- "name": "string",
- "namespace": "string",
- "description": "string",
- "quantity": 0
}
]
}
Response samples
- 200
- 500
{- "id": "string"
}
Get the microsite settings. - BETA version, API signature is subject to change.
This operation retrieves the collaboration portal settings.
Authorizations:
header Parameters
Request-Id | string Use this optional header to correlate many calls the same external operation or workflow. Must be a UUID without "-" characters. |
Responses
Response samples
- 200
- default
{- "quoteId": "string",
- "isCollaborationStatusEnabled": false,
- "accessMode": "VIEW",
- "locale": "string",
- "currency": "string",
- "logoutUrl": "string",
- "notifications": [
- "string"
]
}