Associate Quote Requests
This feature is part of Composable Commerce for B2B and will be subject to additional terms and pricing.
Associate Quote Requests allow Associates to interact with Quote Requests on behalf of a Business Unit.
Associates can view, create, and update Quote Requests on behalf of a Business Unit. The actions a given Associate is allowed to perform depends on the specific roles and permissions they hold within the Business Unit.
Get QuoteRequest in BusinessUnit
The Associate must have the ViewMyQuoteRequests or ViewOthersQuoteRequests Permission. If a required Permission is missing, an AssociateMissingPermission error is returned.
Get QuoteRequest in BusinessUnit by ID
If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.
view_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
idString |
|
expand | The parameter can be passed multiple times. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id} -i \--header "Authorization: Bearer ${BEARER_TOKEN}"
{"id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc","version": 1,"createdAt": "2022-09-22T15:36:17.510Z","lastModifiedAt": "2022-09-22T15:41:55.816Z","quoteRequestState": "Submitted","comment": "Give me 10% discount","customer": {"typeId": "customer","id": "92f5a867-bf19-47ab-982c-6720a03a3921"},"businessUnit": {"key": "bu-345-france","typeId": "business-unit"},"lineItems": [{"id": "b925a817-d5ad-48bb-a407-29ad8e0649b5","productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f","name": {"en": "SAPPHIRE"},"productType": {"typeId": "product-type","id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d","version": 8},"productSlug": {"en": "sapphire1421832124423"},"variant": {"id": 1,"sku": "sku_SAPPHIRE_variant1_1421832124423","prices": [{"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"}],"images": [{"url": "https://www.commercetools.com/cli/data/252542005_1.jpg","dimensions": {"w": 1400,"h": 1400}}],"attributes": [],"assets": []},"price": {"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"},"quantity": 2,"discountedPricePerQuantity": [],"state": [{"quantity": 2,"state": {"typeId": "state","id": "7c2e2694-aefe-43d7-888e-6a99514caaca"}}],"priceMode": "Platform","lineItemMode": "Standard","totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"perMethodTaxRate": [],"taxedPricePortions": []}],"totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"customLineItems": [],"directDiscounts": [],"inventoryMode": "None","taxMode": "Platform","taxRoundingMode": "HalfEven","taxCalculationMode": "LineItemLevel"}
Get QuoteRequest in BusinessUnit by Key
If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.
view_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
keyString |
|
expand | The parameter can be passed multiple times. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key} -i \--header "Authorization: Bearer ${BEARER_TOKEN}"
{"id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc","version": 1,"createdAt": "2022-09-22T15:36:17.510Z","lastModifiedAt": "2022-09-22T15:41:55.816Z","quoteRequestState": "Submitted","comment": "Give me 10% discount","customer": {"typeId": "customer","id": "92f5a867-bf19-47ab-982c-6720a03a3921"},"businessUnit": {"key": "bu-345-france","typeId": "business-unit"},"lineItems": [{"id": "b925a817-d5ad-48bb-a407-29ad8e0649b5","productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f","name": {"en": "SAPPHIRE"},"productType": {"typeId": "product-type","id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d","version": 8},"productSlug": {"en": "sapphire1421832124423"},"variant": {"id": 1,"sku": "sku_SAPPHIRE_variant1_1421832124423","prices": [{"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"}],"images": [{"url": "https://www.commercetools.com/cli/data/252542005_1.jpg","dimensions": {"w": 1400,"h": 1400}}],"attributes": [],"assets": []},"price": {"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"},"quantity": 2,"discountedPricePerQuantity": [],"state": [{"quantity": 2,"state": {"typeId": "state","id": "7c2e2694-aefe-43d7-888e-6a99514caaca"}}],"priceMode": "Platform","lineItemMode": "Standard","totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"perMethodTaxRate": [],"taxedPricePortions": []}],"totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"customLineItems": [],"directDiscounts": [],"inventoryMode": "None","taxMode": "Platform","taxRoundingMode": "HalfEven","taxCalculationMode": "LineItemLevel"}
Query QuoteRequests in BusinessUnit
view_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
where | The parameter can be passed multiple times. |
sort | The parameter can be passed multiple times. |
expand | The parameter can be passed multiple times. |
limitInt | Number of results requested. Default: 20 |
offsetInt | Number of elements skipped. Default: 0 |
withTotalBoolean | Controls the calculation of the total number of query results. Set to Default: true |
var.<varName>String | Predicate parameter values. The parameter can be passed multiple times. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests -i \--header "Authorization: Bearer ${BEARER_TOKEN}"
{"limit": 20,"offset": 0,"count": 1,"total": 1,"results": [{"id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc","version": 1,"createdAt": "2022-09-22T15:36:17.510Z","lastModifiedAt": "2022-09-22T15:41:55.816Z","quoteRequestState": "Submitted","comment": "Give me 10% discount","customer": {"typeId": "customer","id": "92f5a867-bf19-47ab-982c-6720a03a3921"},"businessUnit": {"key": "bu-345-france","typeId": "business-unit"},"lineItems": [{"id": "b925a817-d5ad-48bb-a407-29ad8e0649b5","productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f","name": {"en": "SAPPHIRE"},"productType": {"typeId": "product-type","id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d","version": 8},"productSlug": {"en": "sapphire1421832124423"},"variant": {"id": 1,"sku": "sku_SAPPHIRE_variant1_1421832124423","prices": [{"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"}],"images": [{"url": "https://www.commercetools.com/cli/data/252542005_1.jpg","dimensions": {"w": 1400,"h": 1400}}],"attributes": [],"assets": []},"price": {"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"},"quantity": 2,"discountedPricePerQuantity": [],"state": [{"quantity": 2,"state": {"typeId": "state","id": "7c2e2694-aefe-43d7-888e-6a99514caaca"}}],"priceMode": "Platform","lineItemMode": "Standard","totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"perMethodTaxRate": [],"taxedPricePortions": []}],"totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"customLineItems": [],"directDiscounts": [],"inventoryMode": "None","taxMode": "Platform","taxRoundingMode": "HalfEven","taxCalculationMode": "LineItemLevel"}]}
Check if QuoteRequest exists in BusinessUnit
Check if QuoteRequest exists by ID
Checks if a QuoteRequest exists for a given id. Returns a 200 OK status if the QuoteRequest exists or a 404 Not Found otherwise.
view_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
idString |
|
curl --head https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id} -i \--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if QuoteRequest exists by Key
Checks if a QuoteRequest exists for a given key. Returns a 200 OK status if the QuoteRequest exists or a 404 Not Found otherwise.
view_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
keyString |
|
curl --head https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key} -i \--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if QuoteRequest exists by Query Predicate
Checks if a QuoteRequest exists for a given Query Predicate. Returns a 200 OK status if any QuoteRequests match the Query Predicate or a 404 Not Found otherwise.
view_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
where | The parameter can be passed multiple times. |
curl --head https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests -i \--header "Authorization: Bearer ${BEARER_TOKEN}"
Create QuoteRequest in BusinessUnit
The Associate must have the CreateMyQuoteRequestsFromMyCarts or CreateQuoteRequestsFromOthersCarts Permission. If a required Permission is missing, an AssociateMissingPermission error is returned.
Creates a QuoteRequest in a BusinessUnit. Creating QuoteRequest fails with an InvalidOperation if the Cart does not reference the same BusinessUnit as the businessUnitKey path parameter.
manage_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
expand | The parameter can be passed multiple times. |
application/jsonapplication/jsoncurl https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests -i \--header "Authorization: Bearer ${BEARER_TOKEN}" \--header 'Content-Type: application/json' \--data-binary @- << DATA{"cart" : {"typeId" : "cart","id" : "168e5783-73c8-4f2d-91f4-3c90b872c708"},"cartVersion" : 1,"comment" : "Give me 10% discount"}DATA
{"id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc","version": 1,"createdAt": "2022-09-22T15:36:17.510Z","lastModifiedAt": "2022-09-22T15:41:55.816Z","quoteRequestState": "Submitted","comment": "Give me 10% discount","customer": {"typeId": "customer","id": "92f5a867-bf19-47ab-982c-6720a03a3921"},"businessUnit": {"key": "bu-345-france","typeId": "business-unit"},"lineItems": [{"id": "b925a817-d5ad-48bb-a407-29ad8e0649b5","productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f","name": {"en": "SAPPHIRE"},"productType": {"typeId": "product-type","id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d","version": 8},"productSlug": {"en": "sapphire1421832124423"},"variant": {"id": 1,"sku": "sku_SAPPHIRE_variant1_1421832124423","prices": [{"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"}],"images": [{"url": "https://www.commercetools.com/cli/data/252542005_1.jpg","dimensions": {"w": 1400,"h": 1400}}],"attributes": [],"assets": []},"price": {"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"},"quantity": 2,"discountedPricePerQuantity": [],"state": [{"quantity": 2,"state": {"typeId": "state","id": "7c2e2694-aefe-43d7-888e-6a99514caaca"}}],"priceMode": "Platform","lineItemMode": "Standard","totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"perMethodTaxRate": [],"taxedPricePortions": []}],"totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"customLineItems": [],"directDiscounts": [],"inventoryMode": "None","taxMode": "Platform","taxRoundingMode": "HalfEven","taxCalculationMode": "LineItemLevel"}
Update QuoteRequest in BusinessUnit
The Associate must have the UpdateMyQuoteRequests or UpdateOthersQuoteRequests Permission. If a required Permission is missing, an AssociateMissingPermission error is returned.
Update QuoteRequest in BusinessUnit by ID
If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.
manage_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
idString |
|
expand | The parameter can be passed multiple times. |
application/jsonversionInt | Expected version of the QuoteRequest to which the changes should be applied. If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actionsArray of QuoteRequestUpdateAction | Update actions to be performed on the QuoteRequest. |
application/jsoncurl https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id} -i \--header "Authorization: Bearer ${BEARER_TOKEN}" \--header 'Content-Type: application/json' \--data-binary @- << DATA{"version" : 1,"actions" : [ {"action" : "changeQuoteRequestState","quoteRequestState" : "Cancelled"} ]}DATA
{"id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc","version": 1,"createdAt": "2022-09-22T15:36:17.510Z","lastModifiedAt": "2022-09-22T15:41:55.816Z","quoteRequestState": "Cancelled","comment": "Give me 10% discount","customer": {"typeId": "customer","id": "92f5a867-bf19-47ab-982c-6720a03a3921"},"lineItems": [{"id": "b925a817-d5ad-48bb-a407-29ad8e0649b5","productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f","name": {"en": "SAPPHIRE"},"productType": {"typeId": "product-type","id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d","version": 8},"productSlug": {"en": "sapphire1421832124423"},"variant": {"id": 1,"sku": "sku_SAPPHIRE_variant1_1421832124423","prices": [{"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"}],"images": [{"url": "https://www.commercetools.com/cli/data/252542005_1.jpg","dimensions": {"w": 1400,"h": 1400}}],"attributes": [],"assets": []},"price": {"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"},"quantity": 2,"discountedPricePerQuantity": [],"state": [{"quantity": 2,"state": {"typeId": "state","id": "7c2e2694-aefe-43d7-888e-6a99514caaca"}}],"priceMode": "Platform","lineItemMode": "Standard","totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"perMethodTaxRate": [],"taxedPricePortions": []}],"totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"customLineItems": [],"directDiscounts": [],"inventoryMode": "None","taxMode": "Platform","taxRoundingMode": "HalfEven","taxCalculationMode": "LineItemLevel"}
Update QuoteRequest in BusinessUnit by Key
If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.
manage_quote_requests:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString |
|
associateIdString |
|
businessUnitKeyString |
|
keyString |
|
expand | The parameter can be passed multiple times. |
application/jsonversionInt | Expected version of the QuoteRequest to which the changes should be applied. If the expected version does not match the actual version, a ConcurrentModification error will be returned. |
actionsArray of QuoteRequestUpdateAction | Update actions to be performed on the QuoteRequest. |
application/jsoncurl https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key} -i \--header "Authorization: Bearer ${BEARER_TOKEN}" \--header 'Content-Type: application/json' \--data-binary @- << DATA{"version" : 1,"actions" : [ {"action" : "changeQuoteRequestState","quoteRequestState" : "Cancelled"} ]}DATA
{"id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc","version": 1,"createdAt": "2022-09-22T15:36:17.510Z","lastModifiedAt": "2022-09-22T15:41:55.816Z","quoteRequestState": "Cancelled","comment": "Give me 10% discount","customer": {"typeId": "customer","id": "92f5a867-bf19-47ab-982c-6720a03a3921"},"lineItems": [{"id": "b925a817-d5ad-48bb-a407-29ad8e0649b5","productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f","name": {"en": "SAPPHIRE"},"productType": {"typeId": "product-type","id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d","version": 8},"productSlug": {"en": "sapphire1421832124423"},"variant": {"id": 1,"sku": "sku_SAPPHIRE_variant1_1421832124423","prices": [{"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"}],"images": [{"url": "https://www.commercetools.com/cli/data/252542005_1.jpg","dimensions": {"w": 1400,"h": 1400}}],"attributes": [],"assets": []},"price": {"value": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 2800},"id": "8da659ef-9e54-447d-9c36-84912db1848f"},"quantity": 2,"discountedPricePerQuantity": [],"state": [{"quantity": 2,"state": {"typeId": "state","id": "7c2e2694-aefe-43d7-888e-6a99514caaca"}}],"priceMode": "Platform","lineItemMode": "Standard","totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"perMethodTaxRate": [],"taxedPricePortions": []}],"totalPrice": {"type": "centPrecision","fractionDigits": 2,"currencyCode": "EUR","centAmount": 5600},"customLineItems": [],"directDiscounts": [],"inventoryMode": "None","taxMode": "Platform","taxRoundingMode": "HalfEven","taxCalculationMode": "LineItemLevel"}