Skip to content

Catalog Rules

A catalog rule automatically lowers a product's price store-wide — before the product is ever added to a cart. The shopper just sees a reduced price on the product and category pages; there is no coupon and no minimum-cart requirement. It mirrors the admin Marketing → Promotions → Catalog Rules screen.

How a catalog rule works

A rule has three parts: who it applies to, when it applies, and what it does to the price.

  • Whochannels (which storefront channels) and customer_groups (e.g. general, wholesale). A rule only fires for shoppers in a matching channel + group. In responses these come back as channels / customerGroupsarrays of objects (each { id, code, name }). Requests still send them as plain id arrays.
  • When — an optional date window (starts_from / ends_till) and a set of conditions (product attribute filters such as category = Summer or brand = Acme). condition_type decides whether all conditions must match (1) or any (0).
  • What — the action_type + discount_amount rewrite the price:
action_typeEffectExample with discount_amount: 10
by_percentReduce by N%$100 → $90
by_fixedReduce by a fixed amount$100 → $90
to_percentSet price to N% of original$100 → $10
to_fixedSet price to a fixed amount$100 → $10

For by_percent, discount_amount is capped at 100.

Priority and stacking. sort_order sets evaluation priority (lower runs first). end_other_rules (1) stops any lower-priority rule from also applying once this one matches.

Status and re-indexing. status (0/1) toggles the rule on. Saving a rule recomputes affected product prices in the background, so a newly-created or edited rule can take a moment to show on the storefront.

Operations in this menu

ActionEndpoint
ListGET /api/admin/marketing/catalog-rules
DetailGET /api/admin/marketing/catalog-rules/{id}
CreatePOST /api/admin/marketing/catalog-rules
UpdatePUT /api/admin/marketing/catalog-rules/{id}
DeleteDELETE /api/admin/marketing/catalog-rules/{id}
Mass DeletePOST /api/admin/marketing/catalog-rules/mass-delete

conditions, channels, and customerGroups are returned only on the detail, create, and update responses — they are null on list rows. channels and customerGroups are arrays of { id, code, name } objects.

All Catalog Rules endpoints require an admin Bearer token — see Authentication.

Released under the MIT License.