Skip to content

Conversation

@bc-vincent-zhao
Copy link
Contributor

@bc-vincent-zhao bc-vincent-zhao commented Dec 15, 2025

…promotion api

DEVDOCS-6652

What changed?

add maximum_allowed_discount_amount field to the promotion api

Release notes draft

ping @bigcommerce/team-promotions @bc-jwk @bigcommerce/dev-docs

The maximum monetary value that can be applied as a discount. It can take value from 1 to 10000000.
The application of this maximum depends on the discount type:
- Discount on shipping: the max limit is distributed to the first number of shipping destinations until it is reached
- Discount on products: the max limit is distributed to the first number of eligible products until it is reached
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably we need to double check if this aligns with the project's description: https://bigcommercecloud.atlassian.net/browse/PROJECT-7350

image

Copy link
Contributor Author

@bc-vincent-zhao bc-vincent-zhao Dec 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Donald for noticing this 🙇 , it is indeed different from the original PR Anshu prepared, I changed the description here deliberately based on the latest discussion and actual implementation of the feature.

For example: when we have a $10 off each product, maximum $20 promotion and we have 3 items each cost $100, the resulting discount would be $10 discount for the first 2 items (there's no weighted distribution) cc @bc-chaozhang

more examples can be found at https://github.com/bigcommerce/bigcommerce/blob/master/tests/Integration/Promotion/CartItemDiscountMaximumAllowedTest.php

@bc-jwk has tested the behaviour extensively and he's ok with the current behaviour

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for confirmation Vincent, probably worth updating the Project description to latest info so would be easier for future references 🙇

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving a comment here for posterity.

The current implementation and behaviour is acceptable since the lift to introduce isn't too complex and we avoid making huge changes to the engine. Plus it should really fit the majority of use cases based on the feedback we've received.

We will release this into the wild and iterate when necessary if we receive different feedback.

Copy link
Contributor

@donald-nguyen-bc donald-nguyen-bc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

YevenLourance
YevenLourance previously approved these changes Dec 15, 2025
denis-bc
denis-bc previously approved these changes Dec 15, 2025
Copy link
Collaborator

@bc-terra bc-terra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compiles without issue. looks good. straightforward explanation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants