StoreAPI Schema
Queries
cart
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": "abc123"}
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]!
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": 987, "levels": 1, "includeHidden": false}
Response
{
"data": {
"categories": [
{
"id": 123,
"parentId": 987,
"name": "abc123",
"level": 123,
"activeDateSpan": CategoryActiveDateSpan,
"isHidden": true,
"mainHeader": "abc123",
"content": "xyz789",
"externalId": "abc123",
"externalDiscountId": "xyz789",
"images": [CategoryImage],
"products": PagedResult,
"head": HtmlHead,
"primaryRoute": Route,
"breadcrumbText": "xyz789",
"hasSubcategories": false,
"subcategories": [Category],
"parentCategory": Category,
"parent": Category,
"isDynamic": false,
"dynamicFiltering": [CategoryDynamicFilter],
"data": Content,
"allowWebIndexing": false
}
]
}
}
category
Description
get category by 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": "xyz789",
"externalId": "abc123",
"externalDiscountId": "xyz789",
"images": [CategoryImage],
"products": PagedResult,
"head": HtmlHead,
"primaryRoute": Route,
"breadcrumbText": "abc123",
"hasSubcategories": true,
"subcategories": [Category],
"parentCategory": Category,
"parent": Category,
"isDynamic": false,
"dynamicFiltering": [CategoryDynamicFilter],
"data": Content,
"allowWebIndexing": true
}
}
}
channel
Description
get channel by id, null gets default channel
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": "xyz789"}
Response
{
"data": {
"channel": {
"id": 123,
"name": "abc123",
"displayName": "xyz789",
"groupName": "abc123",
"isDefault": true,
"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": 987,
"name": "abc123",
"displayName": "xyz789",
"groupName": "xyz789",
"isDefault": true,
"url": Uri,
"settings": ChannelSettings,
"languages": [Language],
"defaultLanguage": Language,
"currencies": [Currency],
"defaultCurrency": Currency,
"countries": [Country],
"imageUrl": "abc123",
"requiresAuth": true
}
]
}
}
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
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": "xyz789",
"email": "xyz789",
"externalId": "abc123",
"subscribedToNewsletter": true,
"language": Language,
"billingAddress": CustomerAddress,
"deliveryAddresses": [CustomerAddress],
"orderHeaders": OrderHeaderResult,
"communication": CustomerCommunication,
"store": Store,
"dynamicContent": "xyz789",
"externalAttributes": [CustomerExternalAttribute],
"googleUserId": "xyz789"
}
}
}
customerLookup
Description
Lookup a customer by a mobile phone number
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": "xyz789"}
Response
{
"data": {
"customerLookup": {
"id": 4,
"memberId": "xyz789",
"email": "xyz789",
"externalId": "abc123",
"subscribedToNewsletter": true,
"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
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": "abc123"}
Response
{
"data": {
"customerProductList": {
"id": 4,
"shareToken": "xyz789",
"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": "abc123",
"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
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
orderComments {
title
text
}
}
}
Variables
{"id": 123, "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": "xyz789",
"orderComments": [OrderComment]
}
}
}
page
Description
Fetch a single page by ID
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": "xyz789",
"mainHeader": "abc123",
"content": "xyz789",
"hasExternalUrl": false,
"externalUrl": Link,
"images": [Image],
"head": HtmlHead,
"primaryRoute": Route,
"breadcrumbText": "xyz789",
"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": "xyz789",
"content": "abc123",
"hasExternalUrl": true,
"externalUrl": Link,
"images": [Image],
"head": HtmlHead,
"primaryRoute": Route,
"breadcrumbText": "xyz789",
"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": "xyz789"}
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
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": "xyz789",
"id": 987,
"barcode": "abc123"
}
Response
{
"data": {
"product": {
"id": 123,
"articleNumber": "abc123",
"name": "abc123",
"subName": "abc123",
"shortDescription": "xyz789",
"description": "abc123",
"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": false,
"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": "xyz789",
"configurations": [ProductConfiguration],
"hasConfigurations": false,
"hasFamilyMembers": true,
"configurationPrice": ProductConfigurationPrice,
"quantitySuffix": "abc123",
"isPreOrder": true,
"preOrder": ProductPreOrder,
"isPackage": false,
"package": Package,
"upsell": Upsell,
"inPackages": [Product],
"hasUpsell": false,
"familyMembers": [Product],
"history": ProductHistory
}
}
}
products
Response
Returns [Product]!
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": ["xyz789"],
"ids": [123],
"barcodes": ["abc123"]
}
Response
{
"data": {
"products": [
{
"id": 987,
"articleNumber": "abc123",
"name": "xyz789",
"subName": "xyz789",
"shortDescription": "xyz789",
"description": "xyz789",
"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": 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": true,
"hasFamilyMembers": false,
"configurationPrice": ProductConfigurationPrice,
"quantitySuffix": "abc123",
"isPreOrder": true,
"preOrder": ProductPreOrder,
"isPackage": false,
"package": Package,
"upsell": Upsell,
"inPackages": [Product],
"hasUpsell": true,
"familyMembers": [Product],
"history": ProductHistory
}
]
}
}
route
Description
get product, category or page by path
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": "abc123",
"path": "xyz789",
"canonicalPath": "abc123",
"slug": "xyz789",
"object": Document,
"parents": [Route],
"alternateRoutes": [AlternateRoute],
"debug": "abc123",
"breadcrumbs": ["xyz789"]
}
}
}
search
Response
Returns a SearchResult
Arguments
Name | Description |
---|---|
term - String!
|
Example
Query
query search($term: String!) {
search(term: $term) {
products {
result {
...ProductFragment
}
filters {
...FilterFragment
}
totalResults
}
categories {
result {
...CategoryFragment
}
totalResults
}
}
}
Variables
{"term": "abc123"}
Response
{
"data": {
"search": {
"products": ProductSearchResult,
"categories": CategorySearchResult
}
}
}
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
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": 987}
Response
{
"data": {
"startPage": {
"id": 987,
"name": "abc123",
"images": [Image],
"isActive": false,
"content": "abc123",
"items": [StartPageItem],
"head": HtmlHead,
"primaryRoute": Route,
"breadcrumbText": "xyz789",
"data": Content
}
}
}
store
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": "xyz789",
"city": "abc123",
"region": "xyz789",
"address1": "abc123",
"address2": "abc123",
"description": "abc123",
"other": "abc123",
"openHours": "abc123",
"contact": "xyz789",
"coordinates": Coordinates
}
}
}
stores
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": 123,
"externalId": "xyz789",
"name": "abc123",
"city": "xyz789",
"region": "abc123",
"address1": "abc123",
"address2": "xyz789",
"description": "xyz789",
"other": "abc123",
"openHours": "abc123",
"contact": "xyz789",
"coordinates": Coordinates
}
]
}
}
Mutations
activateExternalCustomerById
Description
Error codes: CustomerNotFound, CustomerAlreadyActivated, UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput
Response
Returns an ActivateExternalCustomerByIdResult
Arguments
Name | Description |
---|---|
input - ActivateExternalCustomerByIdInput
|
Example
Query
mutation activateExternalCustomerById($input: ActivateExternalCustomerByIdInput) {
activateExternalCustomerById(input: $input) {
success
token {
value
}
}
}
Variables
{"input": ActivateExternalCustomerByIdInput}
Response
{
"data": {
"activateExternalCustomerById": {
"success": false,
"token": Token
}
}
}
activateExternalCustomerByToken
Description
Error codes: CustomerNotFound, CustomerAlreadyActivated, UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput
Response
Returns an ActivateExternalCustomerByTokenResult
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": false,
"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": "xyz789",
"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": true,
"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
Example
Query
mutation login(
$password: String,
$email: String,
$pid: String,
$externalId: String,
$memberNumber: String,
$externalHashId: String,
$timeStamp: String,
$customerId: Int,
$cartId: String
) {
login(
password: $password,
email: $email,
pid: $pid,
externalId: $externalId,
memberNumber: $memberNumber,
externalHashId: $externalHashId,
timeStamp: $timeStamp,
customerId: $customerId,
cartId: $cartId
) {
token {
value
}
customerId
}
}
Variables
{
"password": "abc123",
"email": "xyz789",
"pid": "abc123",
"externalId": "xyz789",
"memberNumber": "abc123",
"externalHashId": "xyz789",
"timeStamp": "abc123",
"customerId": 123,
"cartId": "xyz789"
}
Response
{"data": {"login": {"token": Token, "customerId": 123}}}
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
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": ["xyz789"]}
Response
{
"data": {
"removeFromCustomerProductList": {
"success": false,
"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
Example
Query
mutation resetPassword(
$resetPasswordToken: String!,
$newPassword: String!
) {
resetPassword(
resetPasswordToken: $resetPasswordToken,
newPassword: $newPassword
) {
token {
value
}
}
}
Variables
{
"resetPasswordToken": "abc123",
"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
subscribeToStockNotifications
Example
Query
mutation subscribeToStockNotifications(
$email: String!,
$articleNumber: String!
) {
subscribeToStockNotifications(
email: $email,
articleNumber: $articleNumber
)
}
Variables
{
"email": "abc123",
"articleNumber": "abc123"
}
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 an 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": "xyz789"}
Response
{"data": {"updateCustomerPriceList": {"success": true}}}
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
Example
Query
mutation updatePassword(
$oldPassword: String!,
$newPassword: String!
) {
updatePassword(
oldPassword: $oldPassword,
newPassword: $newPassword
) {
success
}
}
Variables
{
"oldPassword": "xyz789",
"newPassword": "xyz789"
}
Response
{"data": {"updatePassword": {"success": false}}}
Types
ActivateExternalCustomerByIdInput
Fields
Input Field | Description |
---|---|
externalCustomerId - String!
|
Example
{"externalCustomerId": "xyz789"}
ActivateExternalCustomerByIdResult
ActivateExternalCustomerByTokenInput
Fields
Input Field | Description |
---|---|
externalCustomerToken - String!
|
Example
{"externalCustomerToken": "abc123"}
ActivateExternalCustomerByTokenResult
Fields
Field Name | Description |
---|---|
success - Boolean!
|
|
customer - ExternalCustomer
|
Example
{"success": false, "customer": ExternalCustomer}
ActivationStatusSource
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"PREEXISTING_CUSTOMER"
AddMultipleToCartInput
Fields
Input Field | Description |
---|---|
articleNumber - String!
|
|
quantity - Int
|
Default value is 1 |
comments - [InputComment]
|
|
configurationIds - [ID]
|
|
preOrderDate - DateTime
|
Example
{
"articleNumber": "abc123",
"quantity": 987,
"comments": [InputComment],
"configurationIds": ["4"],
"preOrderDate": "2007-12-03T10:15:30Z"
}
AddToCartInput
Example
{
"cartId": "abc123",
"articleNumber": "abc123",
"quantity": 123,
"comments": [InputComment],
"configurationIds": [4],
"preOrderDate": "2007-12-03T10:15:30Z"
}
AddToCustomerProductListInput
AlternateRoute
BoolValue
Fields
Field Name | Description |
---|---|
value - Boolean
|
Example
{"value": true}
Boolean
BooleanFilter
BooleanFilterInput
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 |
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": "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"
}
Cart
Fields
Field Name | Description |
---|---|
id - String
|
|
totalQuantity - Int
|
|
productTotal - Price
|
|
productPreviousTotal - Price
|
|
discountTotal - Price
|
|
aggregatedDiscounts - [Discount]
|
|
externalCheckoutUrl - Uri
|
|
items - [CartItem]
|
Example
{
"id": "abc123",
"totalQuantity": 987,
"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": "xyz789",
"quantity": 123,
"articleNumber": "xyz789",
"images": [ProductImage],
"subHeading": "xyz789",
"variant": ProductVariant,
"variantOptionNames": ["abc123"],
"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
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
|
|
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": "xyz789",
"level": 123,
"activeDateSpan": CategoryActiveDateSpan,
"isHidden": false,
"mainHeader": "xyz789",
"content": "xyz789",
"externalId": "xyz789",
"externalDiscountId": "abc123",
"images": [CategoryImage],
"products": PagedResult,
"head": HtmlHead,
"primaryRoute": Route,
"breadcrumbText": "xyz789",
"hasSubcategories": true,
"subcategories": [Category],
"parentCategory": Category,
"parent": Category,
"isDynamic": true,
"dynamicFiltering": [CategoryDynamicFilter],
"data": Content,
"allowWebIndexing": false
}
CategoryActiveDateSpan
CategoryAutoCompleteResult
Fields
Field Name | Description |
---|---|
result - [Category]
|
Example
{"result": [Category]}
CategoryDynamicFilter
Fields
Field Name | Description |
---|---|
type - String
|
|
value - CategoryDynamicFilterValue
|
Example
{
"type": "abc123",
"value": StringValue
}
CategoryDynamicFilterValue
Types
Union Types |
---|
Example
StringValue
CategoryImage
CategorySearchResult
Fields
Field Name | Description |
---|---|
result - [Category]
|
|
totalResults - Int
|
Example
{"result": [Category], "totalResults": 123}
ChangeByOneItemQuantityInput
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": "abc123",
"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": true,
"countrySettings": [CountrySettings],
"tracking": Tracking,
"nostoAccountId": "xyz789"
}
Consent
Content
Fields
Field Name | Description |
---|---|
name - String
|
|
id - ID!
|
|
items - [ContentItem]
|
|
tags - [String]
|
Example
{
"name": "abc123",
"id": "4",
"items": [ContentItem],
"tags": ["xyz789"]
}
ContentItem
Fields
Field Name | Description |
---|---|
name - String
|
|
type - String!
|
|
properties - [ContentItemProperty]
|
|
Arguments
|
|
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": "xyz789",
"valueType": "OBJECT",
"value": StringValue
}
ContentItemPropertyValue
Types
Union Types |
---|
Example
StringValue
ContentPropertyValueType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"OBJECT"
Coordinates
Country
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 |
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 |
Example
{
"countryCode": "xyz789",
"paymentTypes": [paymentType],
"privateCustomerFields": [CustomerField],
"businessCustomerFields": [CustomerField],
"shipping": Shipping,
"privateCustomerConsents": [Consent],
"businessCustomerConsents": [Consent]
}
CreateCustomerProductListInput
Currency
Fields
Field Name | Description |
---|---|
id - String!
|
|
name - String
|
|
isDefault - Boolean
|
|
format - CurrencyFormat
|
Example
{
"id": "abc123",
"name": "abc123",
"isDefault": false,
"format": CurrencyFormat
}
CurrencyFormat
CustomBoolField
Fields
Field Name | Description |
---|---|
value - Boolean!
|
|
type - ProductCustomFieldType
|
|
key - String
|
|
title - String
|
Example
{
"value": false,
"type": "STRING",
"key": "xyz789",
"title": "abc123"
}
CustomField
Fields
Field Name | Description |
---|---|
type - ProductCustomFieldType
|
|
key - String
|
|
title - String
|
Possible Types
CustomField Types |
---|
Example
{
"type": "STRING",
"key": "abc123",
"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
CustomListField
Fields
Field Name | Description |
---|---|
value - [String]
|
|
type - ProductCustomFieldType
|
|
key - String
|
|
title - String
|
Example
{
"value": ["xyz789"],
"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": "xyz789"
}
CustomMultiLevelListFieldItem
CustomStringField
Fields
Field Name | Description |
---|---|
value - String!
|
|
type - ProductCustomFieldType
|
|
key - String
|
|
title - String
|
Example
{
"value": "abc123",
"type": "STRING",
"key": "abc123",
"title": "abc123"
}
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 |
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 |
---|
Example
{
"id": 4,
"memberId": "xyz789",
"email": "xyz789",
"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": "abc123",
"firstName": "abc123",
"lastName": "abc123",
"companyAtt": "abc123",
"company": "abc123",
"department": "abc123",
"streetName": "abc123",
"co": "abc123",
"postalCode": "abc123",
"city": "abc123",
"municipality": "xyz789",
"region": "abc123",
"country": Country,
"phone": "abc123",
"mobilePhone": "abc123"
}
CustomerCommunication
CustomerExternalAttribute
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
|
|
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
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": "xyz789",
"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
Example
{
"name": "abc123",
"description": "abc123",
"startDate": "2007-12-03T10:15:30Z",
"endDate": "2007-12-03T10:15:30Z",
"externalId": "abc123",
"externalReference": "xyz789",
"heading": "abc123",
"redeemed": true,
"redeemedOn": "2007-12-03T10:15:30Z",
"imageUrl": "xyz789",
"link": "xyz789"
}
CustomerLoyaltyPointCard
Example
{
"externalId": "abc123",
"name": "xyz789",
"lastStampTime": "2007-12-03T10:15:30Z",
"numberOfSlots": 987,
"numberOfSlotsRemaining": 123,
"isActive": false
}
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": "xyz789",
"name": "xyz789",
"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": "xyz789",
"quantity": 123,
"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
CustomerType
Values
Enum Value | Description |
---|---|
|
|
|
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": "abc123",
"region": "abc123",
"countryCode": "xyz789",
"city": "abc123",
"postalCode": "abc123",
"streetName": "xyz789",
"co": "abc123",
"department": "abc123",
"municipality": "abc123",
"companyAtt": "xyz789",
"company": "xyz789",
"lastName": "abc123",
"firstName": "xyz789",
"addressName": "xyz789"
}
CustomerUpdateConsentInput
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": 123,
"mobilePhone": "abc123",
"phone": "abc123",
"region": "abc123",
"countryCode": "abc123",
"city": "xyz789",
"postalCode": "abc123",
"streetName": "xyz789",
"co": "abc123",
"department": "abc123",
"municipality": "abc123",
"companyAtt": "xyz789",
"company": "xyz789",
"lastName": "xyz789",
"firstName": "abc123",
"addressName": "abc123"
}
CustomerUpdateExternalAttribute
CustomerUpdateInput
Fields
Input Field | Description |
---|---|
pid - String
|
|
emailAddress - String
|
|
organizationNumber - String
|
|
billingAddress - CustomerUpdateBillingAddressInput!
|
|
deliveryAddresses - [CustomerUpdateDeliveryAddressInput]
|
|
preferences - CustomerUpdatePreferenceInput
|
|
consents - [CustomerUpdateConsentInput]
|
|
externalAttributes - [CustomerUpdateExternalAttribute]
|
|
dynamicContent - String
|
Example
{
"pid": "abc123",
"emailAddress": "abc123",
"organizationNumber": "abc123",
"billingAddress": CustomerUpdateBillingAddressInput,
"deliveryAddresses": [
CustomerUpdateDeliveryAddressInput
],
"preferences": CustomerUpdatePreferenceInput,
"consents": [CustomerUpdateConsentInput],
"externalAttributes": [CustomerUpdateExternalAttribute],
"dynamicContent": "abc123"
}
CustomerUpdatePreferenceInput
Fields
Input Field | Description |
---|---|
type - CustomerUpdatePreferencesCommunicationInput
|
|
storeLocationId - Int
|
Example
{
"type": CustomerUpdatePreferencesCommunicationInput,
"storeLocationId": 987
}
CustomerUpdatePreferencesCommunicationInput
CustomerUpdateResponse
Description
Responds with a bool value whether the update has been successful or not
Fields
Field Name | Description |
---|---|
success - Boolean!
|
Example
{"success": false}
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
DiscountType
Values
Enum Value | Description |
---|---|
|
No discount defined |
|
Discount drops price of the order total by defined amount |
|
Discount drops price of the product by X % |
|
Discount will get the amount of the cheapest product and use this as a discount |
|
Discount drops total price of the product if there is at least X of them in cart |
|
Only a collection of products |
|
Discount drops price of the least expensive product in cart |
|
Discount drops price of the most expensive product in cart |
|
Discount allows to get a free gift when the product is added |
|
Discount allows to get free shipping option for the product |
|
Discount drops price for the package when all products in the package is added to cart |
|
Discount on the order total from a voucher |
|
Discount allows to buy amount of X of the article, but pay only for amount of Y |
Example
"UNDEFINED"
Document
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
FacebookConversionsApi
Filter
Possible Types
Filter Types |
---|
Example
{
"id": "xyz789",
"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
GoogleAnalytics
GoogleAnalytics4
GoogleTagManager
HtmlHead
Fields
Field Name | Description |
---|---|
title - String
|
|
metaTags - [HtmlMetaTag]
|
Example
{
"title": "xyz789",
"metaTags": [HtmlMetaTag]
}
HtmlMetaTag
ID
Example
"4"
Image
ImageValue
InputComment
Int
Example
123
Language
Link
ListFilter
Fields
Field Name | Description |
---|---|
items - [ListFilterItem]!
|
|
id - String!
|
|
name - String!
|
Example
{
"items": [ListFilterItem],
"id": "abc123",
"name": "xyz789"
}
ListFilterInput
ListFilterItem
ListStringValue
Fields
Field Name | Description |
---|---|
value - [String]
|
Example
{"value": ["xyz789"]}
LoginExternalCustomerInput
Fields
Input Field | Description |
---|---|
externalCustomerToken - String!
|
Example
{"externalCustomerToken": "abc123"}
LoginExternalCustomerResult
Fields
Field Name | Description |
---|---|
token - Token
|
Example
{"token": Token}
LoginResponse
MaskedProperty
MultiListFilter
Fields
Field Name | Description |
---|---|
lists - [MultiListFilterList]!
|
|
id - String!
|
|
name - String!
|
Example
{
"lists": [MultiListFilterList],
"id": "xyz789",
"name": "xyz789"
}
MultiListFilterInput
MultiListFilterList
Fields
Field Name | Description |
---|---|
id - String!
|
|
name - String!
|
|
items - [ListFilterItem]!
|
Example
{
"id": "abc123",
"name": "xyz789",
"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
Order
Fields
Field Name | Description |
---|---|
id - ID!
|
|
orderNumber - String
|
|
status - OrderStatus
|
|
items - [OrderItem]
|
|
billingInfo - OrderInfo
|
|
deliveryInfo - OrderInfo
|
|
paymentMethod - OrderPaymentMethod
|
|
deliveryMethod - OrderDeliveryMethod
|
|
giftVouchers - [OrderGiftVoucher]
|
|
total - Price
|
|
orderDate - DateTime
|
|
currency - Currency
|
|
attachments - [OrderAttachment]
|
|
orderPurchaseLocation - String
|
|
orderComments - [OrderComment]
|
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",
"orderComments": [OrderComment]
}
OrderAddress
Example
{
"street": "xyz789",
"postcode": "xyz789",
"city": "xyz789",
"region": "xyz789",
"country": Country
}
OrderAttachment
OrderComment
OrderDeliveryMethod
Fields
Field Name | Description |
---|---|
name - String
|
|
fee - Price
|
|
tracking - OrderDeliveryMethodTracking
|
Example
{
"name": "xyz789",
"fee": Price,
"tracking": OrderDeliveryMethodTracking
}
OrderDeliveryMethodTracking
OrderGiftVoucher
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": false,
"total": Price,
"orderDate": "2007-12-03T10:15:30Z",
"trackingId": "abc123",
"currency": Currency
}
OrderHeaderResult
Fields
Field Name | Description |
---|---|
result - [OrderHeader]
|
|
totalResults - Int
|
Example
{"result": [OrderHeader], "totalResults": 123}
OrderInfo
Fields
Field Name | Description |
---|---|
firstName - String
|
|
lastName - String
|
|
company - String
|
|
phone - String
|
|
address - OrderAddress
|
Example
{
"firstName": "abc123",
"lastName": "abc123",
"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": "abc123",
"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
OrderStatus
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
Types
Union Types |
---|
Example
PackageDiscountPercentage
PackageDiscountPercentage
Fields
Field Name | Description |
---|---|
percentage - Decimal!
|
Example
{"percentage": Decimal}
PackageDiscountValue
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
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
|
|
subPages - [Page!]
|
|
Arguments
|
|
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": "xyz789",
"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
|
|
result - [Product]!
|
Example
{
"totalResults": 987,
"sortOrders": [ProductSortOrder],
"filters": [Filter],
"result": [Product]
}
Paging
Description
The Paging
scalar type represents a numeric values between <1; 100>
Example
Paging
PagingInput
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
PriceHistory
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 |
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": "abc123",
"email": "xyz789",
"externalId": "abc123",
"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
|
|
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]
|
|
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.
|
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.
|
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
|
|
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
|
DescriptionNB: Carries a performance cost, as asking for this will result in a separate API call in the backend. Error CodesInvalidAmountOfArticleNumbersNumber of input products doesn't match package products InvalidArticleNumberProduct or variant article number doesn't match any products UnableToGetPackagePriceFailed to calculate package price |
Arguments
|
|
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
|
Example
{
"id": 123,
"articleNumber": "xyz789",
"name": "xyz789",
"subName": "xyz789",
"shortDescription": "xyz789",
"description": "abc123",
"mainHeader": "abc123",
"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": 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": true,
"hasFamilyMembers": false,
"configurationPrice": ProductConfigurationPrice,
"quantitySuffix": "xyz789",
"isPreOrder": true,
"preOrder": ProductPreOrder,
"isPackage": true,
"package": Package,
"upsell": Upsell,
"inPackages": [Product],
"hasUpsell": false,
"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": "abc123",
"url": Uri,
"location": "CUSTOM",
"style": "abc123",
"text": "xyz789"
}
ProductBadgeLocation
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"CUSTOM"
ProductComment
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": "xyz789",
"price": Price,
"priceCalculation": ProductConfigurationPriceCalculation
}
ProductConfigurationPrice
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": "abc123",
"variables": [
ProductConfigurationPriceCalculationVariable
]
}
ProductConfigurationPriceCalculationVariable
ProductConfigurationPriceInput
Fields
Input Field | Description |
---|---|
optionId - ID!
|
Example
{"optionId": "4"}
ProductCustomFieldType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
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": "abc123",
"sizes": [ProductImageSize],
"url": Uri,
"modifiedDate": "abc123"
}
ProductImageSize
ProductOrderOptions
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ARTICLE_NUMBER"