---
schema_version: "1"
id: f109e909f0564ec04ea7d6a83373caed03083c396804ce43e9f545ae922ba7dc
title: Add a Promotion to a Basket
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries/cme/guides/comms-t-add-a-promotion-to-a-basket.md
canonical_url: https://developer.salesforce.com/docs/industries/cme/guide/comms-t-add-a-promotion-to-a-basket.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 911da0a32319c1d0386d069431e11c98b29921e1eaf70c8c33abd6f5eb94de73
products:
  - Communications, Media, Energy and Utilities APIs (Managed Package)
  - Industries Developer Documentation
---
# Add a Promotion to a Basket

There are two ways in your order capture journey that you can apply/add a promotion when you create or update your cart:

- Choose a promotion using [getOffers](https://developer.salesforce.com/docs/industries/cme/guide/comms-t-get-offers-by-catalog-api.md) and add it to the basket. The product to which the promotion applies is added to the basket by default. The promotion is applied to the product.

- Add a product and then [apply a promotion to it](https://developer.salesforce.com/docs/industries/cme/guide/comms-t-update-basket-contents-api.md).
- For a promotion with these configurations, promotion applies to all products in the bundle, not just the root product.
  - PromotionItem: RootProduct
  - Scope: Update Item Only

Adding a promotion to a basket is a two-step process if [Multi Transaction Service](https://developer.salesforce.com/docs/industries/cme/guide/comms-t-multi-transaction-service.md) (MTS). To enable MTS, see [CPQ Configuration Settings Reference](https://help.salesforce.com/s/articleView?id=ind.comms_t_cpq_configuration_settings_reference_148927.htm&type=5).

For example:

Step 1: Create the order Item and apply the promotion:

```nolang
POST /services/apexrest/vlocity_cmt/v3/catalogs/{catalog_code}/basket

Request body:
{"basketAction":"AddWithNoConfig","offer":"iPhone8Offer"}
```

Step 2: In the response of Step1, under the `validateAndPriceAction` node in the JSON response, a REST parameter named `transactionKey` is present. Add that transaction key in the request body to make the request for Step 2.

Create the order Item and apply a promotion:

```nolang
POST /services/apexrest/vlocity_cmt/v3/catalogs/{catalog_code}/basket
Request body:{"basketAction":"AddWithNoConfig","offer":"iPhone8Offer", "transactionKey":"111123mx12223232000"}
```

**note:** During the second step, the engine applies validation and pricing to the basket and returns an updated cartContextKey.
