NewPromotionInput
input type
Create-input for a Promotion. The tenant (org group) is derived SERVER-SIDE from the principal — NEVER supplied here; free_gift/free_shipping effects refuse by the NAMED deferral gate BEFORE the generic parse; every scope/conditions/effect ref is tenant-scoped server-side and must be ACTIVE; startAt stamps NOW when omitted; priority/exclusive/couponGated default 100/false/false.
Fields
| Field | Type | Required | Notes |
|---|---|---|---|
caption | String | no | Optional: when omitted the per-type default applies — the merchant code when given, else 'Promotion'; when supplied it must be non-blank. |
effect | PromotionEffectInput PromotionEffectInput! | yes | No further notes. |
scope | PromotionScopeInput | no | No further notes. |
productScope | PromotionProductScopeInput | no | No further notes. |
cartConditions | PromotionCartConditionsInput | no | No further notes. |
startAt | String | no | The window start (UTC ISO-8601) — omitted ⇒ stamped NOW; a FUTURE instant is the advance-scheduling arm. |
endAt | String | no | The window end (half-open) — omitted ⇒ evergreen; must lie strictly after the (stamped) start. |
priority | Int | no | Resolution ordinal 0..1000000 — omitted ⇒ 100. |
exclusive | Boolean | no | Omitted ⇒ false; TRUE refuses a combinableGroup (incoherent). |
combinableGroup | String | no | No further notes. |
maxDiscountPerLineMinor | Int | no | No further notes. |
maxDiscountPerOrderMinor | Int | no | No further notes. |
totalRedemptionsCap | Int | no | No further notes. |
couponGated | Boolean | no | Omitted ⇒ false; TRUE = fires ONLY through an attached trigger Coupon. |
code | String | no | No further notes. |