Queries#

Queries are read-only operations used to fetch data from the API. All queries are sent as POST requests to https://afosto.app/graphql.

·
Note:Some queries (such as account) require a user token obtained via logInCustomer. Most other queries work with a standard API key.

account#

Fetch the currently authenticated account. Requires a user token.

No arguments.

Returns: Account

NameTypeRequiredDescription
email
String!
RequiredEmail address
given_name
String!
RequiredFirst name
additional_name
String!
RequiredMiddle name
family_name
String!
RequiredLast name

Example#

query {
  account {
    email
    given_name
    family_name
    orders(first: 10) {
      edges {
        node {
          id
          number
          total
        }
      }
    }
  }
}

address#

Fetch an address by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the address

Returns: Address

NameTypeRequiredDescription
id
ID!
RequiredThe ID
address_line_1
String!
RequiredStreet address line 1
address_line_2
String
OptionalStreet address line 2
locality
String!
RequiredCity / locality

Example#

query GetAddress($id: String!) {
  address(id: $id) {
    id
    address_line_1
    address_line_2
    locality
    postal_code
    country_code
    administrative_area
    dependent_locality
  }
}
{
  "id": "adr_8f2e4a71-b3c9-4d5e-a1f0-6789abcd0123"
}

business#

Fetch a physical store location by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the business

Returns: Business

NameTypeRequiredDescription
id
ID!
RequiredThe ID
type
String!
RequiredBusiness type
name
String!
RequiredName
email
String
OptionalEmail address

Example#

query GetBusiness($id: String!) {
  business(id: $id) {
    id
    name
    email
    addressing {
      visiting {
        address_line_1
        locality
        postal_code
        country_code
      }
    }
    openings {
      day
      open
      close
    }
  }
}
{
  "id": "bus_3c7d1e5f-9a2b-4f8e-b6d0-1234abcd5678"
}

See also: businesses

businesses#

Fetch a paginated list of business locations.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
type
String
OptionalFilter by business type
sort
BusinessesSortInput
OptionalSort order

Returns: Business

NameTypeRequiredDescription
id
ID!
RequiredThe ID
type
String!
RequiredBusiness type
name
String!
RequiredName
email
String
OptionalEmail address

Example#

query ListBusinesses($first: Int) {
  businesses(first: $first) {
    edges {
      node {
        id
        name
        type
        email
        addressing {
          visiting {
            address_line_1
            locality
            country_code
          }
        }
        openings {
          day
          open
          close
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10
}

See also: business

cart#

Fetch a cart by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the cart
intent
TrackingEvent
OptionalOptional tracking event

Returns: Cart

NameTypeRequiredDescription
id
ID!
RequiredThe ID of the cart
number
String!
RequiredCart number
total
Money!
RequiredTotal value
subtotal
Money!
RequiredTotal before discounts

Example#

query GetCart($id: String!) {
  cart(id: $id) {
    id
    number
    total
    currency
    is_including_vat
    items {
      label
      quantity
      total
      sku
    }
    delivery {
      address {
        address_line_1
        locality
        postal_code
        country_code
      }
    }
    checkout {
      is_valid
      url
    }
  }
}
{"id": "crt_72fca344-2a6f-4c3e-b4ca-029920b2522a"}

channel#

Fetch a channel (storefront) by ID. If no ID is provided, the default channel is returned.

Arguments:

NameTypeRequiredDescription
id
String
OptionalThe ID of the channel (optional — omit for default)

Returns: Channel

NameTypeRequiredDescription
id
ID!
RequiredThe ID
name
String!
RequiredChannel name
type
String!
RequiredChannel type
locale
String!
RequiredLocale (e.g. nl_NL)

Example#

query GetChannel {
  channel {
    id
    name
    locale
    branding {
      colors {
        primary
        secondary
      }
    }
  }
}

contact#

Fetch a contact by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the contact
version
String
OptionalOptional version string for cache busting

Returns: Contact

NameTypeRequiredDescription
id
ID!
RequiredThe ID
email
String!
RequiredEmail address
given_name
String!
RequiredFirst name
family_name
String
OptionalLast name

Example#

query GetContact($id: String!) {
  contact(id: $id) {
    id
    email
    given_name
    family_name
    is_verified
    addressing {
      shipping {
        primary {
          address_line_1
          locality
          postal_code
          country_code
        }
      }
    }
  }
}
{
  "id": "con_a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

invoice#

Fetch an invoice by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the invoice

Returns: Invoice

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredInvoice number
total
Money!
RequiredTotal value
currency
Currency!
RequiredCurrency code

Example#

query GetInvoice($id: String!) {
  invoice(id: $id) {
    id
    number
    total
    currency
    pdf_url
    billing_address {
      address_line_1
      locality
      postal_code
      country_code
    }
    lines {
      label
      quantity
      total
    }
    created_at
  }
}
{
  "id": "inv_d4e5f6a7-b8c9-0123-4567-890abcdef012"
}

item#

Fetch a single collection item (physical inventory item) by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the item

Returns: CollectionItem

NameTypeRequiredDescription
id
ID!
RequiredThe ID
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
product
Product!
RequiredThe associated product

Example#

query GetItem($id: String!) {
  item(id: $id) {
    id
    sku
    label
    status
    is_available
    is_allocated
    product {
      sku
      label
    }
    order {
      id
      number
    }
  }
}
{
  "id": "ci_5a6b7c8d-9e0f-1234-5678-9abcdef01234"
}

See also: items

items#

Fetch a paginated list of collection items (inventory items) with filtering.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
filters
CollectionItemFilterInput!
RequiredFilter criteria

Returns: CollectionItem

NameTypeRequiredDescription
id
ID!
RequiredThe ID
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
product
Product!
RequiredThe associated product

Example#

query ListItems($first: Int, $filters: CollectionItemFilterInput!) {
  items(first: $first, filters: $filters) {
    edges {
      node {
        id
        sku
        label
        status
        is_available
        is_allocated
        quantity
        order {
          id
          number
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "order_id": "ord_72fca344-2a6f-4c3e-b4ca-029920b2522a"
  }
}

See also: item

order#

Fetch an order by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the order
options
OrderOptionsInput
OptionalOptions to control included pricing data

Returns: Order

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredOrder number
total
Money!
RequiredTotal value
currency
Currency!
RequiredCurrency code

Example#

query GetOrder($id: String!) {
  order(id: $id) {
    id
    number
    status
    total
    currency
    ordered_at
    customer {
      contact {
        email
        given_name
        family_name
      }
    }
    items {
      label
      sku
      quantity
      total
    }
    payments {
      amount
      details {
        status
      }
    }
  }
}
{"id": "ord_72fca344-2a6f-4c3e-b4ca-029920b2522a"}

See also: orders

orders#

Fetch a paginated list of orders with filtering.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
id
IdFilter
OptionalFilter by order ID(s)
progress
OrderProgressFilter
OptionalFilter by progress
created_at
InequalityFilter
OptionalFilter by creation date
number
NumberFilter
OptionalFilter by order number
email
String
OptionalFilter by customer email

Returns: Order

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredOrder number
total
Money!
RequiredTotal value
currency
Currency!
RequiredCurrency code

Example#

query ListOrders($first: Int, $email: String) {
  orders(first: $first, email: $email) {
    edges {
      node {
        id
        number
        status
        total
        currency
        ordered_at
        customer {
          contact {
            email
            given_name
            family_name
          }
        }
        items {
          label
          sku
          quantity
          total
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "email": "[email protected]"
}

See also: order

organisation#

Fetch an organisation by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the organisation
version
String
OptionalOptional version string

Returns: Organisation

NameTypeRequiredDescription
id
ID!
RequiredThe ID
name
String
OptionalOrganisation name
type
OrganisationType!
RequiredType of organisation
number
String
OptionalOrganisation number

Example#

query GetOrganisation($id: String!) {
  organisation(id: $id) {
    id
    name
    coc_number
    registration {
      vat_number
      country_code
    }
    addressing {
      billing {
        primary {
          address_line_1
          locality
          country_code
        }
      }
    }
  }
}
{
  "id": "org_b2c3d4e5-f6a7-8901-2345-67890abcdef0"
}

parcel#

Fetch a parcel (shipment) by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the parcel

Returns: Parcel

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredParcel number
status
ParcelStatus!
RequiredCurrent status
track_trace
TrackTrace!
RequiredTrack & trace details

Example#

query GetParcel($id: String!) {
  parcel(id: $id) {
    id
    number
    status
    track_trace {
      number
      url
    }
    items {
      sku
      label
    }
    created_at
  }
}
{
  "id": "pcl_c3d4e5f6-a7b8-9012-3456-7890abcdef01"
}

See also: parcels

parcels#

Fetch a paginated list of parcels with filtering.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
id
IdFilter
OptionalFilter by parcel ID(s)
delivery_id
IdFilter
OptionalFilter by delivery ID
track_trace_number
String
OptionalFilter by track & trace number

Returns: Parcel

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredParcel number
status
ParcelStatus!
RequiredCurrent status
track_trace
TrackTrace!
RequiredTrack & trace details

Example#

query ListParcels($first: Int) {
  parcels(first: $first) {
    edges {
      node {
        id
        number
        status
        track_trace {
          number
          url
        }
        created_at
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10
}

See also: parcel

paymentMethod#

Fetch a payment method by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the payment method

Returns: PaymentMethod

NameTypeRequiredDescription
id
ID!
RequiredThe ID
code
String!
RequiredPayment method code
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled

Example#

query GetPaymentMethod($id: String!) {
  paymentMethod(id: $id) {
    id
    code
    name
    description
    is_enabled
    pricing {
      amount
      is_including_vat
    }
    issuers {
      code
      name
    }
  }
}
{
  "id": "pm_e5f6a7b8-c9d0-1234-5678-90abcdef0123"
}

See also: paymentMethods

paymentMethods#

Fetch a paginated list of available payment methods.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
codes
[String!]
OptionalFilter by payment method codes
is_manual
Boolean
OptionalFilter by manual payment methods
sort
PaymentMethodsOrderByInput
OptionalSort order

Returns: PaymentMethod

NameTypeRequiredDescription
id
ID!
RequiredThe ID
code
String!
RequiredPayment method code
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled

Example#

query ListPaymentMethods($first: Int) {
  paymentMethods(first: $first) {
    edges {
      node {
        id
        code
        name
        is_enabled
        is_manual
        pricing {
          amount
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 20
}

See also: paymentMethod

phoneNumber#

Fetch a phone number by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the phone number

Returns: PhoneNumber

NameTypeRequiredDescription
id
ID!
RequiredThe ID
country_code
String!
RequiredCountry calling code
national
String!
RequiredNational number
number
String!
RequiredFull international number

Example#

query GetPhoneNumber($id: String!) {
  phoneNumber(id: $id) {
    id
    country_code
    national
    number
  }
}
{
  "id": "phn_f6a7b8c9-d0e1-2345-6789-0abcdef12345"
}

price#

Fetch a price from a price list by item ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the price entry

Returns: Price

NameTypeRequiredDescription
id
ID!
RequiredThe ID
sku
String!
RequiredSKU this price applies to
amount
Money!
RequiredThe price amount
original_amount
Money!
RequiredOriginal undiscounted amount

Example#

query GetPrice($id: String!) {
  price(id: $id) {
    id
    sku
    amount
    original_amount
    list {
      id
      name
    }
    vat {
      percentage
    }
  }
}
{
  "id": "prc_a7b8c9d0-e1f2-3456-7890-abcdef012345"
}

product#

Fetch a product by SKU.

Arguments:

NameTypeRequiredDescription
sku
String!
RequiredThe SKU of the product

Returns: Product

NameTypeRequiredDescription
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
slug
String!
RequiredURL slug
brand
String!
RequiredBrand name

Example#

query GetProduct($sku: String!) {
  product(sku: $sku) {
    sku
    label
    brand
    images {
      url
      position
    }
    filters {
      key
      value
    }
    prices {
      amount
      list {
        name
      }
    }
  }
}
{"sku": "BLK-HOODIE-M"}

See also: products

products#

Fetch products by a list of SKUs.

Arguments:

NameTypeRequiredDescription
skus
[String!]!
RequiredList of SKUs to fetch

Returns: Product

NameTypeRequiredDescription
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
slug
String!
RequiredURL slug
brand
String!
RequiredBrand name

Example#

query GetProducts($skus: [String!]!) {
  products(skus: $skus) {
    sku
    label
    brand
    images {
      url
      position
    }
    prices {
      amount
      list {
        name
      }
    }
    created_at
  }
}
{
  "skus": ["BLK-HOODIE-M", "WHT-TEE-L", "NVY-JOGGER-S"]
}

See also: product

productViewingHistory#

Fetch a product viewing history list by token.

Arguments:

NameTypeRequiredDescription
token
String!
RequiredThe token of the viewing history

Returns: ProductViewingHistory

NameTypeRequiredDescription
label
String!
RequiredLabel
token
String!
RequiredToken identifier
items
[ViewingHistoryItem!]!
RequiredViewed items
expires_at
DateTime!
RequiredExpiration date

Example#

query GetViewingHistory($token: String!) {
  productViewingHistory(token: $token) {
    token
    items {
      sku
      viewed_at
    }
  }
}
{
  "token": "pvh_b8c9d0e1-f2a3-4567-890a-bcdef0123456"
}

wishlist#

Fetch a wishlist by token.

Arguments:

NameTypeRequiredDescription
token
String!
RequiredThe token of the wishlist

Returns: Wishlist

NameTypeRequiredDescription
label
String!
RequiredLabel
token
String!
RequiredToken identifier
items
[WishlistItem!]!
RequiredItems on the wishlist
expires_at
DateTime!
RequiredExpiration date

Example#

query GetWishlist($token: String!) {
  wishlist(token: $token) {
    token
    label
    items {
      sku
      added_at
    }
  }
}
{
  "token": "wl_c9d0e1f2-a3b4-5678-90ab-cdef01234567"
}

returnMethod#

Fetch a return method by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the return method

Returns: ReturnMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query GetReturnMethod($id: String!) {
  returnMethod(id: $id) {
    id
    name
    is_enabled
    carrier
    description
    pricing {
      amount
    }
  }
}
{
  "id": "rm_d0e1f2a3-b4c5-6789-0abc-def012345678"
}

See also: returnMethods

returnMethods#

Fetch a paginated list of return methods.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalSearch filter string

Returns: ReturnMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query ListReturnMethods($first: Int) {
  returnMethods(first: $first) {
    edges {
      node {
        id
        name
        is_enabled
        carrier
        pricing {
          amount
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10
}

See also: returnMethod

shippingMethod#

Fetch a shipping method by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the shipping method

Returns: ShippingMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query GetShippingMethod($id: String!) {
  shippingMethod(id: $id) {
    id
    name
    is_enabled
    carrier
    pricing {
      amount
    }
    is_same_day
    is_pickup_point
    is_signed
  }
}
{
  "id": "sm_e1f2a3b4-c5d6-7890-abcd-ef0123456789"
}

See also: shippingMethods

shippingMethods#

Fetch a paginated list of shipping methods.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
sort
ShippingMethodsOrderByInput
OptionalSort order

Returns: ShippingMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query ListShippingMethods($first: Int) {
  shippingMethods(first: $first) {
    edges {
      node {
        id
        name
        is_enabled
        carrier
        is_same_day
        is_pickup_point
        pricing {
          amount
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 20
}

See also: shippingMethod

Query Runnerhttps://afosto.app/graphql

No query loaded

Click play on any code block in the docs to load a query here.