Skip to content

Get products variants

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

GET
/preorders/offers/{id}/products/variants
curl --request GET \
--url 'https://app.stoqapp.com/api/v2/external/preorders/offers/example/products/variants?sort=attached&inventory=zero_or_below&inventory_policy=deny&page=string&per_page=string&exclude_discarded=string&include_inventory=string&product_tag=string&exclude_product_tag=string' \
--header 'X-Auth-Token: <X-Auth-Token>'

List the variants attached to a preorder offer with their per-variant settings, paginated.

Note: sort=title orders by product then variant title (default: attach order). exclude_discarded=true leaves out variants deleted from the catalog. include_inventory=true adds each row’s live Shopify inventory, continue-selling policy, product tags and whether the preorder button shows under this offer now. The filters inventory (zero_or_below | positive), inventory_policy (deny | continue), product_tag and exclude_product_tag imply include_inventory and apply to each page after the read, so a page can hold fewer rows than per_page; keep paging while meta.page < meta.total_pages.

id
required
string
sort
Allowed values: attached title

Example

attached
inventory
Allowed values: zero_or_below positive

Example

zero_or_below
inventory_policy
Allowed values: deny continue

Example

deny
page

Example

string
per_page

Example

string
exclude_discarded

Example

string
include_inventory

Example

string
product_tag

Example

string
exclude_product_tag

Example

string

Success — the requested resource.

Media typeapplication/json
object

Example generated

{}

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