Storefront GraphQL API

Read the catalogue of a Pobo eshop and run its cart and checkout from your own storefront.

Endpoint
POST /api/v1/storefront/{eshop}/graphql on the API host — POST only, one operation per request (no batching).
Authentication
Authorization: Bearer <storefront token>. The merchant issues the token in Pobo; keep it on your server, never in the browser.
Visitor IP
Send the visitor's address in Pobo-Client-Ip — checkout, order-code lookup and the assistant limit per visitor by it.
Schema
schema.graphql — for code generation (GraphQL Codegen and the like).

Limits

Page size
first at most 50; numbered page 1 to 1 000
Depth
10 levels
Complexity
1 000 points per query — the cost is returned in extensions.cost
Budget
30 000 points per minute per token; over it the API answers 429 with BUDGET_EXCEEDED

Example

curl https://api.pobo.space/api/v1/storefront/{eshop}/graphql \
  --header 'Authorization: Bearer YOUR_STOREFRONT_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"query": "query { products(first: 10, lang: \"cs\") { edges { node { id name } } } }"}'

Errors

Errors come back in errors[].extensions.code: NOT_FOUND, BAD_USER_INPUT, OUT_OF_STOCK, PRICE_CHANGED, SLOT_TAKEN, QUERY_TOO_COMPLEX, BUDGET_EXCEEDED, RATE_LIMITED, INTERNAL.

Queries

shop: Shop!

The eshop; currency follows the price list of lang (the main language when left out).

ArgumentTypeDescription
lang String

product: Product

A visible product of the eshop; NOT_FOUND otherwise.

ArgumentTypeDescription
id ID!
lang String

products: ProductConnection!

Visible products, at most 50 per page.

ArgumentTypeDescription
first Int
default 20
after String
page Int Numbered page, 1 to 1000; not together with after.
category ID
includeSubcategory Boolean
default true
inStock Boolean
branch ID Only products with a variant in stock in the warehouse of this branch; an unknown branch or one without a warehouse matches nothing.
priceMin String Decimal string, compared with the cheapest priced variant in the price list of lang.
priceMax String
sort ProductSort
default POSITION
search String Product name only, 2 to 100 characters.
parameter [ParameterFilter!] Values of one parameter match any (OR), parameters all (AND); an unknown slug matches nothing. At most 10 parameters of 20 values.
lang String

productFacet: ProductFacet!

Parameter facets and the price range of the products the same arguments list. A value's count leaves out its own parameter's filter; at most 10 parameters, a parameter with one value or on one product left out. Flat cost.

ArgumentTypeDescription
category ID
includeSubcategory Boolean
default true
inStock Boolean
priceMin String Ignored by the price range.
priceMax String Ignored by the price range.
search String
parameter [ParameterFilter!]
lang String

category: Category

A category whose whole branch is visible; NOT_FOUND otherwise.

ArgumentTypeDescription
id ID!
lang String

categoryTree: [Category!]!

Root categories; children deeper than depth come back empty.

ArgumentTypeDescription
depth Int
default 3
lang String

route: RouteResult

The entity behind a storefront address (/{lang}/{prefix}/{slug}); null when this eshop does not show it.

ArgumentTypeDescription
path String!

article: Article

A visible article of the eshop; NOT_FOUND otherwise.

ArgumentTypeDescription
id ID!
lang String

articles: ArticleConnection!

Visible articles, newest first, at most 50 per page.

ArgumentTypeDescription
first Int
default 20
after String
lang String

sitemap: SitemapConnection!

Addresses of every visible product, category and article in one language, for a sitemap. Flat cost per page. Unlike the other fields, a language the eshop does not serve is refused with BAD_USER_INPUT instead of falling back to the main one.

ArgumentTypeDescription
first Int
default 1000
after String
lang String

suggest: Suggest!

Search-as-you-type: up to 5 products, 3 categories and 3 articles whose name contains the query (2 to 100 characters). Flat cost.

ArgumentTypeDescription
query String!
lang String

cart: Cart

An open or ordered cart of this eshop; NOT_FOUND when unknown or expired.

ArgumentTypeDescription
id ID!

shippingMethod: [ShippingMethod!]!

Shipping methods the eshop offers, in their order. Flat cost.

ArgumentTypeDescription
lang String

paymentMethod: [PaymentMethod!]!

Payment methods the eshop offers, in their order. Flat cost.

ArgumentTypeDescription
lang String

pickupPoint: [PickupPoint!]!

Pickup points the shipping method offers (its kind, active, in the countries Pobo serves): by distance around near, by a word of the name, city, street or zip in query, or both. At most 20. Flat cost.

ArgumentTypeDescription
shipping ID!
query String
near GeoInput
first Int
default 20

branch: Branch

An active branch of the eshop; NOT_FOUND otherwise.

ArgumentTypeDescription
id ID!
lang String

branches: [Branch!]!

Active branches of the eshop in their order. Flat cost.

ArgumentTypeDescription
lang String

reservationBranch: [Branch!]!

Branches a reservation of these pieces (line, or the lines of listId) can go to: active, taking reservations, with every piece free in their warehouse. Empty while the eshop takes no reservations. Flat cost.

ArgumentTypeDescription
line [ReservationLineInput!]
listId ID
lang String

reservationSlot: [String!]!

Free start times of a branch from one day to another (YYYY-MM-DD, at most 31 days), as ISO 8601 in Europe/Prague; only days the eshop takes reservations for. Flat cost.

ArgumentTypeDescription
branch ID!
from String!
to String!

reservationList: ReservationList

An open reservation list of this eshop; NOT_FOUND when unknown, expired or reserved already — start a new one.

ArgumentTypeDescription
id ID!

compare: Compare

The visitor's product comparison; NOT_FOUND when unknown or expired — start a new one.

ArgumentTypeDescription
id ID!

compareProduct: Compare!

The products of a shared comparison link (at most 4), in its order; nothing is stored. Hidden and unknown products are left out.

ArgumentTypeDescription
id [ID!]!
lang String

reservation: Reservation

A reservation by the random token reservationCreate returned; NOT_FOUND otherwise. Flat cost.

ArgumentTypeDescription
token String!

order: Order

An order of this eshop by the random token checkoutComplete returned — for the thank-you page; NOT_FOUND otherwise.

ArgumentTypeDescription
token String!

orderToken: OrderLink

The order behind a short link (/o/{code}) — its token and language, for the redirect to the order page; NOT_FOUND otherwise. Limited per visitor IP (Pobo-Client-Ip), else per token. Flat cost.

ArgumentTypeDescription
code String!

Mutations

cartCreate: Cart!

A new empty cart; keep its id in an httpOnly cookie on the storefront server.

ArgumentTypeDescription
lang String

cartLineAdd: Cart!

Adds to the quantity already in the cart; 1 to 999 pieces, at most 50 lines.

ArgumentTypeDescription
cartId ID!
variantId ID!
quantity Int!

cartLineUpdate: Cart!

Sets the quantity; 0 removes the line.

ArgumentTypeDescription
cartId ID!
variantId ID!
quantity Int!

cartLineRemove: Cart!

ArgumentTypeDescription
cartId ID!
variantId ID!

cartSetContact: Cart!

ArgumentTypeDescription
cartId ID!
contact CartContactInput!

cartSetShipping: Cart!

A method with a pickupKind needs pickupPointId, a point of that kind from Query.pickupPoint; the point then is the delivery address.

ArgumentTypeDescription
cartId ID!
shippingId ID!
pickupPointId ID

cartSetPayment: Cart!

ArgumentTypeDescription
cartId ID!
paymentId ID!

cartSetCoupon: Cart!

Puts a coupon on the cart (code in any case). An unknown code fails with BAD_USER_INPUT, extensions.field = coupon and extensions.reason = unknown; 10 unknown codes a minute per visitor IP (header Pobo-Client-Ip), 60 per token without it, then RATE_LIMITED. A known coupon that does not apply stays on the cart with Cart.coupon.problem.

ArgumentTypeDescription
cartId ID!
code String!

cartRemoveCoupon: Cart!

ArgumentTypeDescription
cartId ID!

checkoutComplete: Order!

Places the order. expectedTotal = Cart.total.amountWithVat the customer saw; a different total fails with PRICE_CHANGED (extensions.total = the new one). The same idempotencyKey (8 to 64 letters, digits or dashes) returns the same order. At most 5 orders in 10 minutes per visitor IP (header Pobo-Client-Ip), RATE_LIMITED with HTTP 429 above it.

ArgumentTypeDescription
cartId ID!
termsAccepted Boolean!
expectedTotal String!
idempotencyKey String!

compareCreate: Compare!

A new empty product comparison; keep its id in an httpOnly cookie on the storefront server, like the cart.

ArgumentTypeDescription
lang String

compareAdd: Compare!

Adds a product (at most 4 in a comparison; a product already there changes nothing). BAD_USER_INPUT when the product is not offered or the comparison is full.

ArgumentTypeDescription
compareId ID!
productId ID!

compareRemove: Compare!

ArgumentTypeDescription
compareId ID!
productId ID!

reservationListCreate: ReservationList!

A new empty reservation list; keep its id in an httpOnly cookie on the storefront server, like the cart. BAD_USER_INPUT while the eshop takes no reservations.

ArgumentTypeDescription
lang String

reservationListLineAdd: ReservationList!

Adds to the quantity already on the list; 1 to 99 pieces, at most 20 products. Holds nothing in the warehouse yet.

ArgumentTypeDescription
listId ID!
variantId ID!
quantity Int!

reservationListLineUpdate: ReservationList!

Sets the quantity; 0 removes the line.

ArgumentTypeDescription
listId ID!
variantId ID!
quantity Int!

reservationListLineRemove: ReservationList!

ArgumentTypeDescription
listId ID!
variantId ID!

reservationCreate: Reservation!

Reserves the pieces (line, or the lines of listId — the list then closes) at a branch for a free slot (Query.reservationSlot). The pieces are held in the branch's warehouse until the branch converts, cancels or closes the reservation. SLOT_TAKEN when the slot filled up meanwhile, OUT_OF_STOCK (extensions.variantId) when the branch lacks a piece. Limited like checkoutComplete (header Pobo-Client-Ip).

ArgumentTypeDescription
branchId ID!
startsAt String!
line [ReservationLineInput!]
listId ID
contact ReservationContactInput!
note String
lang String

reservationCancel: Reservation!

The customer cancels a pending reservation before it starts, with the token from the e-mail.

ArgumentTypeDescription
token String!

orderPaymentStart: Order!

A new payment of an unpaid online order (pay again on the thank-you page); Order.paymentUrl is where to send the customer. Limited like checkoutComplete.

ArgumentTypeDescription
token String!

Objects

Addressobject

FieldTypeDescription
name String!
company String
companyId String
vatId String
street String!
city String!
zip String!
country Country!

AlternatePathobject

FieldTypeDescription
lang String!
path String!

Anchorobject

FieldTypeDescription
id String!
label String!

Articleobject

FieldTypeDescription
id ID!
name String!
slug String
path String
alternate [AlternatePath!]! Addresses of this entity in the eshop's languages that have a slug, main language first.
seo Seo!
publishedAt String
content Content

ArticleConnectionobject

FieldTypeDescription
edges [ArticleEdge!]!
pageInfo PageInfo!

ArticleEdgeobject

FieldTypeDescription
node Article!
cursor String!

Assistantobject

FieldTypeDescription
eshopId Int!
holdoutPercent Int! Percent of visitors kept without the bubble as the control group: hidden when crc32("{eshopId}:{visitor}") % 100 is below it.
position String! right or left
colorPrimary String
privacyUrl String
allowDismiss Boolean!
allowHandoff Boolean!
allowAddToCart Boolean!
supportName String
supportPhotoUrl String
text String! Bubble texts by language, a JSON object: language => key => text (status phases and suggestions are nested).

AvailabilityInfoobject

FieldTypeDescription
state Availability!
label String!
quantity Int Whole pieces that can be ordered now (stock minus what orders hold), at most 100 — 100 means 100 or more. Only on a variant in stock; null otherwise and on the product.

BankTransferobject

FieldTypeDescription
account String
iban String
variableSymbol String!
amount String!
currency String!
qrPayload String QR Platba (SPAYD) string; null when the eshop has no IBAN.

Branchobject

A branch customers come to: its page, address, opening hours and what it offers. Plan: doc/claude/plan-branch.md.

FieldTypeDescription
id ID!
name String!
slug String
path String
alternate [AlternatePath!]! Addresses of this branch in the eshop's languages that have a slug, main language first.
seo Seo!
description String HTML cleaned when it was saved: paragraphs, lists, h2/h3, emphasis, quotes and http(s)/mailto/tel links only.
address BranchAddress!
phone String
email String
location GeoPoint
openingHour [BranchOpeningDay!]! Seven days, Monday (1) to Sunday (7); an empty interval list = closed that day.
closedDay [String!]! Extra closed days (YYYY-MM-DD) in the next 60 days; public holidays are not listed.
image [Image!]! The first is the main photo. Alt falls back to the branch name.
banner Image The wide picture at the top of the branch page, uploaded by the merchant; null when there is none (no fallback to image). Alt is the branch name.
service [BranchServiceItem!]!
employee [BranchEmployee!]! People of the branch team the merchant switched on and confirmed their consent for, in the eshop's order.
notice [BranchNotice!]! Notices valid today (Europe/Prague).
practical BranchPractical!

BranchAddressobject

FieldTypeDescription
street String
city String
zip String
country String! ISO 3166-1 alpha-2.

BranchEmployeeobject

FieldTypeDescription
id ID!
name String! Full name, a degree included.
title String Position in the language of the request, falling back to the main language.
bio String A few sentences in the language of the request, falling back to the main language. HTML cleaned when it was saved: paragraphs, line breaks, emphasis and http(s)/mailto/tel links only.
image Image Square photo; alt is the name and the position.

BranchIntervalobject

FieldTypeDescription
from String! HH:MM
to String! HH:MM

BranchNoticeobject

FieldTypeDescription
kind BranchNoticeKind!
text String!
validTo String YYYY-MM-DD; null = until further notice.

BranchOpeningDayobject

FieldTypeDescription
weekday Int! ISO weekday, 1 = Monday.
interval [BranchInterval!]!

BranchPracticalobject

FieldTypeDescription
parking String
accessibility String
transport String

BranchServiceItemobject

FieldTypeDescription
code String!
icon String One of the icons the storefront ships: eye_test, contact_lens, kids, sunglasses, repair, parking, accessible, gift.
name String!

BranchStockobject

FieldTypeDescription
branchId ID!
name String!
quantity Int! Free pieces at the branch, at most 100.

Cartobject

FieldTypeDescription
id ID!
lang String!
line [CartLine!]!
contact CartContact
shipping ShippingMethod
pickupPoint PickupPoint The chosen pickup point of a shipping method with a pickupKind.
payment PaymentMethod
coupon CartCoupon The coupon on the cart; with a problem it discounts nothing and checkoutComplete refuses the order until it is removed.
discount Price What the coupon takes off the goods; null without a discount (a free-shipping coupon shows in shipping.priceBeforeCoupon).
itemCount Int!
subtotal Price!
total Price!
termsUrl String Null until the eshop sets its terms; checkout refuses an order without them.
isOrdered Boolean! True once the cart became an order.

CartContactobject

FieldTypeDescription
email String!
phone String
billingAddress Address!
shippingAddress Address
note String

CartCouponobject

FieldTypeDescription
code String!
kind CouponKind!
problem String Why the coupon does not apply, null when it does: not_started, expired, currency, min_total, used_up, used_by_email, sale_only, covers_order, unknown (switched off).

CartLineobject

FieldTypeDescription
quantity Int!
product Product!
variant Variant!
unitPrice Price Null when the variant lost its price since it was added; checkout refuses the cart then.
linePrice Price!

Categoryobject

FieldTypeDescription
id ID!
name String! Short name for menus, breadcrumbs and tiles.
heading String! The page heading (H1) the merchant set for this language; the name when they set none.
slug String
path String
alternate [AlternatePath!]! Addresses of this entity in the eshop's languages that have a slug, main language first.
seo Seo!
parent Category
child [Category!]!
ancestor [Category!]! Root first, the category itself left out.
content Content
image Image The category photo: uploaded by the merchant on pobo, imported from the platform elsewhere. Alt is the category name.
banner Image The wide picture behind the category heading, uploaded by the merchant on pobo; null when there is none (no fallback to image).
icon Image The menu icon, uploaded by the merchant on pobo: an SVG or a square PNG. Show it as an image, never inline.
isReservationOnly Boolean! Products in this category can only be reserved at a branch: it, or a category above it, is marked reservation-only. False while the eshop takes no reservations.

Compareobject

FieldTypeDescription
id ID Null for the comparison of a shared link, which is not stored.
lang String!
product [Product!]!
productCount Int!
parameterName [String!]! Parameter names of the products as table rows: in the order of the storefront filters, then as they first appear.

Contentobject

FieldTypeDescription
lang String! Language the content is written in.
html String! The whole Pobo page, shared descriptions included — the HTML REST V2 returns as content.html.
marketplaceHtml String The same page with marketplace widgets.
jsonLd String FAQPage JSON-LD object as a JSON string, for a script tag of type application/ld+json.
anchor [Anchor!]! H2 headings of the page; their ids are already in the HTML.

DeliveryEstimateobject

FieldTypeDescription
from String YYYY-MM-DD; null while a prepaid order waits for its payment (then the days count from the payment).
to String
minDay Int!
maxDay Int!
afterPayment Boolean!

FacetParameterobject

FieldTypeDescription
slug String!
name String!
value [FacetValue!]!

FacetValueobject

FieldTypeDescription
slug String!
name String!
count Int!

GeoPointobject

FieldTypeDescription
lat Float!
lng Float!

Imageobject

FieldTypeDescription
url String!
alt String

OpeningHourobject

FieldTypeDescription
day String!
hours String!

Orderobject

FieldTypeDescription
number String!
token String! Random; the address of the thank-you page. Read the order back with Query.order(token).
total Price!
couponCode String The coupon code the order used; null without a coupon.
discount Price What the coupon took off the goods; null without a discount.
status OrderStatus! Where the order is in its handling; a cancelled order cannot be paid any more.
paymentType PaymentType!
paymentStatus PaymentStatus!
paymentUrl String Where to pay an online order: set only in the answer of checkoutComplete and orderPaymentStart, null when the gateway failed (offer to pay again).
pickupPoint PickupPoint The pickup point the order goes to; null for delivery to an address.
bankTransfer BankTransfer Bank transfer details; null for cash on delivery.
shortUrl String The short link to the order page (/o/{code}); null when the eshop has no address.
shippingName String!
paymentName String!
line [OrderLine!]!
progress [OrderProgressStep!]! NEW → PROCESSING → SHIPPED → DELIVERED with when each was reached (null = not yet); a cancelled order has only CANCELLED.
delivery DeliveryEstimate When the order should arrive; null when the shipping promises nothing, once delivered or cancelled, and after the last day passed.
shipment OrderParcel The Packeta parcel of a shipped order; null otherwise.
document [OrderDocument!]! The invoice and credit notes of the order, oldest first; empty until the order is paid and invoiced.

OrderDocumentobject

FieldTypeDescription
kind OrderDocumentKind!
number String!
issuedAt String! ISO 8601.
url String! The PDF; a signed link valid for an hour, issued anew on every read of the order — never cache it.

OrderLineobject

FieldTypeDescription
name String!
quantity Int!
linePrice Price!

OrderLinkobject

FieldTypeDescription
token String!
lang String!

OrderParcelobject

FieldTypeDescription
number String!
trackingUrl String!

OrderProgressStepobject

FieldTypeDescription
status OrderStatus!
reachedAt String ISO 8601; null = not reached (yet).

PageInfoobject

FieldTypeDescription
hasNextPage Boolean!
endCursor String

Parameterobject

FieldTypeDescription
name String!
value String!

PaymentMethodobject

FieldTypeDescription
id ID!
name String!
type PaymentType!
price Price!

PickupPointobject

FieldTypeDescription
id ID!
kind PickupPointKind!
name String!
street String!
city String!
zip String!
country Country!
distanceKm Float Kilometres from Query.pickupPoint(near); null without it.
opening [OpeningHour!]!

Priceobject

Amounts are decimal strings with four decimals, never floats.

FieldTypeDescription
amount String!
amountWithVat String!
amountWithoutVat String!
currency String!
includesVat Boolean!
beforeDiscount String
saleEndsAt String
lowestPrice30Day String During a sale: the lowest price charged in the 30 days before the sale began, earlier sales included, on the basis of amount (EU Omnibus — show it next to the discount). Null without a sale, in a cart, or when Pobo has no price from before the sale (price history is kept since 2026-11-04).

PriceRangeobject

Decimal strings with four decimals.

FieldTypeDescription
min String!
max String!
histogram [Int!]! Products per 20 equal bands from min to max (max in the last band); like the range, the price filter itself is left out.

Productobject

FieldTypeDescription
id ID!
name String!
slug String
path String
alternate [AlternatePath!]! Addresses of this entity in the eshop's languages that have a slug, main language first.
shortDescription String
seo Seo!
image [Image!]!
banner Image The wide picture of the product page, uploaded by the merchant; null when there is none (no fallback to image). Alt is the product name.
parameter [Parameter!]!
category [Category!]!
variant [Variant!]!
price Price The cheapest variant that can be sold, as on the product card.
availability AvailabilityInfo!
isReservationOnly Boolean! Sold by reservation at a branch only: cartLineAdd refuses it (reason reservation_only). True when any of its categories, or any category above one of them, is marked reservation-only; the main category plays no part.
content Content Pobo content, rendered ahead of time; null until the first render (up to about a minute after a change).
tryOn TryOn The product can be tried on a photo of the visitor (try-on add-on); null when the add-on is off or no variant has a photo to try on. Start one with POST /api/v1/storefront/{eshop}/addon/try-on/result.

ProductConnectionobject

FieldTypeDescription
edges [ProductEdge!]!
pageInfo PageInfo!
totalCount Int! All products the same arguments list, counted only when selected; adds no cost.

ProductEdgeobject

FieldTypeDescription
node Product!
cursor String!

ProductFacetobject

FieldTypeDescription
parameter [FacetParameter!]!
price PriceRange Null when no listed product has a price.

Redirectobject

An old address: the storefront answers with a permanent redirect to this path.

FieldTypeDescription
to String!

Reservationobject

A reservation of goods at a branch. Plan: doc/claude/plan-order-reservation.md.

FieldTypeDescription
token String! Random; the address of the reservation page and the cancel link.
code String! Short, for the branch.
status ReservationStatus!
startsAt String! ISO 8601, Europe/Prague.
branch Branch Null when the branch was switched off since.
line [ReservationLine!]!
canCancel Boolean! Pending and not started yet — reservationCancel takes it.

ReservationLineobject

FieldTypeDescription
variantId ID
name String!
quantity Int!

ReservationListobject

FieldTypeDescription
id ID!
lang String!
line [ReservationListLine!]!
itemCount Int!

ReservationListLineobject

FieldTypeDescription
quantity Int!
product Product!
variant Variant!

Seoobject

FieldTypeDescription
title String
description String

ShippingMethodobject

FieldTypeDescription
id ID!
name String!
price Price!
requiresAddress Boolean!
pickupKind PickupPointKind Set when the customer picks a pickup point of this kind (Query.pickupPoint) instead of giving an address.
priceBeforeCoupon Price In a cart with a free-shipping coupon: the price the coupon took away (price is then zero); null otherwise.

Shopobject

FieldTypeDescription
name String!
defaultLang String!
lang [String!]!
currency String! Currency of the price list the storefront shows in the language asked for.
stylesheet [Stylesheet!]! Stylesheets of the eshop's widgets, in the order the Pobo script loads them.
phoneRequired Boolean! The checkout must ask for a phone: the eshop sends text messages about the order (cartSetContact refuses a missing one with field = phone).
branchSchemaType String! The schema.org type of the branch pages: LocalBusiness, Optician or Store.
reservationEnabled Boolean! The eshop takes reservations at its branches (reservationCreate).
assistant Assistant The shopping assistant bubble; null while it is switched off. The storefront server talks to it with its token at /api/v1/storefront/{eshop}/assistant/*.
tryOn Boolean! The glasses try-on add-on is switched on — the storefront may promote it (which products: Product.tryOn).

SitemapConnectionobject

FieldTypeDescription
edges [SitemapEdge!]!
pageInfo PageInfo!

SitemapEdgeobject

FieldTypeDescription
node SitemapEntry!
cursor String!

SitemapEntryobject

FieldTypeDescription
type SitemapEntityType!
path String!
updatedAt String ISO 8601, when the entity was last edited; null when unknown.

Stylesheetobject

FieldTypeDescription
url String!

Suggestobject

FieldTypeDescription
product [Product!]!
category [Category!]!
article [Article!]!
productCount Int! Every product that matches, not only the five returned.

TryOnobject

FieldTypeDescription
subject TryOnSubject! What the visitor photographs.
variantId [ID!]! Variants that can be tried on — show the button only for these.
cta TryOnCta! Where the button under the result leads, as the merchant set it.

Variantobject

FieldTypeDescription
id ID!
code String!
ean String
name String
image Image The variant's own picture; null when it has none the storefront can show.
price Price
availability AvailabilityInfo!
branchAvailability [BranchStock!]! Branches taking reservations that have free pieces of the variant; empty while the eshop takes no reservations.

Inputs

AddressInputinput

FieldTypeDescription
name String!
company String
companyId String Company id (IČO), digits only; spaces are removed.
vatId String EU VAT id (DIČ / IČ DPH) with its country prefix; spaces are removed. Not checked in VIES yet.
street String!
city String!
zip String!
country Country!

CartContactInputinput

FieldTypeDescription
email String!
phone String
billingAddress AddressInput!
shippingAddress AddressInput Left out = the billing address.
note String

GeoInputinput

FieldTypeDescription
lat Float!
lng Float!

OrderByClauseinput

Allows ordering a list of records.

FieldTypeDescription
column String! The column that is used for ordering.
order SortOrder! The direction that is used for ordering.

ParameterFilterinput

Slugs as productFacet returns them: lowercase letters, digits and hyphens, at most 80 characters.

FieldTypeDescription
slug String!
value [String!]!

ReservationContactInputinput

FieldTypeDescription
name String!
email String!
phone String

ReservationLineInputinput

FieldTypeDescription
variantId ID!
quantity Int! 1 to 99 pieces.

Enums

Availabilityenum

ValueDescription
IN_STOCK
BACKORDER
OUT_OF_STOCK

BranchNoticeKindenum

ValueDescription
INFO
WARNING
CLOSEDThe branch is closed while the notice is valid.

Countryenum

EU member states an order is billed in and delivered to (ISO 3166-1 alpha-2).

ValueDescription
AT
BE
BG
CY
CZ
DE
DK
EE
ES
FI
FR
GR
HR
HU
IE
IT
LT
LU
LV
MT
NL
PL
PT
RO
SE
SI
SK

CouponKindenum

ValueDescription
PERCENT
AMOUNT
FREE_SHIPPING

OrderByRelationAggregateFunctionenum

Aggregate functions when ordering by a relation without specifying a column.

ValueDescription
COUNTAmount of items.

OrderByRelationWithColumnAggregateFunctionenum

Aggregate functions when ordering by a relation that may specify a column.

ValueDescription
AVGAverage.
MINMinimum.
MAXMaximum.
SUMSum.
COUNTAmount of items.

OrderDocumentKindenum

ValueDescription
INVOICE
CREDIT_NOTE

OrderStatusenum

ValueDescription
NEW
PROCESSING
SHIPPED
DELIVERED
CANCELLED

PaymentStatusenum

ValueDescription
UNPAID
PAID

PaymentTypeenum

ValueDescription
BANK_TRANSFER
CASH_ON_DELIVERY
ONLINE

PickupPointKindenum

ValueDescription
BRANCH
BOX
CARRIER

ProductSortenum

ValueDescription
POSITION
NAME
PRICE_ASC
PRICE_DESC
NEWEST

ReservationStatusenum

ValueDescription
PENDING
CONVERTED
CANCELLED
NO_SHOW

SitemapEntityTypeenum

ValueDescription
PRODUCT
CATEGORY
ARTICLE
BRANCH

SortOrderenum

Directions for ordering a list of records.

ValueDescription
ASCSort records in ascending order.
DESCSort records in descending order.

Trashedenum

Specify if you want to include or exclude trashed results from a query.

ValueDescription
ONLYOnly return trashed results.
WITHReturn both trashed and non-trashed results.
WITHOUTOnly return non-trashed results.

TryOnCtaenum

ValueDescription
RESERVE
CART

TryOnSubjectenum

ValueDescription
FACE

Unions

RouteResultunion

One of: Product, Category, Article, Branch, Redirect