Skip to content
BolderBolder API
Esc
navigateopen⌘Jpreview

Update a promotion

Updates an existing promotion.

PUT/promotions/{id}
Authorization
AuthorizationBearer token (JWT) · headerrequired
Path parameters
idintegerrequired
ID of the promotion to update.
Request body
requiredapplication/json
shop_idintegerrequired
ID of the shop (required on create)
namestringrequired
statusstring
default: "active"
Allowed:activeinactive
cumulativeboolean
Whether this promotion can stack with others. Defaults to `true`.
default: true
discount_typestringrequired
Allowed:fixedpercentagefree-shipping
discountnumberrequired
Discount value — a percentage (0–100) or a fixed amount in cents.
activation_modestringrequired
How the promotion is activated. `code` requires a coupon code; `auto` applies automatically to eligible orders; `fulfillment` activates for a specific fulfillment method; `payment` activates for a specific payment method.
Allowed:codeautofulfillmentpayment
codestring
Coupon code (required when `activation_mode` is `code`).
fulfillment_methodinteger
Fulfillment method ID (required when `activation_mode` is `fulfillment`).
payment_method_idinteger
Payment method ID (required when `activation_mode` is `payment`).
usage_limitinteger
Maximum total redemptions. Unlimited if omitted.
per_user_limitinteger
Maximum redemptions per customer. Unlimited if omitted.
starts_atstring<date-time>
expires_atstring<date-time>
price_range_frominteger
Minimum order subtotal in cents for the promotion to apply.
price_range_tointeger
Maximum order subtotal in cents for the promotion to apply.
product_range_frominteger
Minimum number of qualifying products required in the cart.
product_range_tointeger
Maximum number of qualifying products allowed in the cart.
product_discount_group_idinteger
ID of the group whose products receive the discount.
product_discount_group_typestring
Allowed:AllProductsAllBundlesCollectionProductTypeVendorTagProduct
product_discount_group_filter_modestring
Which items within the discount group receive the discount.
Allowed:allall_exceptsingle_cheapestsingle_most_expensiveall_but_cheapestall_but_most_expensivecheapest_halfmost_expensive_halfcheapest_thirdmost_expensive_thirdcheapest_fourthmost_expensive_fourthsingle_cheapest_from_count_groupsingle_most_expensive_from_count_groupcheapest_half_from_count_groupmost_expensive_half_from_count_groupcheapest_third_from_count_groupmost_expensive_third_from_count_groupcheapest_fourth_from_count_groupmost_expensive_fourth_from_count_group
product_count_group_idinteger
Group used to count qualifying products (for count-gated discounts).
product_count_group_typestring
Allowed:AllProductsAllBundlesCollectionProductTypeVendorTagProduct
price_list_idinteger
Restrict the promotion to orders using this price list.
apply_tagstring
Tag to apply to the order when this promotion is used.
Responses
200Promotion updated
404Promotion not found
Request
curl -X PUT "https://api.onbolder.com/v2/promotions/20" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Summer Sale Extended",
  "discount": 25
}'
Response
{
  "id": 20,
  "name": "Summer Sale Extended",
  "discount": 25,
  "_links": {
    "self": {
      "href": "https://api.onbolder.com/v2/promotions/20"
    }
  }
}