AlmondTill/G3N API

PromotionEffect

object type

The canned effect — ONE flat render of the contracts discriminated union (the CollectionPredicate render pattern): kind selects the arm; each arm's fields are present on it and absent elsewhere. Percentages ride integer ppm (10% = 100000); amounts are integer minor units in the org default currency; effects only REDUCE — never uplift.

Fields

FieldTypeNotes
kindPromotionEffectType PromotionEffectType!No further notes.
percentPpmIntpercent_off: the ppm ((0, 1000000]).
amountMinorIntamount_off: the absolute reduction (minor units).
targetPromotionEffectTargetpercent_off/amount_off: where the figure lands.
unitPriceMinorIntfixed_price: the target UNIT price — each matched line reduces so its running subtotal = unit × qty; already-below = no-op (LINE-only by construction).
buyQtyIntbuy_x_get_y: the buy quantity (X).
getQtyIntbuy_x_get_y: the get quantity (Y) per reward group.
getScopePromotionBogoScopeNo further notes.
getProductScopePromotionProductScopebuy_x_get_y getScope=different: the get-item scope (REQUIRED iff different).
benefitPercentPpmIntbuy_x_get_y: ABSENT = free (100%); bundle_combo: the percent benefit (XOR benefitAmountMinor).
benefitAmountMinorIntbundle_combo: the amount benefit PER COMBO (× the multiplier k; largest-remainder across participants; XOR benefitPercentPpm).
componentsPromotionBundleComponent [PromotionBundleComponent!]bundle_combo: the components (2..8 — a single-component qty deal is buy_x_get_y/minQty).
giftVariantIdIDfree_gift (DEFERRED): the gifted Variant.
qtyIntfree_gift (DEFERRED): the gift quantity.