StoreAPI Schema

Queries

cart

Response

Returns a Cart

Arguments
Name Description
id - String

Example

Query
query cart($id: String) {
  cart(id: $id) {
    id
    totalQuantity
    productTotal {
      incVat
      exVat
      vat
    }
    productPreviousTotal {
      incVat
      exVat
      vat
    }
    discountTotal {
      incVat
      exVat
      vat
    }
    aggregatedDiscounts {
      externalId
      name
      value {
        ...PriceFragment
      }
      type
      description
      campaign {
        ...CategoryFragment
      }
    }
    externalCheckoutUrl
    items {
      id
      quantity
      articleNumber
      images {
        ...ProductImageFragment
      }
      subHeading
      variant {
        ...ProductVariantFragment
      }
      variantOptionNames
      customerComments {
        ...CartItemCommentFragment
      }
      discounts {
        ...DiscountFragment
      }
      total {
        ...PriceFragment
      }
      previousTotal {
        ...PriceFragment
      }
      unitPrice {
        ...PriceFragment
      }
      previousUnitPrice {
        ...PriceFragment
      }
      discount {
        ...PriceFragment
      }
      product {
        ...ProductFragment
      }
      configurations {
        ...SelectedProductConfigurationFragment
      }
      preOrderDate
    }
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "cart": {
      "id": "xyz789",
      "totalQuantity": 987,
      "productTotal": Price,
      "productPreviousTotal": Price,
      "discountTotal": Price,
      "aggregatedDiscounts": [Discount],
      "externalCheckoutUrl": Uri,
      "items": [CartItem]
    }
  }
}

categories

Description

get categories by channel id, culture, root and culture

Response

Returns [Category]!

Arguments
Name Description
root - Int category id of root parent, null or omit means all
levels - Int number of levels to traverse in the category tree, null or omit means all. Default = 1
includeHidden - Boolean Deprecated, this argument does not affect the result. Default = false

Example

Query
query categories(
  $root: Int,
  $levels: Int,
  $includeHidden: Boolean
) {
  categories(
    root: $root,
    levels: $levels,
    includeHidden: $includeHidden
  ) {
    id
    parentId
    name
    level
    activeDateSpan {
      startDate
      endDate
    }
    isHidden
    mainHeader
    content
    externalId
    externalDiscountId
    images {
      width
      height
      url
    }
    products {
      totalResults
      sortOrders {
        ...ProductSortOrderFragment
      }
      filters {
        ...FilterFragment
      }
      result {
        ...ProductFragment
      }
    }
    head {
      title
      metaTags {
        ...HtmlMetaTagFragment
      }
    }
    primaryRoute {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    breadcrumbText
    hasSubcategories
    subcategories {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    parentCategory {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    parent {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    isDynamic
    dynamicFiltering {
      type
      value {
        ... on StringValue {
          ...StringValueFragment
        }
        ... on ListStringValue {
          ...ListStringValueFragment
        }
        ... on BoolValue {
          ...BoolValueFragment
        }
      }
    }
    data {
      name
      id
      items {
        ...ContentItemFragment
      }
      tags
    }
    allowWebIndexing
  }
}
Variables
{"root": 123, "levels": 1, "includeHidden": false}
Response
{
  "data": {
    "categories": [
      {
        "id": 987,
        "parentId": 987,
        "name": "xyz789",
        "level": 123,
        "activeDateSpan": CategoryActiveDateSpan,
        "isHidden": false,
        "mainHeader": "abc123",
        "content": "abc123",
        "externalId": "abc123",
        "externalDiscountId": "xyz789",
        "images": [CategoryImage],
        "products": PagedResult,
        "head": HtmlHead,
        "primaryRoute": Route,
        "breadcrumbText": "xyz789",
        "hasSubcategories": true,
        "subcategories": [Category],
        "parentCategory": Category,
        "parent": Category,
        "isDynamic": false,
        "dynamicFiltering": [CategoryDynamicFilter],
        "data": Content,
        "allowWebIndexing": true
      }
    ]
  }
}

category

Description

get category by id

Response

Returns a Category

Arguments
Name Description
id - ID!

Example

Query
query category($id: ID!) {
  category(id: $id) {
    id
    parentId
    name
    level
    activeDateSpan {
      startDate
      endDate
    }
    isHidden
    mainHeader
    content
    externalId
    externalDiscountId
    images {
      width
      height
      url
    }
    products {
      totalResults
      sortOrders {
        ...ProductSortOrderFragment
      }
      filters {
        ...FilterFragment
      }
      result {
        ...ProductFragment
      }
    }
    head {
      title
      metaTags {
        ...HtmlMetaTagFragment
      }
    }
    primaryRoute {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    breadcrumbText
    hasSubcategories
    subcategories {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    parentCategory {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    parent {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    isDynamic
    dynamicFiltering {
      type
      value {
        ... on StringValue {
          ...StringValueFragment
        }
        ... on ListStringValue {
          ...ListStringValueFragment
        }
        ... on BoolValue {
          ...BoolValueFragment
        }
      }
    }
    data {
      name
      id
      items {
        ...ContentItemFragment
      }
      tags
    }
    allowWebIndexing
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "category": {
      "id": 987,
      "parentId": 987,
      "name": "abc123",
      "level": 123,
      "activeDateSpan": CategoryActiveDateSpan,
      "isHidden": false,
      "mainHeader": "xyz789",
      "content": "abc123",
      "externalId": "xyz789",
      "externalDiscountId": "abc123",
      "images": [CategoryImage],
      "products": PagedResult,
      "head": HtmlHead,
      "primaryRoute": Route,
      "breadcrumbText": "abc123",
      "hasSubcategories": true,
      "subcategories": [Category],
      "parentCategory": Category,
      "parent": Category,
      "isDynamic": true,
      "dynamicFiltering": [CategoryDynamicFilter],
      "data": Content,
      "allowWebIndexing": false
    }
  }
}

channel

Description

get channel by id, null gets default channel

Response

Returns a Channel

Arguments
Name Description
id - String

Example

Query
query channel($id: String) {
  channel(id: $id) {
    id
    name
    displayName
    groupName
    isDefault
    url
    settings {
      pricesIncVat
      countrySettings {
        ...CountrySettingsFragment
      }
      tracking {
        ...TrackingFragment
      }
      nostoAccountId
    }
    languages {
      id
      name
      culture
      isDefault
    }
    defaultLanguage {
      id
      name
      culture
      isDefault
    }
    currencies {
      id
      name
      isDefault
      format {
        ...CurrencyFormatFragment
      }
    }
    defaultCurrency {
      id
      name
      isDefault
      format {
        ...CurrencyFormatFragment
      }
    }
    countries {
      id
      code
      name
      isDefault
    }
    imageUrl
    requiresAuth
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "channel": {
      "id": 987,
      "name": "xyz789",
      "displayName": "xyz789",
      "groupName": "abc123",
      "isDefault": false,
      "url": Uri,
      "settings": ChannelSettings,
      "languages": [Language],
      "defaultLanguage": Language,
      "currencies": [Currency],
      "defaultCurrency": Currency,
      "countries": [Country],
      "imageUrl": "abc123",
      "requiresAuth": true
    }
  }
}

channels

Description

get all channels

Response

Returns [Channel]!

Example

Query
query channels {
  channels {
    id
    name
    displayName
    groupName
    isDefault
    url
    settings {
      pricesIncVat
      countrySettings {
        ...CountrySettingsFragment
      }
      tracking {
        ...TrackingFragment
      }
      nostoAccountId
    }
    languages {
      id
      name
      culture
      isDefault
    }
    defaultLanguage {
      id
      name
      culture
      isDefault
    }
    currencies {
      id
      name
      isDefault
      format {
        ...CurrencyFormatFragment
      }
    }
    defaultCurrency {
      id
      name
      isDefault
      format {
        ...CurrencyFormatFragment
      }
    }
    countries {
      id
      code
      name
      isDefault
    }
    imageUrl
    requiresAuth
  }
}
Response
{
  "data": {
    "channels": [
      {
        "id": 123,
        "name": "abc123",
        "displayName": "abc123",
        "groupName": "abc123",
        "isDefault": true,
        "url": Uri,
        "settings": ChannelSettings,
        "languages": [Language],
        "defaultLanguage": Language,
        "currencies": [Currency],
        "defaultCurrency": Currency,
        "countries": [Country],
        "imageUrl": "abc123",
        "requiresAuth": false
      }
    ]
  }
}

content

Description

Returns content found, either by a list of content Ids, or filtered by tags. In the case of filtering by ids, not found content Ids are listed as well

Response

Returns a MultipleContent

Arguments
Name Description
ids - [String]
tags - [String]

Example

Query
query content(
  $ids: [String],
  $tags: [String]
) {
  content(
    ids: $ids,
    tags: $tags
  ) {
    notFoundIds
    content {
      name
      id
      items {
        ...ContentItemFragment
      }
      tags
    }
  }
}
Variables
{
  "ids": ["xyz789"],
  "tags": ["xyz789"]
}
Response
{
  "data": {
    "content": {"notFoundIds": [4], "content": [Content]}
  }
}

customer

Response

Returns a Customer

Example

Query
query customer {
  customer {
    id
    memberId
    email
    externalId
    subscribedToNewsletter
    language {
      id
      name
      culture
      isDefault
    }
    billingAddress {
      id
      addressName
      firstName
      lastName
      companyAtt
      company
      department
      streetName
      co
      postalCode
      city
      municipality
      region
      country {
        ...CountryFragment
      }
      phone
      mobilePhone
    }
    deliveryAddresses {
      id
      addressName
      firstName
      lastName
      companyAtt
      company
      department
      streetName
      co
      postalCode
      city
      municipality
      region
      country {
        ...CountryFragment
      }
      phone
      mobilePhone
    }
    orderHeaders {
      result {
        ...OrderHeaderFragment
      }
      totalResults
    }
    communication {
      acceptsEmail
      acceptsPostal
      acceptsSms
    }
    store {
      id
      externalId
      name
      city
      region
      address1
      address2
      description
      other
      openHours
      contact
      coordinates {
        ...CoordinatesFragment
      }
    }
    dynamicContent
    externalAttributes {
      name
      value
    }
    googleUserId
  }
}
Response
{
  "data": {
    "customer": {
      "id": 4,
      "memberId": "abc123",
      "email": "abc123",
      "externalId": "abc123",
      "subscribedToNewsletter": false,
      "language": Language,
      "billingAddress": CustomerAddress,
      "deliveryAddresses": [CustomerAddress],
      "orderHeaders": OrderHeaderResult,
      "communication": CustomerCommunication,
      "store": Store,
      "dynamicContent": "xyz789",
      "externalAttributes": [CustomerExternalAttribute],
      "googleUserId": "abc123"
    }
  }
}

customerLookup

Description

Lookup a customer by a mobile phone number

Response

Returns a Customer

Arguments
Name Description
phoneNumber - String

Example

Query
query customerLookup($phoneNumber: String) {
  customerLookup(phoneNumber: $phoneNumber) {
    id
    memberId
    email
    externalId
    subscribedToNewsletter
    language {
      id
      name
      culture
      isDefault
    }
    billingAddress {
      id
      addressName
      firstName
      lastName
      companyAtt
      company
      department
      streetName
      co
      postalCode
      city
      municipality
      region
      country {
        ...CountryFragment
      }
      phone
      mobilePhone
    }
    deliveryAddresses {
      id
      addressName
      firstName
      lastName
      companyAtt
      company
      department
      streetName
      co
      postalCode
      city
      municipality
      region
      country {
        ...CountryFragment
      }
      phone
      mobilePhone
    }
    orderHeaders {
      result {
        ...OrderHeaderFragment
      }
      totalResults
    }
    communication {
      acceptsEmail
      acceptsPostal
      acceptsSms
    }
    store {
      id
      externalId
      name
      city
      region
      address1
      address2
      description
      other
      openHours
      contact
      coordinates {
        ...CoordinatesFragment
      }
    }
    dynamicContent
    externalAttributes {
      name
      value
    }
    googleUserId
  }
}
Variables
{"phoneNumber": "abc123"}
Response
{
  "data": {
    "customerLookup": {
      "id": "4",
      "memberId": "xyz789",
      "email": "xyz789",
      "externalId": "xyz789",
      "subscribedToNewsletter": false,
      "language": Language,
      "billingAddress": CustomerAddress,
      "deliveryAddresses": [CustomerAddress],
      "orderHeaders": OrderHeaderResult,
      "communication": CustomerCommunication,
      "store": Store,
      "dynamicContent": "xyz789",
      "externalAttributes": [CustomerExternalAttribute],
      "googleUserId": "abc123"
    }
  }
}

customerLoyalty

Description

Fetches customer-unique offers

Response

Returns a CustomerLoyalty

Example

Query
query customerLoyalty {
  customerLoyalty {
    bonusChecks {
      externalId
      name
      startDate
      endDate
      redeemed
      redeemedOn
      currency
      value
    }
    pointCards {
      externalId
      name
      lastStampTime
      numberOfSlots
      numberOfSlotsRemaining
      isActive
    }
    discounts {
      name
      description
      startDate
      endDate
      externalData {
        ...CustomerLoyaltyDiscountOfferExternalDataFragment
      }
      category {
        ...CategoryFragment
      }
      isActivatedByDiscountCode
      discountCode
    }
    bonusPoints {
      points
    }
  }
}
Response
{
  "data": {
    "customerLoyalty": {
      "bonusChecks": [CustomerLoyaltyBonusCheck],
      "pointCards": [CustomerLoyaltyPointCard],
      "discounts": [CustomerLoyaltyDiscount],
      "bonusPoints": CustomerLoyaltyBonusPoints
    }
  }
}

customerProductList

Description

get customer product list by id, null gets default product list

Response

Returns a CustomerProductList

Arguments
Name Description
id - ID
shareToken - String

Example

Query
query customerProductList(
  $id: ID,
  $shareToken: String
) {
  customerProductList(
    id: $id,
    shareToken: $shareToken
  ) {
    id
    shareToken
    name
    description
    type {
      id
      name
    }
    items {
      description
      quantity
      variant {
        ...ProductVariantFragment
      }
      product {
        ...ProductFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "shareToken": "xyz789"
}
Response
{
  "data": {
    "customerProductList": {
      "id": "4",
      "shareToken": "abc123",
      "name": "abc123",
      "description": "xyz789",
      "type": CustomerProductListType,
      "items": [CustomerProductListItem]
    }
  }
}

customerProductLists

Response

Returns [CustomerProductList]!

Example

Query
query customerProductLists {
  customerProductLists {
    id
    shareToken
    name
    description
    type {
      id
      name
    }
    items {
      description
      quantity
      variant {
        ...ProductVariantFragment
      }
      product {
        ...ProductFragment
      }
    }
  }
}
Response
{
  "data": {
    "customerProductLists": [
      {
        "id": "4",
        "shareToken": "xyz789",
        "name": "xyz789",
        "description": "abc123",
        "type": CustomerProductListType,
        "items": [CustomerProductListItem]
      }
    ]
  }
}

externalCustomerLookup

Description

Used in the sign up process when the shop has a third party customer repository, e.g. Voyado.

Error codes: INVALID_VALUE (if key is null), ExternalCustomerLookupFailed

Response

Returns an ExternalCustomerResult

Arguments
Name Description
key - String

Example

Query
query externalCustomerLookup($key: String) {
  externalCustomerLookup(key: $key) {
    status
    customer {
      externalId
      email {
        ...MaskedPropertyFragment
      }
      firstName {
        ...MaskedPropertyFragment
      }
      lastName {
        ...MaskedPropertyFragment
      }
      co {
        ...MaskedPropertyFragment
      }
      address {
        ...MaskedPropertyFragment
      }
      city {
        ...MaskedPropertyFragment
      }
      postalCode {
        ...MaskedPropertyFragment
      }
      country {
        ...MaskedPropertyFragment
      }
      countryCode
      phoneNumber {
        ...MaskedPropertyFragment
      }
      mobilePhoneNumber {
        ...MaskedPropertyFragment
      }
      pid {
        ...MaskedPropertyFragment
      }
    }
  }
}
Variables
{"key": "abc123"}
Response
{
  "data": {
    "externalCustomerLookup": {
      "status": "PREEXISTING_CUSTOMER",
      "customer": ExternalCustomer
    }
  }
}

myPagesContent

Description

Fetches my pages content

Response

Returns a MyPagesContent

Example

Query
query myPagesContent {
  myPagesContent {
    welcomeText
  }
}
Response
{
  "data": {
    "myPagesContent": {
      "welcomeText": "xyz789"
    }
  }
}

order

Description

fetch order by id

Response

Returns an Order

Arguments
Name Description
id - Int Deprecated, please use the orderId-argument
orderId - ID

Example

Query
query order(
  $id: Int,
  $orderId: ID
) {
  order(
    id: $id,
    orderId: $orderId
  ) {
    id
    orderNumber
    status {
      id
      description
      timestamp
    }
    items {
      articleNumber
      name
      quantity
      unitPrice {
        ...PriceFragment
      }
      total {
        ...PriceFragment
      }
      discounts {
        ...OrderItemDiscountFragment
      }
      product {
        ...ProductFragment
      }
      variant {
        ...ProductVariantFragment
      }
      variantOptionNames
      variantValue
      preOrderDate
      externalOrderData {
        ...ExternalOrderDataFragment
      }
    }
    billingInfo {
      firstName
      lastName
      company
      phone
      address {
        ...OrderAddressFragment
      }
    }
    deliveryInfo {
      firstName
      lastName
      company
      phone
      address {
        ...OrderAddressFragment
      }
    }
    paymentMethod {
      name
      fee {
        ...PriceFragment
      }
    }
    deliveryMethod {
      name
      fee {
        ...PriceFragment
      }
      tracking {
        ...OrderDeliveryMethodTrackingFragment
      }
    }
    giftVouchers {
      name
      amount
      charged
      validUntil
    }
    total {
      incVat
      exVat
      vat
    }
    orderDate
    currency {
      id
      name
      isDefault
      format {
        ...CurrencyFormatFragment
      }
    }
    attachments {
      id
      url
    }
    orderPurchaseLocation
  }
}
Variables
{"id": 987, "orderId": "4"}
Response
{
  "data": {
    "order": {
      "id": "4",
      "orderNumber": "abc123",
      "status": OrderStatus,
      "items": [OrderItem],
      "billingInfo": OrderInfo,
      "deliveryInfo": OrderInfo,
      "paymentMethod": OrderPaymentMethod,
      "deliveryMethod": OrderDeliveryMethod,
      "giftVouchers": [OrderGiftVoucher],
      "total": Price,
      "orderDate": "2007-12-03T10:15:30Z",
      "currency": Currency,
      "attachments": [OrderAttachment],
      "orderPurchaseLocation": "abc123"
    }
  }
}

page

Description

Fetch a single page by ID

Response

Returns a Page

Arguments
Name Description
id - Int!

Example

Query
query page($id: Int!) {
  page(id: $id) {
    id
    name
    mainHeader
    content
    hasExternalUrl
    externalUrl {
      target
      link
    }
    images {
      title
      url
      width
      height
    }
    head {
      title
      metaTags {
        ...HtmlMetaTagFragment
      }
    }
    primaryRoute {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    breadcrumbText
    data {
      name
      id
      items {
        ...ContentItemFragment
      }
      tags
    }
    parent {
      id
      name
      mainHeader
      content
      hasExternalUrl
      externalUrl {
        ...LinkFragment
      }
      images {
        ...ImageFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      data {
        ...ContentFragment
      }
      parent {
        ...PageFragment
      }
      subPages {
        ...PageFragment
      }
      allowWebIndexing
    }
    subPages {
      id
      name
      mainHeader
      content
      hasExternalUrl
      externalUrl {
        ...LinkFragment
      }
      images {
        ...ImageFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      data {
        ...ContentFragment
      }
      parent {
        ...PageFragment
      }
      subPages {
        ...PageFragment
      }
      allowWebIndexing
    }
    allowWebIndexing
  }
}
Variables
{"id": 123}
Response
{
  "data": {
    "page": {
      "id": 4,
      "name": "abc123",
      "mainHeader": "abc123",
      "content": "xyz789",
      "hasExternalUrl": true,
      "externalUrl": Link,
      "images": [Image],
      "head": HtmlHead,
      "primaryRoute": Route,
      "breadcrumbText": "abc123",
      "data": Content,
      "parent": Page,
      "subPages": [Page],
      "allowWebIndexing": false
    }
  }
}

pages

Description

Fetch all non-hidden pages. If you are using nested pages, only root level pages will be returned

Response

Returns [Page]!

Example

Query
query pages {
  pages {
    id
    name
    mainHeader
    content
    hasExternalUrl
    externalUrl {
      target
      link
    }
    images {
      title
      url
      width
      height
    }
    head {
      title
      metaTags {
        ...HtmlMetaTagFragment
      }
    }
    primaryRoute {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    breadcrumbText
    data {
      name
      id
      items {
        ...ContentItemFragment
      }
      tags
    }
    parent {
      id
      name
      mainHeader
      content
      hasExternalUrl
      externalUrl {
        ...LinkFragment
      }
      images {
        ...ImageFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      data {
        ...ContentFragment
      }
      parent {
        ...PageFragment
      }
      subPages {
        ...PageFragment
      }
      allowWebIndexing
    }
    subPages {
      id
      name
      mainHeader
      content
      hasExternalUrl
      externalUrl {
        ...LinkFragment
      }
      images {
        ...ImageFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      data {
        ...ContentFragment
      }
      parent {
        ...PageFragment
      }
      subPages {
        ...PageFragment
      }
      allowWebIndexing
    }
    allowWebIndexing
  }
}
Response
{
  "data": {
    "pages": [
      {
        "id": "4",
        "name": "abc123",
        "mainHeader": "abc123",
        "content": "xyz789",
        "hasExternalUrl": true,
        "externalUrl": Link,
        "images": [Image],
        "head": HtmlHead,
        "primaryRoute": Route,
        "breadcrumbText": "abc123",
        "data": Content,
        "parent": Page,
        "subPages": [Page],
        "allowWebIndexing": false
      }
    ]
  }
}

personLookup

Description

Get information on person by Key(personal id number or phone number)

Response

Returns a PersonLookup

Arguments
Name Description
key - String!

Example

Query
query personLookup($key: String!) {
  personLookup(key: $key) {
    firstName {
      masked
      encrypted
    }
    lastName {
      masked
      encrypted
    }
    co {
      masked
      encrypted
    }
    address {
      masked
      encrypted
    }
    city {
      masked
      encrypted
    }
    postalCode {
      masked
      encrypted
    }
    country {
      masked
      encrypted
    }
    phoneNumber {
      masked
      encrypted
    }
    mobilePhoneNumber {
      masked
      encrypted
    }
  }
}
Variables
{"key": "abc123"}
Response
{
  "data": {
    "personLookup": {
      "firstName": MaskedProperty,
      "lastName": MaskedProperty,
      "co": MaskedProperty,
      "address": MaskedProperty,
      "city": MaskedProperty,
      "postalCode": MaskedProperty,
      "country": MaskedProperty,
      "phoneNumber": MaskedProperty,
      "mobilePhoneNumber": MaskedProperty
    }
  }
}

product

Response

Returns a Product

Arguments
Name Description
articleNumber - String
id - Int
barcode - String

Example

Query
query product(
  $articleNumber: String,
  $id: Int,
  $barcode: String
) {
  product(
    articleNumber: $articleNumber,
    id: $id,
    barcode: $barcode
  ) {
    id
    articleNumber
    name
    subName
    shortDescription
    description
    mainHeader
    publishedDate
    canonicalCategory {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    categories {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    campaigns {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    hasVariants
    hasVariantsWithDifferingPrices
    variants {
      options {
        ...ProductVariantOptionFragment
      }
      values {
        ...ProductVariantFragment
      }
    }
    images {
      alt
      title
      sizes {
        ...ProductImageSizeFragment
      }
      url
      modifiedDate
    }
    relatedProducts {
      id
      articleNumber
      name
      subName
      shortDescription
      description
      mainHeader
      publishedDate
      canonicalCategory {
        ...CategoryFragment
      }
      categories {
        ...CategoryFragment
      }
      campaigns {
        ...CategoryFragment
      }
      hasVariants
      hasVariantsWithDifferingPrices
      variants {
        ...ProductVariantsFragment
      }
      images {
        ...ProductImageFragment
      }
      relatedProducts {
        ...ProductFragment
      }
      badges {
        ...ProductBadgeFragment
      }
      price {
        ...PriceFragment
      }
      hidePrice
      previousPrice {
        ...PriceFragment
      }
      defaultPrice {
        ...PriceFragment
      }
      defaultPreviousPrice {
        ...PriceFragment
      }
      recommendedPrice {
        ...PriceFragment
      }
      priceDateSpan {
        ...ProductPriceDateSpanFragment
      }
      hasMemberPrice
      memberPrice {
        ...PriceFragment
      }
      customerComments {
        ...ProductCommentFragment
      }
      stockStatus {
        ...StockStatusFragment
      }
      customFields {
        ...CustomFieldFragment
      }
      warehouseStock {
        ...WarehouseFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      recommendedProducts {
        ...RecommendedProductsFragment
      }
      distributionPackageSize
      barcode
      configurations {
        ...ProductConfigurationFragment
      }
      hasConfigurations
      hasFamilyMembers
      configurationPrice {
        ...ProductConfigurationPriceFragment
      }
      quantitySuffix
      isPreOrder
      preOrder {
        ...ProductPreOrderFragment
      }
      isPackage
      package {
        ...PackageFragment
      }
      upsell {
        ...UpsellFragment
      }
      inPackages {
        ...ProductFragment
      }
      hasUpsell
      familyMembers {
        ...ProductFragment
      }
      history {
        ...ProductHistoryFragment
      }
    }
    badges {
      name
      url
      location
      style
      text
    }
    price {
      incVat
      exVat
      vat
    }
    hidePrice
    previousPrice {
      incVat
      exVat
      vat
    }
    defaultPrice {
      incVat
      exVat
      vat
    }
    defaultPreviousPrice {
      incVat
      exVat
      vat
    }
    recommendedPrice {
      incVat
      exVat
      vat
    }
    priceDateSpan {
      startDate
      endDate
    }
    hasMemberPrice
    memberPrice {
      incVat
      exVat
      vat
    }
    customerComments {
      name
      required
    }
    stockStatus {
      id
      stockStatusId
      text
      buyable
      stockNotificationEnabled
      stockDate
      maxOrderQuantity
    }
    customFields {
      type
      key
      title
    }
    warehouseStock {
      stockLevel
      location {
        ...StoreFragment
      }
    }
    head {
      title
      metaTags {
        ...HtmlMetaTagFragment
      }
    }
    primaryRoute {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    breadcrumbText
    recommendedProducts {
      bought {
        ...ProductFragment
      }
      viewed {
        ...ProductFragment
      }
      shuffledToplist {
        ...ProductFragment
      }
    }
    distributionPackageSize
    barcode
    configurations {
      name
      options {
        ...ProductConfigurationOptionFragment
      }
    }
    hasConfigurations
    hasFamilyMembers
    configurationPrice {
      price {
        ...PriceFragment
      }
      previousPrice {
        ...PriceFragment
      }
    }
    quantitySuffix
    isPreOrder
    preOrder {
      fromDate
      toDate
    }
    isPackage
    package {
      id
      items {
        ...PackageItemFragment
      }
      price {
        ...PriceFragment
      }
      previousPrice {
        ...PriceFragment
      }
      discountValue {
        ...PriceFragment
      }
      discountPercentage
    }
    upsell {
      id
      items {
        ...UpsellItemFragment
      }
    }
    inPackages {
      id
      articleNumber
      name
      subName
      shortDescription
      description
      mainHeader
      publishedDate
      canonicalCategory {
        ...CategoryFragment
      }
      categories {
        ...CategoryFragment
      }
      campaigns {
        ...CategoryFragment
      }
      hasVariants
      hasVariantsWithDifferingPrices
      variants {
        ...ProductVariantsFragment
      }
      images {
        ...ProductImageFragment
      }
      relatedProducts {
        ...ProductFragment
      }
      badges {
        ...ProductBadgeFragment
      }
      price {
        ...PriceFragment
      }
      hidePrice
      previousPrice {
        ...PriceFragment
      }
      defaultPrice {
        ...PriceFragment
      }
      defaultPreviousPrice {
        ...PriceFragment
      }
      recommendedPrice {
        ...PriceFragment
      }
      priceDateSpan {
        ...ProductPriceDateSpanFragment
      }
      hasMemberPrice
      memberPrice {
        ...PriceFragment
      }
      customerComments {
        ...ProductCommentFragment
      }
      stockStatus {
        ...StockStatusFragment
      }
      customFields {
        ...CustomFieldFragment
      }
      warehouseStock {
        ...WarehouseFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      recommendedProducts {
        ...RecommendedProductsFragment
      }
      distributionPackageSize
      barcode
      configurations {
        ...ProductConfigurationFragment
      }
      hasConfigurations
      hasFamilyMembers
      configurationPrice {
        ...ProductConfigurationPriceFragment
      }
      quantitySuffix
      isPreOrder
      preOrder {
        ...ProductPreOrderFragment
      }
      isPackage
      package {
        ...PackageFragment
      }
      upsell {
        ...UpsellFragment
      }
      inPackages {
        ...ProductFragment
      }
      hasUpsell
      familyMembers {
        ...ProductFragment
      }
      history {
        ...ProductHistoryFragment
      }
    }
    hasUpsell
    familyMembers {
      id
      articleNumber
      name
      subName
      shortDescription
      description
      mainHeader
      publishedDate
      canonicalCategory {
        ...CategoryFragment
      }
      categories {
        ...CategoryFragment
      }
      campaigns {
        ...CategoryFragment
      }
      hasVariants
      hasVariantsWithDifferingPrices
      variants {
        ...ProductVariantsFragment
      }
      images {
        ...ProductImageFragment
      }
      relatedProducts {
        ...ProductFragment
      }
      badges {
        ...ProductBadgeFragment
      }
      price {
        ...PriceFragment
      }
      hidePrice
      previousPrice {
        ...PriceFragment
      }
      defaultPrice {
        ...PriceFragment
      }
      defaultPreviousPrice {
        ...PriceFragment
      }
      recommendedPrice {
        ...PriceFragment
      }
      priceDateSpan {
        ...ProductPriceDateSpanFragment
      }
      hasMemberPrice
      memberPrice {
        ...PriceFragment
      }
      customerComments {
        ...ProductCommentFragment
      }
      stockStatus {
        ...StockStatusFragment
      }
      customFields {
        ...CustomFieldFragment
      }
      warehouseStock {
        ...WarehouseFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      recommendedProducts {
        ...RecommendedProductsFragment
      }
      distributionPackageSize
      barcode
      configurations {
        ...ProductConfigurationFragment
      }
      hasConfigurations
      hasFamilyMembers
      configurationPrice {
        ...ProductConfigurationPriceFragment
      }
      quantitySuffix
      isPreOrder
      preOrder {
        ...ProductPreOrderFragment
      }
      isPackage
      package {
        ...PackageFragment
      }
      upsell {
        ...UpsellFragment
      }
      inPackages {
        ...ProductFragment
      }
      hasUpsell
      familyMembers {
        ...ProductFragment
      }
      history {
        ...ProductHistoryFragment
      }
    }
    history {
      previousPrice {
        ...PriceHistoryFragment
      }
    }
  }
}
Variables
{
  "articleNumber": "abc123",
  "id": 123,
  "barcode": "abc123"
}
Response
{
  "data": {
    "product": {
      "id": 123,
      "articleNumber": "abc123",
      "name": "abc123",
      "subName": "abc123",
      "shortDescription": "abc123",
      "description": "xyz789",
      "mainHeader": "abc123",
      "publishedDate": "2007-12-03T10:15:30Z",
      "canonicalCategory": Category,
      "categories": [Category],
      "campaigns": [Category],
      "hasVariants": true,
      "hasVariantsWithDifferingPrices": false,
      "variants": ProductVariants,
      "images": [ProductImage],
      "relatedProducts": [Product],
      "badges": [ProductBadge],
      "price": Price,
      "hidePrice": true,
      "previousPrice": Price,
      "defaultPrice": Price,
      "defaultPreviousPrice": Price,
      "recommendedPrice": Price,
      "priceDateSpan": ProductPriceDateSpan,
      "hasMemberPrice": true,
      "memberPrice": Price,
      "customerComments": [ProductComment],
      "stockStatus": StockStatus,
      "customFields": [CustomField],
      "warehouseStock": [Warehouse],
      "head": HtmlHead,
      "primaryRoute": Route,
      "breadcrumbText": "abc123",
      "recommendedProducts": RecommendedProducts,
      "distributionPackageSize": 987,
      "barcode": "abc123",
      "configurations": [ProductConfiguration],
      "hasConfigurations": true,
      "hasFamilyMembers": true,
      "configurationPrice": ProductConfigurationPrice,
      "quantitySuffix": "abc123",
      "isPreOrder": true,
      "preOrder": ProductPreOrder,
      "isPackage": true,
      "package": Package,
      "upsell": Upsell,
      "inPackages": [Product],
      "hasUpsell": true,
      "familyMembers": [Product],
      "history": ProductHistory
    }
  }
}

products

Response

Returns [Product]!

Arguments
Name Description
articleNumbers - [String]
ids - [Int]
barcodes - [String]

Example

Query
query products(
  $articleNumbers: [String],
  $ids: [Int],
  $barcodes: [String]
) {
  products(
    articleNumbers: $articleNumbers,
    ids: $ids,
    barcodes: $barcodes
  ) {
    id
    articleNumber
    name
    subName
    shortDescription
    description
    mainHeader
    publishedDate
    canonicalCategory {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    categories {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    campaigns {
      id
      parentId
      name
      level
      activeDateSpan {
        ...CategoryActiveDateSpanFragment
      }
      isHidden
      mainHeader
      content
      externalId
      externalDiscountId
      images {
        ...CategoryImageFragment
      }
      products {
        ...PagedResultFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      hasSubcategories
      subcategories {
        ...CategoryFragment
      }
      parentCategory {
        ...CategoryFragment
      }
      parent {
        ...CategoryFragment
      }
      isDynamic
      dynamicFiltering {
        ...CategoryDynamicFilterFragment
      }
      data {
        ...ContentFragment
      }
      allowWebIndexing
    }
    hasVariants
    hasVariantsWithDifferingPrices
    variants {
      options {
        ...ProductVariantOptionFragment
      }
      values {
        ...ProductVariantFragment
      }
    }
    images {
      alt
      title
      sizes {
        ...ProductImageSizeFragment
      }
      url
      modifiedDate
    }
    relatedProducts {
      id
      articleNumber
      name
      subName
      shortDescription
      description
      mainHeader
      publishedDate
      canonicalCategory {
        ...CategoryFragment
      }
      categories {
        ...CategoryFragment
      }
      campaigns {
        ...CategoryFragment
      }
      hasVariants
      hasVariantsWithDifferingPrices
      variants {
        ...ProductVariantsFragment
      }
      images {
        ...ProductImageFragment
      }
      relatedProducts {
        ...ProductFragment
      }
      badges {
        ...ProductBadgeFragment
      }
      price {
        ...PriceFragment
      }
      hidePrice
      previousPrice {
        ...PriceFragment
      }
      defaultPrice {
        ...PriceFragment
      }
      defaultPreviousPrice {
        ...PriceFragment
      }
      recommendedPrice {
        ...PriceFragment
      }
      priceDateSpan {
        ...ProductPriceDateSpanFragment
      }
      hasMemberPrice
      memberPrice {
        ...PriceFragment
      }
      customerComments {
        ...ProductCommentFragment
      }
      stockStatus {
        ...StockStatusFragment
      }
      customFields {
        ...CustomFieldFragment
      }
      warehouseStock {
        ...WarehouseFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      recommendedProducts {
        ...RecommendedProductsFragment
      }
      distributionPackageSize
      barcode
      configurations {
        ...ProductConfigurationFragment
      }
      hasConfigurations
      hasFamilyMembers
      configurationPrice {
        ...ProductConfigurationPriceFragment
      }
      quantitySuffix
      isPreOrder
      preOrder {
        ...ProductPreOrderFragment
      }
      isPackage
      package {
        ...PackageFragment
      }
      upsell {
        ...UpsellFragment
      }
      inPackages {
        ...ProductFragment
      }
      hasUpsell
      familyMembers {
        ...ProductFragment
      }
      history {
        ...ProductHistoryFragment
      }
    }
    badges {
      name
      url
      location
      style
      text
    }
    price {
      incVat
      exVat
      vat
    }
    hidePrice
    previousPrice {
      incVat
      exVat
      vat
    }
    defaultPrice {
      incVat
      exVat
      vat
    }
    defaultPreviousPrice {
      incVat
      exVat
      vat
    }
    recommendedPrice {
      incVat
      exVat
      vat
    }
    priceDateSpan {
      startDate
      endDate
    }
    hasMemberPrice
    memberPrice {
      incVat
      exVat
      vat
    }
    customerComments {
      name
      required
    }
    stockStatus {
      id
      stockStatusId
      text
      buyable
      stockNotificationEnabled
      stockDate
      maxOrderQuantity
    }
    customFields {
      type
      key
      title
    }
    warehouseStock {
      stockLevel
      location {
        ...StoreFragment
      }
    }
    head {
      title
      metaTags {
        ...HtmlMetaTagFragment
      }
    }
    primaryRoute {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    breadcrumbText
    recommendedProducts {
      bought {
        ...ProductFragment
      }
      viewed {
        ...ProductFragment
      }
      shuffledToplist {
        ...ProductFragment
      }
    }
    distributionPackageSize
    barcode
    configurations {
      name
      options {
        ...ProductConfigurationOptionFragment
      }
    }
    hasConfigurations
    hasFamilyMembers
    configurationPrice {
      price {
        ...PriceFragment
      }
      previousPrice {
        ...PriceFragment
      }
    }
    quantitySuffix
    isPreOrder
    preOrder {
      fromDate
      toDate
    }
    isPackage
    package {
      id
      items {
        ...PackageItemFragment
      }
      price {
        ...PriceFragment
      }
      previousPrice {
        ...PriceFragment
      }
      discountValue {
        ...PriceFragment
      }
      discountPercentage
    }
    upsell {
      id
      items {
        ...UpsellItemFragment
      }
    }
    inPackages {
      id
      articleNumber
      name
      subName
      shortDescription
      description
      mainHeader
      publishedDate
      canonicalCategory {
        ...CategoryFragment
      }
      categories {
        ...CategoryFragment
      }
      campaigns {
        ...CategoryFragment
      }
      hasVariants
      hasVariantsWithDifferingPrices
      variants {
        ...ProductVariantsFragment
      }
      images {
        ...ProductImageFragment
      }
      relatedProducts {
        ...ProductFragment
      }
      badges {
        ...ProductBadgeFragment
      }
      price {
        ...PriceFragment
      }
      hidePrice
      previousPrice {
        ...PriceFragment
      }
      defaultPrice {
        ...PriceFragment
      }
      defaultPreviousPrice {
        ...PriceFragment
      }
      recommendedPrice {
        ...PriceFragment
      }
      priceDateSpan {
        ...ProductPriceDateSpanFragment
      }
      hasMemberPrice
      memberPrice {
        ...PriceFragment
      }
      customerComments {
        ...ProductCommentFragment
      }
      stockStatus {
        ...StockStatusFragment
      }
      customFields {
        ...CustomFieldFragment
      }
      warehouseStock {
        ...WarehouseFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      recommendedProducts {
        ...RecommendedProductsFragment
      }
      distributionPackageSize
      barcode
      configurations {
        ...ProductConfigurationFragment
      }
      hasConfigurations
      hasFamilyMembers
      configurationPrice {
        ...ProductConfigurationPriceFragment
      }
      quantitySuffix
      isPreOrder
      preOrder {
        ...ProductPreOrderFragment
      }
      isPackage
      package {
        ...PackageFragment
      }
      upsell {
        ...UpsellFragment
      }
      inPackages {
        ...ProductFragment
      }
      hasUpsell
      familyMembers {
        ...ProductFragment
      }
      history {
        ...ProductHistoryFragment
      }
    }
    hasUpsell
    familyMembers {
      id
      articleNumber
      name
      subName
      shortDescription
      description
      mainHeader
      publishedDate
      canonicalCategory {
        ...CategoryFragment
      }
      categories {
        ...CategoryFragment
      }
      campaigns {
        ...CategoryFragment
      }
      hasVariants
      hasVariantsWithDifferingPrices
      variants {
        ...ProductVariantsFragment
      }
      images {
        ...ProductImageFragment
      }
      relatedProducts {
        ...ProductFragment
      }
      badges {
        ...ProductBadgeFragment
      }
      price {
        ...PriceFragment
      }
      hidePrice
      previousPrice {
        ...PriceFragment
      }
      defaultPrice {
        ...PriceFragment
      }
      defaultPreviousPrice {
        ...PriceFragment
      }
      recommendedPrice {
        ...PriceFragment
      }
      priceDateSpan {
        ...ProductPriceDateSpanFragment
      }
      hasMemberPrice
      memberPrice {
        ...PriceFragment
      }
      customerComments {
        ...ProductCommentFragment
      }
      stockStatus {
        ...StockStatusFragment
      }
      customFields {
        ...CustomFieldFragment
      }
      warehouseStock {
        ...WarehouseFragment
      }
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
      recommendedProducts {
        ...RecommendedProductsFragment
      }
      distributionPackageSize
      barcode
      configurations {
        ...ProductConfigurationFragment
      }
      hasConfigurations
      hasFamilyMembers
      configurationPrice {
        ...ProductConfigurationPriceFragment
      }
      quantitySuffix
      isPreOrder
      preOrder {
        ...ProductPreOrderFragment
      }
      isPackage
      package {
        ...PackageFragment
      }
      upsell {
        ...UpsellFragment
      }
      inPackages {
        ...ProductFragment
      }
      hasUpsell
      familyMembers {
        ...ProductFragment
      }
      history {
        ...ProductHistoryFragment
      }
    }
    history {
      previousPrice {
        ...PriceHistoryFragment
      }
    }
  }
}
Variables
{
  "articleNumbers": ["abc123"],
  "ids": [987],
  "barcodes": ["xyz789"]
}
Response
{
  "data": {
    "products": [
      {
        "id": 987,
        "articleNumber": "xyz789",
        "name": "abc123",
        "subName": "xyz789",
        "shortDescription": "xyz789",
        "description": "xyz789",
        "mainHeader": "abc123",
        "publishedDate": "2007-12-03T10:15:30Z",
        "canonicalCategory": Category,
        "categories": [Category],
        "campaigns": [Category],
        "hasVariants": false,
        "hasVariantsWithDifferingPrices": false,
        "variants": ProductVariants,
        "images": [ProductImage],
        "relatedProducts": [Product],
        "badges": [ProductBadge],
        "price": Price,
        "hidePrice": true,
        "previousPrice": Price,
        "defaultPrice": Price,
        "defaultPreviousPrice": Price,
        "recommendedPrice": Price,
        "priceDateSpan": ProductPriceDateSpan,
        "hasMemberPrice": false,
        "memberPrice": Price,
        "customerComments": [ProductComment],
        "stockStatus": StockStatus,
        "customFields": [CustomField],
        "warehouseStock": [Warehouse],
        "head": HtmlHead,
        "primaryRoute": Route,
        "breadcrumbText": "abc123",
        "recommendedProducts": RecommendedProducts,
        "distributionPackageSize": 987,
        "barcode": "abc123",
        "configurations": [ProductConfiguration],
        "hasConfigurations": false,
        "hasFamilyMembers": true,
        "configurationPrice": ProductConfigurationPrice,
        "quantitySuffix": "xyz789",
        "isPreOrder": true,
        "preOrder": ProductPreOrder,
        "isPackage": true,
        "package": Package,
        "upsell": Upsell,
        "inPackages": [Product],
        "hasUpsell": true,
        "familyMembers": [Product],
        "history": ProductHistory
      }
    ]
  }
}

route

Description

get product, category or page by path

Response

Returns a Route

Arguments
Name Description
path - String!

Example

Query
query route($path: String!) {
  route(path: $path) {
    id
    path
    canonicalPath
    slug
    object {
      head {
        ...HtmlHeadFragment
      }
      primaryRoute {
        ...RouteFragment
      }
      breadcrumbText
    }
    parents {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    alternateRoutes {
      channelId
      culture
      route
      alias
    }
    debug
    breadcrumbs
  }
}
Variables
{"path": "xyz789"}
Response
{
  "data": {
    "route": {
      "id": "xyz789",
      "path": "xyz789",
      "canonicalPath": "xyz789",
      "slug": "abc123",
      "object": Document,
      "parents": [Route],
      "alternateRoutes": [AlternateRoute],
      "debug": "xyz789",
      "breadcrumbs": ["abc123"]
    }
  }
}

searchAutoComplete

Response

Returns a SearchAutoCompleteResult

Arguments
Name Description
term - String!

Example

Query
query searchAutoComplete($term: String!) {
  searchAutoComplete(term: $term) {
    products {
      result {
        ...ProductFragment
      }
    }
    categories {
      result {
        ...CategoryFragment
      }
    }
  }
}
Variables
{"term": "abc123"}
Response
{
  "data": {
    "searchAutoComplete": {
      "products": ProductAutoCompleteResult,
      "categories": CategoryAutoCompleteResult
    }
  }
}

startPage

Response

Returns a StartPage

Arguments
Name Description
id - Int

Example

Query
query startPage($id: Int) {
  startPage(id: $id) {
    id
    name
    images {
      title
      url
      width
      height
    }
    isActive
    content
    items {
      id
      row
      column
      item {
        ... on Product {
          ...ProductFragment
        }
        ... on CustomItem {
          ...CustomItemFragment
        }
      }
    }
    head {
      title
      metaTags {
        ...HtmlMetaTagFragment
      }
    }
    primaryRoute {
      id
      path
      canonicalPath
      slug
      object {
        ...DocumentFragment
      }
      parents {
        ...RouteFragment
      }
      alternateRoutes {
        ...AlternateRouteFragment
      }
      debug
      breadcrumbs
    }
    breadcrumbText
    data {
      name
      id
      items {
        ...ContentItemFragment
      }
      tags
    }
  }
}
Variables
{"id": 123}
Response
{
  "data": {
    "startPage": {
      "id": 123,
      "name": "xyz789",
      "images": [Image],
      "isActive": false,
      "content": "xyz789",
      "items": [StartPageItem],
      "head": HtmlHead,
      "primaryRoute": Route,
      "breadcrumbText": "abc123",
      "data": Content
    }
  }
}

store

Response

Returns a Store

Arguments
Name Description
id - Int!

Example

Query
query store($id: Int!) {
  store(id: $id) {
    id
    externalId
    name
    city
    region
    address1
    address2
    description
    other
    openHours
    contact
    coordinates {
      latitude
      longitude
    }
  }
}
Variables
{"id": 123}
Response
{
  "data": {
    "store": {
      "id": 123,
      "externalId": "abc123",
      "name": "abc123",
      "city": "xyz789",
      "region": "xyz789",
      "address1": "abc123",
      "address2": "abc123",
      "description": "xyz789",
      "other": "xyz789",
      "openHours": "xyz789",
      "contact": "abc123",
      "coordinates": Coordinates
    }
  }
}

stores

Response

Returns [Store]!

Arguments
Name Description
includeInactive - Boolean! Default = false

Example

Query
query stores($includeInactive: Boolean!) {
  stores(includeInactive: $includeInactive) {
    id
    externalId
    name
    city
    region
    address1
    address2
    description
    other
    openHours
    contact
    coordinates {
      latitude
      longitude
    }
  }
}
Variables
{"includeInactive": false}
Response
{
  "data": {
    "stores": [
      {
        "id": 987,
        "externalId": "abc123",
        "name": "xyz789",
        "city": "xyz789",
        "region": "xyz789",
        "address1": "abc123",
        "address2": "abc123",
        "description": "xyz789",
        "other": "abc123",
        "openHours": "abc123",
        "contact": "abc123",
        "coordinates": Coordinates
      }
    ]
  }
}

Mutations

activateExternalCustomerById

Description

Error codes: CustomerNotFound, CustomerAlreadyActivated, UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput

Arguments
Name Description
input - ActivateExternalCustomerByIdInput

Example

Query
mutation activateExternalCustomerById($input: ActivateExternalCustomerByIdInput) {
  activateExternalCustomerById(input: $input) {
    success
    token {
      value
    }
  }
}
Variables
{"input": ActivateExternalCustomerByIdInput}
Response
{
  "data": {
    "activateExternalCustomerById": {
      "success": true,
      "token": Token
    }
  }
}

activateExternalCustomerByToken

Description

Error codes: CustomerNotFound, CustomerAlreadyActivated, UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput

Arguments
Name Description
input - ActivateExternalCustomerByTokenInput

Example

Query
mutation activateExternalCustomerByToken($input: ActivateExternalCustomerByTokenInput) {
  activateExternalCustomerByToken(input: $input) {
    success
    customer {
      externalId
      email {
        ...MaskedPropertyFragment
      }
      firstName {
        ...MaskedPropertyFragment
      }
      lastName {
        ...MaskedPropertyFragment
      }
      co {
        ...MaskedPropertyFragment
      }
      address {
        ...MaskedPropertyFragment
      }
      city {
        ...MaskedPropertyFragment
      }
      postalCode {
        ...MaskedPropertyFragment
      }
      country {
        ...MaskedPropertyFragment
      }
      countryCode
      phoneNumber {
        ...MaskedPropertyFragment
      }
      mobilePhoneNumber {
        ...MaskedPropertyFragment
      }
      pid {
        ...MaskedPropertyFragment
      }
    }
  }
}
Variables
{"input": ActivateExternalCustomerByTokenInput}
Response
{
  "data": {
    "activateExternalCustomerByToken": {
      "success": true,
      "customer": ExternalCustomer
    }
  }
}

addMultipleToCart

Description

Adds products to the cart where you can add comments to the products and determine their quantities. Replies with the affected cart if a cartId has been presented, otherwise a new cart will be created.

Response

Returns a CartMutation

Arguments
Name Description
cartId - String Not specifying cart id will create new cart
items - [AddMultipleToCartInput]!

Example

Query
mutation addMultipleToCart(
  $cartId: String,
  $items: [AddMultipleToCartInput]!
) {
  addMultipleToCart(
    cartId: $cartId,
    items: $items
  ) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{
  "cartId": "abc123",
  "items": [AddMultipleToCartInput]
}
Response
{"data": {"addMultipleToCart": {"cart": Cart}}}

addToCart

Description

Adds a product to the cart where you can add a comment to the product and determine the quantity. Replies with the affected cart if a cartId has been presented, otherwise a new cart will be created.

Response

Returns a CartMutation

Arguments
Name Description
input - AddToCartInput!

Example

Query
mutation addToCart($input: AddToCartInput!) {
  addToCart(input: $input) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{"input": AddToCartInput}
Response
{"data": {"addToCart": {"cart": Cart}}}

addToCustomerProductList

Description

Description

Adds items to product list, null id adds items to the default product list.

Error Codes

Unauthorized

Unauthorized

AddToProductListFailed

Error in underlying API call, more info may be contained in the error message.

InvalidArticleNumber

Article number cannot be empty

ProductNotFound

No match on article number

MoreThanOneMatchOnArticleNumber

Article number matched more than one article

Response

Returns a CustomerProductListResult

Arguments
Name Description
id - ID
items - [AddToCustomerProductListInput!]!

Example

Query
mutation addToCustomerProductList(
  $id: ID,
  $items: [AddToCustomerProductListInput!]!
) {
  addToCustomerProductList(
    id: $id,
    items: $items
  ) {
    success
    customerProductList {
      id
      shareToken
      name
      description
      type {
        ...CustomerProductListTypeFragment
      }
      items {
        ...CustomerProductListItemFragment
      }
    }
  }
}
Variables
{"id": 4, "items": [AddToCustomerProductListInput]}
Response
{
  "data": {
    "addToCustomerProductList": {
      "success": true,
      "customerProductList": CustomerProductList
    }
  }
}

createCustomerProductList

Description

Description

Creates a product list for a logged in customer

Error Codes

Unauthorized

UnableToCreateProductList

Error in underlying API call, more info may be contained in the error message.

Response

Returns a CustomerProductListResult

Arguments
Name Description
input - CreateCustomerProductListInput!

Example

Query
mutation createCustomerProductList($input: CreateCustomerProductListInput!) {
  createCustomerProductList(input: $input) {
    success
    customerProductList {
      id
      shareToken
      name
      description
      type {
        ...CustomerProductListTypeFragment
      }
      items {
        ...CustomerProductListItemFragment
      }
    }
  }
}
Variables
{"input": CreateCustomerProductListInput}
Response
{
  "data": {
    "createCustomerProductList": {
      "success": false,
      "customerProductList": CustomerProductList
    }
  }
}

decrementItemQuantity

Description

This mutation is used to reduce the quantity of a product in the cart, replies with the affected cart ruled by the cartId in the input

Response

Returns a CartMutation

Arguments
Name Description
input - ChangeByOneItemQuantityInput!

Example

Query
mutation decrementItemQuantity($input: ChangeByOneItemQuantityInput!) {
  decrementItemQuantity(input: $input) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{"input": ChangeByOneItemQuantityInput}
Response
{"data": {"decrementItemQuantity": {"cart": Cart}}}

deleteCustomer

Description

This mutation deletes a customer. An authorization token is needed in the request, in order to be able to delete the customer

Response

Returns a Boolean

Example

Query
mutation deleteCustomer {
  deleteCustomer
}
Response
{"data": {"deleteCustomer": true}}

deleteCustomerProductList

Description

Description

Deletes a product list for a logged in customer

Error Codes

Unauthorized

ProductListNotFound

Argument id did not match any list for this customer.

UnableToDeleteProductList

Error in underlying API call, more info may be contained in the error message.

Response

Returns a DeleteCustomerProductListResult

Arguments
Name Description
id - ID!

Example

Query
mutation deleteCustomerProductList($id: ID!) {
  deleteCustomerProductList(id: $id) {
    success
  }
}
Variables
{"id": 4}
Response
{"data": {"deleteCustomerProductList": {"success": true}}}

incrementItemQuantity

Description

This mutation is used to increase the quantity of a product in the cart, replies with the affected cart ruled by the cartId in the input

Response

Returns a CartMutation

Arguments
Name Description
input - ChangeByOneItemQuantityInput!

Example

Query
mutation incrementItemQuantity($input: ChangeByOneItemQuantityInput!) {
  incrementItemQuantity(input: $input) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{"input": ChangeByOneItemQuantityInput}
Response
{"data": {"incrementItemQuantity": {"cart": Cart}}}

login

Description

LoginMutation will log a user in. One of email, pid, externalId, memberNumber or customerId is required, along with a password. Returns an authorization token if the login was successful

Response

Returns a LoginResponse

Arguments
Name Description
password - String
email - String
pid - String
externalId - String
memberNumber - String
externalHashId - String
timeStamp - String
customerId - Int

Example

Query
mutation login(
  $password: String,
  $email: String,
  $pid: String,
  $externalId: String,
  $memberNumber: String,
  $externalHashId: String,
  $timeStamp: String,
  $customerId: Int
) {
  login(
    password: $password,
    email: $email,
    pid: $pid,
    externalId: $externalId,
    memberNumber: $memberNumber,
    externalHashId: $externalHashId,
    timeStamp: $timeStamp,
    customerId: $customerId
  ) {
    token {
      value
    }
  }
}
Variables
{
  "password": "xyz789",
  "email": "xyz789",
  "pid": "abc123",
  "externalId": "abc123",
  "memberNumber": "abc123",
  "externalHashId": "abc123",
  "timeStamp": "xyz789",
  "customerId": 987
}
Response
{"data": {"login": {"token": Token}}}

loginExternalCustomer

Response

Returns a LoginExternalCustomerResult

Arguments
Name Description
input - LoginExternalCustomerInput

Example

Query
mutation loginExternalCustomer($input: LoginExternalCustomerInput) {
  loginExternalCustomer(input: $input) {
    token {
      value
    }
  }
}
Variables
{"input": LoginExternalCustomerInput}
Response
{"data": {"loginExternalCustomer": {"token": Token}}}

removeFromCart

Description

Removes a specific product in the cart, replies with the affected cart

Response

Returns a CartMutation

Arguments
Name Description
input - RemoveFromCartInput!

Example

Query
mutation removeFromCart($input: RemoveFromCartInput!) {
  removeFromCart(input: $input) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{"input": RemoveFromCartInput}
Response
{"data": {"removeFromCart": {"cart": Cart}}}

removeFromCustomerProductList

Description

Description

Removes an item from a product list for a logged in customer, null id removes item in the default product list.

Error Codes

Unauthorized

ProductListNotFound

Argument id did not match any list for this customer.

RemoveFromProductListFailed

Error in underlying API call, more info may be contained in the error message.

ProductNotFound

Argument articleNumbers did not match any products or variants.

MoreThanOneMatchOnArticleNumber

Argument articleNumbers matched more than one product/variant.

InvalidArticleNumber

Argument articleNumbers cannot be null or empty.

Response

Returns a CustomerProductListResult

Arguments
Name Description
id - ID
articleNumbers - [String!]

Example

Query
mutation removeFromCustomerProductList(
  $id: ID,
  $articleNumbers: [String!]
) {
  removeFromCustomerProductList(
    id: $id,
    articleNumbers: $articleNumbers
  ) {
    success
    customerProductList {
      id
      shareToken
      name
      description
      type {
        ...CustomerProductListTypeFragment
      }
      items {
        ...CustomerProductListItemFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "articleNumbers": ["abc123"]
}
Response
{
  "data": {
    "removeFromCustomerProductList": {
      "success": true,
      "customerProductList": CustomerProductList
    }
  }
}

removeMultipleFromCart

Description

Removes specific items from the cart, replies with the affected cart

Response

Returns a CartMutation

Arguments
Name Description
input - RemoveMultipleFromCartInput!

Example

Query
mutation removeMultipleFromCart($input: RemoveMultipleFromCartInput!) {
  removeMultipleFromCart(input: $input) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{"input": RemoveMultipleFromCartInput}
Response
{"data": {"removeMultipleFromCart": {"cart": Cart}}}

requestPasswordReset

Description

Requires a valid email and returns boolean value if successful, otherwise an error will be thrown

Response

Returns a RequestPasswordResetResult

Arguments
Name Description
email - String!

Example

Query
mutation requestPasswordReset($email: String!) {
  requestPasswordReset(email: $email) {
    success
  }
}
Variables
{"email": "abc123"}
Response
{"data": {"requestPasswordReset": {"success": false}}}

resetPassword

Description

Requires a valid resetPasswordToken and a new password and if successful will return a authentication token

Response

Returns a ResetPassword

Arguments
Name Description
resetPasswordToken - String! A reset password token that is solely used during a password reset
newPassword - String!

Example

Query
mutation resetPassword(
  $resetPasswordToken: String!,
  $newPassword: String!
) {
  resetPassword(
    resetPasswordToken: $resetPasswordToken,
    newPassword: $newPassword
  ) {
    token {
      value
    }
  }
}
Variables
{
  "resetPasswordToken": "xyz789",
  "newPassword": "abc123"
}
Response
{"data": {"resetPassword": {"token": Token}}}

setItemQuantity

Description

Used to add a specific quantity to a product in the cart. Replies with the affected cart ruled by the cartId in the input

Response

Returns a CartMutation

Arguments
Name Description
input - SetItemQuantityInput!

Example

Query
mutation setItemQuantity($input: SetItemQuantityInput!) {
  setItemQuantity(input: $input) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{"input": SetItemQuantityInput}
Response
{"data": {"setItemQuantity": {"cart": Cart}}}

signUp

Description

The SignUp-mutation is used for creating a customer.

If the sign up is successful the customer may be considered to be logged on and an authentication token will be returned

Response

Returns a SignUpResponse

Arguments
Name Description
input - SignUpInput!

Example

Query
mutation signUp($input: SignUpInput!) {
  signUp(input: $input) {
    token {
      value
    }
  }
}
Variables
{"input": SignUpInput}
Response
{"data": {"signUp": {"token": Token}}}

subscribeToNewsletter

Description

This mutation's purpose is to subscribe a customer to a newsletter. In order to subscribe a customer a valid email address is required

Responds with a boolean value whether the subscription has been successful or not

Response

Returns a Boolean

Arguments
Name Description
email - String!

Example

Query
mutation subscribeToNewsletter($email: String!) {
  subscribeToNewsletter(email: $email)
}
Variables
{"email": "abc123"}
Response
{"data": {"subscribeToNewsletter": false}}

subscribeToStockNotifications

Response

Returns a Boolean

Arguments
Name Description
email - String!
articleNumber - String!

Example

Query
mutation subscribeToStockNotifications(
  $email: String!,
  $articleNumber: String!
) {
  subscribeToStockNotifications(
    email: $email,
    articleNumber: $articleNumber
  )
}
Variables
{
  "email": "xyz789",
  "articleNumber": "xyz789"
}
Response
{"data": {"subscribeToStockNotifications": true}}

updateCart

Description

Responds with the affected cart

Response

Returns an UpdateCartMutation

Arguments
Name Description
input - UpdateCartInput!

Example

Query
mutation updateCart($input: UpdateCartInput!) {
  updateCart(input: $input) {
    cart {
      id
      totalQuantity
      productTotal {
        ...PriceFragment
      }
      productPreviousTotal {
        ...PriceFragment
      }
      discountTotal {
        ...PriceFragment
      }
      aggregatedDiscounts {
        ...DiscountFragment
      }
      externalCheckoutUrl
      items {
        ...CartItemFragment
      }
    }
  }
}
Variables
{"input": UpdateCartInput}
Response
{"data": {"updateCart": {"cart": Cart}}}

updateCustomer

Description

This mutation's purpose is to update a existing customer's information. An authorization token is needed in the request, in order to be able to update the customer

Response

Returns a CustomerUpdateResponse

Arguments
Name Description
input - CustomerUpdateInput!

Example

Query
mutation updateCustomer($input: CustomerUpdateInput!) {
  updateCustomer(input: $input) {
    success
  }
}
Variables
{"input": CustomerUpdateInput}
Response
{"data": {"updateCustomer": {"success": true}}}

updateCustomerGroup

Description

Description

This mutation's purpose is to update a existing customer's group using an access code. An authorization token is needed in the request, in order to be able to update the customer.

Error Codes

Unauthorized

Unauthorized

UnableToUpdateCustomer

Error in underlying API call, more info may be contained in the error message.

CustomerAlreadyUpdated

Customer already in the customer group

CustomerNotFound

No match on customer with access code

Response

Returns an UpdateCustomerGroupResult

Arguments
Name Description
customerGroupAccessCode - String!

Example

Query
mutation updateCustomerGroup($customerGroupAccessCode: String!) {
  updateCustomerGroup(customerGroupAccessCode: $customerGroupAccessCode) {
    success
  }
}
Variables
{"customerGroupAccessCode": "abc123"}
Response
{"data": {"updateCustomerGroup": {"success": false}}}

updateCustomerPriceList

Description

This mutation's purpose is to update a existing customer's price list using an access code. An authorization token is needed in the request, in order to be able to update the customer

Response

Returns an UpdateCustomerPriceListResult

Arguments
Name Description
priceListAccessCode - String!

Example

Query
mutation updateCustomerPriceList($priceListAccessCode: String!) {
  updateCustomerPriceList(priceListAccessCode: $priceListAccessCode) {
    success
  }
}
Variables
{"priceListAccessCode": "abc123"}
Response
{"data": {"updateCustomerPriceList": {"success": false}}}

updateCustomerProductList

Description

Description

Updates a product list for a logged in customer

Error Codes

Unauthorized

ProductListNotFound

Argument id did not match any list for this customer.

UnableToUpdateProductList

Error in underlying API call, more info may be contained in the error message.

Response

Returns a CustomerProductListResult

Arguments
Name Description
input - UpdateCustomerProductListInput!

Example

Query
mutation updateCustomerProductList($input: UpdateCustomerProductListInput!) {
  updateCustomerProductList(input: $input) {
    success
    customerProductList {
      id
      shareToken
      name
      description
      type {
        ...CustomerProductListTypeFragment
      }
      items {
        ...CustomerProductListItemFragment
      }
    }
  }
}
Variables
{"input": UpdateCustomerProductListInput}
Response
{
  "data": {
    "updateCustomerProductList": {
      "success": false,
      "customerProductList": CustomerProductList
    }
  }
}

updateCustomerProductListItem

Description

Description

Updates an item in product list, null id updates item in the default product list.

Error Codes

Unauthorized

ProductListNotFound

Argument id did not match any list for this customer.

UnableToUpdateProductListItem

Error in underlying API call, more info may be contained in the error message.

ProductNotFound

Argument articleNumber did not match any products or variants.

MoreThanOneMatchOnArticleNumber

Argument articleNumber matched more than one product/variant.

InvalidArticleNumber

Argument articleNumber cannot be null or empty.

Response

Returns a CustomerProductListResult

Arguments
Name Description
input - UpdateCustomerProductListItemInput!

Example

Query
mutation updateCustomerProductListItem($input: UpdateCustomerProductListItemInput!) {
  updateCustomerProductListItem(input: $input) {
    success
    customerProductList {
      id
      shareToken
      name
      description
      type {
        ...CustomerProductListTypeFragment
      }
      items {
        ...CustomerProductListItemFragment
      }
    }
  }
}
Variables
{"input": UpdateCustomerProductListItemInput}
Response
{
  "data": {
    "updateCustomerProductListItem": {
      "success": false,
      "customerProductList": CustomerProductList
    }
  }
}

updatePassword

Description

The updatePassword mutation updates the customers password. Both the old password and a new password is a requirement

Response

Returns an UpdatePasswordResult

Arguments
Name Description
oldPassword - String!
newPassword - String!

Example

Query
mutation updatePassword(
  $oldPassword: String!,
  $newPassword: String!
) {
  updatePassword(
    oldPassword: $oldPassword,
    newPassword: $newPassword
  ) {
    success
  }
}
Variables
{
  "oldPassword": "abc123",
  "newPassword": "xyz789"
}
Response
{"data": {"updatePassword": {"success": true}}}

Types

ActivateExternalCustomerByIdInput

Fields
Input Field Description
externalCustomerId - String!
Example
{"externalCustomerId": "abc123"}

ActivateExternalCustomerByIdResult

Fields
Field Name Description
success - Boolean!
token - Token
Example
{"success": true, "token": Token}

ActivateExternalCustomerByTokenInput

Fields
Input Field Description
externalCustomerToken - String!
Example
{"externalCustomerToken": "abc123"}

ActivateExternalCustomerByTokenResult

Fields
Field Name Description
success - Boolean!
customer - ExternalCustomer
Example
{"success": true, "customer": ExternalCustomer}

ActivationStatusSource

Values
Enum Value Description

PREEXISTING_CUSTOMER

ACTIVATION_REQUIRED

ADDITIONAL_USER_DATA_REQUIRED

NON_EXISTING_CUSTOMER

COUNTRY_NOT_VALID

Example
"PREEXISTING_CUSTOMER"

AddMultipleToCartInput

Fields
Input Field Description
articleNumber - String!
quantity - Int Default value is 1
comments - [InputComment]
configurationIds - [ID]
preOrderDate - DateTime
Example
{
  "articleNumber": "xyz789",
  "quantity": 987,
  "comments": [InputComment],
  "configurationIds": ["4"],
  "preOrderDate": "2007-12-03T10:15:30Z"
}

AddToCartInput

Fields
Input Field Description
cartId - String Not specifying cart id will create new cart
articleNumber - String!
quantity - Int Default value is 1
comments - [InputComment]
configurationIds - [ID]
preOrderDate - DateTime
Example
{
  "cartId": "xyz789",
  "articleNumber": "abc123",
  "quantity": 987,
  "comments": [InputComment],
  "configurationIds": ["4"],
  "preOrderDate": "2007-12-03T10:15:30Z"
}

AddToCustomerProductListInput

Fields
Input Field Description
articleNumber - String!
quantity - Int
description - String
Example
{
  "articleNumber": "xyz789",
  "quantity": 987,
  "description": "xyz789"
}

AlternateRoute

Fields
Field Name Description
channelId - Int
culture - String
route - String
alias - String
Example
{
  "channelId": 987,
  "culture": "xyz789",
  "route": "xyz789",
  "alias": "abc123"
}

BoolValue

Fields
Field Name Description
value - Boolean
Example
{"value": false}

Boolean

Example
true

BooleanFilter

Fields
Field Name Description
default - Boolean
id - String!
name - String!
Example
{
  "default": true,
  "id": "xyz789",
  "name": "xyz789"
}

BooleanFilterInput

Fields
Input Field Description
id - String!
value - Boolean null is equivalent to excluding the filter
Example
{"id": "xyz789", "value": true}

BusinessCustomer

Fields
Field Name Description
organizationId - String Use organizationNumber instead.
organizationNumber - String
id - ID!
memberId - String
email - String
externalId - String Customer id for external system
subscribedToNewsletter - Boolean Use communication.acceptsEmail
language - Language
billingAddress - CustomerAddress
deliveryAddresses - [CustomerAddress]
orderHeaders - OrderHeaderResult NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
first - Int

Will fetch all if this is set to 0

offset - Int
communication - CustomerCommunication
store - Store NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
dynamicContent - String
externalAttributes - [CustomerExternalAttribute]
googleUserId - String NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Example
{
  "organizationId": "abc123",
  "organizationNumber": "xyz789",
  "id": 4,
  "memberId": "abc123",
  "email": "xyz789",
  "externalId": "abc123",
  "subscribedToNewsletter": true,
  "language": Language,
  "billingAddress": CustomerAddress,
  "deliveryAddresses": [CustomerAddress],
  "orderHeaders": OrderHeaderResult,
  "communication": CustomerCommunication,
  "store": Store,
  "dynamicContent": "xyz789",
  "externalAttributes": [CustomerExternalAttribute],
  "googleUserId": "abc123"
}

Cart

Fields
Field Name Description
id - String
totalQuantity - Int
productTotal - Price
productPreviousTotal - Price
discountTotal - Price
aggregatedDiscounts - [Discount]
externalCheckoutUrl - Uri
items - [CartItem]
Example
{
  "id": "xyz789",
  "totalQuantity": 123,
  "productTotal": Price,
  "productPreviousTotal": Price,
  "discountTotal": Price,
  "aggregatedDiscounts": [Discount],
  "externalCheckoutUrl": Uri,
  "items": [CartItem]
}

CartItem

Fields
Field Name Description
id - String!
quantity - Int!
articleNumber - String!
images - [ProductImage] Please use images on product instead.
subHeading - String
variant - ProductVariant
variantOptionNames - [String]
customerComments - [CartItemComment]
discounts - [Discount]
total - Price! Total price, including discounts
previousTotal - Price! Total price, excluding discounts
unitPrice - Price! Unit price, including discounts
previousUnitPrice - Price! Unit price, excluding discounts
discount - Price Discount total
product - Product
configurations - [SelectedProductConfiguration]
preOrderDate - DateTime
Example
{
  "id": "abc123",
  "quantity": 123,
  "articleNumber": "xyz789",
  "images": [ProductImage],
  "subHeading": "xyz789",
  "variant": ProductVariant,
  "variantOptionNames": ["xyz789"],
  "customerComments": [CartItemComment],
  "discounts": [Discount],
  "total": Price,
  "previousTotal": Price,
  "unitPrice": Price,
  "previousUnitPrice": Price,
  "discount": Price,
  "product": Product,
  "configurations": [SelectedProductConfiguration],
  "preOrderDate": "2007-12-03T10:15:30Z"
}

CartItemComment

Fields
Field Name Description
name - String
value - String
Example
{
  "name": "xyz789",
  "value": "abc123"
}

CartMutation

Fields
Field Name Description
cart - Cart
Example
{"cart": Cart}

Category

Fields
Field Name Description
id - Int!
parentId - Int Use parent.id instead
name - String!
level - Int!
activeDateSpan - CategoryActiveDateSpan The time interval of the campaign/category
isHidden - Boolean! Whether or not this category and all its children are considered hidden This field should no longer be used and will always be false.
mainHeader - String When empty will display the value of the name field
content - String
externalId - String
externalDiscountId - String
images - [CategoryImage]
products - PagedResult NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
first - Paging
offset - Int
orderByDirection - SortDirection
filters - FilterInput
head - HtmlHead NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
primaryRoute - Route The primary route of this Category. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
breadcrumbText - String
hasSubcategories - Boolean
subcategories - [Category]
parentCategory - Category Use parent instead
parent - Category
isDynamic - Boolean! A dynamic category has no fixed products; products are dynamically included based on filters defined on the category in Admin. N.B. Products found on a dynamic category has no route that includes said category, instead product.primaryRoute will have to be used
dynamicFiltering - [CategoryDynamicFilter] The category's dynamic filtersNB: Carries a performance cost, as asking for this will result in a separate API call in the backend
data - Content Get content data set via the Content Editor. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
allowWebIndexing - Boolean When set to false, the category will be excluded from sitemap. The frontend implementation should use this value to set meta tags to exclude the category from being indexed by crawlers. Defaults to true
Example
{
  "id": 987,
  "parentId": 123,
  "name": "abc123",
  "level": 123,
  "activeDateSpan": CategoryActiveDateSpan,
  "isHidden": false,
  "mainHeader": "xyz789",
  "content": "xyz789",
  "externalId": "abc123",
  "externalDiscountId": "xyz789",
  "images": [CategoryImage],
  "products": PagedResult,
  "head": HtmlHead,
  "primaryRoute": Route,
  "breadcrumbText": "abc123",
  "hasSubcategories": false,
  "subcategories": [Category],
  "parentCategory": Category,
  "parent": Category,
  "isDynamic": false,
  "dynamicFiltering": [CategoryDynamicFilter],
  "data": Content,
  "allowWebIndexing": false
}

CategoryActiveDateSpan

Fields
Field Name Description
startDate - DateTime
endDate - DateTime
Example
{
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z"
}

CategoryAutoCompleteResult

Fields
Field Name Description
result - [Category]
Example
{"result": [Category]}

CategoryDynamicFilter

Fields
Field Name Description
type - String
value - CategoryDynamicFilterValue
Example
{
  "type": "xyz789",
  "value": StringValue
}

CategoryDynamicFilterValue

Example
StringValue

CategoryImage

Fields
Field Name Description
width - Int
height - Int
url - Uri
Example
{"width": 123, "height": 987, "url": Uri}

CategorySearchResult

Fields
Field Name Description
result - [Category]
totalResults - Int
Example
{"result": [Category], "totalResults": 123}

ChangeByOneItemQuantityInput

Fields
Input Field Description
cartId - String!
itemId - String!
Example
{
  "cartId": "xyz789",
  "itemId": "abc123"
}

Channel

Description

Every channel has its own URL and can have different design, selection of products, prices and own settings for example shipping and payment

Fields
Field Name Description
id - Int!
name - String
displayName - String
groupName - String
isDefault - Boolean
url - Uri
settings - ChannelSettings
languages - [Language]
defaultLanguage - Language
currencies - [Currency]
defaultCurrency - Currency
countries - [Country]
imageUrl - String The root url of images, this can be used to build image urls if needed
requiresAuth - Boolean This channel requires a user to be authorized
Example
{
  "id": 123,
  "name": "xyz789",
  "displayName": "abc123",
  "groupName": "xyz789",
  "isDefault": false,
  "url": Uri,
  "settings": ChannelSettings,
  "languages": [Language],
  "defaultLanguage": Language,
  "currencies": [Currency],
  "defaultCurrency": Currency,
  "countries": [Country],
  "imageUrl": "abc123",
  "requiresAuth": false
}

ChannelSettings

Fields
Field Name Description
pricesIncVat - Boolean
countrySettings - [CountrySettings]
tracking - Tracking
nostoAccountId - String
Example
{
  "pricesIncVat": false,
  "countrySettings": [CountrySettings],
  "tracking": Tracking,
  "nostoAccountId": "abc123"
}

Content

Fields
Field Name Description
name - String
id - ID!
items - [ContentItem]
tags - [String]
Example
{
  "name": "xyz789",
  "id": "4",
  "items": [ContentItem],
  "tags": ["abc123"]
}

ContentItem

Fields
Field Name Description
name - String
type - String!
properties - [ContentItemProperty]
Arguments
getImageAsImageValue - Boolean

If true image content property will return ImageValue instead of a string

children - [ContentItem]
Example
{
  "name": "xyz789",
  "type": "abc123",
  "properties": [ContentItemProperty],
  "children": [ContentItem]
}

ContentItemProperty

Fields
Field Name Description
name - String!
type - String!
valueType - ContentPropertyValueType
value - ContentItemPropertyValue
Example
{
  "name": "abc123",
  "type": "abc123",
  "valueType": "OBJECT",
  "value": StringValue
}

ContentItemPropertyValue

Example
StringValue

ContentPropertyValueType

Values
Enum Value Description

OBJECT

SCALAR

Example
"OBJECT"

Coordinates

Fields
Field Name Description
latitude - Decimal!
longitude - Decimal!
Example
{
  "latitude": Decimal,
  "longitude": Decimal
}

Country

Fields
Field Name Description
id - ID!
code - String
name - String
isDefault - Boolean
Example
{
  "id": "4",
  "code": "xyz789",
  "name": "xyz789",
  "isDefault": true
}

CountrySettings

Fields
Field Name Description
countryCode - String!
paymentTypes - [paymentType]
privateCustomerFields - [CustomerField] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
businessCustomerFields - [CustomerField] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
shipping - Shipping
privateCustomerConsents - [Consent]

NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.

This will use localization, and will work well when requesting one channel, but may give unpredictable results when getting multiple channels via channels

businessCustomerConsents - [Consent]

NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.

This will use localization, and will work well when requesting one channel, but may give unpredictable results when getting multiple channels via channels

Example
{
  "countryCode": "xyz789",
  "paymentTypes": [paymentType],
  "privateCustomerFields": [CustomerField],
  "businessCustomerFields": [CustomerField],
  "shipping": Shipping,
  "privateCustomerConsents": [Consent],
  "businessCustomerConsents": [Consent]
}

CreateCustomerProductListInput

Fields
Input Field Description
typeId - Int The type of list created. Omit this and the default type will be used
name - String!
description - String
Example
{
  "typeId": 123,
  "name": "xyz789",
  "description": "abc123"
}

Currency

Fields
Field Name Description
id - String!
name - String
isDefault - Boolean
format - CurrencyFormat
Example
{
  "id": "abc123",
  "name": "abc123",
  "isDefault": false,
  "format": CurrencyFormat
}

CurrencyFormat

Fields
Field Name Description
culture - String! For currency formatting to a specific culture, instead use whichever culture makes sense contextually.
code - String!
decimals - Int!
Example
{
  "culture": "xyz789",
  "code": "xyz789",
  "decimals": 987
}

CustomBoolField

Fields
Field Name Description
value - Boolean!
type - ProductCustomFieldType
key - String
title - String
Example
{
  "value": false,
  "type": "STRING",
  "key": "abc123",
  "title": "xyz789"
}

CustomField

Fields
Field Name Description
type - ProductCustomFieldType
key - String
title - String
Example
{
  "type": "STRING",
  "key": "xyz789",
  "title": "xyz789"
}

CustomHtmlField

Fields
Field Name Description
value - String!
type - ProductCustomFieldType
key - String
title - String
Example
{
  "value": "xyz789",
  "type": "STRING",
  "key": "xyz789",
  "title": "xyz789"
}

CustomItem

Fields
Field Name Description
id - Int!
name - String!
content - String
linkUrl - Uri
image - Image
Example
{
  "id": 987,
  "name": "xyz789",
  "content": "abc123",
  "linkUrl": Uri,
  "image": Image
}

CustomListField

Fields
Field Name Description
value - [String]
type - ProductCustomFieldType
key - String
title - String
Example
{
  "value": ["abc123"],
  "type": "STRING",
  "key": "abc123",
  "title": "xyz789"
}

CustomMultiLevelListField

Fields
Field Name Description
items - [CustomMultiLevelListFieldItem]
type - ProductCustomFieldType
key - String
title - String
Example
{
  "items": [CustomMultiLevelListFieldItem],
  "type": "STRING",
  "key": "abc123",
  "title": "abc123"
}

CustomMultiLevelListFieldItem

Fields
Field Name Description
id - Int!
parentId - Int
title - String!
value - String!
Example
{
  "id": 987,
  "parentId": 987,
  "title": "xyz789",
  "value": "abc123"
}

CustomStringField

Fields
Field Name Description
value - String!
type - ProductCustomFieldType
key - String
title - String
Example
{
  "value": "xyz789",
  "type": "STRING",
  "key": "abc123",
  "title": "xyz789"
}

Customer

Fields
Field Name Description
id - ID!
memberId - String
email - String
externalId - String Customer id for external system
subscribedToNewsletter - Boolean Use communication.acceptsEmail
language - Language
billingAddress - CustomerAddress
deliveryAddresses - [CustomerAddress]
orderHeaders - OrderHeaderResult NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
first - Int

Will fetch all if this is set to 0

offset - Int
communication - CustomerCommunication
store - Store NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
dynamicContent - String
externalAttributes - [CustomerExternalAttribute]
googleUserId - String NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Possible Types
Customer Types

PrivateCustomer

BusinessCustomer

Example
{
  "id": "4",
  "memberId": "xyz789",
  "email": "abc123",
  "externalId": "abc123",
  "subscribedToNewsletter": false,
  "language": Language,
  "billingAddress": CustomerAddress,
  "deliveryAddresses": [CustomerAddress],
  "orderHeaders": OrderHeaderResult,
  "communication": CustomerCommunication,
  "store": Store,
  "dynamicContent": "abc123",
  "externalAttributes": [CustomerExternalAttribute],
  "googleUserId": "xyz789"
}

CustomerAddress

Fields
Field Name Description
id - Int
addressName - String
firstName - String
lastName - String
companyAtt - String
company - String
department - String
streetName - String
co - String
postalCode - String
city - String
municipality - String
region - String
country - Country
phone - String
mobilePhone - String
Example
{
  "id": 987,
  "addressName": "xyz789",
  "firstName": "abc123",
  "lastName": "xyz789",
  "companyAtt": "abc123",
  "company": "abc123",
  "department": "abc123",
  "streetName": "abc123",
  "co": "xyz789",
  "postalCode": "xyz789",
  "city": "abc123",
  "municipality": "xyz789",
  "region": "abc123",
  "country": Country,
  "phone": "abc123",
  "mobilePhone": "xyz789"
}

CustomerCommunication

Fields
Field Name Description
acceptsEmail - Boolean
acceptsPostal - Boolean
acceptsSms - Boolean
Example
{"acceptsEmail": true, "acceptsPostal": false, "acceptsSms": true}

CustomerExternalAttribute

Fields
Field Name Description
name - String!
value - String!
Example
{
  "name": "abc123",
  "value": "abc123"
}

CustomerField

Fields
Field Name Description
id - ID!
required - Boolean!
pattern - String
fields - [CustomerField]
name - ID!
Example
{
  "id": 4,
  "required": false,
  "pattern": "abc123",
  "fields": [CustomerField],
  "name": "4"
}

CustomerLoyalty

Fields
Field Name Description
bonusChecks - [CustomerLoyaltyBonusCheck]
pointCards - [CustomerLoyaltyPointCard]
discounts - [CustomerLoyaltyDiscount]
Arguments
includeRedeemed - Boolean!
bonusPoints - CustomerLoyaltyBonusPoints NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Example
{
  "bonusChecks": [CustomerLoyaltyBonusCheck],
  "pointCards": [CustomerLoyaltyPointCard],
  "discounts": [CustomerLoyaltyDiscount],
  "bonusPoints": CustomerLoyaltyBonusPoints
}

CustomerLoyaltyBonusCheck

Fields
Field Name Description
externalId - String
name - String
startDate - DateTime
endDate - DateTime
redeemed - Boolean
redeemedOn - DateTime
currency - String For display purposes, not guaranteed to match up with a currency on the channel
value - Decimal
Example
{
  "externalId": "abc123",
  "name": "abc123",
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z",
  "redeemed": true,
  "redeemedOn": "2007-12-03T10:15:30Z",
  "currency": "abc123",
  "value": Decimal
}

CustomerLoyaltyBonusPoints

Fields
Field Name Description
points - Int
Example
{"points": 123}

CustomerLoyaltyDiscount

Fields
Field Name Description
name - String
description - String
startDate - DateTime
endDate - DateTime
externalData - CustomerLoyaltyDiscountOfferExternalData
category - Category NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
isActivatedByDiscountCode - Boolean!
discountCode - String
Example
{
  "name": "xyz789",
  "description": "xyz789",
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z",
  "externalData": CustomerLoyaltyDiscountOfferExternalData,
  "category": Category,
  "isActivatedByDiscountCode": true,
  "discountCode": "abc123"
}

CustomerLoyaltyDiscountOfferExternalData

Fields
Field Name Description
name - String
description - String
startDate - DateTime
endDate - DateTime
externalId - String
externalReference - String
heading - String
redeemed - Boolean
redeemedOn - DateTime
imageUrl - String
link - String
Example
{
  "name": "xyz789",
  "description": "xyz789",
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z",
  "externalId": "xyz789",
  "externalReference": "abc123",
  "heading": "xyz789",
  "redeemed": false,
  "redeemedOn": "2007-12-03T10:15:30Z",
  "imageUrl": "abc123",
  "link": "xyz789"
}

CustomerLoyaltyPointCard

Fields
Field Name Description
externalId - String
name - String
lastStampTime - DateTime
numberOfSlots - Int
numberOfSlotsRemaining - Int
isActive - Boolean
Example
{
  "externalId": "abc123",
  "name": "abc123",
  "lastStampTime": "2007-12-03T10:15:30Z",
  "numberOfSlots": 987,
  "numberOfSlotsRemaining": 123,
  "isActive": true
}

CustomerProductList

Fields
Field Name Description
id - ID!
shareToken - String
name - String
description - String
type - CustomerProductListType NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
items - [CustomerProductListItem] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Example
{
  "id": "4",
  "shareToken": "abc123",
  "name": "abc123",
  "description": "xyz789",
  "type": CustomerProductListType,
  "items": [CustomerProductListItem]
}

CustomerProductListItem

Fields
Field Name Description
description - String
quantity - Int
variant - ProductVariant
product - Product NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Example
{
  "description": "abc123",
  "quantity": 987,
  "variant": ProductVariant,
  "product": Product
}

CustomerProductListResult

Fields
Field Name Description
success - Boolean
customerProductList - CustomerProductList NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Example
{
  "success": false,
  "customerProductList": CustomerProductList
}

CustomerProductListType

Fields
Field Name Description
id - ID!
name - String
Example
{
  "id": "4",
  "name": "abc123"
}

CustomerType

Values
Enum Value Description

PRIVATE

COMPANY

Example
"PRIVATE"

CustomerUpdateBillingAddressInput

Description

Fields that are required to have a value is determined by CustomerFields found in CountrySettings

Fields
Input Field Description
mobilePhone - String
phone - String
region - String
countryCode - String
city - String
postalCode - String
streetName - String
co - String
department - String
municipality - String
companyAtt - String
company - String
lastName - String
firstName - String
addressName - String
Example
{
  "mobilePhone": "abc123",
  "phone": "xyz789",
  "region": "abc123",
  "countryCode": "abc123",
  "city": "xyz789",
  "postalCode": "abc123",
  "streetName": "abc123",
  "co": "abc123",
  "department": "xyz789",
  "municipality": "xyz789",
  "companyAtt": "abc123",
  "company": "xyz789",
  "lastName": "abc123",
  "firstName": "abc123",
  "addressName": "abc123"
}

CustomerUpdateConsentInput

Fields
Input Field Description
id - String
value - Boolean
Example
{"id": "abc123", "value": false}

CustomerUpdateDeliveryAddressInput

Fields
Input Field Description
id - Int If this field is left empty, a new DeliveryAddress will be created
mobilePhone - String
phone - String
region - String
countryCode - String
city - String
postalCode - String
streetName - String
co - String
department - String
municipality - String
companyAtt - String
company - String
lastName - String
firstName - String
addressName - String
Example
{
  "id": 987,
  "mobilePhone": "abc123",
  "phone": "xyz789",
  "region": "xyz789",
  "countryCode": "abc123",
  "city": "xyz789",
  "postalCode": "abc123",
  "streetName": "xyz789",
  "co": "abc123",
  "department": "abc123",
  "municipality": "abc123",
  "companyAtt": "abc123",
  "company": "xyz789",
  "lastName": "abc123",
  "firstName": "xyz789",
  "addressName": "xyz789"
}

CustomerUpdateExternalAttribute

Fields
Input Field Description
name - String!
value - String!
Example
{
  "name": "xyz789",
  "value": "abc123"
}

CustomerUpdateInput

Fields
Input Field Description
pid - String
organizationNumber - String
billingAddress - CustomerUpdateBillingAddressInput!
deliveryAddresses - [CustomerUpdateDeliveryAddressInput]
preferences - CustomerUpdatePreferenceInput
consents - [CustomerUpdateConsentInput]
externalAttributes - [CustomerUpdateExternalAttribute]
dynamicContent - String
Example
{
  "pid": "xyz789",
  "organizationNumber": "xyz789",
  "billingAddress": CustomerUpdateBillingAddressInput,
  "deliveryAddresses": [
    CustomerUpdateDeliveryAddressInput
  ],
  "preferences": CustomerUpdatePreferenceInput,
  "consents": [CustomerUpdateConsentInput],
  "externalAttributes": [CustomerUpdateExternalAttribute],
  "dynamicContent": "xyz789"
}

CustomerUpdatePreferenceInput

Fields
Input Field Description
type - CustomerUpdatePreferencesCommunicationInput
storeLocationId - Int
Example
{
  "type": CustomerUpdatePreferencesCommunicationInput,
  "storeLocationId": 123
}

CustomerUpdatePreferencesCommunicationInput

Fields
Input Field Description
acceptsEmail - Boolean
acceptsPostal - Boolean
acceptsSms - Boolean
culture - String
Example
{
  "acceptsEmail": true,
  "acceptsPostal": true,
  "acceptsSms": false,
  "culture": "abc123"
}

CustomerUpdateResponse

Description

Responds with a bool value whether the update has been successful or not

Fields
Field Name Description
success - Boolean!
Example
{"success": true}

DateTime

Description

The DateTime scalar type represents a date and time. DateTime expects timestamps to be formatted in accordance with the ISO-8601 standard

Example
"2007-12-03T10:15:30Z"

Decimal

Example
Decimal

DeleteCustomerProductListResult

Fields
Field Name Description
success - Boolean
Example
{"success": true}

Discount

Fields
Field Name Description
externalId - ID
name - String
value - Price
type - DiscountType
description - String
campaign - Category
Example
{
  "externalId": 4,
  "name": "abc123",
  "value": Price,
  "type": "UNDEFINED",
  "description": "xyz789",
  "campaign": Category
}

DiscountType

Values
Enum Value Description

UNDEFINED

No discount defined

FIXED_AMOUNT

Discount drops price of the order total by defined amount

PERCENT

Discount drops price of the product by X %

ITEMS

Discount will get the amount of the cheapest product and use this as a discount

ITEMS_PERCENTAGE_LIMIT

Discount drops total price of the product if there is at least X of them in cart

ONLY_USE_LANDING_PAGE

Only a collection of products

PERCENT_ON_LEAST_EXPENSIVE_ITEM

Discount drops price of the least expensive product in cart

PERCENT_ON_MOST_EXPENSIVE_ITEM

Discount drops price of the most expensive product in cart

FREE_PRODUCT

Discount allows to get a free gift when the product is added

FREE_SHIPPING

Discount allows to get free shipping option for the product

PACKAGE_DISCOUNT

Discount drops price for the package when all products in the package is added to cart

BONUS_VOUCHER_DISCOUNT

Discount on the order total from a voucher

BUY_X_ARTICLES_PAY_Y_AMOUNT

Discount allows to buy amount of X of the article, but pay only for amount of Y
Example
"UNDEFINED"

Document

Fields
Field Name Description
head - HtmlHead
primaryRoute - Route
breadcrumbText - String
Possible Types
Document Types

Category

Product

StartPage

Page

Example
{
  "head": HtmlHead,
  "primaryRoute": Route,
  "breadcrumbText": "abc123"
}

ExternalCustomer

Fields
Field Name Description
externalId - String
email - MaskedProperty
firstName - MaskedProperty
lastName - MaskedProperty
co - MaskedProperty
address - MaskedProperty
city - MaskedProperty
postalCode - MaskedProperty
country - MaskedProperty
countryCode - String
phoneNumber - MaskedProperty
mobilePhoneNumber - MaskedProperty
pid - MaskedProperty
Example
{
  "externalId": "xyz789",
  "email": MaskedProperty,
  "firstName": MaskedProperty,
  "lastName": MaskedProperty,
  "co": MaskedProperty,
  "address": MaskedProperty,
  "city": MaskedProperty,
  "postalCode": MaskedProperty,
  "country": MaskedProperty,
  "countryCode": "abc123",
  "phoneNumber": MaskedProperty,
  "mobilePhoneNumber": MaskedProperty,
  "pid": MaskedProperty
}

ExternalCustomerResult

Description

The activation status has 4 states; PREEXISTING_CUSTOMER: No customer info will be returned and the customer is advised to login to the preexisting account. ACTIVATION_REQUIRED: The customer account needs to be activated. Email (masked), FirstName (masked) and externalId will be the only fields set on customer. ADDITIONAL_USER_DATA_REQUIRED: Additional data needed to register the customer, the existing customer info will be available with masking on customer. NON_EXISTING_CUSTOMER: Customer does not exist in any system and will have to do a sign up. COUNTRY_NOT_VALID: The customer account may not be activated on this channel as it's missing the customer country. Email (masked), FirstName (masked), externalId and countryCode will be the only fields set on customer.

Fields
Field Name Description
status - ActivationStatusSource
customer - ExternalCustomer
Example
{
  "status": "PREEXISTING_CUSTOMER",
  "customer": ExternalCustomer
}

ExternalOrderData

Fields
Field Name Description
name - String!
value - String!
Example
{
  "name": "abc123",
  "value": "xyz789"
}

FacebookConversionsApi

Fields
Field Name Description
accessToken - String
pixelId - String
Example
{
  "accessToken": "abc123",
  "pixelId": "abc123"
}

Filter

Fields
Field Name Description
id - String!
name - String!
Example
{
  "id": "abc123",
  "name": "abc123"
}

FilterInput

Fields
Input Field Description
listFilters - [ListFilterInput]
rangeFilters - [RangeFilterInput]
booleanFilters - [BooleanFilterInput]
multiListFilters - [MultiListFilterInput]
Example
{
  "listFilters": [ListFilterInput],
  "rangeFilters": [RangeFilterInput],
  "booleanFilters": [BooleanFilterInput],
  "multiListFilters": [MultiListFilterInput]
}

FreeShippingLimit

Fields
Field Name Description
incVat - Decimal
exVat - Decimal
Example
{
  "incVat": Decimal,
  "exVat": Decimal
}

GoogleAnalytics

Fields
Field Name Description
trackingId - String
useArticleNumberAsId - Boolean
Example
{
  "trackingId": "xyz789",
  "useArticleNumberAsId": false
}

GoogleAnalytics4

Fields
Field Name Description
trackingId - String
useArticleNumberAsId - Boolean
Example
{
  "trackingId": "xyz789",
  "useArticleNumberAsId": false
}

GoogleTagManager

Fields
Field Name Description
containerId - String
useGa4Events - Boolean
Example
{
  "containerId": "xyz789",
  "useGa4Events": true
}

HtmlHead

Fields
Field Name Description
title - String
metaTags - [HtmlMetaTag]
Example
{
  "title": "abc123",
  "metaTags": [HtmlMetaTag]
}

HtmlMetaTag

Fields
Field Name Description
name - String
content - String
Example
{
  "name": "abc123",
  "content": "xyz789"
}

ID

Example
"4"

Image

Fields
Field Name Description
title - String
url - Uri
width - Int
height - Int
Example
{
  "title": "abc123",
  "url": Uri,
  "width": 987,
  "height": 987
}

ImageValue

Fields
Field Name Description
value - String
focalPointX - Int
focalPointY - Int
Example
{
  "value": "abc123",
  "focalPointX": 987,
  "focalPointY": 123
}

InputComment

Fields
Input Field Description
name - String!
value - String
Example
{
  "name": "abc123",
  "value": "xyz789"
}

Int

Example
123

Language

Fields
Field Name Description
id - String!
name - String!
culture - String!
isDefault - Boolean
Example
{
  "id": "xyz789",
  "name": "abc123",
  "culture": "abc123",
  "isDefault": true
}

ListFilter

Fields
Field Name Description
items - [ListFilterItem]!
id - String!
name - String!
Example
{
  "items": [ListFilterItem],
  "id": "abc123",
  "name": "abc123"
}

ListFilterInput

Fields
Input Field Description
id - String!
values - [String]
Example
{
  "id": "abc123",
  "values": ["xyz789"]
}

ListFilterItem

Fields
Field Name Description
text - String!
id - String!
value - String!
resultCount - Int
Example
{
  "text": "abc123",
  "id": "xyz789",
  "value": "abc123",
  "resultCount": 123
}

ListStringValue

Fields
Field Name Description
value - [String]
Example
{"value": ["abc123"]}

LoginExternalCustomerInput

Fields
Input Field Description
externalCustomerToken - String!
Example
{"externalCustomerToken": "abc123"}

LoginExternalCustomerResult

Fields
Field Name Description
token - Token
Example
{"token": Token}

LoginResponse

Description

The response will contain a authorization token if the login was successful

Fields
Field Name Description
token - Token!
Example
{"token": Token}

MaskedProperty

Fields
Field Name Description
masked - String
encrypted - String
Example
{
  "masked": "abc123",
  "encrypted": "xyz789"
}

MultiListFilter

Fields
Field Name Description
lists - [MultiListFilterList]!
id - String!
name - String!
Example
{
  "lists": [MultiListFilterList],
  "id": "xyz789",
  "name": "xyz789"
}

MultiListFilterInput

Fields
Input Field Description
id - String!
values - [String]
Example
{
  "id": "xyz789",
  "values": ["abc123"]
}

MultiListFilterList

Fields
Field Name Description
id - String!
name - String!
items - [ListFilterItem]!
Example
{
  "id": "abc123",
  "name": "abc123",
  "items": [ListFilterItem]
}

MultipleContent

Fields
Field Name Description
notFoundIds - [ID]!
content - [Content]!
Example
{
  "notFoundIds": ["4"],
  "content": [Content]
}

MyPagesContent

Fields
Field Name Description
welcomeText - String Text that will show on the landing page on MyPages
Example
{"welcomeText": "abc123"}

NumericRangeFilter

Fields
Field Name Description
min - Decimal!
max - Decimal!
id - String!
name - String!
Example
{
  "min": Decimal,
  "max": Decimal,
  "id": "abc123",
  "name": "abc123"
}

Order

Fields
Field Name Description
id - ID!
orderNumber - String
status - OrderStatus
items - [OrderItem]
Arguments
first - Int

Will fetch all if this is set to 0

offset - Int
billingInfo - OrderInfo
deliveryInfo - OrderInfo
paymentMethod - OrderPaymentMethod
deliveryMethod - OrderDeliveryMethod
giftVouchers - [OrderGiftVoucher]
total - Price
orderDate - DateTime
currency - Currency
attachments - [OrderAttachment]
orderPurchaseLocation - String
Example
{
  "id": "4",
  "orderNumber": "abc123",
  "status": OrderStatus,
  "items": [OrderItem],
  "billingInfo": OrderInfo,
  "deliveryInfo": OrderInfo,
  "paymentMethod": OrderPaymentMethod,
  "deliveryMethod": OrderDeliveryMethod,
  "giftVouchers": [OrderGiftVoucher],
  "total": Price,
  "orderDate": "2007-12-03T10:15:30Z",
  "currency": Currency,
  "attachments": [OrderAttachment],
  "orderPurchaseLocation": "xyz789"
}

OrderAddress

Fields
Field Name Description
street - String
postcode - String
city - String
region - String
country - Country NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Example
{
  "street": "xyz789",
  "postcode": "abc123",
  "city": "xyz789",
  "region": "xyz789",
  "country": Country
}

OrderAttachment

Fields
Field Name Description
id - ID!
url - String
Example
{"id": 4, "url": "abc123"}

OrderDeliveryMethod

Fields
Field Name Description
name - String
fee - Price
tracking - OrderDeliveryMethodTracking
Example
{
  "name": "abc123",
  "fee": Price,
  "tracking": OrderDeliveryMethodTracking
}

OrderDeliveryMethodTracking

Fields
Field Name Description
trackingUrl - String
trackingUrlText - String
Example
{
  "trackingUrl": "abc123",
  "trackingUrlText": "xyz789"
}

OrderGiftVoucher

Fields
Field Name Description
name - String
amount - Decimal
charged - Decimal
validUntil - DateTime
Example
{
  "name": "xyz789",
  "amount": Decimal,
  "charged": Decimal,
  "validUntil": "2007-12-03T10:15:30Z"
}

OrderHeader

Fields
Field Name Description
id - ID!
orderNumber - String
status - OrderStatus
statusTimeline - [OrderStatus]
hasOrderDetails - Boolean If this is false, a call to order for this order will result in a failure
total - Price
orderDate - DateTime
trackingId - String
currency - Currency
Example
{
  "id": 4,
  "orderNumber": "xyz789",
  "status": OrderStatus,
  "statusTimeline": [OrderStatus],
  "hasOrderDetails": true,
  "total": Price,
  "orderDate": "2007-12-03T10:15:30Z",
  "trackingId": "xyz789",
  "currency": Currency
}

OrderHeaderResult

Fields
Field Name Description
result - [OrderHeader]
totalResults - Int
Example
{"result": [OrderHeader], "totalResults": 987}

OrderInfo

Fields
Field Name Description
firstName - String
lastName - String
company - String
phone - String
address - OrderAddress
Example
{
  "firstName": "abc123",
  "lastName": "xyz789",
  "company": "xyz789",
  "phone": "xyz789",
  "address": OrderAddress
}

OrderItem

Fields
Field Name Description
articleNumber - String
name - String Name of the Product at the time the order was placed (may since have changed). Use this as a fallback if the 'product' field itself is null.
quantity - Int
unitPrice - Price
total - Price
discounts - [OrderItemDiscount]
product - Product N.B. this may be null if the Product has since been removed
variant - ProductVariant N.B. this may be null if the Product itself or the Variant has since been removed
variantOptionNames - [String] N.B. this may be null if the Product has since been removed
variantValue - String Value of the Variant at the time the order was placed (may since have changed). Use this as a fallback if the 'variant' field itself is null. Will be null when the OrderItem is not a Variant
preOrderDate - DateTime
externalOrderData - [ExternalOrderData] list of name, value fields from orders coming from external systems
Example
{
  "articleNumber": "xyz789",
  "name": "xyz789",
  "quantity": 987,
  "unitPrice": Price,
  "total": Price,
  "discounts": [OrderItemDiscount],
  "product": Product,
  "variant": ProductVariant,
  "variantOptionNames": ["abc123"],
  "variantValue": "abc123",
  "preOrderDate": "2007-12-03T10:15:30Z",
  "externalOrderData": [ExternalOrderData]
}

OrderItemDiscount

Fields
Field Name Description
value - Price
Example
{"value": Price}

OrderPaymentMethod

Fields
Field Name Description
name - String
fee - Price
Example
{
  "name": "xyz789",
  "fee": Price
}

OrderStatus

Fields
Field Name Description
id - ID
description - String
timestamp - DateTime
Example
{
  "id": 4,
  "description": "abc123",
  "timestamp": "2007-12-03T10:15:30Z"
}

Package

Fields
Field Name Description
id - ID!
items - [PackageItem!]!
price - Price The current package price with any potential discount
previousPrice - Price The previous package price without any potential discount
discountValue - Price Total package discount amount
discountPercentage - Decimal Total package discount in percentage
Example
{
  "id": "4",
  "items": [PackageItem],
  "price": Price,
  "previousPrice": Price,
  "discountValue": Price,
  "discountPercentage": Decimal
}

PackageDiscount

Example
PackageDiscountPercentage

PackageDiscountPercentage

Fields
Field Name Description
percentage - Decimal!
Example
{"percentage": Decimal}

PackageDiscountValue

Fields
Field Name Description
valueIncVat - Decimal!
valueExVat - Decimal!
valueVat - Decimal!
Example
{
  "valueIncVat": Decimal,
  "valueExVat": Decimal,
  "valueVat": Decimal
}

PackageItem

Fields
Field Name Description
product - Product
minQuantity - Int!
discount - PackageDiscount
price - Price The current package price with any potential discount
previousPrice - Price The previous package price without any potential discount
Example
{
  "product": Product,
  "minQuantity": 123,
  "discount": PackageDiscountPercentage,
  "price": Price,
  "previousPrice": Price
}

PackagePriceInput

Fields
Input Field Description
product - ID!
variant - ID
Example
{"product": "4", "variant": 4}

Page

Fields
Field Name Description
id - ID!
name - String!
mainHeader - String
content - String
hasExternalUrl - Boolean
externalUrl - Link External URL if page is set to URL, null if not
images - [Image]
head - HtmlHead NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
primaryRoute - Route The primary route of this Page. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
breadcrumbText - String
data - Content Get content data set via the Content Editor. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
parent - Page
  • If this page was fetched by ID using the page(id) query, parent will be returned even if it is hidden.
  • If this page was fetched using the pages query, parent will not be returned if it is hidden
subPages - [Page!]
  • If this page was fetched by ID using the page(id) query, subPages will be returned even if they are hidden. This can be overridden with the includeHidden flag.
  • If this page was fetched using the pages query, subPages will not be returned if they are hidden. The includeHidden flag has no effect on this
Arguments
includeHidden - Boolean
allowWebIndexing - Boolean When set to false, the page will be excluded from sitemap. The frontend implementation should use this value to set meta tags to exclude the page from being indexed by crawlers. Defaults to true
Example
{
  "id": 4,
  "name": "abc123",
  "mainHeader": "xyz789",
  "content": "abc123",
  "hasExternalUrl": false,
  "externalUrl": Link,
  "images": [Image],
  "head": HtmlHead,
  "primaryRoute": Route,
  "breadcrumbText": "abc123",
  "data": Content,
  "parent": Page,
  "subPages": [Page],
  "allowWebIndexing": true
}

PagedResult

Fields
Field Name Description
totalResults - Int
sortOrders - [ProductSortOrder] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
filters - [Filter] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
ids - [String]

Optional: ID's of filters to fetch. If not set all filters will be returned

result - [Product]!
Example
{
  "totalResults": 123,
  "sortOrders": [ProductSortOrder],
  "filters": [Filter],
  "result": [Product]
}

Paging

Description

The Paging scalar type represents a numeric values between <1; 100>

Example
Paging

PagingInput

Fields
Input Field Description
first - Paging
offset - Int
Example
{"first": Paging, "offset": 123}

PersonLookup

Fields
Field Name Description
firstName - MaskedProperty
lastName - MaskedProperty
co - MaskedProperty
address - MaskedProperty
city - MaskedProperty
postalCode - MaskedProperty
country - MaskedProperty
phoneNumber - MaskedProperty
mobilePhoneNumber - MaskedProperty
Example
{
  "firstName": MaskedProperty,
  "lastName": MaskedProperty,
  "co": MaskedProperty,
  "address": MaskedProperty,
  "city": MaskedProperty,
  "postalCode": MaskedProperty,
  "country": MaskedProperty,
  "phoneNumber": MaskedProperty,
  "mobilePhoneNumber": MaskedProperty
}

Price

Fields
Field Name Description
incVat - Decimal!
exVat - Decimal!
vat - Decimal!
Example
{
  "incVat": Decimal,
  "exVat": Decimal,
  "vat": Decimal
}

PriceHistory

Fields
Field Name Description
timestamp - DateTime
price - Price
Example
{
  "timestamp": "2007-12-03T10:15:30Z",
  "price": Price
}

PrivateCustomer

Fields
Field Name Description
pid - String
id - ID!
memberId - String
email - String
externalId - String Customer id for external system
subscribedToNewsletter - Boolean Use communication.acceptsEmail
language - Language
billingAddress - CustomerAddress
deliveryAddresses - [CustomerAddress]
orderHeaders - OrderHeaderResult NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
first - Int

Will fetch all if this is set to 0

offset - Int
communication - CustomerCommunication
store - Store NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
dynamicContent - String
externalAttributes - [CustomerExternalAttribute]
googleUserId - String NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Example
{
  "pid": "xyz789",
  "id": "4",
  "memberId": "xyz789",
  "email": "abc123",
  "externalId": "xyz789",
  "subscribedToNewsletter": true,
  "language": Language,
  "billingAddress": CustomerAddress,
  "deliveryAddresses": [CustomerAddress],
  "orderHeaders": OrderHeaderResult,
  "communication": CustomerCommunication,
  "store": Store,
  "dynamicContent": "abc123",
  "externalAttributes": [CustomerExternalAttribute],
  "googleUserId": "xyz789"
}

Product

Fields
Field Name Description
id - Int!
articleNumber - String!
name - String!
subName - String!
shortDescription - String!
description - String!
mainHeader - String! Product header if it differs from the actual product name, usually displayed instead of the product name in the header tag at the product page
publishedDate - DateTime
canonicalCategory - Category NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
categories - [Category] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
includeHidden - Boolean

Deprecated, this argument does not affect the result

campaigns - [Category] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
hasVariants - Boolean!
hasVariantsWithDifferingPrices - Boolean!
variants - ProductVariants
images - [ProductImage]
Arguments
includeVariantImages - Boolean

Set this to false if you prefer to manually collate these images with the images found on the Variant

limit - Int

Limit the number of images you get back. Defaults to null, which will return all images

relatedProducts - [Product] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
badges - [ProductBadge] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
price - Price

The current price.

  • Will be a Customer specific price if that Customer has a separate price list.
  • Will be the member price if Customer is logged in and Product.hasMemberPrice is true.
  • Will be the non-member price if Customer is not logged in and Product.hasMemberPrice is true
hidePrice - Boolean
previousPrice - Price The previous price (i.e. this will be higher than price if the product is discounted). Will be a Customer specific previous price, if that Customer has a separate price list
defaultPrice - Price Default price for the product in the channel, disregards Customer specific prices
defaultPreviousPrice - Price Default previous price for the product in the channel, disregards Customer specific prices
recommendedPrice - Price Not in use. Always null
priceDateSpan - ProductPriceDateSpan The time interval of the discounted price. If the product has variants, the time interval will be that of the variant which price is shown on the product
hasMemberPrice - Boolean Indicates if this product and its variants has member prices
memberPrice - Price

The price a Customer would get if member prices are active and the Customer is logged in.

  • Will be null if Product.hasMemberPrice is false.
  • Will be set if Product.hasMemberPrice is true
customerComments - [ProductComment] Specifies input field(s) for the Customer to populate on the Product that will then carry through to the Order. If 'required' is true the Product should not be purchasable until the field is populated
stockStatus - StockStatus NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
customFields - [CustomField]
warehouseStock - [Warehouse] NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
includeInactive - Boolean
head - HtmlHead
primaryRoute - Route The primary route of this Product. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
breadcrumbText - String
recommendedProducts - RecommendedProducts
distributionPackageSize - Int! The product is recommended to only be purchasable in multiples of the distributionPackageSize. (Different shops may have different levels of leniency on this rule)
barcode - String
configurations - [ProductConfiguration]

Configurations on a product are used to assemble a complete product,

For example, if the product is a ring then the ring may have two configurations; measures of circumference and choice of engraving

In this field, all the configurations of the product will be presented, the configuration name and its various options

hasConfigurations - Boolean!
hasFamilyMembers - Boolean!
configurationPrice - ProductConfigurationPrice Calculates the price of the product based on the configuration choices that's been made. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
Arguments
quantitySuffix - String Quantity suffix e.g pcs, box, etc
isPreOrder - Boolean
preOrder - ProductPreOrder
isPackage - Boolean
package - Package

Description

NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.

Error Codes

InvalidAmountOfArticleNumbers

Number of input products doesn't match package products

InvalidArticleNumber

Product or variant article number doesn't match any products

UnableToGetPackagePrice

Failed to calculate package price

Arguments
articleNumbers - [PackagePriceInput]
upsell - Upsell NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
inPackages - [Product!]
hasUpsell - Boolean
familyMembers - [Product!] All other products in the same family as the product. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend
history - ProductHistory Get Product History within the set number of days
Arguments
days - Int

number of days, default is 30

Example
{
  "id": 987,
  "articleNumber": "xyz789",
  "name": "xyz789",
  "subName": "abc123",
  "shortDescription": "abc123",
  "description": "abc123",
  "mainHeader": "xyz789",
  "publishedDate": "2007-12-03T10:15:30Z",
  "canonicalCategory": Category,
  "categories": [Category],
  "campaigns": [Category],
  "hasVariants": false,
  "hasVariantsWithDifferingPrices": true,
  "variants": ProductVariants,
  "images": [ProductImage],
  "relatedProducts": [Product],
  "badges": [ProductBadge],
  "price": Price,
  "hidePrice": true,
  "previousPrice": Price,
  "defaultPrice": Price,
  "defaultPreviousPrice": Price,
  "recommendedPrice": Price,
  "priceDateSpan": ProductPriceDateSpan,
  "hasMemberPrice": true,
  "memberPrice": Price,
  "customerComments": [ProductComment],
  "stockStatus": StockStatus,
  "customFields": [CustomField],
  "warehouseStock": [Warehouse],
  "head": HtmlHead,
  "primaryRoute": Route,
  "breadcrumbText": "abc123",
  "recommendedProducts": RecommendedProducts,
  "distributionPackageSize": 987,
  "barcode": "xyz789",
  "configurations": [ProductConfiguration],
  "hasConfigurations": false,
  "hasFamilyMembers": false,
  "configurationPrice": ProductConfigurationPrice,
  "quantitySuffix": "xyz789",
  "isPreOrder": false,
  "preOrder": ProductPreOrder,
  "isPackage": false,
  "package": Package,
  "upsell": Upsell,
  "inPackages": [Product],
  "hasUpsell": true,
  "familyMembers": [Product],
  "history": ProductHistory
}

ProductAutoCompleteResult

Fields
Field Name Description
result - [Product]!
Example
{"result": [Product]}

ProductBadge

Fields
Field Name Description
name - String
url - Uri
location - ProductBadgeLocation
style - String
text - String
Example
{
  "name": "xyz789",
  "url": Uri,
  "location": "CUSTOM",
  "style": "abc123",
  "text": "abc123"
}

ProductBadgeLocation

Values
Enum Value Description

CUSTOM

TOP_LEFT

TOP_RIGHT

BOTTOM_LEFT

BOTTOM_RIGHT

Example
"CUSTOM"

ProductComment

Fields
Field Name Description
name - String!
required - Boolean!
Example
{"name": "abc123", "required": true}

ProductConfiguration

Fields
Field Name Description
name - String
options - [ProductConfigurationOption]!
Example
{
  "name": "abc123",
  "options": [ProductConfigurationOption]
}

ProductConfigurationOption

Description

Options by which you can configure a product.

For instance, if you're selling rope the available options might be the dimensions; 10mm, 20mm, 30mm, etc.

Price is either used as is, or if the configuration is using a price calculation (e.g. the rope is priced by length) it will be used in the calculation formula; e.g. (Length * Price)

Fields
Field Name Description
id - ID!
name - String
price - Price
priceCalculation - ProductConfigurationPriceCalculation This will be set if the configuration requires price calculation, e.g. you might sell rope and price it by length
Example
{
  "id": 4,
  "name": "abc123",
  "price": Price,
  "priceCalculation": ProductConfigurationPriceCalculation
}

ProductConfigurationPrice

Fields
Field Name Description
price - Price
previousPrice - Price
Example
{
  "price": Price,
  "previousPrice": Price
}

ProductConfigurationPriceCalculation

Description

Describes how the price is calculated on a configuration option.

E.g. the configuration is for a carpet and it has a price calculation formula that reads: 'Width * Length * Price / 10000'.

In this case, the variables would contain 'Width' and 'Length' whereas the 'Price' is taken from the selected option

Fields
Field Name Description
id - ID!
name - String
formula - String
variables - [ProductConfigurationPriceCalculationVariable]
Example
{
  "id": "4",
  "name": "xyz789",
  "formula": "xyz789",
  "variables": [
    ProductConfigurationPriceCalculationVariable
  ]
}

ProductConfigurationPriceCalculationVariable

Fields
Field Name Description
id - ID!
name - String
Example
{"id": 4, "name": "abc123"}

ProductConfigurationPriceInput

Fields
Input Field Description
optionId - ID!
Example
{"optionId": 4}

ProductCustomFieldType

Values
Enum Value Description

STRING

BOOL

LIST

HTML

MULTI_LEVEL_LIST

Example
"STRING"

ProductHistory

Fields
Field Name Description
previousPrice - [PriceHistory]
Example
{"previousPrice": [PriceHistory]}

ProductImage

Fields
Field Name Description
alt - String Alternate text for the image, commonly used for the alt attribute of img-tags
title - String Extra information, commonly used for the title attribute of img-tag. Should be shown on hover
sizes - [ProductImageSize]! Images will no longer be offered in different sizes. Instead use 'url' in conjunction with our image resizing service.
url - Uri
modifiedDate - String
Example
{
  "alt": "xyz789",
  "title": "xyz789",
  "sizes": [ProductImageSize],
  "url": Uri,
  "modifiedDate": "abc123"
}

ProductImageSize

Fields
Field Name Description
width - Int
height - Int
url - Uri
Example
{"width": 987, "height": 123, "url": Uri}

ProductOrderOptions

Values
Enum Value Description

ARTICLE_NUMBER

NAME

PUBLISH_DATE

PRICE

SUB_HEADING

CUSTOM

BESTSELLER

Example
"ARTICLE_NUMBER"

ProductPreOrder

Fields
Field Name Description
fromDate - DateTime
toDate - DateTime
Example
{
  "fromDate": "2007-12-03T10:15:30Z",
  "toDate": "2007-12-03T10:15:30Z"
}

ProductPriceDateSpan

Fields
Field Name Description
startDate - DateTime
endDate - DateTime
Example
{
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z"
}

ProductSearchResult