Wocart
Wocart API

Offers

Server

List offers

GET
https://api.wocart.store
/api/offers
X-API-Key (header)

Get all Buy X Get Y promotional offers ordered by creation date (newest first).

List offers › Responses

200

List of offers

success
​boolean · required
​Offer[] · required
count
​integer · required

Number of items returned


Create offer

POST
https://api.wocart.store
/api/offers
X-API-Key (header)

Create a new Buy X Get Y promotional offer.

Auto-application rules (applied at order time, not here):

  • When a store order is submitted via POST /store/orders, the server checks for any active offer where triggerProductId matches, the ordered quantity ≥ triggerQuantity, and — if triggerVariantId is set — the ordered variantId also matches.
  • If the reward item is out of stock, the offer is silently skipped (order still succeeds).
  • The reward is inserted as a $0 order line item; the COD total only reflects paid products + delivery.

Create offer › Request Body

name
​string · minLength: 2 · maxLength: 200 · required
triggerProductId
​string · minLength: 1 · required
discountType
​string · enum
Enum values:
free
free_shipping
quantity_price
Default: free
triggerVariantId
​string | null · minLength: 1
triggerQuantity
​integer · min: 1 · max: 1000
rewardProductId
​string | null · minLength: 1
rewardVariantId
​string | null · minLength: 1
rewardQuantity
​integer · min: 0 · max: 1000
​object[] · maxItems: 10
startsAt
​string | null · date-time
endsAt
​string | null · date-time
status
​string · enum
Enum values:
active
inactive
Default: active

Create offer › Responses

Offer created

success
​boolean · required
​Offer · required

Get offer

GET
https://api.wocart.store
/api/offers/{id}
X-API-Key (header)

Get a single offer by ID with fully resolved product and variant references.

Get offer › path Parameters

id
​string · required

Offer UUID

Offer UUID

Get offer › Responses

200

Offer details

success
​boolean · required
​Offer · required

Update offer

PATCH
https://api.wocart.store
/api/offers/{id}
X-API-Key (header)

Partially update an offer. All fields are optional — send only the fields you want to change.

Update offer › path Parameters

id
​string · required

Offer UUID

Offer UUID

Update offer › Request Body

name
​string · minLength: 2 · maxLength: 200
discountType
​string · enum
Enum values:
free
free_shipping
quantity_price
triggerProductId
​string · minLength: 1
triggerVariantId
​string | null · minLength: 1
triggerQuantity
​integer · min: 1 · max: 1000
rewardProductId
​string | null · minLength: 1
rewardVariantId
​string | null · minLength: 1
rewardQuantity
​integer · min: 0 · max: 1000
​object[] · maxItems: 10
startsAt
​string | null · date-time
endsAt
​string | null · date-time
status
​string · enum
Enum values:
active
inactive

Update offer › Responses

200

Updated offer

success
​boolean · required
​Offer · required

Delete offer

DELETE
https://api.wocart.store
/api/offers/{id}
X-API-Key (header)

Permanently delete an offer. Already-placed orders are not affected.

Delete offer › path Parameters

id
​string · required

Offer UUID

Offer UUID

Delete offer › Responses

200

Offer deleted

success
​boolean · required

Get a offer's translations

GET
https://api.wocart.store
/api/offers/{id}/translations
X-API-Key (header)

The translatable fields in the store's primary language and every stored translation, each flagged outdated when its source text changed after it was written.

Get a offer's translations › path Parameters

id
​string · required

Get a offer's translations › Responses

200

Source and translations

success
​boolean · required
​object · required

Translate a offer into one language

PATCH
https://api.wocart.store
/api/offers/{id}/translations
X-API-Key (header)

A JSON Merge Patch (RFC 7396) of one language: a string sets a field, null removes its translation, other fields are untouched. The language must be one the store has added, and not its primary — the resource's own fields hold that.

Translate a offer into one language › path Parameters

id
​string · required

Translate a offer into one language › Request Body

locale
​string · enum · required
Enum values:
ar
fr
en
​object · required

Translate a offer into one language › Responses

200

Source and translations after the patch

success
​boolean · required
​object · required