# Post Cart Promotion Items

Add applied promotion items to the cart.

```nolang
POST /v2/cpq/carts/{cart_ID}/promotions
```

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

```nolang
postCartsPromoItems
```

## REST Handler

```nolang
APIPromotionsCartsCpqV2
```

## Apex Remote Service

```nolang
CpqAppHandler
```

## Apex Remote Input Map

```nolang
{
 "items": [{
  "itemId": "a2ff4000000Li5eAAC"
 }],
 "promotionId": "a2ff4000000Li5eAAC",
 "cartId": "801f40000012NEIAA2",
 "methodName": "postCartsPromoItems"
}

```

## Package

Communication (vlocity_cmt)

## API Parameters and Response Format

For API parameter names and descriptions, see [Cart-Based API Swagger Reference](https://developer.salesforce.com/docs/industries/cme/references/cpq?meta=Summary).

## Resource Information

| Response Format | JSON                                                               |
| --------------- | ------------------------------------------------------------------ |
| Resource URL    | `/services/apexrest/{namespace}/v2/cpq/carts/{cart_ID}/promotions` |

## Example Request

```nolang
POST
/services/apexrest/vlocity_cmt/v2/cpq/carts/801f40000012NEIAA2/promotions

BODY:
{
  "items": [
    {
      "itemId": "a2ff4000000Li5eAAC"
    }
  ],
  "promotionId": "a2ff4000000Li5eAAC",
  "cartId": "801f40000012NEIAA2",
  "methodName": "postCartsPromoItems"
}

```

## Example Response

```nolang
{
 "totalSize": 0,
 "messages": [],
 "actions": {
  "itempricesupdated": {
   "rest": {
    "params": {},
    "method": "GET",
    "link": "/services/apexrest/vlocity_cmt/v2/cpq/carts/801f40000012NEIAA2/price"
   },
   "remote": {
    "params": {
     "cartId": "801f40000012NEIAA2",
     "methodName": "getCartLineItemPrices"
    }
   },
   "client": {
    "params": {}
   }
  },
  "itemadded": {
   "rest": {
    "params": {},
    "method": null,
    "link": null
   },
   "remote": {
    "params": {}
   },
   "client": {
    "params": {
     "items": [{
      "message": "TestProd-7 has been auto-added to the cart.",
      "Id": null
     }]
    }
   }
  },
  "rootitemadded": {
   "rest": {
    "params": {},
    "method": null,
    "link": null
   },
   "remote": {
    "params": {}
   },
   "client": {
    "params": {},
    "records": [{
       "messages": [],
       "actions": {
        "addtocart": {
         "rest": {
          "params": {},
          "method": null,
          "link": null
         },
         "remote": {
          "params": {
           "methodName": "postCartsItems",
           "items": [{
            "quantity": 1,
            "parentId": "802f4000000CuauAAC",
            "itemId": "01uf4000000sXvTAAU"
           }],
           "cartId": "801f40000012NEIAA2",
           "price": true,
           "validate": true,
           "includeAttachment": false,
           "pagesize": 20,
           "lastRecordId": null,
           "query": null
          }
         },
         "client": {
          "params": {}
         }
        },
        "updateitems": {
         "rest": {
          "params": {},
          "method": null,
          "link": null
         },
         "remote": {
          "params": {
           "methodName": "putCartsItems",
           "items": [{
            "itemId": "802f4000000CuauAAC"
           }],
           "filters": null,
           "fields": null,
           "cartId": "801f40000012NEIAA2",
           "price": true,
           "validate": true,
           "includeAttachment": false,
           "pagesize": 20,
           "lastRecordId": null,
           "query": null
          }
         },
         "client": {
          "params": {}
         }
        },
        "deleteitem": {
         "rest": {
          "params": {},
          "method": null,
          "link": null
         },
         "remote": {
          "params": {
           "methodName": "deleteCartsItems",
           "id": "802f4000000CuauAAC",
           "filters": null,
           "fields": null,
           "cartId": "801f40000012NEIAA2",
           "price": true,
           "validate": true,
           "includeAttachment": false,
           "pagesize": 20,
           "lastRecordId": null,
           "query": null
          }
         },
         "client": {
          "params": {}
         }
        },
        "configdelete": {
         "rest": {
          "params": {},
          "method": null,
          "link": null
         },
         "remote": {
          "params": {
           "methodName": "configDeleteItem",
           "id": "802f4000000CuauAAC",
           "cartId": "801f40000012NEIAA2"
          }
         },
         "client": {
          "params": {}
         }
        },
        "cloneitem": {
         "rest": {
          "params": {},
          "method": null,
          "link": null
         },
         "remote": {
          "params": {
           "methodName": "cloneItems",
           "items": [{
            "itemId": "802f4000000CuauAAC"
           }],
           "id": "802f4000000CuauAAC",
           "cartId": "801f40000012NEIAA2"
          }
         },
         "client": {
          "params": {}
         }
        },
        "modifyattributes": {
         "rest": {
          "params": {},
          "method": null,
          "link": null
         },
         "remote": {
          "params": {
           "methodName": "putItemAttributes",
           "items": [{
            "itemId": "802f4000000CuauAAC"
           }],
           "filters": null,
           "itemId": "802f4000000CuauAAC",
           "id": "802f4000000CuauAAC",
           "cartId": "801f40000012NEIAA2"
          }
         },
         "client": {
          "params": {}
         }
        },
...
EXAMPLE TRUNCATED FOR BREVITY
```
