Skip to content
Kitenzo Headless is currently invite-only. To enable it on your store, email support@kitenzo.com.

Discounts

A bundle’s discount object (on GET /bundles/:id) describes how the bundle is discounted. It can be null (no discount), a flat discount, or a tiered discount.

{
"type": "percentage",
"value": "10.00",
"flatOrTiered": "flat",
"minimum": null,
"operator": null,
"tiers": []
}
FieldTypeDescription
typestringpercentage | fixed | price.
valuestring | nullThe discount value for a flat discount.
flatOrTieredstringflat or tiered.
minimumstring | nullMinimum bundle price for the discount to apply.
operatorstring | nullmax or cumulative (how tiers combine).
tiersarrayPresent for tiered discounts.
typeMeaningExample
percentagePercent off10.00 → 10% off
fixedFixed amount off5.00 → $5 off
priceFixed final price for the bundle99.00 → bundle costs $99

flatOrTiered: "flat" applies a single value of the given type to the whole bundle. minimum, if set, gates the discount on the bundle’s price.

flatOrTiered: "tiered" activates different discount levels based on the customer’s selection. Each entry in tiers[]:

FieldTypeDescription
typestringThe condition: total_products | bulk_buy | total_price.
valuestringThe threshold to compare against.
operationstringgt | gte | lt | lte | eq.
discountstringThe discount amount/percentage for this tier.

Tier condition types

  • total_products — based on the total number of products in the bundle.
  • bulk_buy — based on the highest quantity of any single product.
  • total_price — based on the bundle’s total price before discount.

Operator (how tiers combine):

  • max — apply the single highest matching tier.
  • cumulative — sum all matching tiers.
{
"type": "percentage",
"flatOrTiered": "tiered",
"operator": "max",
"tiers": [
{ "type": "total_products", "value": "3", "operation": "gte", "discount": "10.00" },
{ "type": "total_products", "value": "5", "operation": "gte", "discount": "15.00" }
]
}