v1

latestOpenAPI 3.0.1MIT2026-07-263151,3912.3 MB
Management

Update Stacking Rules

Updates the stacking rules.

Only the provided fields will be updated. However, if you update an array, the content of the array is overwritten. This means that if you want to add new values to an array and retain existing ones, you need to provide both the existing and new values in the request.

📘 Stacking Rules Documentation

Read [the Stacking Rules article]/orchestrate/stacking-rules to learn how they work.

put/management/v1/projects/{projectId}/stacking-rules/{stackingRulesId}

Request body

exclusive_categoriesstring[]

Lists the IDs of exclusive categories. A redeemable from a campaign with an exclusive category is the only redeemable to be redeemed when applied with redeemables from other campaigns unless these campaigns are exclusive or joint.

joint_categoriesstring[]

Lists the IDs of the joint categories. A campaign with a joint category is always applied regardless of the exclusivity of other campaigns.

redeemables_limitinteger

Defines how many redeemables can be sent in one request. Note: more redeemables means more processing time.

applicable_redeemables_limitinteger

Defines how many redeemables can be applied in one request. The number must be less than or equal to redeemables_limit. For example, a user can select 30 discounts but only 5 will be applied to the order and the remaining will be SKIPPED according to the redeemables_sorting_rule.

applicable_redeemables_per_category_limitinteger nullable

Defines how many redeemables with the same category can be applied in one request. The number must be less than or equal to applicable_redeemables_limit. The ones above the limit will be SKIPPED according to the redeemables_sorting_rule.

applicable_redeemables_category_limitsobject

Lists categories by category IDs (keys) and defines their limits (values) of applicable redeemables that belong to campaigns with that category.

applicable_exclusive_redeemables_limitinteger

Defines how many redeemables with an assigned exclusive category can be applied in one request. The ones above the limit will be SKIPPED according to the redeemables_sorting_rule.

applicable_exclusive_redeemables_per_category_limitinteger nullable

Defines how many redeemables with an assigned exclusive category can be applied in one request. The ones above the limit will be SKIPPED according to the redeemables_sorting_rule. The number must be less than or equal to applicable_exclusive_redeemables_limit.

discount_calculation_mode'INITIAL_AMOUNT' | 'DISCOUNTED_AMOUNT'

Defines if the discounts are applied by taking into account the initial order amount or the discounted order amount.

initial_amount_mode_categoriesstring[]

Lists the IDs of the categories that apply a discount based on the initial amount.

discounted_amount_mode_categoriesstring[]

Lists the IDs of the categories that apply a discount based on the discounted amount.

redeemables_application_mode'ALL' | 'PARTIAL'

Defines the application mode for redeemables. "ALL" means that all redeemables must be validated for the redemption to be successful. "PARTIAL" means that only those redeemables that can be validated will be redeemed. The redeemables that fail validaton will be skipped.

redeemables_sorting_rule'CATEGORY_HIERARCHY' | 'REQUESTED_ORDER'

Defines redeemables sorting rule. CATEGORY_HIERARCHY means that redeemables are applied oaccording to the category priority. REQUESTED_ORDER means that redeemables are applied in the sequence provided in the request.

redeemables_products_application_mode'STACK' | 'ONCE'

Defines redeemables products application mode. STACK means that multiple discounts can be applied to a product. ONCE means that only one discount can be applied to the same product.

redeemables_no_effect_rule'REDEEM_ANYWAY' | 'SKIP'

Defines redeemables no effect rule. REDEEM_ANYWAY means that the redeemable will be redeemed regardless of any restrictions or conditions in place. SKIP means that the redeemable will be processed only when an applicable effect is calculated.

no_effect_skip_categoriesstring[]

Lists category IDs. Redeemables with a given category are skipped even if the redeemables_no_effect_rule is set to REDEEM_ANYWAY. Category IDs can't overlap with the IDs in no_effect_redeem_anyway_categories.

no_effect_redeem_anyway_categoriesstring[]

Lists category IDs. Redeemables with a given category are redeemed anyway even if the redeemables_no_effect_rule is set to SKIP. Category IDs can't overlap with the IDs in no_effect_skip_categories.

redeemables_rollback_order_mode'WITH_ORDER' | 'WITHOUT_ORDER'

Defines the rollback mode for the order. WITH_ORDER is a default setting. The redemption is rolled back together with the data about the order, including related discount values. WITHOUT_ORDER allows rolling the redemption back without affecting order data, including the applied discount values.

Response

Returns the details about the updated stacking rules.

idstring

The unique identifier of the stacking rules.

exclusive_categoriesstring[] required

Lists the IDs of exclusive categories. A redeemable from a campaign with an exclusive category is the only redeemable to be redeemed when applied with redeemables from other campaigns unless these campaigns are exclusive or joint.

joint_categoriesstring[] required

Lists the IDs of the joint categories. A campaign with a joint category is always applied regardless of the exclusivity of other campaigns.

redeemables_limitinteger required

Defines how many redeemables can be sent in one request. Note: more redeemables means more processing time.

applicable_redeemables_limitinteger required

Defines how many redeemables can be applied in one request. The number must be less than or equal to redeemables_limit. For example, a user can select 30 discounts but only 5 will be applied to the order and the remaining will be SKIPPED according to the redeemables_sorting_rule.

applicable_redeemables_per_category_limitinteger nullable required

Defines how many redeemables with the same category can be applied in one request. The number must be less than or equal to applicable_redeemables_limit. The ones above the limit will be SKIPPED according to the redeemables_sorting_rule.

applicable_redeemables_category_limitsobject required

Lists categories by category IDs (keys) and defines their limits (values) of applicable redeemables that belong to campaigns with that category.

applicable_exclusive_redeemables_limitinteger required

Defines how many redeemables with an assigned exclusive category can be applied in one request. The ones above the limit will be SKIPPED according to the redeemables_sorting_rule.

applicable_exclusive_redeemables_per_category_limitinteger nullable required

Defines how many redeemables with an assigned exclusive category can be applied in one request. The ones above the limit will be SKIPPED according to the redeemables_sorting_rule. The number must be less than or equal to applicable_exclusive_redeemables_limit.

discount_calculation_mode'INITIAL_AMOUNT' | 'DISCOUNTED_AMOUNT' required

Defines if the discounts are applied by taking into account the initial order amount or the discounted order amount.

initial_amount_mode_categoriesstring[] required

Lists the IDs of the categories that apply a discount based on the initial amount.

discounted_amount_mode_categoriesstring[] required

Lists the IDs of the categories that apply a discount based on the discounted amount.

redeemables_application_mode'ALL' | 'PARTIAL' required

Defines the application mode for redeemables. "ALL" means that all redeemables must be validated for the redemption to be successful. "PARTIAL" means that only those redeemables that can be validated will be redeemed. The redeemables that fail validaton will be skipped.

redeemables_sorting_rule'CATEGORY_HIERARCHY' | 'REQUESTED_ORDER' required

Defines redeemables sorting rule. CATEGORY_HIERARCHY means that redeemables are applied oaccording to the category priority. REQUESTED_ORDER means that redeemables are applied in the sequence provided in the request.

redeemables_products_application_mode'STACK' | 'ONCE' required

Defines redeemables products application mode. STACK means that multiple discounts can be applied to a product. ONCE means that only one discount can be applied to the same product.

redeemables_no_effect_rule'REDEEM_ANYWAY' | 'SKIP' required

Defines redeemables no effect rule. REDEEM_ANYWAY means that the redeemable will be redeemed regardless of any restrictions or conditions in place. SKIP means that the redeemable will be processed only when an applicable effect is calculated.

no_effect_skip_categoriesstring[] required

Lists category IDs. Redeemables with a given category are skipped even if the redeemables_no_effect_rule is set to REDEEM_ANYWAY. Category IDs can't overlap with the IDs in no_effect_redeem_anyway_categories.

no_effect_redeem_anyway_categoriesstring[] required

Lists category IDs. Redeemables with a given category are redeemed anyway even if the redeemables_no_effect_rule is set to SKIP. Category IDs can't overlap with the IDs in no_effect_skip_categories.

redeemables_rollback_order_mode'WITH_ORDER' | 'WITHOUT_ORDER' required

Defines the rollback mode for the order. WITH_ORDER is a default setting. The redemption is rolled back together with the data about the order, including related discount values. WITHOUT_ORDER allows rolling the redemption back without affecting order data, including the applied discount values.

created_atstring date-time

Timestamp representing the date and time when the stacking rules were created. The value for this parameter is shown in the ISO 8601 format.

updated_atstring date-time

Timestamp representing the date and time when the stacking rules were updated. The value for this parameter is shown in the ISO 8601 format.

Example response

{
  "created_at": "2024-01-02T08:31:46.562Z"
}