# Get Details of Product

For all disqualified promotions or products, get a message about which rule conditions failed. Return information about why a product or promotion was disqualified.

```nolang
GET /v2/cpq/carts/{cart_ID}/products/{pricebook_entry_ID}?include=qualifications&ruleType=Qualification
```

or

```nolang
GET v2/cpq/carts/{cart_ID}/promotions/{promotion_ID}?include=qualifications&ruleType=Qualification
```

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
getRuleMessages
```

## REST Handler

```nolang
APIProductsCartsCpqV2
```

## Apex Remote Service

```nolang
CpqAppHandler
```

## Apex Remote Input Map

```nolang
{
  methodName: getRuleMessages
  ruleEvaluationInput: null
  ruleType: Qualification
  include: qualifications
  id: <pricebookentryId/promotionId>
  cartId:<cartId>
}
```

## Package

Communications (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/801f4000000kCNPAA2/products/01uf4000000sMtjAAE?include=qualifications&ruleType=Qualification`   |
| Resource URL    | `/services/apexrest/{namespace}/v2/cpq/carts/801f4000000kCNPAA2/promotions/a2ff4000000LUCDAA4?include=qualifications&ruleType=Qualification` |

## Example Request

```nolang
GET
/services/apexrest/vlocity_cmt/v2/cpq/carts/801f4000000kCNPAA2/products/01uf4000000sMtjAAE?include=qualifications&ruleType=Qualification
```

## Example Response

```nolang
{
   "totalSize": 1,
   "messages": [],
   "records": [{
      "messages": [],
      "displaySequence": -1,
      "id": "01uf4000000sMtjAAE",
      "name": "TestProd-2",
      "product2id": "01tf4000000YyZyAAK",
      "product2.description": "TestProd-2",
      "qualifications": {
         "totalSize": 1,
         "messages": [],
         "records": [{
            "messages": [{
               "severity": "WARN",
               "messageId": null,
               "message": "ruleset: accName is not acc-4",
               "code": "207",
               "bundleId": null,
               "actions": {}
            }],
            "displaySequence": -1,
            "name": "Ruleset-5",
            "type": "ruleset",
            "qualifications": {
               "totalSize": 1,
               "messages": [],
               "records": [{
                  "messages": [{
                     "severity": "WARN",
                     "messageId": null,
                     "message": "accountName is not acc-4",
                     "code": "207",
                     "bundleId": null,
                     "actions": {}
                  }],
                  "displaySequence": -1,
                  "name": "accountName is acc-4",
                  "code": "accountName is acc-4",
                  "type": "rule",
                  "qualifications": {
                     "totalSize": 2,
                     "messages": [],
                     "records": [{
                        "messages": [{
                           "severity": "WARN",
                           "messageId": null,
                           "message": "rsCond: accName is not acc-4",
                           "code": "301",
                           "bundleId": null,
                           "actions": {}
                        }],
                        "displaySequence": -1,
                        "code": "accountName is acc-4-con-1",
                        "type": "rulecondition"
                     }, {
                        "messages": [{
                           "severity": "WARN",
                           "messageId": null,
                           "message": "channel is not web",
                           "code": "301",
                           "bundleId": null,
                           "actions": {}
                        }],
                        "displaySequence": -1,
                        "code": "cod-2-1-1",
                        "type": "rulecondition"
                     }]
                  }
               }]
            }
         }]
      }
   }]
}
```
