---
schema_version: "1"
id: 606037b2d61361685056c58120e48b1989b5d8e7113904832e3d24723cf00adf
title: Adding Pre- and Post-Processing Logic
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_adding_pre__and_post_processing_logic.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_adding_pre__and_post_processing_logic.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: a010fecabdf590d83e5a05531204469d0752fb01915b0863bcb2f8119223fae8
description: When adding or deleting products or promotions, you can define pre- and post-processing logic to be executed before and after the cart is modified by defining a method containing the desired logic and assigning it to the corresponding pre- or post-processing hook.
products:
  - Communications
  - Media
  - Energy and Utilities
release: "264"
---
# Adding Pre- and Post-Processing Logic

When adding or deleting products or promotions, you can define pre- and post-processing logic to be executed before and after the cart is modified by defining a method containing the desired logic and assigning it to the corresponding pre- or post-processing hook.

Example:

```
$scope.beforeAddToCartHook = myBeforeAddToCartHookMethod(myHookPayload) {...logic goes here...};
```

The following hooks are available.

CPQPromotionItemController:

- $scope.beforeAddToCartHook(payload);
- $scope.afterAddToCartHook(payload);

CPQPromotionsController:

- $scope.beforeDeletePromotionItemHook(payload);
- $scope.afterDeletePromotionItemHook(payload);

CPQProductItemController:

- $scope.beforeAddToCartHook(payload);
- $scope.afterAddToCartHook(payload);

CPQCartItemController:

- $scope.beforeAddToCartHook(payload);
- $scope.afterAddToCartHook(payload);
- $scope.beforeDeleteItemFromCartHook(payload);
- $scope.afterDeleteItemFromCartHook(payload);
- $scope.getAlternativePaymentFieldMapHook(data);