Submit a Cancel Order Request

Cancel an in-flight order.

1POST /v2/cpq/carts/{order_ID}/cancel

For CME Winter ‘20 and later releases, the Cancel button is used to cancel an in-flight order.

For releases prior to CME Winter ‘20, the Cancel Order button is used to invoke the submitCancelOrder API, create a supplemental order, and submit the order to Order Management.

The submitCancelOrder API uses the Supplemental Order interface implementations that predate the CME Winter ‘20 release, including SupplementalOrderService and XOMSupplementalOrderLifeCycle. See In-Flight Order Cancellation.

This API supports the guest user enhancements that Salesforce introduced with the Winter ‘21 release. To encrypt and decrypt data for guest users, use the UserSecurity class with this API. See Guest User Technical Details.

For additional information, ​see UserSecurity Class and CPQ and Digital Commerce Changes for Guest Users.

Apex Method 

Use this method with the supplemental order’s ID as input (supplementalOrdId) to submit a cancel order request.

1public static void submitSupplementalOrder(Id originalOrdId, Id supplementalOrdId)
2{
3    final String methodName = 'submitCancelOrder';
4    Map<String, Object> inputMap = new Map<String, Object>
5    {
6        'cartId' => originalOrdId,
7        'methodName' => methodName,
8        'cancelOrderId' => supplementalOrdId
9    };
10    Map<String, Object> outputMap = new Map<String, Object>();
11    Map<String, Object> optionsMap = new Map<String, Object>();
12    vlocity_cmt.CpqAppHandler handler = new vlocity_cmt.CpqAppHandler();
13    handler.invokeMethod(methodName, inputMap, outputMap, optionsMap);
14
15    // traverse the result that was returned, to find the supplemental order id.
16    vlocity_cmt.JSONResult result = (vlocity_cmt.JSONResult) outputMap.get('result');
17}

Package 

Communication (vlocity_cmt)

API Parameters and Response Format 

For API parameter names and descriptions, see Cart-Based API Swagger Reference.

Resource Information 

Response FormatJSON
Resource URL/services/apexrest/{namespace}/v2/cpq/carts/{order_ID}/cancel

Example Request 

1POST
2/services/apexrest/v2/cpq/carts/{order_ID}/cancel

Example Request Body 

1{
2  "cartId": "order_ID",
3  "subaction": "submitCancelOrder",
4  "cancelOrderId": "supplemental_order_ID"
5}

See Also