External promotions
The external promotion object and the allowed CRUD operations on the related resource endpoint
Last updated
The external promotion object and the allowed CRUD operations on the related resource endpoint
Last updated
Commerce Layer provides a promotional engine built on top of two main resources: and .
Besides the promotion types that are supported out-of-the-box Commerce Layer lets you integrate any kind of promotional engine as an external promotion. When triggered, external promotions are responsible for adding the externally computed discount to the orders involved. When an external promotion activates, Commerce Layer triggers a POST
request to the promotion URL endpoint, sending the order payload (including its line items) in the request body. The external service response (or error) must match the format described in .
External promotions are subject to a check: if the call to your external endpoint fails consecutively more than 30 times, the circuit breaker opens and any further request to the resource will be skipped. You can check the circuit breaker current status by fetching the circuit_state
and circuit_failure_count
attributes or manually reset it by passing the _reset_circuit
trigger (the circuit is anyway automatically reset anytime a call to your external endpoint succeeds before reaching the counter's threshold).
External promotions can be optionally defined by currency code or restricted to a specific active market (in which case the currency code is inherited by the market's price list). Within the time window given by their activation and expiration dates, external promotions that have not reached their total usage limit are considered active. If no promotion rule is associated with an active external promotion, the computed discount is applied to:
All the orders, if the promotion is not restricted to a specific market.
All the orders in the specified currency, if a currency code is specified but the promotion is not restricted to a specific market.
All the orders of the market in scope, if the promotion is attached to a market.
Otherwise, if one or more promotion rules are defined, the promotion is triggered only when it matches all of them.
If associated with an SKU list, the total discount due to external promotions is calculated and distributed on the matching line items of type skus
or bundles
belonging to that list. Otherwise, on all the of the order. In both cases, the discount distribution is based on the ratio between the line item amount and the sum of the amounts of all the line items to which the promotion is applied.