Add to Cart

Add a product to the cart.

POST /v2/cpq/carts/{cart_ID}/items

note: By default, items deleted from a cart are not evaluated for Vlocity Rules. To enable evaluation of deleted items, set the <!-- broken link-->ShouldConsiderDeletedItems configuration setting to true. CME packages are large.

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.

Remote Method

postCartsItems

note: The postCartsItems method supports the addition of one item at a time. If you must add multiple items, make multiple postCartsItems calls.

REST Handler

APIItemsCartsCpqV2

Apex Remote Service

Class: vlocity_cmt.CardCanvasController
Method: global static Object doGenericInvoke(String sClassName, String sMethodName, String input, String options)

Apex Remote Input Map

The following example illustrates how to call this API from Apex code.

"sClassName": "vlocity_cmt.CpqAppHandler"
"sMethodName": "postCartsItems"
"input":  SAME AS SAMPLE REQUEST BODY
"options": {"vlcClass":"vlocity_cmt.CpqAppHandler"}
Map<String, Object> inputMap = new Map<String, Object>();
Map<String, Object> outputMap = new Map<String, Object>();
Map<String, Object> optionsMap = new Map<String, Object>();
Map<String, Object> itemsMap = new Map<String, Object>();
List<Object> items = new List<Object>();
Id priceBookEntryId = Id.valueOf('Replace with the pricebook entry id of the product to be added');
Id cartId = Id.valueOf('replace with the id of the cart');
itemsMap.put('itemId', priceBookEntryId);
items.add(itemsMap);
inputMap.put('items', items);
inputMap.put('cartId', cartId);
inputMap.put('validate', true); // set to false if validation is not required
inputMap.put('price', true); // set to false if pricing is not required
vlocity_cmt.CpqAppHandler cpqAppHandlerService = new  vlocity_cmt.CpqAppHandler();
cpqAppHandlerService.invokeMethod('postCartsItems', inputMap, outputMap, optionsMap);
System.debug('outputMap:' + outputMap);

Package

Communication (vlocity_cmt)

API Parameters and Response Format

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

Resource Information

Response Format JSON
Resource URL /v2/cpq/carts/*/items Example: /services/apexrest/{namespace}/v2/cpq/carts/801360000000oQ9/items

Example Request

{
  "methodName": "postCartsItems",
  "items": [
    {
      "parentId": "8021N000006wtTTQAY",
      "parentHierarchyPath": "01to000000Am1FGAAZ",
      "itemId": "01u1N00000DPpdFQAT",
      "parentRecord": {
        "records": [
          {
            "displaySequence": -1,
            "Id": {
              "value": "8021N000006wtTTQAY",
              "previousValue": null,
              "originalValue": null,
              "messages": [],
              "label": "Order Product ID",
              "hidden": false,
              "fieldName": "Id",
              "editable": false,
              "dataType": "ID",
              "actions": {}
            },
            "Pricebook2Id": "01so0000000jvwiAAA",
            "Product2Id": "01to000000Am1FGAAZ",
            "UnitPrice": {
              "value": 0,
              "previousValue": null,
              "originalValue": null,
              "messages": [],
              "label": "Unit Price",
              "hidden": true,
              "fieldName": "UnitPrice",
              "editable": false,
              "dataType": "CURRENCY",
              "actions": {}
            },
            "Name": "Product Hier 3",
            "vlocity_cmt__RecurringPrice__c": 0,
            "IsActive": true,
            "Product2": {
              "attributes": {
                "type": "Product2",
                "url": "/services/data/v41.0/sobjects/Product2/01to000000Am1FGAAZ"
              },
              "Name": "Product Hier 3",
              "vlocity_cmt__IsConfigurable__c": false,
              "RecordTypeId": "012o0000000pDXFAA2",
              "Id": "01to000000Am1FGAAZ",
              "vlocity_cmt__JSONAttribute__c": null
            },
            "productId": "01to000000Am1FGAAZ",
            "defaultQuantity": 1,
            "minQuantity": 0,
            "maxQuantity": 1000,
            "groupMinQuantity": 0,
            "groupMaxQuantity": 99999,
            "sequenceNumber": 1,
            "productChildItemDefinition": {
              "attributes": {
                "type": "vlocity_cmt__ProductChildItem__c",
                "url": "/services/data/v41.0/sobjects/vlocity_cmt__ProductChildItem__c/a0ro00000050PjxAAE"
              },
              "Id": "a0ro00000050PjxAAE",
              "Name": "Root PCI",
              "vlocity_cmt__IsVirtualItem__c": false,
              "vlocity_cmt__Quantity__c": 1,
              "vlocity_cmt__MaxQuantity__c": 99999,
              "vlocity_cmt__MinQuantity__c": 0,
              "vlocity_cmt__MaximumChildItemQuantity__c": 99999,
              "vlocity_cmt__MinimumChildItemQuantity__c": 0,
              "vlocity_cmt__IsOverride__c": false,
              "vlocity_cmt__ParentProductId__c": "01to000000Am1FGAAZ",
              "vlocity_cmt__ChildLineNumber__c": "1",
              "vlocity_cmt__SeqNumber__c": 1,
              "vlocity_cmt__CollapseHierarchy__c": false,
              "vlocity_cmt__IsRootProductChildItem__c": true,
              "vlocity_cmt__ParentProductId__r": {
                "attributes": {
                  "type": "Product2",
                  "url": "/services/data/v41.0/sobjects/Product2/01to000000Am1FGAAZ"
                },
                "Name": "Product Hier 3",
                "Id": "01to000000Am1FGAAZ",
                "RecordTypeId": "012o0000000pDXFAA2"
              }
            },
            "productHierarchyPath": "01to000000Am1FGAAZ",
            "name": "Product Hier 3",
            "isVirtualItem": false,
            "provisioningStatus": "New",
            "hasChildren": true,
            "itemType": "lineItem",
            "PricebookEntryId": {
              "value": "01uo000000Bz2qbAAB",
              "previousValue": null,
              "originalValue": null,
              "messages": [],
              "label": "Price Book Entry ID",
              "hidden": false,
              "fieldName": "PricebookEntryId",
              "editable": false,
              "dataType": "REFERENCE",
              "actions": {}
            },
            "Quantity": {
              "value": 1,
              "previousValue": null,
              "originalValue": null,
              "messages": [],
              "label": "Quantity",
              "hidden": false,
              "fieldName": "Quantity",
              "editable": true,
              "dataType": "DOUBLE",
              "actions": {}
            },
            "vlocity_cmt__OneTimeTotal__c": {
              "value": 300,
              "previousValue": null,
              "originalValue": null,
              "messages": [],
              "label": "One Time Total",
              "hidden": false,
              "fieldName": "vlocity_cmt__OneTimeTotal__c",
              "editable": false,
              "dataType": "CURRENCY",
[EXAMPLE TRUNCATED FOR BREVITY]

Example Response

{
  "totalSize": 1,
  "messages": [
    {
      "severity": "INFO",
      "messageId": null,
      "message": "Successfully added.",
      "code": "150",
      "bundleId": null,
      "actions": {}
    }
  ],
  "actions": {
    "addtocart": {
      "rest": {
        "params": {
          "cartId": "8011N00000157LkQAI",
          "items": [
            {
              "isPartialPromo": true,
              "itemId": "a2w1N000001F9TiQAK"
            }
          ]
        },
        "method": "POST",
        "link": "/services/apexrest/vlocity_cmt/v2/cpq/carts/8011N00000157LkQAI/promotions"
      },
      "remote": {
        "params": {
          "items": [
            {
              "isPartialPromo": true,
              "itemId": "a2w1N000001F9TiQAK"
            }
          ],
          "cartId": "8011N00000157LkQAI",
          "methodName": "postCartsPromoItems"
        }
      },
      "client": {
        "params": {
          "methodName": "postCartsPromoItems",
          "items": [
            {
              "isPartialPromo": true,
              "itemId": "a2w1N000001F9TiQAK"
            }
          ]
        }
      }
    },
    "itempricesupdated": {
      "rest": {
        "params": {},
        "method": "GET",
        "link": "/services/apexrest/vlocity_cmt/v2/cpq/carts/8011N00000157LkQAI/price"
      },
      "remote": {
        "params": {
          "cartId": "8011N00000157LkQAI",
          "methodName": "getCartLineItemPrices"
        }
      },
      "client": {
        "params": {}
      }
    }
  },
  "records": [
    {
      "messages": [],
      "displaySequence": -1,
      "vlocity_cmt__InCartQuantityMap__c": {
        "value": {
          "01t1N00000AptOXQAZ": 1,
          "01t1N00000AptOcQAJ": 1,
          "01t1N00000ApqNdQAJ": 1,
          "01t1N00000ByiiDQAR": 1
        },
        "previousValue": null,
        "originalValue": null,
        "messages": [],
        "label": "InCartQuantityMap",
        "hidden": true,
        "fieldName": "vlocity_cmt__InCartQuantityMap__c",
        "editable": false,
        "dataType": "TEXTAREA",
        "actions": {}
      },
      "Id": {
        "value": "8021N000006wtTTQAY",
        "previousValue": null,
        "originalValue": null,
        "messages": [],
        "label": "Order Product ID",
        "hidden": false,
        "fieldName": "Id",
        "editable": false,
        "dataType": "ID",
        "actions": {}
      },
      "isVirtualItem": false,
      "lineItems": {
        "totalSize": 0,
        "messages": [],
        "records": [
          {
            "messages": [],
            "actions": {
              "addtocart": {
                "rest": {
                  "params": {
                    "items": [
                      {
                        "quantity": 1,
                        "parentId": "8021N000006wtTTQAY",
                        "parentHierarchyPath": "01to000000Am1FGAAZ",
                        "itemId": "01u1N00000DPpdFQAT"
                      }
                    ],
                    "cartId": "8011N00000157LkQAI",
                    "price": true,
                    "validate": true,
                    "includeAttachment": false,
                    "pagesize": 10,
                    "lastRecordId": null,
                    "query": null
                  },
                  "method": "POST",
                  "link": "/services/apexrest/vlocity_cmt/v2/cpq/carts/8011N00000157LkQAI/items"
                },
                "remote": {
                  "params": {
                    "methodName": "postCartsItems",
                    "items": [
                      {
                        "quantity": 1,
                        "parentId": "8021N000006wtTTQAY",
                        "parentHierarchyPath": "01to000000Am1FGAAZ",
                        "itemId": "01u1N00000DPpdFQAT"
                      }
                    ],
                    "cartId": "8011N00000157LkQAI",
                    "price": true,
                    "validate": true,
                    "includeAttachment": false,
                    "pagesize": 10,
                    "lastRecordId": null,
                    "query": null
                  }
                },
                "client": {
                  "params": {}
                }
              },
              "updateitems": {
                "rest": {
                  "params": {
                    "items": [
                      {
                        "itemId": "8021N000006wtUMQAY"
                      }
                    ],
                    "filters": null,
                    "fields": null,
                    "cartId": "8011N00000157LkQAI",
                    "price": true,
                    "validate": true,
                    "includeAttachment": false,
                    "pagesize": 10,
                    "lastRecordId": null,
                    "query": null
                  },
                  "method": "PUT",
                  "link": "/services/apexrest/vlocity_cmt/v2/cpq/carts/8011N00000157LkQAI/items"
                },
                "remote": {
                  "params": {
                    "methodName": "putCartsItems",
                    "items": [
                      {
                        "itemId": "8021N000006wtUMQAY"
                      }
                    ],
                    "filters": null,
                    "fields": null,
                    "cartId": "8011N00000157LkQAI",
                    "price": true,
                    "validate": true,
                    "includeAttachment": false,
                    "pagesize": 10,
                    "lastRecordId": null,
                    "query": null
                  }
                },
                "client": {
                  "params": {}
                }
              },
[EXAMPLE TRUNCATED FOR BREVITY]