Skip to content

Update limits

BetaAPI v2 is in public beta: endpoints, fields and behaviour can change before general availability. See the changelog

PATCH
/preorders/offers/{id}/limits
curl --request PATCH \
--url https://app.stoqapp.com/api/v2/external/preorders/offers/example/limits \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <X-Auth-Token>' \
--data '{ "limit_per_product": 5, "per_order": "string", "display": "string" }'

Update quantity limits on a preorder offer.

Note: Deep partial. limit_per_product is copied onto every variant in the offer when it changes, replacing their own limits, as the editor does after its confirmation. Toggles and clears are done via this PATCH: clear a limit by sending null — per_order.max: null removes the per-order cap; display.show_remaining (true/false) toggles the remaining-units display on the storefront. Order tags, the terms-acceptance requirement, and mixed-cart behavior live on the checkout capability instead (PATCH …/checkout), not here.

id
required
string
Media typeapplication/json
object
limit_per_product
per_order
display

Example

{
"limit_per_product": 5,
"per_order": "string",
"display": "string"
}

Success — the updated resource.

Media typeapplication/json
object

Example generated

{}

Accepted — async/bulk work was queued. Poll the returned job.

Media typeapplication/json

Returned for async/bulk work — poll the job until it reaches a terminal state.

object
job_id
string
status_url
string

Example

{
"job_id": "job_a1b2c3",
"status_url": "/api/v2/external/jobs/job_a1b2c3"
}

Missing or invalid X-Auth-Token.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Unauthorized"
]
}

The resource does not exist for this shop, or the action path is not registered.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Offer not found"
]
}

The request failed validation.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"name is required"
]
}

Rate limited — cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Rate limit exceeded"
]
}
Was this page helpful?

Still stuck? Ask Quinn or chat with support