---
title: "Promotions actions, commands, and pipelines"
slug: "promotions-actions-commands-and-pipelines"
abstract: ""
---
# Promotions actions, commands, and pipelines

The following sections describe actions, commands, and pipelines related to promotions.

<details>
<summary><h2>Promotion books</h2></summary>

The following table describes the actions, commands, and pipelines pertaining to promotion books:

| Action/Command/Pipeline | Description |
| --- | --- |
| `AddPromotionBook`<br><br>`AddPromotionBookCommand`<br><br>`AddPromotionBookPipeline` | Adds a promotion book. Requires a unique promotion book name. |
| `EditPromotionBook`<br><br>`EditPromotionBookCommand`<br><br>`EditPromotionBookPipeline` | Edits a promotion book. |
| `AssociateCatalog`<br><br>`AssociateCatalogToBookCommand`<br><br>`AssociateCatalogToBookPipeline` | Associates a promotion book to a specific catalog. |
| `DisassociateCatalog`<br><br>`DisassociateCatalogFromBookCommand`<br><br>`DisassociateCatalogFromBookPipeline` | Disassociates a promotion book from a specific catalog. |
| `GetPromotionBookAssociatedCatalogs`<br><br>`GetBookAssociatedCatalogsCommand`<br><br>`GetBookAssociatedCatalogsPipeline` | Retrieves all catalogs associated with a promotion book. |

</details>

<details>
<summary><h2>Promotions</h2></summary>

The following table describes the actions, commands, and pipelines pertaining to promotions:

| Action/Command/Pipeline | Description |
| --- | --- |
| `AddPromotion`<br><br>`AddPromotionCommand`<br><br>`AddPromotionPipeline` | Adds a promotion. Requires the parent promotion book name and a unique promotion name. |
| `EditPromotion`<br><br>`EditPromotionCommand`<br><br>`EditPromotionPipeline` | Edits a promotion. The promotion’s approval status must not be Approved. |
| `DuplicatePromotion`<br><br>`DuplicatePromotionCommand`<br><br>`DuplicatePromotionPipeline` | Duplicates a promotion. |
| `RequestPromotionApproval`<br><br>`SetApprovalStatusCommand` | Changes a promotion’s approval status from Draft to ReadyForApproval. |
| `ApprovePromotion`<br><br>`SetApprovalStatusCommand` | Changes a promotion's approval status from ReadyForApproval to Approve. |
| `RejectPromotion`<br><br>`SetApprovalStatusCommand` | Changes a promotion’s approval status from ReadyForApproval to Draft. |
| `RetractPromotion`<br><br>`SetApprovalStatusCommand` | Changes a promotion’s approval status from Approved back to Draft. Applicable only before the promotion is made fully active. |
| `DisablePromotion`<br><br>`DisablePromotionCommand`<br><br>`DisablePromotionPipeline` | Disables an approved promotion. Applicable when the promotion is approved and active. |
| `DeletePromotion`<br><br>`DeletePromotionCommand`<br><br>`DeletePromotionPipeline` | Deletes a promotion. The promotion’s approval status must not be Approved. |
| `EvaluatePromotionsQualificationsCommand`<br><br>`EvaluatePromotionsQualificationsPipeline` | These are used as part during the runtime of the promotions service. |
| `DiscoverPromotionsPipeline` | This is used as part during the runtime of the promotions service. |
| `FilterQualifyingPromotionsPipeline` | Searches for promotions in the system. |

> [!note]
> `ApplyPromotionsBenefitsCommand` and the corresponding pipeline are not used.

</details>

<details>
<summary><h2>Qualifications</h2></summary>

The following table describes the actions, commands, and pipelines pertaining to the Qualification component:

| **Action/Command/Pipeline** | Description |
| --- | --- |
| `SelectQualification`<br><br>`GetOperatorsCommand`<br><br>`GetConditionsCommand` | Selects a qualification from all the qualifications available in the system. This action is implemented together with the AddQualification. |
| `AddQualification`<br><br>`AddQualificationCommand`<br><br>`AddQualificationPipeline` | Adds the selected qualification to a promotion. The promotion’s approval status must be Draft. |
| `EditQualification`<br><br>`EditQualificationCommand`<br><br>`EditQualificationPipeline` | Edits a promotion’s qualification. The promotion’s approval status must be Draft. |
| `DeleteQualification`<br><br>`DeleteQualificationCommand`<br><br>`DeleteQualificationPipeline` | Removes a qualification from a promotion. The promotion’s approval status must be Draft. All qualifications can be deleted from a promotion only if the promotion has no benefits. |

</details>

<details>
<summary><h2>Benefits</h2></summary>

The following table describes the promotions actions, commands, and pipelines pertaining to the Benefit component:

| Action/Command/Pipeline | Description |
| --- | --- |
| `SelectBenefit`<br><br>`GetOperatorsCommand`<br><br>`GetActionsCommand` | Selects a benefit from all the benefits available in the system. |
| `AddBenefit `<br><br>`AddBenefitCommand`<br><br>`AddBenefitPipeline` | Adds the selected benefit to a promotion. The promotion’s approval status must be Draft. The promotion must have at least one qualification. |
| `EditBenefit`<br><br>`EditBenefitCommand`<br><br>`AddBenefitPipeline` | Edits a promotion’s benefit. The promotion’s approval status must be Draft. |
| `DeleteBenefit`<br><br>`DeleteBenefitCommand`<br><br>`DeleteBenefitPipeline` | Removes a benefit from a promotion. The promotion’s approval status must be Draft. |

</details>

<details>
<summary><h2>Items</h2></summary>

The following table describes the promotions actions, commands, and pipelines pertaining to the Item component:

| Action/Command/Pipeline | Description |
| --- | --- |
| `AddItem`<br><br>`AddPromotionItemCommand`<br><br>`AddPromotionItemPipeline` | Adds an Item to a promotion. An item must be unique within a promotion. The promotion’s approval status must be Draft. |
| `RemoveItem`<br><br>`RemovePromotionItemCommand`<br><br>`RemovePromotionItemPipeline` | Removes an item from a promotion. The promotion’s approval status must be Draft. |

</details>