---
title: "Bundle commands, pipelines, and blocks"
slug: "bundle-commands-pipelines-and-blocks"
abstract: ""
---
# Bundle commands, pipelines, and blocks

The following table describes bundle commands, pipelines, and blocks.

| **Command/Pipeline** | **Description** |
| --- | --- |
| `CalculateBundleAutomaticPriceBlock` | Calculates the bundle price or calculates the bundle price for a customer selection using [Automatic pricing](https://doc.sitecore.com/xp/en/users/101/sitecore-experience-commerce/dynamic-bundles.html). |
| `CalculateBundleSelectionPriceBlock` | Calculates the bundle price for a customer selection using [Manual pricing](https://doc.sitecore.com/xp/en/users/101/sitecore-experience-commerce/dynamic-bundles.html). |
| `CreateBundleCommand`<br><br>`CreateBundlePipeline` | Creates a new bundle container in the Commerce Engine.<br><br>Command parameters include:<br><br><ul><li>`bundleType`: the type of bundle (string). For example: *static*.</li><li>`bundleID`: a unique identifier for the bundle (string).</li><li>`name`: the internal name of the bundle (string).</li><li>`displayName`: the bundle name displayed on the storefront (string).</li><li>`description`: text describing the bundle (string).</li><li>`brand`: the brand of the bundle (string).</li><li>`manufacturer`: manufacturer of the bundle (string).</li><li>`typeOfGood`: type of good corresponding to bundled products (string).</li></ul> |
| `CreateBundleBlock` | Maps arguments from the `CreateBundleCommand `to the `SellableItem` entity that represents the bundle.<br><br>The bundle item created returns a `bundleId` along with other bundle parameters as defined in the `CreateBundleCommand`. |
| `CreateBundleRelationshipsBlock` | Establishes relationships between a bundle and its constituent sellable items. |
| `FinalizeBundleBlock` | Defines the finalized bundle. |
| `GetBundleSelectionPricingCommand` | Command parameters include:<br><br><ul><li>`itemId`: the id of the bundle.</li><li>`subItems`: a collection of selected bundle items (BundleItem).</li></ul> |
| `GetBundleSelectionPricingPipeline` | Retrieves the bundle price for the customer’s selection. |
| `PrepBundleBlock` | Validates the uniqueness of the bundle name (`ProductId`) in the system. If a bundle with the same `ProductId` is found, a validation error is returned. |
| `PrepGetBundleSelectionPricingBlock` | Populates the `ProductArgument` for all selected bundle items. |
| `ValidateDynamicBundleSelectionBlock` | Validates the bundle selection and quantity range. |