novomind iSHOP GraphQL API Reference
Congratulations! You found the documentation to the novomind iSHOP GraphQL API (in short: Shop API) which provides queries and mutations to the public resources in the novomind iSHOP.
API Endpoints
# Stable API, only accessible from within the novomind network:
https://novosales-hl-prod.kubfra-ishop.novomind.com/api/graphql/
# Your API endpoint!:
https://<your server>/api/graphql/
Headers
# Please check the documentation on how to get the token
Authorization: Bearer <YOUR_TOKEN_HERE>
Version
47
Overview
This API is designed for use with headless shop frontends, such as the novomind iSHOP Storefront or SHOPin by Creative Style.
For accessing the relevant version of the documentation, you can also utilize the Apollo Router Studio on your novomind iSHOP installation:
https://<your-url-here>/api/graphql/
This API includes comprehensive management of customer and order data, shopping carts and wishlists, payment and promotion processing, as well as querying product data, category data, and maintained shop parameters. These functions are delivered by various microservices, which are combined into a supergraph. The endpoint for this supergraph is an Apollo Router with gateway functionalities, allowing the creation of a single GraphQL request that utilizes these microservices. The gateway is secured by OAuth 2.0. All requests must be made with a valid JSON Web Token, which must be obtained from an Authentication Service endpoint beforehand.
The API offers extensive capabilities for managing customer and order data, handling shopping carts and wishlists, processing payments and promotions, and querying product and category data, along with other shop parameters. These functionalities are powered by various microservices, which are aggregated into a supergraph. This supergraph is accessible via an Apollo Router with gateway functionality, enabling a unified GraphQL request that interacts with all the microservices. The gateway is secured by OAuth 2.0, requiring all requests to include a valid JSON Web Token (JWT), which must be obtained in advance from an Authentication Service endpoint.
If you intend to implement backend features or extend the APIs please refer to our documentation for novomind iSHOP headless backend development. Please note that this documentation is not publicly available.
Before proceeding, please make sure to review the authentication guide.
Authentication
For being able to use the API a valid JSON Web Token (JWT) is needed. The Authentication-Service supports client_credentials, authorization_code, and refresh_token as grant types. Which grant types are available for a particular client depends on its configuration. The required JWT needs to be requested from the Authentication-Service endpoint.
Independent on the grant type the process ends with a JSON response that contains the attribute "access_token" with the JWT as value. This JWT has to be used as header parameter for requests to the gateway:
- Header Key:
"Authorization"
- Header Value:
"Bearer <fetched JWT>"
To get the right credentials for fetching JWTs please ask someone from our team.
Guest Customers
Any interaction with the shop needs at least a guest token. The grant type client_credentials with the clients credentials and a uuid from the user is used to generate the JWT. The uuid from the user is either located in a cookie or it is generated.
The relevant properties are:
- Access Token URL:
<auth-service-url>/oauth2/token
- Client ID:
<Client ID>
- Client Secret:
<matching password for the Client ID>
- Grant Type:
Client Credentials
- Scope:
shop-guest
After fetching the token it can be tested that everything works with the following query:
query Shop_findCarts {
shop_findCarts {
id
}
}
Since nothing has been done with the customer yet the result should be empty like this response:
{
"data": {
"shop_findCarts": []
}
}
Registering a Customer
The login page on the Authorization-Service contains a register form as well. At least one request of the user on the Authorization-Service must be done with the mcs as a parameter. (e.g. /login/?mcs=%5Bbrand%3Dnovosales%20channel%3Dweb%20country%3Dde%20currency%3DEUR%20language%3Dde%20store%3D%5D) The value is stored in the session and will be used later in the registration process.
<auth-service-url>/login/?mcs=<existing MCS string>
Registered Customers
For registered users the grant type authorization_code
is used. The client creates a redirect to the Authorization-Service Auth URL that contains a Callback URL (parameter redirect_uri
), the clientId
, scope=shop-customer
, response_type=code
and the mcs
. Besides that the target of the user will be remembered by the client. It is possible to use the state parameter to carrier over data, like the target, from the Auth URL to the Callback URL.
The user follows the redirect to the Auth URL:
-
If the user is not logged in to the Authorization-Service, the login page will be shown. With username and password the user can login and the Auth URL will be called again.
-
If the user is logged in and the Auth URL is called a redirect to the Callback URL that contains a code parameter is returned. The user calls the Callback URL on the client. Afterwards the client uses the Access Token URL with parameters code, which is from the Callback URL, the same redirect_uri as used with the Auth URL and grant_type=authorize_code.
The response is a JSON that contains the access_token
and if the client has the right the refresh_token
as well. In the default configuration of clients the permissions are implicit, so no additional window will pop up in the authorization process.
The required properties are:
- Auth URL:
<auth-service-url>/oauth2/authorize?mcs=<existing MCS string>
- Access Token URL:
<auth-service-url>/oauth2/token
- Callback URL:
<matching URL with the clients configuration from the Authentication-Service>
- Client ID:
<Client ID>
- Client Secret:
<matching password for the Client ID>
- Grant Type:
Authorization Code
- Scope:
shop-customer
After fetching the token it can be tested that everything works with the following query:
query Account_loadCustomer {
account_loadCustomer {
firstname
lastname
}
}
Assuming for the registration was used John
as firstname
and Doe
as lastname
the response should like:
{
"data": {
"account_loadCustomer": {
"firstname": "John",
"lastname": "Doe"
}
}
}
If this query is used with a JWT for a guest customer it would result in an error with message
Forbidden
.
For clients with the right to use "refresh_token" a new pair of tokens can be created using the Access Token URL with the following parameters only:
grant_type=refresh_token
refresh_token=<refresh_token>
Refresh tokens can be reusable or not, depending on the clients configuration. Reusable refresh tokens can be used infinitely in their time-to-live to get new access tokens. Non-reusable refresh tokens can be used once in their time-to-live to generate a new token pair. The new refresh token then has its own time-to-live, which allows to stay logged in forever if refreshed often enough.
Carts and Wishlists
The Shop API differentiates between carts and wishlists for all customers.
The Cart contains:
- Positions
- Billing address
- Shipping address
- Selected payment method
- Selected shipping method
- Other properties
For B2C purposes there is only one cart per user. If there is no cart, then one will be created on demand. The most important mutation operation is cart_update. It allows to modify positions, set addresses, payment methods, etc.
The Wishlist contains:
- Positions
Customers can have multiple wishlists that they can organize themselves.
Cart To Wishlist
With the cart_addAllToWishlist
mutation it is possible to move all positions from a cart to the wishlist of a customer. The cart is empty afterwards. If the wishlist already contains positions with the same item id, they will be merged into one position.
Wishlist To Cart
With the wishlist_addAllToCart
mutation all positions from the wishlist are moved to the cart of the customer. Positions that have no quantity on the wishlist will be moved with quantity set to 1. If the cart already contains positions with the same item id, they will be merged into one position.
Checkout
The checkout process is done via shop_submitOrder
mutation. This page describes the minimum requirements to place an order successfully.
Minimum Requirements
Orders can be submitted for both types of customers if the following minimum requirements are met.
For registered users the guestId may not be set, as it would turn it into a guest order.
Mutation query:
mutation Mutation($data: UpdateCartInput!) {
cart_update(data: $data) {
... on UpdateCartSuccess {
cart {
id
}
}
}
}
Variables for the mutation (just for showcasing):
{
"data": {
"ops": [
{
"setBillingAddress": {
"value": {
"salutation": "MR",
"firstname": "John",
"lastname": "Doe",
"street": "Any Street",
"number": "1",
"city": "Any City",
"postcode": "12345",
"country": "Any Country"
}
},
"setGuestId": {
"value": "<user identifier e.g. e-mail>"
},
"setPaymentMethod": {
"value": {
"interfaceId": "<valid interface id>",
"methodCode": "<valid method code>"
}
},
"setShippingMethod": {
"value": {
"shipperId": "<valid shipper id>"
}
},
"positionOp": {
"addPosition": {
"setItemId": {
"value": "<valid item id>"
},
"updateQuantity": {
"quantity": 1
}
}
}
}
]
}
}
Afterwards the mutation
shop_submitOrder
can be used to submit the order with the given cartId.
Supporting Operations
To get a list of the available shipping methods the following query can be used:
query Query {
shop_findCarts {
availableShippingMethods {
amount {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
description
freeShipping
name
shipperId
}
}
}
To get a list of the available payment methods the following query can be used:
query Cart_availablePayments($cartId: ID!) {
cart_availablePayments(cartId: $cartId) {
interfaceId
methodCodes
}
}
# with variable:
{
"cartId": "<cart id that will be submitted>"
}
Mutation paypal_createOrder
If an order with payment method PayPal gets submitted the mutation paypal_createOrder
with the orderId that is returned by shop_submitOrder
is needed to start the PayPal payment process. Afterwards an approval link is returned where the payment gets handled. The customer logs into PayPal, selects the payment options and then returns to the app context, by the browser following the redirect from PayPal, to the PayPal approve URL. It will automatically try to capture the payment and then change the order to completed. (ERP system is responsible for this task to handle in the background) The server redirects to the frontend PayPal success url.
Queries
account_loadCustomer
Description
Fetch all data of the current customer
Response
Returns a Customer
Example
Query
query Account_loadCustomer {
account_loadCustomer {
addressBook {
billingAddress {
...BillingAddressFragment
}
defaultShippingAddress {
...ShippingAddressFragment
}
shippingAddresses {
...ShippingAddressFragment
}
}
birthDate
company
customerIdentifier
firstname
lastname
orders {
orderList {
...OrderFragment
}
total
}
phoneNumbers {
number
type
}
salutation
title
username
}
}
Response
{
"data": {
"account_loadCustomer": {
"addressBook": AddressBook,
"birthDate": "2007-12-03",
"company": "abc123",
"customerIdentifier": "abc123",
"firstname": "abc123",
"lastname": "xyz789",
"orders": OrderListResult,
"phoneNumbers": [Phone],
"salutation": "xyz789",
"title": "xyz789",
"username": "xyz789"
}
}
}
cart_availablePayments
Description
Fetch all allowed payments for a specific cart, including fraud detection (if implemented)
These payments should be used in the checkout process.
Response
Returns [Payment]!
Arguments
Name | Description |
---|---|
cartId - ID!
|
The cart ID to fetch payments for |
Example
Query
query Cart_availablePayments($cartId: ID!) {
cart_availablePayments(cartId: $cartId) {
interfaceId
methodCodes
}
}
Variables
{"cartId": "4"}
Response
{
"data": {
"cart_availablePayments": [
{
"interfaceId": "4",
"methodCodes": ["abc123"]
}
]
}
}
core_brand
Description
Fetch a product brand by its ID
Example
Query
query Core_brand($id: ID!) {
core_brand(id: $id) {
id
image {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
name
parameters {
name
}
productCount
products {
id
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
...ItemFragment
}
brand {
...BrandFragment
}
breadcrumb {
...CategoryFragment
}
categories {
...CategoryFragment
}
category {
...CategoryFragment
}
documents {
...DocumentFragment
}
features {
...ProductFeatureFragment
}
globalContent {
...RasterFragment
}
image {
...ImageFragment
}
link {
...LinkFragment
}
longDescription
materials
name
page {
...MaintainedProductPageFragment
}
recommendations {
...ProductRecommendationsFragment
}
reviews {
...ReviewsFragment
}
sellingPoints
seo {
...SeoFragment
}
shortDescription
variations {
...ItemFragment
}
vat
videos {
...VideoFragment
}
}
topsellers {
products {
...ProductFragment
}
totalCount
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"core_brand": {
"id": 4,
"image": Image,
"link": Link,
"name": "abc123",
"parameters": [ContentAttribute],
"productCount": 123,
"products": [Product],
"topsellers": ProductRecommendations
}
}
}
core_brandRecommendations
Description
Top selling brands for a given category
By default, the top sellers are disabled and need to be enabled in the backend (see ShopApiConfigurer#recommendationsWhitelist
and RecommendationType#BRAND
).
Response
Returns a BrandRecommendations!
Arguments
Name | Description |
---|---|
categoryId - String!
|
Category ID to find for top sellers |
paging - RecommendationPaging!
|
Paging to list recommended brands. Default = {limit: 100, offset: 0} |
Example
Query
query Core_brandRecommendations(
$categoryId: String!,
$paging: RecommendationPaging!
) {
core_brandRecommendations(
categoryId: $categoryId,
paging: $paging
) {
brands {
id
image {
...ImageFragment
}
link {
...LinkFragment
}
name
parameters {
...ContentAttributeFragment
}
productCount
products {
...ProductFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
totalCount
}
}
Variables
{
"categoryId": "xyz789",
"paging": {"limit": 100, "offset": 0}
}
Response
{
"data": {
"core_brandRecommendations": {
"brands": [Brand],
"totalCount": 123
}
}
}
core_brandTopsellerRecommendations
Description
Top selling products of a brand
By default, the top sellers are disabled and need to be enabled in the backend (see ShopApiConfigurer#recommendationsWhitelist
and RecommendationType#BRAND_TOPSELLER
).
Response
Returns a ProductRecommendations!
Arguments
Name | Description |
---|---|
brandId - String!
|
Brand ID to find for top sellers |
includingReducedProducts - Boolean!
|
If set to false significantly discounted products (usually products with a discount of 5 percent or more) will not be listed. Default = true |
paging - RecommendationPaging!
|
Paging to list recommended products. Default = {limit: 100, offset: 0} |
Example
Query
query Core_brandTopsellerRecommendations(
$brandId: String!,
$includingReducedProducts: Boolean!,
$paging: RecommendationPaging!
) {
core_brandTopsellerRecommendations(
brandId: $brandId,
includingReducedProducts: $includingReducedProducts,
paging: $paging
) {
products {
id
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
...ItemFragment
}
brand {
...BrandFragment
}
breadcrumb {
...CategoryFragment
}
categories {
...CategoryFragment
}
category {
...CategoryFragment
}
documents {
...DocumentFragment
}
features {
...ProductFeatureFragment
}
globalContent {
...RasterFragment
}
image {
...ImageFragment
}
link {
...LinkFragment
}
longDescription
materials
name
page {
...MaintainedProductPageFragment
}
recommendations {
...ProductRecommendationsFragment
}
reviews {
...ReviewsFragment
}
sellingPoints
seo {
...SeoFragment
}
shortDescription
variations {
...ItemFragment
}
vat
videos {
...VideoFragment
}
}
totalCount
}
}
Variables
{
"brandId": "xyz789",
"includingReducedProducts": true,
"paging": {"limit": 100, "offset": 0}
}
Response
{
"data": {
"core_brandTopsellerRecommendations": {
"products": [Product],
"totalCount": 123
}
}
}
core_category
Description
Fetch a product category by its ID
Example
Query
query Core_category($id: ID!) {
core_category(id: $id) {
ancestors {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
bottomTeaserInsertion {
meta {
...TeaserMetaFragment
}
name
}
children {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
id
idsDown
isHiddenFor
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
parameters {
name
}
parent {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
recommendations {
categories {
...CategoryFragment
}
totalCount
}
redirect {
linkId
linkType
responseCode
url
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
seoBoxText
seoHeadline
seoThumbnail {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
teaserInsertions {
meta {
...TeaserMetaFragment
}
name
}
topTeaserInsertion {
meta {
...TeaserMetaFragment
}
name
}
topsellers {
products {
...ProductFragment
}
totalCount
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"core_category": {
"ancestors": [Category],
"bottomTeaserInsertion": TeaserAttribute,
"children": [Category],
"id": "4",
"idsDown": "abc123",
"isHiddenFor": true,
"link": Link,
"metaTagDescription": "xyz789",
"metaTagRobots": "xyz789",
"metaTagTitle": "abc123",
"name": "xyz789",
"navigationFlyout": Image,
"parameters": [ContentAttribute],
"parent": Category,
"products": PageSearchResult,
"raster": Raster,
"recommendations": CategoryRecommendations,
"redirect": ResolvedLink,
"seo": Seo,
"seoBoxText": "abc123",
"seoHeadline": "abc123",
"seoThumbnail": Image,
"teaserInsertions": [TeaserAttribute],
"topTeaserInsertion": TeaserAttribute,
"topsellers": ProductRecommendations
}
}
}
core_categoryRecommendations
Description
Similar/recommended categories to a given category
Response
Returns a CategoryRecommendations!
Arguments
Name | Description |
---|---|
categoryId - String!
|
Category ID to find for recommendations |
paging - RecommendationPaging!
|
Paging to list recommended categories. Default = {limit: 100, offset: 0} |
Example
Query
query Core_categoryRecommendations(
$categoryId: String!,
$paging: RecommendationPaging!
) {
core_categoryRecommendations(
categoryId: $categoryId,
paging: $paging
) {
categories {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
totalCount
}
}
Variables
{
"categoryId": "abc123",
"paging": {"limit": 100, "offset": 0}
}
Response
{
"data": {
"core_categoryRecommendations": {
"categories": [Category],
"totalCount": 987
}
}
}
core_globalParameters
Description
Filters by global parameters
Such a parameter can be, for example, the maximal numbers of products on category or search result page. There can be different types of parameters, from simple text to a complex teaser. By default, the category parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#globalParameterWhitelist
).
Response
Returns [GlobalParameter]!
Arguments
Name | Description |
---|---|
filters - [GlobalParameterFilter!]!
|
Filters to select global parameters (by parameter type and parameter name) Default: no parameters are selected and an empty list is returned. Default = [] |
Example
Query
query Core_globalParameters($filters: [GlobalParameterFilter!]!) {
core_globalParameters(filters: $filters) {
parameters {
name
}
type
}
}
Variables
{"filters": [""]}
Response
{
"data": {
"core_globalParameters": [
{
"parameters": [ContentAttribute],
"type": "xyz789"
}
]
}
}
core_item
Description
Fetch an item by its ID
Example
Query
query Core_item($id: ID!) {
core_item(id: $id) {
id
inBasket
onWishlist
additionalImages {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
availability {
availabilityText
available
maxQuantity
minQuantity
}
badges {
name
type
}
color {
displayName
searchColor {
...SearchColorFragment
}
}
documents {
displayName
fileName
url
}
features {
displayName
displayValue
name
}
image {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
images {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
itemDiscount {
discountAmount {
...MoneyFragment
}
discountPercent
promotionsSavings {
...MoneyFragment
}
}
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
oldPrice {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
price {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
product {
id
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
...ItemFragment
}
brand {
...BrandFragment
}
breadcrumb {
...CategoryFragment
}
categories {
...CategoryFragment
}
category {
...CategoryFragment
}
documents {
...DocumentFragment
}
features {
...ProductFeatureFragment
}
globalContent {
...RasterFragment
}
image {
...ImageFragment
}
link {
...LinkFragment
}
longDescription
materials
name
page {
...MaintainedProductPageFragment
}
recommendations {
...ProductRecommendationsFragment
}
reviews {
...ReviewsFragment
}
sellingPoints
seo {
...SeoFragment
}
shortDescription
variations {
...ItemFragment
}
vat
videos {
...VideoFragment
}
}
recommendations {
items {
...ItemFragment
}
totalCount
}
relations {
displayName
relations {
...ProductRelationFragment
}
totalCount
}
rrpPrice {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
services {
html
id
value
}
shortDescription
size
sku
variations {
displayName
displayValue
name
}
videos {
fileName
url
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"core_item": {
"id": "4",
"inBasket": false,
"onWishlist": false,
"additionalImages": [Image],
"assets": [Document],
"availability": Availability,
"badges": [Badge],
"color": ItemColor,
"documents": [Document],
"features": [ItemAttribute],
"image": Image,
"images": [Image],
"itemDiscount": ItemDiscount,
"link": Link,
"oldPrice": Money,
"price": Money,
"product": Product,
"recommendations": ItemRecommendations,
"relations": [ProductRelations],
"rrpPrice": Money,
"seo": Seo,
"services": [ProductService],
"shortDescription": "abc123",
"size": "xyz789",
"sku": "xyz789",
"variations": [ItemAttribute],
"videos": [Video]
}
}
}
core_itemRecommendations
Description
Content based item recommendations for a given item
Response
Returns an ItemRecommendations!
Arguments
Name | Description |
---|---|
itemId - String!
|
Item ID to find for recommendations |
paging - RecommendationPaging!
|
Paging to list recommended items. Default = {limit: 100, offset: 0} |
Example
Query
query Core_itemRecommendations(
$itemId: String!,
$paging: RecommendationPaging!
) {
core_itemRecommendations(
itemId: $itemId,
paging: $paging
) {
items {
id
inBasket
onWishlist
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
availability {
...AvailabilityFragment
}
badges {
...BadgeFragment
}
color {
...ItemColorFragment
}
documents {
...DocumentFragment
}
features {
...ItemAttributeFragment
}
image {
...ImageFragment
}
images {
...ImageFragment
}
itemDiscount {
...ItemDiscountFragment
}
link {
...LinkFragment
}
oldPrice {
...MoneyFragment
}
price {
...MoneyFragment
}
product {
...ProductFragment
}
recommendations {
...ItemRecommendationsFragment
}
relations {
...ProductRelationsFragment
}
rrpPrice {
...MoneyFragment
}
seo {
...SeoFragment
}
services {
...ProductServiceFragment
}
shortDescription
size
sku
variations {
...ItemAttributeFragment
}
videos {
...VideoFragment
}
}
totalCount
}
}
Variables
{
"itemId": "xyz789",
"paging": {"limit": 100, "offset": 0}
}
Response
{
"data": {
"core_itemRecommendations": {
"items": [Item],
"totalCount": 123
}
}
}
core_items
Description
Fetch a list of items by their IDs
Example
Query
query Core_items($ids: [ID!]!) {
core_items(ids: $ids) {
id
inBasket
onWishlist
additionalImages {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
availability {
availabilityText
available
maxQuantity
minQuantity
}
badges {
name
type
}
color {
displayName
searchColor {
...SearchColorFragment
}
}
documents {
displayName
fileName
url
}
features {
displayName
displayValue
name
}
image {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
images {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
itemDiscount {
discountAmount {
...MoneyFragment
}
discountPercent
promotionsSavings {
...MoneyFragment
}
}
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
oldPrice {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
price {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
product {
id
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
...ItemFragment
}
brand {
...BrandFragment
}
breadcrumb {
...CategoryFragment
}
categories {
...CategoryFragment
}
category {
...CategoryFragment
}
documents {
...DocumentFragment
}
features {
...ProductFeatureFragment
}
globalContent {
...RasterFragment
}
image {
...ImageFragment
}
link {
...LinkFragment
}
longDescription
materials
name
page {
...MaintainedProductPageFragment
}
recommendations {
...ProductRecommendationsFragment
}
reviews {
...ReviewsFragment
}
sellingPoints
seo {
...SeoFragment
}
shortDescription
variations {
...ItemFragment
}
vat
videos {
...VideoFragment
}
}
recommendations {
items {
...ItemFragment
}
totalCount
}
relations {
displayName
relations {
...ProductRelationFragment
}
totalCount
}
rrpPrice {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
services {
html
id
value
}
shortDescription
size
sku
variations {
displayName
displayValue
name
}
videos {
fileName
url
}
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"core_items": [
{
"id": 4,
"inBasket": true,
"onWishlist": true,
"additionalImages": [Image],
"assets": [Document],
"availability": Availability,
"badges": [Badge],
"color": ItemColor,
"documents": [Document],
"features": [ItemAttribute],
"image": Image,
"images": [Image],
"itemDiscount": ItemDiscount,
"link": Link,
"oldPrice": Money,
"price": Money,
"product": Product,
"recommendations": ItemRecommendations,
"relations": [ProductRelations],
"rrpPrice": Money,
"seo": Seo,
"services": [ProductService],
"shortDescription": "xyz789",
"size": "xyz789",
"sku": "abc123",
"variations": [ItemAttribute],
"videos": [Video]
}
]
}
}
core_landingPages
Description
Returns all valid landing pages
Response
Returns [LandingPage]!
Example
Query
query Core_landingPages {
core_landingPages {
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
metaTagDescription
metaTagRobots
metaTagTitle
name
parameters {
name
}
raster {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
seoBoxText
seoThumbnail {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
}
}
Response
{
"data": {
"core_landingPages": [
{
"link": Link,
"metaTagDescription": "xyz789",
"metaTagRobots": "xyz789",
"metaTagTitle": "abc123",
"name": "xyz789",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "xyz789",
"seoThumbnail": Image
}
]
}
}
core_lastSearchRecommendations
Description
Product recommendations based on last searches of the current user
Response
Returns a ProductRecommendations!
Arguments
Name | Description |
---|---|
includingReducedProducts - Boolean!
|
If set to false significantly discounted products (usually products with a discount of 5 percent or more) will not be listed. Default = true |
paging - RecommendationPaging!
|
Paging to list recommended products. Default = {limit: 100, offset: 0} |
Example
Query
query Core_lastSearchRecommendations(
$includingReducedProducts: Boolean!,
$paging: RecommendationPaging!
) {
core_lastSearchRecommendations(
includingReducedProducts: $includingReducedProducts,
paging: $paging
) {
products {
id
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
...ItemFragment
}
brand {
...BrandFragment
}
breadcrumb {
...CategoryFragment
}
categories {
...CategoryFragment
}
category {
...CategoryFragment
}
documents {
...DocumentFragment
}
features {
...ProductFeatureFragment
}
globalContent {
...RasterFragment
}
image {
...ImageFragment
}
link {
...LinkFragment
}
longDescription
materials
name
page {
...MaintainedProductPageFragment
}
recommendations {
...ProductRecommendationsFragment
}
reviews {
...ReviewsFragment
}
sellingPoints
seo {
...SeoFragment
}
shortDescription
variations {
...ItemFragment
}
vat
videos {
...VideoFragment
}
}
totalCount
}
}
Variables
{"includingReducedProducts": true, "paging": {"limit": 100, "offset": 0}}
Response
{
"data": {
"core_lastSearchRecommendations": {
"products": [Product],
"totalCount": 123
}
}
}
core_mainCategories
Description
Filters by the top-level product categories
Response
Returns [Category]!
Arguments
Name | Description |
---|---|
order - SortOrder!
|
The categories are sorted as defined in the back office, this sorting can be reversed here Default: ascending (sorted as defined in the back office). Default = ASC |
Example
Query
query Core_mainCategories($order: SortOrder!) {
core_mainCategories(order: $order) {
ancestors {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
bottomTeaserInsertion {
meta {
...TeaserMetaFragment
}
name
}
children {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
id
idsDown
isHiddenFor
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
parameters {
name
}
parent {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
recommendations {
categories {
...CategoryFragment
}
totalCount
}
redirect {
linkId
linkType
responseCode
url
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
seoBoxText
seoHeadline
seoThumbnail {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
teaserInsertions {
meta {
...TeaserMetaFragment
}
name
}
topTeaserInsertion {
meta {
...TeaserMetaFragment
}
name
}
topsellers {
products {
...ProductFragment
}
totalCount
}
}
}
Variables
{"order": "ASC"}
Response
{
"data": {
"core_mainCategories": [
{
"ancestors": [Category],
"bottomTeaserInsertion": TeaserAttribute,
"children": [Category],
"id": "4",
"idsDown": "xyz789",
"isHiddenFor": true,
"link": Link,
"metaTagDescription": "xyz789",
"metaTagRobots": "abc123",
"metaTagTitle": "xyz789",
"name": "xyz789",
"navigationFlyout": Image,
"parameters": [ContentAttribute],
"parent": Category,
"products": PageSearchResult,
"raster": Raster,
"recommendations": CategoryRecommendations,
"redirect": ResolvedLink,
"seo": Seo,
"seoBoxText": "abc123",
"seoHeadline": "xyz789",
"seoThumbnail": Image,
"teaserInsertions": [TeaserAttribute],
"topTeaserInsertion": TeaserAttribute,
"topsellers": ProductRecommendations
}
]
}
}
core_mainContentTreePages
Description
Filters by top-level content tree pages
Response
Returns [ContentTreePage]!
Arguments
Name | Description |
---|---|
order - SortOrder!
|
The content tree pages are sorted as defined in the back office, this sorting can be reversed here Default: ascending (sorted as defined in the back office). Default = ASC |
Example
Query
query Core_mainContentTreePages($order: SortOrder!) {
core_mainContentTreePages(order: $order) {
ancestors {
ancestors {
...ContentTreePageFragment
}
children {
...ContentTreePageFragment
}
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
parameters {
...ContentAttributeFragment
}
parent {
...ContentTreePageFragment
}
raster {
...RasterFragment
}
root {
...ContentTreePageFragment
}
seo {
...SeoFragment
}
seoBoxText
seoThumbnail {
...ImageFragment
}
}
children {
ancestors {
...ContentTreePageFragment
}
children {
...ContentTreePageFragment
}
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
parameters {
...ContentAttributeFragment
}
parent {
...ContentTreePageFragment
}
raster {
...RasterFragment
}
root {
...ContentTreePageFragment
}
seo {
...SeoFragment
}
seoBoxText
seoThumbnail {
...ImageFragment
}
}
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
metaTagDescription
metaTagRobots
metaTagTitle
name
parameters {
name
}
parent {
ancestors {
...ContentTreePageFragment
}
children {
...ContentTreePageFragment
}
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
parameters {
...ContentAttributeFragment
}
parent {
...ContentTreePageFragment
}
raster {
...RasterFragment
}
root {
...ContentTreePageFragment
}
seo {
...SeoFragment
}
seoBoxText
seoThumbnail {
...ImageFragment
}
}
raster {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
root {
ancestors {
...ContentTreePageFragment
}
children {
...ContentTreePageFragment
}
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
parameters {
...ContentAttributeFragment
}
parent {
...ContentTreePageFragment
}
raster {
...RasterFragment
}
root {
...ContentTreePageFragment
}
seo {
...SeoFragment
}
seoBoxText
seoThumbnail {
...ImageFragment
}
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
seoBoxText
seoThumbnail {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
}
}
Variables
{"order": "ASC"}
Response
{
"data": {
"core_mainContentTreePages": [
{
"ancestors": [ContentTreePage],
"children": [ContentTreePage],
"link": Link,
"metaTagDescription": "abc123",
"metaTagRobots": "abc123",
"metaTagTitle": "abc123",
"name": "xyz789",
"parameters": [ContentAttribute],
"parent": ContentTreePage,
"raster": Raster,
"root": ContentTreePage,
"seo": Seo,
"seoBoxText": "abc123",
"seoThumbnail": Image
}
]
}
}
core_pageByLink
Description
Returns page for the given link
May be null
if no valid page can be found.
Response
Returns a Page
Arguments
Name | Description |
---|---|
link - LinkInput!
|
Link to which page should be found |
Example
Query
query Core_pageByLink($link: LinkInput!) {
core_pageByLink(link: $link) {
metaTagDescription
metaTagRobots
metaTagTitle
parameters {
name
}
raster {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
seoBoxText
seoThumbnail {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
}
}
Variables
{"link": LinkInput}
Response
{
"data": {
"core_pageByLink": {
"metaTagDescription": "xyz789",
"metaTagRobots": "xyz789",
"metaTagTitle": "abc123",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "xyz789",
"seoThumbnail": Image
}
}
}
core_pageByUrl
Description
Returns for the given URL
To resolve an URL a shop has implement LinkIdResolver
for each LinkType
. Such a LinkIdResolver
is already available for content tree and landing pages. May be null
if no valid page can be found. If possible, use core_pageByLink
to avoid having to resolve the URL in the backend.
Example
Query
query Core_pageByUrl($url: String!) {
core_pageByUrl(url: $url) {
metaTagDescription
metaTagRobots
metaTagTitle
parameters {
name
}
raster {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
seoBoxText
seoThumbnail {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
}
}
Variables
{"url": "abc123"}
Response
{
"data": {
"core_pageByUrl": {
"metaTagDescription": "abc123",
"metaTagRobots": "abc123",
"metaTagTitle": "abc123",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "abc123",
"seoThumbnail": Image
}
}
}
core_product
Description
Fetch a product by its ID
Example
Query
query Core_product($id: ID!) {
core_product(id: $id) {
id
additionalImages {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
id
inBasket
onWishlist
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
availability {
...AvailabilityFragment
}
badges {
...BadgeFragment
}
color {
...ItemColorFragment
}
documents {
...DocumentFragment
}
features {
...ItemAttributeFragment
}
image {
...ImageFragment
}
images {
...ImageFragment
}
itemDiscount {
...ItemDiscountFragment
}
link {
...LinkFragment
}
oldPrice {
...MoneyFragment
}
price {
...MoneyFragment
}
product {
...ProductFragment
}
recommendations {
...ItemRecommendationsFragment
}
relations {
...ProductRelationsFragment
}
rrpPrice {
...MoneyFragment
}
seo {
...SeoFragment
}
services {
...ProductServiceFragment
}
shortDescription
size
sku
variations {
...ItemAttributeFragment
}
videos {
...VideoFragment
}
}
brand {
id
image {
...ImageFragment
}
link {
...LinkFragment
}
name
parameters {
...ContentAttributeFragment
}
productCount
products {
...ProductFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
breadcrumb {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
categories {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
category {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
documents {
displayName
fileName
url
}
features {
sequenceNo
}
globalContent {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
image {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
longDescription
materials
name
page {
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
parameters {
...ContentAttributeFragment
}
raster {
...RasterFragment
}
seo {
...SeoFragment
}
seoBoxText
seoThumbnail {
...ImageFragment
}
}
recommendations {
products {
...ProductFragment
}
totalCount
}
reviews {
average
bestRating
count
reviews {
...ReviewFragment
}
worstRating
}
sellingPoints
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
shortDescription
variations {
id
inBasket
onWishlist
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
availability {
...AvailabilityFragment
}
badges {
...BadgeFragment
}
color {
...ItemColorFragment
}
documents {
...DocumentFragment
}
features {
...ItemAttributeFragment
}
image {
...ImageFragment
}
images {
...ImageFragment
}
itemDiscount {
...ItemDiscountFragment
}
link {
...LinkFragment
}
oldPrice {
...MoneyFragment
}
price {
...MoneyFragment
}
product {
...ProductFragment
}
recommendations {
...ItemRecommendationsFragment
}
relations {
...ProductRelationsFragment
}
rrpPrice {
...MoneyFragment
}
seo {
...SeoFragment
}
services {
...ProductServiceFragment
}
shortDescription
size
sku
variations {
...ItemAttributeFragment
}
videos {
...VideoFragment
}
}
vat
videos {
fileName
url
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"core_product": {
"id": 4,
"additionalImages": [Image],
"assets": [Document],
"bestVariation": Item,
"brand": Brand,
"breadcrumb": [Category],
"categories": [Category],
"category": Category,
"documents": [Document],
"features": [ProductFeature],
"globalContent": Raster,
"image": Image,
"link": Link,
"longDescription": "xyz789",
"materials": ["xyz789"],
"name": "xyz789",
"page": MaintainedProductPage,
"recommendations": ProductRecommendations,
"reviews": Reviews,
"sellingPoints": ["xyz789"],
"seo": Seo,
"shortDescription": "xyz789",
"variations": [Item],
"vat": "abc123",
"videos": [Video]
}
}
}
core_productRecommendations
Description
Product recommendations for one or more given products
Response
Returns a ProductRecommendations!
Arguments
Name | Description |
---|---|
includingReducedProducts - Boolean!
|
If set to false significantly discounted products (usually products with a discount of 5 percent or more) will not be listed. Default = true |
paging - RecommendationPaging!
|
Paging to list recommended products. Default = {limit: 100, offset: 0} |
productIds - [String!]!
|
Product IDs to find for recommendations |
strategy - ProductRecommendationStrategy!
|
Recommendation strategy to use. Default = PRODUCT |
Example
Query
query Core_productRecommendations(
$includingReducedProducts: Boolean!,
$paging: RecommendationPaging!,
$productIds: [String!]!,
$strategy: ProductRecommendationStrategy!
) {
core_productRecommendations(
includingReducedProducts: $includingReducedProducts,
paging: $paging,
productIds: $productIds,
strategy: $strategy
) {
products {
id
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
...ItemFragment
}
brand {
...BrandFragment
}
breadcrumb {
...CategoryFragment
}
categories {
...CategoryFragment
}
category {
...CategoryFragment
}
documents {
...DocumentFragment
}
features {
...ProductFeatureFragment
}
globalContent {
...RasterFragment
}
image {
...ImageFragment
}
link {
...LinkFragment
}
longDescription
materials
name
page {
...MaintainedProductPageFragment
}
recommendations {
...ProductRecommendationsFragment
}
reviews {
...ReviewsFragment
}
sellingPoints
seo {
...SeoFragment
}
shortDescription
variations {
...ItemFragment
}
vat
videos {
...VideoFragment
}
}
totalCount
}
}
Variables
{
"includingReducedProducts": true,
"paging": {"limit": 100, "offset": 0},
"productIds": ["xyz789"],
"strategy": "PRODUCT"
}
Response
{
"data": {
"core_productRecommendations": {
"products": [Product],
"totalCount": 123
}
}
}
core_products
Description
Fetch a list of products by their IDs
Response
Returns [Product]!
Arguments
Name | Description |
---|---|
ids - [ID!]!
|
IDs of products to fetch |
Example
Query
query Core_products($ids: [ID!]!) {
core_products(ids: $ids) {
id
additionalImages {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
id
inBasket
onWishlist
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
availability {
...AvailabilityFragment
}
badges {
...BadgeFragment
}
color {
...ItemColorFragment
}
documents {
...DocumentFragment
}
features {
...ItemAttributeFragment
}
image {
...ImageFragment
}
images {
...ImageFragment
}
itemDiscount {
...ItemDiscountFragment
}
link {
...LinkFragment
}
oldPrice {
...MoneyFragment
}
price {
...MoneyFragment
}
product {
...ProductFragment
}
recommendations {
...ItemRecommendationsFragment
}
relations {
...ProductRelationsFragment
}
rrpPrice {
...MoneyFragment
}
seo {
...SeoFragment
}
services {
...ProductServiceFragment
}
shortDescription
size
sku
variations {
...ItemAttributeFragment
}
videos {
...VideoFragment
}
}
brand {
id
image {
...ImageFragment
}
link {
...LinkFragment
}
name
parameters {
...ContentAttributeFragment
}
productCount
products {
...ProductFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
breadcrumb {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
categories {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
category {
ancestors {
...CategoryFragment
}
bottomTeaserInsertion {
...TeaserAttributeFragment
}
children {
...CategoryFragment
}
id
idsDown
isHiddenFor
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
name
navigationFlyout {
...ImageFragment
}
parameters {
...ContentAttributeFragment
}
parent {
...CategoryFragment
}
products {
... on PageSearchResult {
...PageSearchResultFragment
}
... on ProductSearchResult {
...ProductSearchResultFragment
}
... on RedirectSearchResult {
...RedirectSearchResultFragment
}
}
raster {
...RasterFragment
}
recommendations {
...CategoryRecommendationsFragment
}
redirect {
...ResolvedLinkFragment
}
seo {
...SeoFragment
}
seoBoxText
seoHeadline
seoThumbnail {
...ImageFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
topTeaserInsertion {
...TeaserAttributeFragment
}
topsellers {
...ProductRecommendationsFragment
}
}
documents {
displayName
fileName
url
}
features {
sequenceNo
}
globalContent {
elements {
...RasterElementFragment
}
totalHeight
totalWidth
}
image {
alt
boUrl
fileName
height
imageRole
name
rank
title
url
width
}
link {
internalLink {
... on ArticleLink {
...ArticleLinkFragment
}
... on AssetLink {
...AssetLinkFragment
}
... on BrandLink {
...BrandLinkFragment
}
... on CategoryPageLink {
...CategoryPageLinkFragment
}
... on ContentTreeLink {
...ContentTreeLinkFragment
}
... on ExternalLink {
...ExternalLinkFragment
}
... on LandingPageLink {
...LandingPageLinkFragment
}
... on LayerLink {
...LayerLinkFragment
}
... on PageLink {
...PageLinkFragment
}
... on SEOTermLink {
...SEOTermLinkFragment
}
... on SearchTermGroupLink {
...SearchTermGroupLinkFragment
}
... on SearchTermLink {
...SearchTermLinkFragment
}
}
linkId
linkType
name
openLinkInNewWindow
parameters {
...LinkParameterFragment
}
title
url
}
longDescription
materials
name
page {
link {
...LinkFragment
}
metaTagDescription
metaTagRobots
metaTagTitle
parameters {
...ContentAttributeFragment
}
raster {
...RasterFragment
}
seo {
...SeoFragment
}
seoBoxText
seoThumbnail {
...ImageFragment
}
}
recommendations {
products {
...ProductFragment
}
totalCount
}
reviews {
average
bestRating
count
reviews {
...ReviewFragment
}
worstRating
}
sellingPoints
seo {
canonicalUrl
headline
hreflang {
...HreflangFragment
}
metaTags {
...MetaTagFragment
}
seoBoxText
title
}
shortDescription
variations {
id
inBasket
onWishlist
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
availability {
...AvailabilityFragment
}
badges {
...BadgeFragment
}
color {
...ItemColorFragment
}
documents {
...DocumentFragment
}
features {
...ItemAttributeFragment
}
image {
...ImageFragment
}
images {
...ImageFragment
}
itemDiscount {
...ItemDiscountFragment
}
link {
...LinkFragment
}
oldPrice {
...MoneyFragment
}
price {
...MoneyFragment
}
product {
...ProductFragment
}
recommendations {
...ItemRecommendationsFragment
}
relations {
...ProductRelationsFragment
}
rrpPrice {
...MoneyFragment
}
seo {
...SeoFragment
}
services {
...ProductServiceFragment
}
shortDescription
size
sku
variations {
...ItemAttributeFragment
}
videos {
...VideoFragment
}
}
vat
videos {
fileName
url
}
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"core_products": [
{
"id": "4",
"additionalImages": [Image],
"assets": [Document],
"bestVariation": Item,
"brand": Brand,
"breadcrumb": [Category],
"categories": [Category],
"category": Category,
"documents": [Document],
"features": [ProductFeature],
"globalContent": Raster,
"image": Image,
"link": Link,
"longDescription": "xyz789",
"materials": ["xyz789"],
"name": "abc123",
"page": MaintainedProductPage,
"recommendations": ProductRecommendations,
"reviews": Reviews,
"sellingPoints": ["xyz789"],
"seo": Seo,
"shortDescription": "abc123",
"variations": [Item],
"vat": "xyz789",
"videos": [Video]
}
]
}
}
core_redirect
Description
Gets the redirect for a specific URL
If no redirect exists, the result is empty.
Response
Returns a Redirect
Arguments
Name | Description |
---|---|
url - String!
|
The URL to get the redirect for |
Example
Query
query Core_redirect($url: String!) {
core_redirect(url: $url) {
responseCode
url
}
}
Variables
{"url": "xyz789"}
Response
{
"data": {
"core_redirect": {
"responseCode": 987,
"url": "xyz789"
}
}
}
core_resolveUrl
Description
If possible, resolves the given URL to a link consisting of LinkType and ID
Maintained redirects and SEO terms are taken into account.
Response
Returns a ResolvedLink
Arguments
Name | Description |
---|---|
url - String!
|
The URL to get the resolved link for |
Example
Query
query Core_resolveUrl($url: String!) {
core_resolveUrl(url: $url) {
linkId
linkType
responseCode
url
}
}
Variables
{"url": "abc123"}
Response
{
"data": {
"core_resolveUrl": {
"linkId": 4,
"linkType": "ARTICLE",
"responseCode": 123,
"url": "abc123"
}
}
}
core_search
Description
Execute search for products and items
By default this triggers the SearchEvent and the SearchFilterEvent. It is therefore not necessary to trigger these events explicitly in the frontend. You can deactivate this tracking in the ShopApiConfigurer
by setting enableSearchTracking
to false
.
Response
Returns a SearchResult
Arguments
Name | Description |
---|---|
contentSearchPaging - Paging!
|
Paging for the content search. Default = {limit: 12, offset: 0} |
filter - SearchFilter!
|
Filter for selecting products/items based on their attributes |
paging - SearchPaging!
|
Paging and sorting to list the search result entries. Default = {offset: 0} |
Example
Query
query Core_search(
$contentSearchPaging: Paging!,
$filter: SearchFilter!,
$paging: SearchPaging!
) {
core_search(
contentSearchPaging: $contentSearchPaging,
filter: $filter,
paging: $paging
) {
... on PageSearchResult {
page {
...PageFragment
}
searchResult {
...ProductSearchResultFragment
}
}
... on ProductSearchResult {
content {
...ContentSearchResultFragment
}
entries {
...SearchResultEntryFragment
}
filters {
...FilterFragment
}
groupBy
minPrice
selectedCategory {
...SearchResultCategoryFragment
}
seo {
...SeoFragment
}
sorts {
...SearchSortFragment
}
teaserInsertions {
...TeaserAttributeFragment
}
totalCount
}
... on RedirectSearchResult {
link {
...LinkFragment
}
}
}
}
Variables
{
"contentSearchPaging": {"limit": 12, "offset": 0},
"filter": SearchFilter,
"paging": {"offset": 0}
}
Response
{"data": {"core_search": PageSearchResult}}
core_searchSuggest
Description
Search suggestions are based on the given query
Response
Returns a SearchSuggest!
Arguments
Name | Description |
---|---|
query - String!
|
The query to generate search suggestions for |
Example
Query
query Core_searchSuggest($query: String!) {
core_searchSuggest(query: $query) {
brandSuggests {
brands {
...BrandFragment
}
match
}
categorySearchSuggests {
category {
...CategoryFragment
}
searchTerm
totalCount
}
categorySuggests {
categories {
...CategoryFragment
}
match
}
productSuggests {
match
products {
...ProductFragment
}
}
topSearchSuggests {
searchTerm
totalCount
}
}
}
Variables
{"query": "xyz789"}
Response
{
"data": {
"core_searchSuggest": {
"brandSuggests": [BrandSuggest],
"categorySearchSuggests": [CategorySearchSuggest],
"categorySuggests": [CategorySuggest],
"productSuggests": [ProductSuggest],
"topSearchSuggests": [TopSearchSuggest]
}
}
}
core_searchTermRecommendations
Description
Search term recommendations for a given search term
Response
Returns a SearchTermRecommendations!
Arguments
Name | Description |
---|---|
paging - RecommendationPaging!
|
Paging to list recommended search terms. Default = {limit: 100, offset: 0} |
searchTerm - String!
|
Search term to find for recommendations |
Example
Query
query Core_searchTermRecommendations(
$paging: RecommendationPaging!,
$searchTerm: String!
) {
core_searchTermRecommendations(
paging: $paging,
searchTerm: $searchTerm
) {
searchTerms
totalCount
}
}
Variables
{
"paging": {"limit": 100, "offset": 0},
"searchTerm": "xyz789"
}
Response
{
"data": {
"core_searchTermRecommendations": {
"searchTerms": ["xyz789"],
"totalCount": 123
}
}
}
core_topsellerRecommendations
Description
Top selling products in one or more given categories
By default, the top sellers are disabled and need to be enabled in the backend (see ShopApiConfigurer#recommendationsWhitelist
and RecommendationType#CATEGORY_TOPSELLER
).
Response
Returns a ProductRecommendations!
Arguments
Name | Description |
---|---|
categoryIds - [String!]!
|
Category IDs to find for top sellers |
includingReducedProducts - Boolean!
|
If set to false significantly discounted products (usually products with a discount of 5 percent or more) will not be listed. Default = true |
paging - RecommendationPaging!
|
Paging to list recommended products. Default = {limit: 100, offset: 0} |
Example
Query
query Core_topsellerRecommendations(
$categoryIds: [String!]!,
$includingReducedProducts: Boolean!,
$paging: RecommendationPaging!
) {
core_topsellerRecommendations(
categoryIds: $categoryIds,
includingReducedProducts: $includingReducedProducts,
paging: $paging
) {
products {
id
additionalImages {
...ImageFragment
}
assets {
... on Document {
...DocumentFragment
}
... on Image {
...ImageFragment
}
... on Video {
...VideoFragment
}
}
bestVariation {
...ItemFragment
}
brand {
...BrandFragment
}
breadcrumb {
...CategoryFragment
}
categories {
...CategoryFragment
}
category {
...CategoryFragment
}
documents {
...DocumentFragment
}
features {
...ProductFeatureFragment
}
globalContent {
...RasterFragment
}
image {
...ImageFragment
}
link {
...LinkFragment
}
longDescription
materials
name
page {
...MaintainedProductPageFragment
}
recommendations {
...ProductRecommendationsFragment
}
reviews {
...ReviewsFragment
}
sellingPoints
seo {
...SeoFragment
}
shortDescription
variations {
...ItemFragment
}
vat
videos {
...VideoFragment
}
}
totalCount
}
}
Variables
{
"categoryIds": ["xyz789"],
"includingReducedProducts": true,
"paging": {"limit": 100, "offset": 0}
}
Response
{
"data": {
"core_topsellerRecommendations": {
"products": [Product],
"totalCount": 123
}
}
}
core_translations
Description
Fetch a list of translations
Response
Returns a Translations!
Arguments
Name | Description |
---|---|
filter - TranslationFilter
|
Filter to select translation by translation key |
Example
Query
query Core_translations($filter: TranslationFilter) {
core_translations(filter: $filter) {
totalCount
translations {
key
value
}
}
}
Variables
{"filter": TranslationFilter}
Response
{
"data": {
"core_translations": {
"totalCount": 123,
"translations": [Translation]
}
}
}
payments_find
Description
Filters a payment by its interface ID
Response
Returns a Payment
Example
Query
query Payments_find($interfaceId: ID!) {
payments_find(interfaceId: $interfaceId) {
interfaceId
methodCodes
}
}
Variables
{"interfaceId": 4}
Response
{
"data": {
"payments_find": {
"interfaceId": 4,
"methodCodes": ["xyz789"]
}
}
}
payments_findAll
Description
Fetch all available payments
Response
Returns [Payment]!
Example
Query
query Payments_findAll {
payments_findAll {
interfaceId
methodCodes
}
}
Response
{
"data": {
"payments_findAll": [
{
"interfaceId": "4",
"methodCodes": ["abc123"]
}
]
}
}
shop_findCart
Description
Fetch a specific cart for the current user
Example
Query
query Shop_findCart($cartId: ID) {
shop_findCart(cartId: $cartId) {
active
attribute
attributes
availableShippingMethods {
amount {
...MoneyFragment
}
description
freeShipping
name
shipperId
}
billingAddress {
additions
attributes
city
company
country {
...CountryFragment
}
email
firstname
id
lastname
notes
number
phone
postcode
salutation {
...SalutationFragment
}
street
title
}
createdAt
editable
guestId
id
isDefault
name
selectedPaymentMethod {
code
interfaceId
label
}
selectedShippingMethod {
amount {
...MoneyFragment
}
description
freeShipping
name
shipperId
}
shared
shippingAddresses {
additions
attributes
city
company
country {
...CountryFragment
}
email
firstname
id
isShop
isStation
lastname
notes
number
phone
postcode
salutation {
...SalutationFragment
}
street
title
}
details {
articleCount
attainableInfos {
...AttainableInfoFragment
}
deliveryInfo {
...DeliveryInfoFragment
}
discountInfo {
...CartDiscountFragment
}
discountWithoutCombinable {
...MoneyFragment
}
freeShippingInfo {
...FreeShippingInfoFragment
}
informativeBenefits {
...InformativeBenefitInfoFragment
}
positionCount
positions {
...CartEntryFragment
}
promoItems {
... on FreeAddonsInfo {
...FreeAddonsInfoFragment
}
... on FreeItemsInfo {
...FreeItemsInfoFragment
}
... on SpecialPriceInfo {
...SpecialPriceInfoFragment
}
}
promotionsSaving {
...MoneyFragment
}
subtotal {
...MoneyFragment
}
total {
...MoneyFragment
}
totalSavings {
...MoneyFragment
}
voucherCodeStatus
voucherLessSavings {
...MoneyFragment
}
voucherSavings {
...MoneyFragment
}
vouchers
}
}
}
Variables
{"cartId": 4}
Response
{
"data": {
"shop_findCart": {
"active": true,
"attribute": Object,
"attributes": Object,
"availableShippingMethods": [ShippingMethod],
"billingAddress": BillingAddress,
"createdAt": "2007-12-03T10:15:30Z",
"editable": true,
"guestId": "xyz789",
"id": "4",
"isDefault": true,
"name": "abc123",
"selectedPaymentMethod": PaymentMethod,
"selectedShippingMethod": ShippingMethod,
"shared": true,
"shippingAddresses": [ShippingAddress],
"details": CartDetails
}
}
}
shop_findCarts
Description
Fetch all carts for the current user
Response
Returns [Cart]!
Example
Query
query Shop_findCarts {
shop_findCarts {
active
attribute
attributes
availableShippingMethods {
amount {
...MoneyFragment
}
description
freeShipping
name
shipperId
}
billingAddress {
additions
attributes
city
company
country {
...CountryFragment
}
email
firstname
id
lastname
notes
number
phone
postcode
salutation {
...SalutationFragment
}
street
title
}
createdAt
editable
guestId
id
isDefault
name
selectedPaymentMethod {
code
interfaceId
label
}
selectedShippingMethod {
amount {
...MoneyFragment
}
description
freeShipping
name
shipperId
}
shared
shippingAddresses {
additions
attributes
city
company
country {
...CountryFragment
}
email
firstname
id
isShop
isStation
lastname
notes
number
phone
postcode
salutation {
...SalutationFragment
}
street
title
}
details {
articleCount
attainableInfos {
...AttainableInfoFragment
}
deliveryInfo {
...DeliveryInfoFragment
}
discountInfo {
...CartDiscountFragment
}
discountWithoutCombinable {
...MoneyFragment
}
freeShippingInfo {
...FreeShippingInfoFragment
}
informativeBenefits {
...InformativeBenefitInfoFragment
}
positionCount
positions {
...CartEntryFragment
}
promoItems {
... on FreeAddonsInfo {
...FreeAddonsInfoFragment
}
... on FreeItemsInfo {
...FreeItemsInfoFragment
}
... on SpecialPriceInfo {
...SpecialPriceInfoFragment
}
}
promotionsSaving {
...MoneyFragment
}
subtotal {
...MoneyFragment
}
total {
...MoneyFragment
}
totalSavings {
...MoneyFragment
}
voucherCodeStatus
voucherLessSavings {
...MoneyFragment
}
voucherSavings {
...MoneyFragment
}
vouchers
}
}
}
Response
{
"data": {
"shop_findCarts": [
{
"active": true,
"attribute": Object,
"attributes": Object,
"availableShippingMethods": [ShippingMethod],
"billingAddress": BillingAddress,
"createdAt": "2007-12-03T10:15:30Z",
"editable": true,
"guestId": "xyz789",
"id": 4,
"isDefault": true,
"name": "abc123",
"selectedPaymentMethod": PaymentMethod,
"selectedShippingMethod": ShippingMethod,
"shared": false,
"shippingAddresses": [ShippingAddress],
"details": CartDetails
}
]
}
}
shop_findWishlist
Description
Fetch a specific wishlist for the current user
Response
Returns a Wishlist
Arguments
Name | Description |
---|---|
wishlistId - ID
|
The ID of the wishlist to fetch If no wishlist ID is provided, the best available wishlist will be loaded. |
Example
Query
query Shop_findWishlist($wishlistId: ID) {
shop_findWishlist(wishlistId: $wishlistId) {
createdAt
entries {
creationTime
id
item {
...ItemFragment
}
product {
...ProductFragment
}
valid
}
id
name
}
}
Variables
{"wishlistId": 4}
Response
{
"data": {
"shop_findWishlist": {
"createdAt": "2007-12-03T10:15:30Z",
"entries": [WishlistEntry],
"id": 4,
"name": "xyz789"
}
}
}
shop_findWishlists
Description
Fetch all wishlists for the current user
Response
Returns [Wishlist]!
Example
Query
query Shop_findWishlists {
shop_findWishlists {
createdAt
entries {
creationTime
id
item {
...ItemFragment
}
product {
...ProductFragment
}
valid
}
id
name
}
}
Response
{
"data": {
"shop_findWishlists": [
{
"createdAt": "2007-12-03T10:15:30Z",
"entries": [WishlistEntry],
"id": "4",
"name": "abc123"
}
]
}
}
shop_globalParameters
Description
Collection of non-core global parameters
Response
Returns a ShopGlobalParameters!
Example
Query
query Shop_globalParameters {
shop_globalParameters {
benefitHeader
campaignHeader
productsPerPage
productsPerSearchPage
}
}
Response
{
"data": {
"shop_globalParameters": {
"benefitHeader": "abc123",
"campaignHeader": "xyz789",
"productsPerPage": 123,
"productsPerSearchPage": 123
}
}
}
tracking_lastSearchTerms
Description
Fetches the recently executed searches of a user
Response
Returns a LastSearchTerms!
Arguments
Name | Description |
---|---|
userId - ID
|
The UUID of the user If no userId is provided, the searches of the current user are returned. |
Example
Query
query Tracking_lastSearchTerms($userId: ID) {
tracking_lastSearchTerms(userId: $userId) {
count
searchTerms {
hits
searchDate
searchTerm
}
}
}
Variables
{"userId": "4"}
Response
{
"data": {
"tracking_lastSearchTerms": {
"count": 123,
"searchTerms": [LastSearchTerm]
}
}
}
tracking_lastSeenItems
Description
Fetches the last viewed items of a user
Requires tracking of ProductViewEvent and ItemViewEvent with mutation tracking_addEvents
to make it work properly! The amount of items to be saved can be set in configuration (default is 6).
Response
Returns a LastSeenItems!
Arguments
Name | Description |
---|---|
userId - ID
|
The UUID of the user If no userId is provided, the items of the current user are returned. |
Example
Query
query Tracking_lastSeenItems($userId: ID) {
tracking_lastSeenItems(userId: $userId) {
count
items {
item {
...ItemFragment
}
viewDate
}
}
}
Variables
{"userId": 4}
Response
{
"data": {
"tracking_lastSeenItems": {
"count": 123,
"items": [LastSeenItem]
}
}
}
version
Description
A simple query for testing purposes only
Response
Returns a String
Example
Query
query Version {
version
}
Response
{"data": {"version": "xyz789"}}
Mutations
account_updateCustomer
Description
Update of the current customer's data
Response
Returns an UpdateCustomerResult
Arguments
Name | Description |
---|---|
data - UpdateCustomerInput!
|
The customer data |
Example
Query
mutation Account_updateCustomer($data: UpdateCustomerInput!) {
account_updateCustomer(data: $data) {
... on UpdateCustomerProblems {
problems {
...UpdateCustomerProblemFragment
}
}
... on UpdateCustomerSuccess {
customer {
...CustomerFragment
}
}
}
}
Variables
{"data": UpdateCustomerInput}
Response
{
"data": {
"account_updateCustomer": UpdateCustomerProblems
}
}
cart_addAllToWishlist
Description
Remove all positions from the active/default cart and add them to the wishlist of the current user
Response
Returns a CartToWishlistResult
Arguments
Name | Description |
---|---|
wishlistId - ID
|
The ID of the wishlist to which the positions should be moved If this ID is If no wishlist exists for the current user, a new wishlist will be created. |
Example
Query
mutation Cart_addAllToWishlist($wishlistId: ID) {
cart_addAllToWishlist(wishlistId: $wishlistId) {
... on CartToWishlistProblems {
problems {
...CartToWishlistProblemFragment
}
}
... on CartToWishlistSuccess {
wishlist {
...WishlistFragment
}
}
}
}
Variables
{"wishlistId": "4"}
Response
{
"data": {
"cart_addAllToWishlist": CartToWishlistProblems
}
}
cart_delete
Description
Delete a cart (useful in multi cart environments)
Returns true
if the cart was successfully deleted, false
otherwise.
Response
Returns a Boolean
Arguments
Name | Description |
---|---|
data - DeleteCartInput!
|
Operation to delete a cart |
Example
Query
mutation Cart_delete($data: DeleteCartInput!) {
cart_delete(data: $data)
}
Variables
{"data": DeleteCartInput}
Response
{"data": {"cart_delete": false}}
cart_empty
Description
Remove all positions from a cart of the current user
Response
Returns an EmptyCartResult
Arguments
Name | Description |
---|---|
cartId - ID!
|
The ID of the cart to be emptied |
Example
Query
mutation Cart_empty($cartId: ID!) {
cart_empty(cartId: $cartId) {
... on EmptyCartProblems {
problems {
...EmptyCartProblemFragment
}
}
... on EmptyCartSuccess {
cart {
...CartFragment
}
}
}
}
Variables
{"cartId": "4"}
Response
{"data": {"cart_empty": EmptyCartProblems}}
cart_merge
Description
Merging the user's cart created prior to login with a already persisted cart owned by that user
How these carts are merged is based on the merge strategy options provided.
This mutation is only allowed for logged in users (Scope: shop-customer
).
Response
Returns a MergeCartResult
Arguments
Name | Description |
---|---|
data - MergeCartInput!
|
IDs of carts to be merged and merge strategy options |
Example
Query
mutation Cart_merge($data: MergeCartInput!) {
cart_merge(data: $data) {
... on MergeCartProblems {
problems {
...MergeCartProblemFragment
}
}
... on MergeCartSuccess {
cart {
...CartFragment
}
}
}
}
Variables
{"data": MergeCartInput}
Response
{"data": {"cart_merge": MergeCartProblems}}
cart_update
Description
Updating the user's cart like adding a position or a voucher, setting addresses or payment/shipping method
This mutation is also used to create a new cart if no cart exists for the current user.
Response
Returns an UpdateCartResult
Arguments
Name | Description |
---|---|
data - UpdateCartInput!
|
Operations to update a cart |
Example
Query
mutation Cart_update($data: UpdateCartInput!) {
cart_update(data: $data) {
... on UpdateCartProblems {
problems {
...UpdateCartProblemFragment
}
}
... on UpdateCartSuccess {
cart {
...CartFragment
}
}
}
}
Variables
{"data": UpdateCartInput}
Response
{"data": {"cart_update": UpdateCartProblems}}
core_calculateCart
Description
Calculates the cart details through the promotion engine
Response
Returns a CartDetails
Arguments
Name | Description |
---|---|
id - ID!
|
The ID of the cart for which the details are calculated |
Example
Query
mutation Core_calculateCart($id: ID!) {
core_calculateCart(id: $id) {
articleCount
attainableInfos {
attainable
customerIdentifier
failureDescriptions
promotion {
...PromotionFragment
}
successful
voucherCode
voucherName
}
deliveryInfo {
deliveryCost {
...MoneyFragment
}
deliveryTimeDescription
discountedDeliveryCost {
...MoneyFragment
}
freeShippingPossible
shipper
}
discountInfo {
capped
discount {
...MoneyFragment
}
discountPercentage
discountWithoutCombinable {
...MoneyFragment
}
promotionDescription
promotionName
}
discountWithoutCombinable {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
freeShippingInfo {
free
image {
...ImageFragment
}
promotion {
...PromotionFragment
}
title
voucher
}
informativeBenefits {
image {
...ImageFragment
}
promotion {
...PromotionFragment
}
title
type
}
positionCount
positions {
details {
...ItemFragment
}
discountAmount {
...MoneyFragment
}
discountInfo {
...DiscountFragment
}
discountPercentage
id
promotion {
...PromotionFragment
}
quantity
totalCurrentPrice {
...MoneyFragment
}
totalDiscount {
...MoneyFragment
}
totalOldPrice {
...MoneyFragment
}
totalPositionPrice {
...MoneyFragment
}
voucher
}
promoItems {
... on FreeAddonsInfo {
...FreeAddonsInfoFragment
}
... on FreeItemsInfo {
...FreeItemsInfoFragment
}
... on SpecialPriceInfo {
...SpecialPriceInfoFragment
}
}
promotionsSaving {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
subtotal {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
total {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
totalSavings {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
voucherCodeStatus
voucherLessSavings {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
voucherSavings {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
vouchers
}
}
Variables
{"id": "4"}
Response
{
"data": {
"core_calculateCart": {
"articleCount": 123,
"attainableInfos": [AttainableInfo],
"deliveryInfo": DeliveryInfo,
"discountInfo": CartDiscount,
"discountWithoutCombinable": Money,
"freeShippingInfo": FreeShippingInfo,
"informativeBenefits": [InformativeBenefitInfo],
"positionCount": 123,
"positions": [CartEntry],
"promoItems": [FreeAddonsInfo],
"promotionsSaving": Money,
"subtotal": Money,
"total": Money,
"totalSavings": Money,
"voucherCodeStatus": "ATTAINABLE",
"voucherLessSavings": Money,
"voucherSavings": Money,
"vouchers": ["xyz789"]
}
}
}
core_calculateOrder
Description
Calculates an order through the promotion engine and consumes redeemed vouchers
Response
Returns a CartDetails
Arguments
Name | Description |
---|---|
id - ID!
|
The ID of the cart for which the order is calculated |
Example
Query
mutation Core_calculateOrder($id: ID!) {
core_calculateOrder(id: $id) {
articleCount
attainableInfos {
attainable
customerIdentifier
failureDescriptions
promotion {
...PromotionFragment
}
successful
voucherCode
voucherName
}
deliveryInfo {
deliveryCost {
...MoneyFragment
}
deliveryTimeDescription
discountedDeliveryCost {
...MoneyFragment
}
freeShippingPossible
shipper
}
discountInfo {
capped
discount {
...MoneyFragment
}
discountPercentage
discountWithoutCombinable {
...MoneyFragment
}
promotionDescription
promotionName
}
discountWithoutCombinable {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
freeShippingInfo {
free
image {
...ImageFragment
}
promotion {
...PromotionFragment
}
title
voucher
}
informativeBenefits {
image {
...ImageFragment
}
promotion {
...PromotionFragment
}
title
type
}
positionCount
positions {
details {
...ItemFragment
}
discountAmount {
...MoneyFragment
}
discountInfo {
...DiscountFragment
}
discountPercentage
id
promotion {
...PromotionFragment
}
quantity
totalCurrentPrice {
...MoneyFragment
}
totalDiscount {
...MoneyFragment
}
totalOldPrice {
...MoneyFragment
}
totalPositionPrice {
...MoneyFragment
}
voucher
}
promoItems {
... on FreeAddonsInfo {
...FreeAddonsInfoFragment
}
... on FreeItemsInfo {
...FreeItemsInfoFragment
}
... on SpecialPriceInfo {
...SpecialPriceInfoFragment
}
}
promotionsSaving {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
subtotal {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
total {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
totalSavings {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
voucherCodeStatus
voucherLessSavings {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
voucherSavings {
amount
currencyCode
currencySymbol
intAmount
precision
stringValue
}
vouchers
}
}
Variables
{"id": "4"}
Response
{
"data": {
"core_calculateOrder": {
"articleCount": 123,
"attainableInfos": [AttainableInfo],
"deliveryInfo": DeliveryInfo,
"discountInfo": CartDiscount,
"discountWithoutCombinable": Money,
"freeShippingInfo": FreeShippingInfo,
"informativeBenefits": [InformativeBenefitInfo],
"positionCount": 987,
"positions": [CartEntry],
"promoItems": [FreeAddonsInfo],
"promotionsSaving": Money,
"subtotal": Money,
"total": Money,
"totalSavings": Money,
"voucherCodeStatus": "ATTAINABLE",
"voucherLessSavings": Money,
"voucherSavings": Money,
"vouchers": ["abc123"]
}
}
}
echo
Description
A simple mutation for testing purposes only
novosales_createReview
Description
Create a new product review
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
input - CreateReview!
|
Operation to create a review |
Example
Query
mutation Novosales_createReview($input: CreateReview!) {
novosales_createReview(input: $input)
}
Variables
{"input": CreateReview}
Response
{"data": {"novosales_createReview": false}}
novosales_updateReview
Description
Update an existing product review
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
input - UpdateReview!
|
Operations to update a review |
Example
Query
mutation Novosales_updateReview($input: UpdateReview!) {
novosales_updateReview(input: $input)
}
Variables
{"input": UpdateReview}
Response
{"data": {"novosales_updateReview": true}}
shop_submitOrder
Description
Stores a cart of the current user including payment data as an order for further processing
Response
Returns an OrderSubmitResult
Arguments
Name | Description |
---|---|
cartId - ID!
|
The ID of the cart for which an order is to be placed |
Example
Query
mutation Shop_submitOrder($cartId: ID!) {
shop_submitOrder(cartId: $cartId) {
... on OrderSubmitProblems {
problems {
...OrderSubmitProblemFragment
}
}
... on OrderSubmitSuccess {
id
redirectUrl
}
}
}
Variables
{"cartId": 4}
Response
{"data": {"shop_submitOrder": OrderSubmitProblems}}
tracking_addEvents
Description
Triggers a single or a list of events used to provide a range of functionalities in the shop (e.g. recommendations, back office dashboards, customer segmentation)
Response
Returns a Boolean
Arguments
Name | Description |
---|---|
events - [TrackingEventInput!]!
|
List of events to trigger |
Example
Query
mutation Tracking_addEvents($events: [TrackingEventInput!]!) {
tracking_addEvents(events: $events)
}
Variables
{"events": [TrackingEventInput]}
Response
{"data": {"tracking_addEvents": false}}
tracking_init
Description
Triggers any required events when a new session is started
When a new session is started, a StartSessionEvent, an InformationEvent and a TouchpointEvent should be triggered. All of these events are triggered with this mutation. This means that triggering the other events is no longer necessary.
Should be triggered before any other request.
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
event - StartSessionEvent!
|
StartSessionEvent with all necessary information to initialize a new session |
Example
Query
mutation Tracking_init($event: StartSessionEvent!) {
tracking_init(event: $event)
}
Variables
{"event": StartSessionEvent}
Response
{"data": {"tracking_init": false}}
tracking_setPrivacyConsent
Description
Setting the user's consent for tracking
Must be done once before tracking.
Response
Returns a Boolean
Arguments
Name | Description |
---|---|
consent - PrivacyConsentInput!
|
The user's consent for tracking |
Example
Query
mutation Tracking_setPrivacyConsent($consent: PrivacyConsentInput!) {
tracking_setPrivacyConsent(consent: $consent)
}
Variables
{"consent": PrivacyConsentInput}
Response
{"data": {"tracking_setPrivacyConsent": true}}
wishlist_addAllToCart
Description
Remove all positions from a wishlist and add them to a cart of the current user
Response
Returns a WishlistToCartResult
Arguments
Name | Description |
---|---|
cartId - ID
|
The ID of the cart to which the positions should be moved If this ID is |
wishlistId - ID
|
The ID of the wishlist whose positions are to be moved If this ID is |
Example
Query
mutation Wishlist_addAllToCart(
$cartId: ID,
$wishlistId: ID
) {
wishlist_addAllToCart(
cartId: $cartId,
wishlistId: $wishlistId
) {
... on WishlistToCartProblems {
problems {
...WishlistToCartProblemFragment
}
}
... on WishlistToCartSuccess {
cart {
...CartFragment
}
}
}
}
Variables
{"cartId": 4, "wishlistId": "4"}
Response
{
"data": {
"wishlist_addAllToCart": WishlistToCartProblems
}
}
wishlist_create
Description
Create a new wishlist (useful in multi wishlist environments)
Response
Returns a CreateWishlistResult
Arguments
Name | Description |
---|---|
data - CreateWishlistInput
|
Operations to create a wishlist |
Example
Query
mutation Wishlist_create($data: CreateWishlistInput) {
wishlist_create(data: $data) {
... on CreateWishlistProblems {
problems {
...CreateWishlistProblemFragment
}
}
... on CreateWishlistSuccess {
wishlist {
...WishlistFragment
}
}
}
}
Variables
{"data": CreateWishlistInput}
Response
{"data": {"wishlist_create": CreateWishlistProblems}}
wishlist_delete
Description
Delete a wishlist (useful in multi wishlist environments)
Returns true
if the wishlist was successfully deleted, false
otherwise.
Response
Returns a Boolean
Arguments
Name | Description |
---|---|
data - DeleteWishlistInput!
|
Operation to delete a wishlist |
Example
Query
mutation Wishlist_delete($data: DeleteWishlistInput!) {
wishlist_delete(data: $data)
}
Variables
{"data": DeleteWishlistInput}
Response
{"data": {"wishlist_delete": false}}
wishlist_empty
Description
Remove all positions from a wishlist of the current user
Response
Returns an EmptyWishlistResult
Arguments
Name | Description |
---|---|
wishlistId - ID
|
The ID of the wishlist to be emptied If this ID is |
Example
Query
mutation Wishlist_empty($wishlistId: ID) {
wishlist_empty(wishlistId: $wishlistId) {
... on EmptyWishlistProblems {
problems {
...EmptyWishlistProblemFragment
}
}
... on EmptyWishlistSuccess {
wishlist {
...WishlistFragment
}
}
}
}
Variables
{"wishlistId": "4"}
Response
{"data": {"wishlist_empty": EmptyWishlistProblems}}
wishlist_merge
Description
Merging the user's wishlist created prior to login with a already persisted wishlist owned by that user
How these wishlists are merged is based on the merge strategy options provided. This mutation is only allowed for logged in users (Scope: shop-customer
).
Response
Returns a MergeWishlistResult
Arguments
Name | Description |
---|---|
data - MergeWishlistInput!
|
IDs of wishlist to be merged and merge strategy options |
Example
Query
mutation Wishlist_merge($data: MergeWishlistInput!) {
wishlist_merge(data: $data) {
... on MergeWishlistProblems {
problems {
...MergeWishlistProblemFragment
}
}
... on MergeWishlistSuccess {
wishlist {
...WishlistFragment
}
}
}
}
Variables
{"data": MergeWishlistInput}
Response
{"data": {"wishlist_merge": MergeWishlistProblems}}
wishlist_update
Description
Updating the current user's wishlist like adding a product or item
This mutation is also used to create a new wishlist if no wishlist exists for the current user.
Response
Returns an UpdateWishlistResult
Arguments
Name | Description |
---|---|
data - UpdateWishlistInput!
|
Operations to update a wishlist |
Example
Query
mutation Wishlist_update($data: UpdateWishlistInput!) {
wishlist_update(data: $data) {
... on UpdateWishlistProblems {
problems {
...UpdateWishlistProblemFragment
}
}
... on UpdateWishlistSuccess {
wishlist {
...WishlistFragment
}
}
}
}
Variables
{"data": UpdateWishlistInput}
Response
{"data": {"wishlist_update": UpdateWishlistProblems}}
Types
AccountAddressValidationProblem
Description
Problems if the Address Input has invalid fields
Fields
Field Name | Description |
---|---|
message - String!
|
The failure reason to display with field information |
Example
{"message": "xyz789"}
AddAttribute
Description
Operation to add a new attribute to a cart
Fields
Input Field | Description |
---|---|
name - String!
|
The name of the attribute to add |
value - Object!
|
The value of the attribute Allowed are GraphQL scalars Examples:
|
Example
{
"name": "xyz789",
"value": Object
}
AddItemToWishlist
Description
Operation to add an item to a wishlist
Fields
Input Field | Description |
---|---|
setItemId - SetItemId!
|
Sets the item ID |
Example
{"setItemId": SetItemId}
AddPhoneNo
Description
Operation to add the phoneNo
Fields
Input Field | Description |
---|---|
value - PhoneInput!
|
The phone number to add |
Example
{"value": PhoneInput}
AddProductToWishlist
Description
Operation to add a product to a wishlist
Fields
Input Field | Description |
---|---|
setProductId - SetProductId!
|
Sets the product ID |
Example
{"setProductId": SetProductId}
AddPromoItemOperation
Description
The possible operations on promotion items. As long as there are no unions of input types, we need to define inputs that behave like unions. Therefore, every operation on this input is exclusive. This means that only one operation can be set at a time.
Fields
Input Field | Description |
---|---|
setFreeAddons - SetFreeAddons
|
Adds free addons |
setFreeItems - SetFreeItems
|
Adds free items |
setSpecialPriceItems - SetSpecialPriceItems
|
Adds items with a special price |
Example
{
"setFreeAddons": SetFreeAddons,
"setFreeItems": SetFreeItems,
"setSpecialPriceItems": SetSpecialPriceItems
}
AddShippingAddress
Description
Operation to add a new shipping address
Fields
Input Field | Description |
---|---|
value - AddressInput
|
The shipping address |
Example
{"value": AddressInput}
AddToBasketEvent
Description
Add to basket event
Fields
Input Field | Description |
---|---|
itemId - ID!
|
The ID of the added item |
source - ProductSourceInput!
|
The origin from which the item was added (e.g. NOTEPAD if the item was added from the wishlist) |
Example
{"itemId": "4", "source": "BASKET"}
AddToWishlistEvent
Description
Add to wishlist event
Fields
Input Field | Description |
---|---|
itemId - ID!
|
The ID of the added item |
source - ProductSourceInput!
|
The origin from which the item was added (e.g. PRODUCT_VIEW if the item was added from a product detail page) |
Example
{"itemId": "4", "source": "BASKET"}
AddVoucher
Description
Operation to add a voucher code
Fields
Input Field | Description |
---|---|
code - String!
|
The voucher code |
Example
{"code": "abc123"}
Address
Description
An address
Fields
Field Name | Description |
---|---|
additions - [String]!
|
The address additions |
attributes - JSON
|
Additional attributes as JSON
|
city - String!
|
The city specified for this address |
company - String
|
The company specified for this address |
country - Country!
|
The country code and label for this address |
email - String
|
The email |
firstname - String!
|
The first name of the customer |
id - ID
|
ID of this address |
lastname - String!
|
The last name of the customer |
notes - String
|
Notes accompanying the order |
number - String!
|
The street number for this address |
phone - String
|
The phone number |
postcode - String!
|
The postal code of this address |
salutation - Salutation
|
The salutation of the customer |
street - String!
|
The street name of this address |
title - String
|
The title of the customer |
Possible Types
Address Types |
---|
Example
{
"additions": ["xyz789"],
"attributes": {},
"city": "xyz789",
"company": "xyz789",
"country": Country,
"email": "xyz789",
"firstname": "abc123",
"id": "4",
"lastname": "xyz789",
"notes": "abc123",
"number": "abc123",
"phone": "xyz789",
"postcode": "xyz789",
"salutation": Salutation,
"street": "abc123",
"title": "abc123"
}
AddressBook
Description
The address book of a customer
Fields
Field Name | Description |
---|---|
billingAddress - BillingAddress
|
The billing address of the customer |
defaultShippingAddress - ShippingAddress
|
The default shipping address of the customer |
shippingAddresses - [ShippingAddress]!
|
The other shipping addresses of the customer |
Example
{
"billingAddress": BillingAddress,
"defaultShippingAddress": ShippingAddress,
"shippingAddresses": [ShippingAddress]
}
AddressInput
Description
The address information
Fields
Input Field | Description |
---|---|
additions - [String]
|
The address additions |
attributes - JSON
|
Additional attributes as JSON
|
city - String!
|
The city specified for the address |
company - String
|
The company specified for the address |
country - String!
|
The country code and label for the address |
email - String
|
The email |
firstname - String!
|
The first name of the customer |
isShop - Boolean
|
true if this shipping address is a pickup shop. Default false . Default = false
|
isStation - Boolean
|
true if the address is a packstation. Default false . If the address is a packstation street is the post number and number is the station number of the packstation. Default = false
|
lastname - String!
|
The last name of the customer |
number - String!
|
The street number for the address This is the station number for a packstation. |
phone - String
|
The phone number |
postcode - String!
|
The postal code of the address |
salutation - String
|
The salutation of the customer |
street - String!
|
The street name of the address This is the post number (the customer number at DHL) for a packstation. |
title - String
|
The title of the customer |
Example
{
"additions": ["xyz789"],
"attributes": {},
"city": "xyz789",
"company": "abc123",
"country": "abc123",
"email": "abc123",
"firstname": "xyz789",
"isShop": false,
"isStation": true,
"lastname": "xyz789",
"number": "abc123",
"phone": "xyz789",
"postcode": "abc123",
"salutation": "abc123",
"street": "xyz789",
"title": "abc123"
}
AmountBenefit
Description
Benefit of an absolute discount
Example
{
"discount": Money,
"image": Image,
"title": "abc123"
}
ArticleLink
Description
Link to an article, which can be a product or an article
Fields
Field Name | Description |
---|---|
articleId - ID!
|
The ID of the article (e.g. product ID, SKU, item ID) (used as ID to build LinkInput) |
articleType - ArticleType!
|
Indicates whether this link is for a product or article |
item - Item
|
Item to which this link applies If the article type is "UNKNOWN" this will not be set. If the item type is "PRODUCT" this will be set to the best matching item. |
Example
{
"articleId": "4",
"articleType": "ITEM",
"item": Item
}
ArticleType
Description
Type of ArticleLink
Values
Enum Value | Description |
---|---|
|
Article is an item |
|
Article is a product |
|
Article can be product or item |
Example
"ITEM"
Asset
AssetLink
Description
Link to a back office asset (e.g. an image)
Example
{
"assetId": "4",
"assetPath": "abc123",
"filename": "abc123"
}
AttainableInfo
Description
The information as to whether a voucher could be redeemed successfully or why not
Fields
Field Name | Description |
---|---|
attainable - Boolean!
|
true if the applied voucher is valid and applicable, but the cart still needs to be updated to meet the promotion criteria(s)
|
customerIdentifier - String
|
The customer identifier if the voucher is a personal voucher |
failureDescriptions - [String!]!
|
The description(s) of the failure reason(s) |
promotion - Promotion
|
promotion details of the applied voucher |
successful - Boolean!
|
true if the voucher was applied successfully
|
voucherCode - String
|
The code of the applied voucher |
voucherName - String
|
The name of the applied voucher |
Example
{
"attainable": true,
"customerIdentifier": "abc123",
"failureDescriptions": ["xyz789"],
"promotion": Promotion,
"successful": true,
"voucherCode": "xyz789",
"voucherName": "abc123"
}
AttributeOperation
Description
The possible operations on cart related attributes
As long as there are no unions of input types, we need to define inputs that behave like unions. Therefore, every operation on this input is exclusive. This means that only one operation can be set at a time.
Fields
Input Field | Description |
---|---|
addAttribute - AddAttribute
|
Adds an attribute to the cart |
removeAttribute - RemoveAttribute
|
Removes an attribute from cart |
Example
{
"addAttribute": AddAttribute,
"removeAttribute": RemoveAttribute
}
Availability
Description
Availability of an item
Example
{
"availabilityText": "abc123",
"available": false,
"maxQuantity": 123,
"minQuantity": 123
}
Badge
BaseAttribute
Description
Standard item attribute
Fields
Field Name | Description |
---|---|
displayName - String!
|
The display name of this attribute (e.g. 'color') If not defined, this is an empty string. |
displayValue - String!
|
The value of this attribute (e.g. 'green') |
name - String!
|
The name of this attribute (e.g. 'import:color') Deprecated, this will be deleted without replacement in the future. No longer supported |
sequenceNo - Int
|
Sequence number to sort this attribute into a list of attributes |
values - [BaseValue]!
|
List of values of this attribute If there is only one value, it is the same as displayValue (including visualizing images). |
Example
{
"displayName": "abc123",
"displayValue": "xyz789",
"name": "xyz789",
"sequenceNo": 123,
"values": [BaseValue]
}
BaseFeature
Description
Standard product feature
Fields
Field Name | Description |
---|---|
displayName - String!
|
The display name of this feature If not defined, this is an empty string. |
images - [Image]!
|
List of images to visualize feature |
name - String!
|
The name of this feature Deprecated, this will be deleted without replacement in the future. No longer supported |
sequenceNo - Int
|
Sequence number to sort this attribute into a list of attributes |
value - String!
|
The value of this feature |
values - [BaseValue]!
|
List of values of this attribute If there is only one value, it is the same as value and images . |
Example
{
"displayName": "abc123",
"images": [Image],
"name": "xyz789",
"sequenceNo": 987,
"value": "abc123",
"values": [BaseValue]
}
BaseValue
Benefit
BigDecimal
Description
An arbitrary precision signed decimal
Example
BigDecimal
BillingAddress
Description
The billing address of the customer
Fields
Field Name | Description |
---|---|
additions - [String]!
|
The address additions |
attributes - JSON
|
Additional attributes as JSON
|
city - String!
|
The city specified for this address |
company - String
|
The company specified for the address |
country - Country!
|
The country code and label for this address |
email - String
|
The email |
firstname - String!
|
The first name of the customer |
id - ID
|
ID of the address |
lastname - String!
|
The last name of the customer |
notes - String
|
Notes accompanying the order |
number - String!
|
The street number for this address |
phone - String
|
The phone number |
postcode - String!
|
The postal code of this address |
salutation - Salutation
|
The salutation of the customer |
street - String!
|
The street name of the address |
title - String
|
The title of the customer |
Example
{
"additions": ["abc123"],
"attributes": {},
"city": "abc123",
"company": "xyz789",
"country": Country,
"email": "abc123",
"firstname": "xyz789",
"id": "4",
"lastname": "abc123",
"notes": "xyz789",
"number": "xyz789",
"phone": "xyz789",
"postcode": "xyz789",
"salutation": Salutation,
"street": "xyz789",
"title": "xyz789"
}
Boolean
Description
The Boolean
scalar type represents true
or false
.
BooleanAttribute
Brand
Description
A product brand
Fields
Field Name | Description |
---|---|
id - ID!
|
The ID of this brand |
image - Image
|
The image of this brand |
link - Link!
|
Link to this brand |
name - String!
|
The name of this brand (e.g. 'Nike' or 'Toshiba') |
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this brand Such a parameter can be, for example, the SEO text for a brand. There can be different types of parameters, from simple text to a complex teaser. By default, the brand parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#brandParameterWhitelist ). |
Arguments
|
|
productCount - Int!
|
Total number of valid products of this brand |
products - [Product]!
|
Valid products of this brand |
topsellers - ProductRecommendations!
|
Top selling products of this brand By default, the top sellers are disabled and need to be enabled in the backend (see ShopApiConfigurer#recommendationsWhitelist and RecommendationType#BRAND_TOPSELLER ). |
Arguments
|
Example
{
"id": 4,
"image": Image,
"link": Link,
"name": "xyz789",
"parameters": [ContentAttribute],
"productCount": 987,
"products": [Product],
"topsellers": ProductRecommendations
}
BrandLink
BrandListAttribute
BrandListEntry
BrandRecommendations
BrandSuggest
Description
Brand suggestion(s) (e.g. 'Adidas Originals' for 'orig')
Fields
Field Name | Description |
---|---|
brands - [Brand]!
|
Suggested brands |
Arguments
|
|
match - String!
|
Brand string that matches on query string (e.g. 'Adidas Originals' for 'orig') |
Example
{
"brands": [Brand],
"match": "xyz789"
}
Cart
Description
A complete cart of a user
Fields
Field Name | Description |
---|---|
active - Boolean!
|
This is required if more than one cart is used. Only one cart can be active. |
attribute - Object
|
Cart related attribute |
Arguments
|
|
attributes - Object
|
Cart related attributes |
availableShippingMethods - [ShippingMethod]!
|
All available shipping methods |
billingAddress - BillingAddress
|
The billing address for the order |
createdAt - DateTime!
|
Creation date of this cart |
editable - Boolean!
|
A cart can be edited as long as no payment is authorized or captured. |
guestId - String
|
The ID of the guest user This ID is required for a guest checkout (usually the email address). |
id - ID!
|
The ID of this cart |
isDefault - Boolean!
|
This is required if more than one cart is used. Only one cart can be default. |
name - String!
|
The name of this cart |
selectedPaymentMethod - PaymentMethod
|
The selected payment method |
selectedShippingMethod - ShippingMethod
|
The selected shipping method |
shared - Boolean!
|
true if this cart as shared
|
shippingAddresses - [ShippingAddress]!
|
The shipping address for the order This list contains one or no shipping address. |
details - CartDetails!
|
The cart details like cart positions, used voucher, total amount |
Example
{
"active": false,
"attribute": Object,
"attributes": Object,
"availableShippingMethods": [ShippingMethod],
"billingAddress": BillingAddress,
"createdAt": "2007-12-03T10:15:30Z",
"editable": true,
"guestId": "xyz789",
"id": "4",
"isDefault": true,
"name": "xyz789",
"selectedPaymentMethod": PaymentMethod,
"selectedShippingMethod": ShippingMethod,
"shared": false,
"shippingAddresses": [ShippingAddress],
"details": CartDetails
}
CartDetails
Description
The detailed information of a cart
Fields
Field Name | Description |
---|---|
articleCount - Int!
|
The total number of items in this cart |
attainableInfos - [AttainableInfo]!
|
Attainable information about promotions and vouchers |
deliveryInfo - DeliveryInfo
|
Detailed information about delivery |
discountInfo - CartDiscount
|
Detailed information about the cart discount |
discountWithoutCombinable - Money
|
Cart based non-combinable promotion discount (see discountWithoutCombinable of CartDiscount) |
freeShippingInfo - FreeShippingInfo
|
Detailed information about free shipping promotion |
informativeBenefits - [InformativeBenefitInfo]!
|
Detailed information about informative benefits |
positionCount - Int!
|
The number of positions in this cart |
positions - [CartEntry]!
|
The cart positions |
promoItems - [PromoItem]!
|
Applicable promotion items |
promotionsSaving - Money
|
The savings related to promotions This does not include savings related to FreeItemsInfo, SpecialPriceInfo, FreeAddonsInfo or FreeShippingInfo. This includes savings related to cart, "Take X and Pay Y", AmountBenefit and PercentBenefit. |
subtotal - Money
|
The subtotal amount of this cart (sum of totalDiscount of all CartEntrys) |
total - Money
|
The total amount of this cart including shipping costs and additional fees Typically, the total amount can be calculated: total = subtotal + shipping costs + additional fees - additional savings without a voucher |
totalSavings - Money
|
The total savings of the cart: totalSavings = promotions saving + (strike out price - current price) of each item in the cart |
voucherCodeStatus - VoucherCodeStatus
|
Status information about the used voucher code |
voucherLessSavings - Money
|
The total amount saved as a result of promotions, excluding voucher promotions This includes FreeItemsInfo, FreeAddonsInfo, FreeShippingInfo, TakeAndPayBenefit, AmountBenefit and PercentBenefit. This does not include FreeShippingInfo. |
voucherSavings - Money
|
The total amount saved through vouchers and promotions This includes FreeItemsInfo, FreeAddonsInfo, TakeAndPayBenefit, AmountBenefit and PercentBenefit. This does not include FreeShippingInfo. |
vouchers - [String!]!
|
The redeemed vouchers of this cart |
Example
{
"articleCount": 123,
"attainableInfos": [AttainableInfo],
"deliveryInfo": DeliveryInfo,
"discountInfo": CartDiscount,
"discountWithoutCombinable": Money,
"freeShippingInfo": FreeShippingInfo,
"informativeBenefits": [InformativeBenefitInfo],
"positionCount": 123,
"positions": [CartEntry],
"promoItems": [FreeAddonsInfo],
"promotionsSaving": Money,
"subtotal": Money,
"total": Money,
"totalSavings": Money,
"voucherCodeStatus": "ATTAINABLE",
"voucherLessSavings": Money,
"voucherSavings": Money,
"vouchers": ["abc123"]
}
CartDiscount
Description
Detailed information about cart related discount which is used in CartDetails
Cart with multiple cart promotions:
If the cart is allowed to have combinable (e.g. 10 EUR OFF of total basket amount) and non-combinable promotions (e.g. 15 EUR OFF of total basket amount) then discount = 25 EUR
and discountWithoutCombinable = 15 EUR
. However, only the promotion with the higher benefit from the customer's point of view is applied.
Fields
Field Name | Description |
---|---|
capped - Boolean!
|
true if the discount is capped
|
discount - Money
|
The total discount amount for combinable and non-combinable promotions (for amount and percent based) |
discountPercentage - BigDecimal
|
The discount percentage only when discount benefit is percentage (e.g. % of old price or % of current price) |
discountWithoutCombinable - Money
|
The total discount amount for non-combinable promotions (for amount and percent based) |
promotionDescription - String
|
The description of the related promotion |
promotionName - String
|
The name of the related promotion |
Example
{
"capped": true,
"discount": Money,
"discountPercentage": BigDecimal,
"discountWithoutCombinable": Money,
"promotionDescription": "xyz789",
"promotionName": "abc123"
}
CartEntry
Description
A complete cart position
Fields
Field Name | Description |
---|---|
details - Item
|
The item of this position |
discountAmount - Money
|
The discount amount of the item if the position has an AmountBenefit (see Discount) |
discountInfo - Discount
|
Detailed discount information of the position |
discountPercentage - BigDecimal
|
The discount percentage of the item if the position has a PercentBenefit |
id - String!
|
The ID of this position Needed for mutations (see PositionOperation) |
promotion - Promotion
|
The promotion to which the position relates |
quantity - Int!
|
The quantity of this position |
totalCurrentPrice - Money
|
The current total price of this position without any promotions: [totalCurrentPrice = itemPrice x quantity] |
totalDiscount - Money
|
The total discount on this position |
totalOldPrice - Money
|
The total strike price of this position: total strike price = item strike price x quantity |
totalPositionPrice - Money
|
The final price of this position including applied promotions (see totalPrice of Discount) This amount can be calculated: totalPositionPrice = totalCurrentPrice - totalDiscount If this position is a FreeItemBenefit totalPositionPrice is 0. |
voucher - String
|
The voucher code to which the position relates |
Example
{
"details": Item,
"discountAmount": Money,
"discountInfo": Discount,
"discountPercentage": BigDecimal,
"id": "xyz789",
"promotion": Promotion,
"quantity": 123,
"totalCurrentPrice": Money,
"totalDiscount": Money,
"totalOldPrice": Money,
"totalPositionPrice": Money,
"voucher": "xyz789"
}
CartToWishlistProblem
Description
Problem when moving all positions from a cart to a wishlist
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "xyz789"}
CartToWishlistProblems
Description
An aggregation of problems occurred when moving all positions from a cart to a wishlist
Fields
Field Name | Description |
---|---|
problems - [CartToWishlistProblem]
|
List of problems encountered |
Example
{"problems": [CartToWishlistProblem]}
CartToWishlistResult
Description
Result type moving positions from a cart to a wishlist
Types
Union Types |
---|
Example
CartToWishlistProblems
CartToWishlistSuccess
Description
Type for successfully moving positions from a cart to a wishlist
Fields
Field Name | Description |
---|---|
wishlist - Wishlist!
|
The updated wishlist |
Example
{"wishlist": Wishlist}
Category
Description
A product category
Fields
Field Name | Description |
---|---|
ancestors - [Category]!
|
List of ancestor categories of this category |
Arguments
|
|
bottomTeaserInsertion - TeaserAttribute
|
Teaser to be displayed below the product list |
children - [Category]!
|
List of child categories of this category |
Arguments
|
|
id - ID!
|
The ID of this category |
idsDown - String!
|
The category Ids from root to actual category seperated by - Is useful for left navigation to find out if categories are inside active path |
isHiddenFor - Boolean!
|
Backoffice Hidden Category Parameter Type - if enabled the Category is hidden dependent on where it is used |
Arguments
|
|
link - Link!
|
Link to this category |
metaTagDescription - String
|
The meta tag description for this category page Deprecated, use seo instead. No longer supported
|
metaTagRobots - String
|
The meta tag robots for this category page Deprecated, use seo instead. No longer supported
|
metaTagTitle - String
|
The meta tag title for this category page Deprecated, use seo instead. No longer supported
|
name - String!
|
The name of this category (e.g. 'Women' or 'Shoes') |
navigationFlyout - Image
|
The navigation flyout for this category |
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this category Such a parameter can be, for example, a teaser insertion. There can be different types of parameters, from simple text to a complex teaser. By default, the category parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#categoryParameterWhitelist ). |
Arguments
|
|
parent - Category
|
The parent category of this category, or null if this category is a top-level category |
products - SearchResult
|
List valid products of this category (it is possible for a category landing page to have no search result) By default this triggers the CategoryFilterEvent. It is therefore not necessary to trigger this event explicitly in the frontend. You can deactivate this tracking in the ShopApiConfigurer by setting enableSearchTracking to false . Please note that a search is being executed here. A search is a comparatively expensive operation. In order to obtain the number of products within a subcategory (e.g. to display navigation), the category tree of the ProductSearchResult (field: selectedCategory ) should be used. |
Arguments
|
|
raster - Raster
|
The raster maintained in the back office for this category, by default no product list is then provided It is possible to enable the product list in the backend (see SearchProvider#allowFetchChildren ). |
recommendations - CategoryRecommendations!
|
Similar/recommended categories to this category |
Arguments
|
|
redirect - ResolvedLink
|
If this property is set, the category might be invalid for some reason and a redirect is required. There is backend implementation required to fully support this feature with custom logic. This might be the reason if a category has no products anymore and should be redirected to its parent category like: /women/pants/summer-pants --> /women/pants/ because there are no summer pants in the winter collection |
seo - Seo!
|
SEO information of this category |
seoBoxText - String
|
HTML formatted SEO box text for this category page Deprecated, use seo instead. No longer supported
|
seoHeadline - String
|
SEO headline text for this category page |
seoThumbnail - Image
|
SEO thumbnail for this category page Deprecated, use seo instead. No longer supported
|
teaserInsertions - [TeaserAttribute]!
|
24 teasers to be displayed within the product list The returned list may contain null if no teaser is maintained for a position. |
topTeaserInsertion - TeaserAttribute
|
Teaser to be displayed above the product list |
topsellers - ProductRecommendations!
|
Top selling products of this category By default, the top sellers are disabled and need to be enabled in the backend (see ShopApiConfigurer#recommendationsWhitelist and RecommendationType#CATEGORY_TOPSELLER ). |
Arguments
|
Example
{
"ancestors": [Category],
"bottomTeaserInsertion": TeaserAttribute,
"children": [Category],
"id": "4",
"idsDown": "abc123",
"isHiddenFor": true,
"link": Link,
"metaTagDescription": "abc123",
"metaTagRobots": "abc123",
"metaTagTitle": "abc123",
"name": "xyz789",
"navigationFlyout": Image,
"parameters": [ContentAttribute],
"parent": Category,
"products": PageSearchResult,
"raster": Raster,
"recommendations": CategoryRecommendations,
"redirect": ResolvedLink,
"seo": Seo,
"seoBoxText": "xyz789",
"seoHeadline": "xyz789",
"seoThumbnail": Image,
"teaserInsertions": [TeaserAttribute],
"topTeaserInsertion": TeaserAttribute,
"topsellers": ProductRecommendations
}
CategoryAttribute
Description
Backend type 'Category' which is a product category
Fields
Field Name | Description |
---|---|
name - String!
|
The name of this attribute |
wrapper - CategoryWrapper
|
The category with a name maintained in the back office |
Example
{
"name": "abc123",
"wrapper": CategoryWrapper
}
CategoryFilterEvent
Description
Category filter event
Fields
Input Field | Description |
---|---|
categoryId - ID!
|
The category ID |
filters - [EnumFilterInput!]!
|
List of filters used by the user (except range/price filters) |
Example
{"categoryId": 4, "filters": [EnumFilterInput]}
CategoryHiddenStatus
Description
Category visibility related to the context in which categories should be displayed
Values
Enum Value | Description |
---|---|
|
The category is not displayed in after search navigation |
|
The category is not displayed in left navigation |
|
The category is not displayed in the main navigation |
Example
"AFTER_SEARCH_NAVIGATION"
CategoryLandingPageViewEvent
CategoryListAttribute
Description
Backend types 'CategoryList', 'NamedCategoryList' and 'CategorySelectionList' which are lists of product categories
Fields
Field Name | Description |
---|---|
name - String!
|
The name of this attribute |
wrappers - [CategoryWrapper]!
|
List of categories with names maintained in the back office |
Example
{
"name": "abc123",
"wrappers": [CategoryWrapper]
}
CategoryPageLink
CategoryProductListViewEvent
Description
Category product list event
Example
{
"categoryId": 4,
"currentPage": 987,
"lastPage": 123,
"url": "abc123"
}
CategoryRecommendations
Description
Result type for category recommendations
Fields
Field Name | Description |
---|---|
categories - [Category]!
|
List of recommended categories |
totalCount - Int!
|
Total count of recommended categories |
Example
{"categories": [Category], "totalCount": 123}
CategorySearchFilter
Description
Filter to select products within category
Fields
Input Field | Description |
---|---|
byUser - Boolean!
|
If set to true , the product list was requested by a user (e.g. when viewing a category page) For example, this parameter should be set to false if this product list is used to render a teaser. Default: true . Default = true |
enumFilters - [EnumFilterInput!]!
|
Specifies filters that operate on discrete values and computes an intersection of all specified filters The available filters can be found by execute a search without any filter set (see field filters in ProductSearchResult). Default: no restrictions. Default = [] |
ignoreMaintainedContent - Boolean!
|
If set to true , a product list will be returned even though content is maintained for this category Default: false . Default = false |
rangeFilters - [RangeFilterInput!]!
|
Specifies filters that operate on range of numerical values and computes an intersection of all specified filters The available filters can be found by execute a search without any filter set (see field filters in ProductSearchResult). Default: no restrictions. Default = [] |
Example
{
"byUser": true,
"enumFilters": [EnumFilterInput],
"ignoreMaintainedContent": true,
"rangeFilters": [RangeFilterInput]
}
CategorySearchSuggest
Description
Search term suggestion within a top-level category (e.g. 'chair in Furniture' for 'chai')
Example
{
"category": Category,
"searchTerm": "xyz789",
"totalCount": 987
}
CategorySuggest
Description
Category suggestion(s) (e.g. 'Smart Home' for 'hom')
Fields
Field Name | Description |
---|---|
categories - [Category]!
|
Suggested categories |
Arguments
|
|
match - String!
|
Category string that matches on query string (e.g. 'Smart Home' for 'hom') |
Example
{
"categories": [Category],
"match": "abc123"
}
CategoryWrapper
CheckoutEvent
Description
Checkout step event
Fields
Input Field | Description |
---|---|
index - Int!
|
Index of the checkout step (starting with 0) The steps in the checkout process depend on the shop and usually begin with the shopping cart. |
option - String!
|
Additional shop specific information Default: empty string. Default = "" |
orderLines - [OrderLineInput!]!
|
All order lines of the current cart |
step - String!
|
The name of checkout step (e.g. 'summary') The names of the checkout steps are not predefined, but should remain constant in every shop and should not be changed if possible. |
Example
{
"index": 987,
"option": "xyz789",
"orderLines": [OrderLineInput],
"step": "xyz789"
}
ColorAttribute
Description
Item variation attribute that contains color information
Fields
Field Name | Description |
---|---|
cssColorCode - String
|
CSS color code that can be used to visualize the color attribute |
displayName - String!
|
The display name of this attribute (e.g. 'color') If not defined, this is an empty string. |
displayValue - String!
|
The value of this attribute (e.g. 'green') |
name - String!
|
The name of this attribute (e.g. 'import:color') |
sequenceNo - Int
|
Sequence number to sort this attribute into a list of attributes |
Example
{
"cssColorCode": "xyz789",
"displayName": "xyz789",
"displayValue": "xyz789",
"name": "abc123",
"sequenceNo": 987
}
ContentAttribute
Description
Base type for a data structure containing either a category, global, marker, or raster element parameter as well as a teaser with all its fields
This is used to get parameters and teasers in a generic way, which is disabled by default (see ShopApiConfigurer
how to enable generic parameters and teasers).
Fields
Field Name | Description |
---|---|
name - String!
|
The name of this attribute set in the backend Usually there is no reason to display this name in the frontend, except for tracking of teasers. |
Possible Types
ContentAttribute Types |
---|
Example
{"name": "abc123"}
ContentSearchResult
Description
The result of the content search
Fields
Field Name | Description |
---|---|
entries - [ContentSearchResultEntry]!
|
List of content search hits |
totalCount - Int!
|
Total number of content search hits |
Example
{"entries": [ContentSearchResultEntry], "totalCount": 123}
ContentSearchResultEntry
Description
The specific result entry of the content search
Example
{
"fullText": "xyz789",
"title": "abc123",
"url": "abc123"
}
ContentTreeLink
ContentTreePage
Description
Page maintained under 'Content trees' in the back office, such as imprint
These pages are structured hierarchically.
A content tree page is valid if content is maintained on it. This behavior can be changed by implementing a shop specific PageValidator
.
Fields
Field Name | Description |
---|---|
ancestors - [ContentTreePage]!
|
List of ancestor pages of this content tree page Any page that is not valid is not part of the result list. |
Arguments
|
|
children - [ContentTreePage]!
|
List of child content tree pages of this page Any page that is not valid is not part of the result list. |
Arguments
|
|
link - Link!
|
Link to this content tree page |
metaTagDescription - String
|
The meta tag description for this page Deprecated, use seo instead. No longer supported
|
metaTagRobots - String
|
The meta tag robots for this page Deprecated, use seo instead. No longer supported
|
metaTagTitle - String
|
The meta tag title for this page Deprecated, use seo instead. No longer supported
|
name - String!
|
Name of this content tree page |
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this page Such a parameter can be, for example, a teaser insertion. There can be different types of parameters, from simple text to a complex teaser. By default, the page parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#pageParameterWhitelist ). |
Arguments
|
|
parent - ContentTreePage
|
The parent page of this content tree page If the parent page is invalid, null is returned. |
raster - Raster
|
Raster of this page including all teasers |
root - ContentTreePage
|
The top-level page of this content tree page If the top-level page is invalid, null is returned. |
seo - Seo!
|
SEO information of this page |
seoBoxText - String
|
HTML formatted SEO box text for this page Deprecated, use seo instead. No longer supported
|
seoThumbnail - Image
|
SEO thumbnail for this page Deprecated, use seo instead. No longer supported
|
Example
{
"ancestors": [ContentTreePage],
"children": [ContentTreePage],
"link": Link,
"metaTagDescription": "xyz789",
"metaTagRobots": "abc123",
"metaTagTitle": "abc123",
"name": "xyz789",
"parameters": [ContentAttribute],
"parent": ContentTreePage,
"raster": Raster,
"root": ContentTreePage,
"seo": Seo,
"seoBoxText": "abc123",
"seoThumbnail": Image
}
ContentViewEvent
Country
CreatePositionInput
Description
Operation to create a new position
Fields
Input Field | Description |
---|---|
addAttributes - [AddAttribute!]!
|
Adds attributes to the position. Default = [] |
setItemId - SetItemId!
|
Sets the item ID of the position |
updateIfExists - Boolean
|
Indicates if an existing position should be updated. This means if you add the same item twice, the quantity of the existing position will be increased or a new position will be created. Default = true |
updateQuantity - UpdateQuantity!
|
Sets the quantity of the position |
Example
{
"addAttributes": [AddAttribute],
"setItemId": SetItemId,
"updateIfExists": true,
"updateQuantity": UpdateQuantity
}
CreateReview
Description
Operation to create a review
Example
{
"author": "xyz789",
"email": "abc123",
"message": "abc123",
"productId": 4,
"rating": 987,
"title": "xyz789"
}
CreateWishlistInput
Description
Operations to create a wishlist
Fields
Input Field | Description |
---|---|
setName - SetName
|
Sets the name of the wishlist |
Example
{"setName": SetName}
CreateWishlistProblem
Description
Problem when creating a new wishlist
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "abc123"}
CreateWishlistProblems
Description
An aggregation of problems occurred when creating a new wishlist
Fields
Field Name | Description |
---|---|
problems - [CreateWishlistProblem]!
|
List of problems encountered |
Example
{"problems": [CreateWishlistProblem]}
CreateWishlistResult
Description
Result type creating a new wishlist
Types
Union Types |
---|
Example
CreateWishlistProblems
CreateWishlistSuccess
Description
Type for successfully creating a new wishlist
Fields
Field Name | Description |
---|---|
wishlist - Wishlist!
|
The newly created wishlist |
Example
{"wishlist": Wishlist}
Customer
Description
A customer
Fields
Field Name | Description |
---|---|
addressBook - AddressBook
|
The address book of this customer |
Arguments
|
|
birthDate - Date
|
The birth date of this customer |
company - String
|
The company of this customer |
customerIdentifier - String!
|
The ID of this customer |
firstname - String!
|
The first name of this customer |
lastname - String!
|
The last name of this customer |
orders - OrderListResult!
|
The order history of this customer |
Arguments
|
|
phoneNumbers - [Phone]
|
The list of phone numbers of this customer |
salutation - String
|
The salutation of this customer |
title - String
|
The title of this customer |
username - String!
|
The username of this customer (e.g. email address) |
Example
{
"addressBook": AddressBook,
"birthDate": "2007-12-03",
"company": "abc123",
"customerIdentifier": "xyz789",
"firstname": "xyz789",
"lastname": "abc123",
"orders": OrderListResult,
"phoneNumbers": [Phone],
"salutation": "xyz789",
"title": "abc123",
"username": "abc123"
}
Date
Description
An RFC-3339 compliant Full Date Scalar
Example
"2007-12-03"
DateAttribute
DateTime
Description
A slightly refined version of RFC-3339 compliant DateTime Scalar
Example
"2007-12-03T10:15:30Z"
DeleteCartInput
Description
Information to delete a cart
Fields
Input Field | Description |
---|---|
cartId - String!
|
The ID of the cart to delete |
Example
{"cartId": "abc123"}
DeletePhoneNo
Description
Operation to delete a phone no
Fields
Input Field | Description |
---|---|
number - String!
|
The phone no of the customer to be deleted |
Example
{"number": "xyz789"}
DeletePosition
Description
Operation to delete a position
Fields
Input Field | Description |
---|---|
positionId - ID!
|
The ID of the position to delete |
Example
{"positionId": "4"}
DeleteShippingAddress
Description
Operation to delete a shipping address
Fields
Input Field | Description |
---|---|
addressId - String!
|
The address ID to work with |
Example
{"addressId": "xyz789"}
DeleteVoucher
Description
Operation to remove a voucher code
Fields
Input Field | Description |
---|---|
code - String!
|
The voucher code to remove |
Example
{"code": "xyz789"}
DeleteWishlistInput
Description
Operation to delete a wishlist
Fields
Input Field | Description |
---|---|
wishlistId - String!
|
The ID of the wishlist to delete |
Example
{"wishlistId": "abc123"}
DeliveryInfo
Description
Detailed delivery information
Fields
Field Name | Description |
---|---|
deliveryCost - Money
|
The delivery costs |
deliveryTimeDescription - String
|
Delivery time information |
discountedDeliveryCost - Money
|
The discounted delivery costs when the free shipping promotion is applied; otherwise zero |
freeShippingPossible - Boolean
|
true if free shipping is possible
|
shipper - String
|
Name of the shipper |
Example
{
"deliveryCost": Money,
"deliveryTimeDescription": "abc123",
"discountedDeliveryCost": Money,
"freeShippingPossible": true,
"shipper": "xyz789"
}
Discount
Description
A position related discount (see CartEntry)
Fields
Field Name | Description |
---|---|
capped - Boolean!
|
true if the discount is capped
|
discount - Money
|
The discount amount per item For example discount = undiscountedPrice for free promotion items or for 'Take X and Pay Y' items.` |
discountTotal - Money
|
The discount amount per position: discountTotal = discount amount per item x discountedQuantity |
discountedPrice - Money
|
The item price with discount This can be 0 for free promo items or for 'Take X and Pay Y' items. |
discountedQuantity - Int!
|
The number of discounted items |
discountedTotalPrice - Money
|
The total price for discounted items of this position: discountedTotalPrice = discountedPrice x discountedQuantity |
effectivePercent - Int!
|
The effective discount percentage |
image - Image
|
The image of this discount |
previousTotalPrice - Money
|
The total price without a promotion, calculated only if the position contains a price changing promotion: previousTotalPrice = undiscountedPrice x quantity |
quantity - Int!
|
The total number of all items of this position |
title - String
|
The display title of this discount |
totalPrice - Money
|
The final total price used to calculate cart subtotal amount: totalPrice= discountedTotalPrice + undiscountedTotalPrice |
undiscountedPrice - Money
|
The Item price without discount |
undiscountedQuantity - Int!
|
The number of items without a discount |
undiscountedTotalPrice - Money
|
The total price for non discounted items of this position: undiscountedTotalPrice = undiscountedPrice x undiscountedQuantity |
Example
{
"capped": false,
"discount": Money,
"discountTotal": Money,
"discountedPrice": Money,
"discountedQuantity": 987,
"discountedTotalPrice": Money,
"effectivePercent": 123,
"image": Image,
"previousTotalPrice": Money,
"quantity": 123,
"title": "abc123",
"totalPrice": Money,
"undiscountedPrice": Money,
"undiscountedQuantity": 123,
"undiscountedTotalPrice": Money
}
Document
Description
A document (e.g. a manual for a product)
Example
{
"displayName": "xyz789",
"fileName": "abc123",
"url": "xyz789"
}
EmptyCartProblem
Description
Problem when emptying an existing cart
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "abc123"}
EmptyCartProblems
Description
An aggregation of problems occurred when emptying an existing cart
Fields
Field Name | Description |
---|---|
problems - [EmptyCartProblem]
|
List of problems encountered |
Example
{"problems": [EmptyCartProblem]}
EmptyCartResult
Description
Result type when emptying a cart
Types
Union Types |
---|
Example
EmptyCartProblems
EmptyCartSuccess
Description
Type for successfully emptying a cart
Fields
Field Name | Description |
---|---|
cart - Cart!
|
The empty cart |
Example
{"cart": Cart}
EmptyWishlistProblem
Description
An aggregation of problems occurred when emptying an existing wishlist
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "xyz789"}
EmptyWishlistProblems
Description
An aggregation of problems occurred when emptying a existing wishlist
Fields
Field Name | Description |
---|---|
problems - [EmptyWishlistProblem]
|
List of problems encountered |
Example
{"problems": [EmptyWishlistProblem]}
EmptyWishlistResult
Description
Result type emptying a wishlist
Types
Union Types |
---|
Example
EmptyWishlistProblems
EmptyWishlistSuccess
Description
Type for successfully emptying a wishlist
Fields
Field Name | Description |
---|---|
wishlist - Wishlist!
|
The empty wishlist |
Example
{"wishlist": Wishlist}
EnumFilter
Description
Default filter for discrete values
Fields
Field Name | Description |
---|---|
displayName - String!
|
The name of this filter to display |
enumFilterValues - [EnumFilterValue]!
|
Values of this filter which are used in EnumFilterInput as values |
id - ID!
|
Filter ID which is used in EnumFilterInput as id |
Example
{
"displayName": "xyz789",
"enumFilterValues": [EnumFilterValue],
"id": 4
}
EnumFilterInput
Description
Filter that operates on discrete values
Example
{
"id": "4",
"values": ["4"]
}
EnumFilterValue
Description
Discrete value of an EnumFilter
Fields
Field Name | Description |
---|---|
count - Int!
|
Number of search hits when restricted to this value after all other filters have been applied |
displayValue - String!
|
The name of this filter value to display |
id - ID!
|
Filter value ID which is used in EnumFilterInput as values |
selected - Boolean!
|
true if used in current search
|
Example
{
"count": 987,
"displayValue": "xyz789",
"id": 4,
"selected": true
}
ExternalLink
Filter
Description
Base type for search filters
Fields
Field Name | Description |
---|---|
displayName - String!
|
The name of this filter to display |
id - ID!
|
Filter ID which is used in EnumFilterInput and RangeFilterInput as id |
Possible Types
Filter Types |
---|
Example
{"displayName": "xyz789", "id": 4}
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
FreeAddonsInfo
Description
Information about free addons if a free addon benefit can be applied
It provides a list of the selectable/selected free addons and the related article.
Fields
Field Name | Description |
---|---|
mainItem - Item!
|
The item to which the free addons relate |
max - Int!
|
The maximum number of selectable items |
promotion - Promotion
|
The related promotion |
promotionReference - ID!
|
The promotion reference |
selectableAddons - [Item]!
|
List of items to choose from |
selectedAddons - [Item]!
|
List of items selected by the user |
Example
{
"mainItem": Item,
"max": 123,
"promotion": Promotion,
"promotionReference": "4",
"selectableAddons": [Item],
"selectedAddons": [Item]
}
FreeItemBenefit
Description
Benefit of one or more free items
Example
{
"image": Image,
"maxSelectable": 987,
"selectableItems": [Item],
"title": "xyz789"
}
FreeItemsInfo
Description
Information about free items if a free item benefit can be applied
It provides a list of selectable and selected free items.
Fields
Field Name | Description |
---|---|
image - Image
|
The image of the free items promotion |
max - Int!
|
The maximum number of selectable free items |
promotion - Promotion
|
The related promotion |
promotionReference - ID!
|
The promotion reference |
selectableItems - [Item]!
|
List of free items to choose from |
selectableSkus - [String!]!
|
List of SKUs of free items to choose from |
selectedItems - [Item]!
|
List of free items selected by the user |
title - String
|
The display title of the free items promotion |
Example
{
"image": Image,
"max": 987,
"promotion": Promotion,
"promotionReference": "4",
"selectableItems": [Item],
"selectableSkus": ["abc123"],
"selectedItems": [Item],
"title": "xyz789"
}
FreeShippingBenefit
FreeShippingInfo
Description
Information about free shipping promotion
Example
{
"free": false,
"image": Image,
"promotion": Promotion,
"title": "xyz789",
"voucher": "abc123"
}
GlobalParameter
Description
A single Global parameter
Fields
Field Name | Description |
---|---|
parameters - [ContentAttribute]!
|
Values of the parameter The name of the parameter is name of ContentAttribute |
Arguments
|
|
type - String!
|
Type of the parameter |
Example
{
"parameters": [ContentAttribute],
"type": "xyz789"
}
GlobalParameterFilter
Description
Types to filter global parameters
Fields
Input Field | Description |
---|---|
parameterNames - [String!]!
|
Names of global parameter as defined in the backend If empty, all values of the specified parameter type are returned. Default: no restrictions. Default = [] |
parameterType - String!
|
Name of type of global parameter as defined in the backend |
Example
{
"parameterNames": ["xyz789"],
"parameterType": "abc123"
}
GlobalParameterPaging
Description
Limit and offset for a list of global parameters
Fields
Input Field | Description |
---|---|
limit - Int!
|
The number of global parameters per page Default: 100. Default = 100 |
offset - Int!
|
The starting position in the global parameters result list Example: To show the entries with index 15 to 24, set offset to 15 and limit to 10. Default: 0. Default = 0 |
order - SortOrder!
|
The parameters are sorted in ascending order according to their name, this sorting can be reversed here Default: ascending. Default = ASC |
Example
{"limit": 123, "offset": 123, "order": "ASC"}
Hreflang
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Example
"4"
Image
Description
An image in the shop (e.g. product images or assets from the back office)
Fields
Field Name | Description |
---|---|
alt - String
|
The alt text of this image, which can be set in the back office How the alt text is set in the back office is contextual, e.g. there may be an alt text field in a teaser. |
boUrl - String
|
The image url if the image is maintained in the backoffice |
fileName - String!
|
The file name of this image |
height - Int
|
The height of this image in pixels, which is calculated when uploading the image in the back office It is possible that this value is not set (e.g. for product images from the product data import). |
imageRole - ImageRole
|
Role of this image (e.g. Rear view image) For backoffice images (e.g. in teasers) this is empty. |
name - String
|
The name of this image, which can be set in the back office |
rank - Int!
|
The position of the image within a list of images (the lower, the further up the list) This value must be set explicitly (e.g. when importing a product) and is 0 by default. |
title - String
|
A title for this image, which can be set in the back office How the title is set in the back office is contextual, e.g. there may be an title field in a teaser. |
url - String!
|
URL of the image, which can be absolute or relative (how an URL is build is implemented in the backend of the shop, see IUrlGenerator ) |
width - Int
|
The width of this image in pixels, which is calculated when uploading the image in the back office It is possible that this value is not set (e.g. for product images from the product data import). |
Example
{
"alt": "abc123",
"boUrl": "xyz789",
"fileName": "xyz789",
"height": 123,
"imageRole": "CROPPED_IMAGE",
"name": "xyz789",
"rank": 123,
"title": "abc123",
"url": "abc123",
"width": 123
}
ImageAttribute
ImageListAttribute
ImageRole
Description
Role of an image
Values
Enum Value | Description |
---|---|
|
Cropped image |
|
Detail image |
|
Main image |
|
Brand logo |
|
Pattern image for variation selection |
|
Rear view image |
|
Zoom image |
Example
"CROPPED_IMAGE"
InformationEvent
Description
Information event
Fields
Input Field | Description |
---|---|
name - String!
|
The Payload (currently only 'evaluatesJavaScript' is used) Default: 'evaluatesJavaScript'. Default = "evaluatesJavaScript" |
Example
{"name": "abc123"}
InformativeBenefit
Description
An informative benefit
Example
{
"image": Image,
"title": "xyz789",
"type": "xyz789"
}
InformativeBenefitInfo
Description
Information about informative benefits
Example
{
"image": Image,
"promotion": Promotion,
"title": "xyz789",
"type": "xyz789"
}
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
InterestEvent
InternalLink
Description
Base type for an internal Link
Example
ArticleLink
InvalidGuestIdProblem
InvalidPaymentMethodProblem
Description
The selected payment method and the current cart are not compatible
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "xyz789"}
Item
Description
A shop item
Fields
Field Name | Description |
---|---|
id - ID!
|
The ID of this item |
inBasket - Boolean!
|
true if this item is in the basket at least once
|
onWishlist - Boolean!
|
true if this item is on the wishlist at least once
|
additionalImages - [Image]!
|
Additional Images of this item |
Arguments
|
|
assets - [Asset]!
|
Assets of this item for display on the product detail page |
availability - Availability!
|
Availability of this item |
badges - [Badge]!
|
Item badges |
color - ItemColor
|
The detailed and/or searchable color of the item Deprecated, use variations instead. No longer supported
|
documents - [Document]!
|
Documents of this item for display on the product detail page |
features - [ItemAttribute]!
|
List of all item features Item features are properties that are maintained on the item (e.g. length). |
image - Image
|
Image of this item for display on product lists |
images - [Image!]
|
The images of this item |
itemDiscount - ItemDiscount
|
Discounts that can be displayed early in the shop (e.g. on product lists or the product detail page) |
link - Link!
|
Link to this item |
oldPrice - Money
|
Strike price of this item |
price - Money
|
The current price of this item (promotion price or the default price if not found) |
product - Product!
|
The product to which the item belongs |
recommendations - ItemRecommendations!
|
Content based recommendations for the item |
Arguments
|
|
relations - [ProductRelations]!
|
Lists of products or items related to this item (e.g. for product recommendations) |
Arguments
|
|
rrpPrice - Money
|
The recommended retail price of this item |
seo - Seo!
|
SEO information of this item |
services - [ProductService]!
|
List of additional product services |
shortDescription - String
|
Item short description |
size - String
|
The size of this item Deprecated, use variations instead. No longer supported
|
sku - String!
|
The SKU of this item |
variations - [ItemAttribute]!
|
Attributes that constitute product variations (e.g. 'color') |
videos - [Video]!
|
Videos of this item for display on the product detail page |
Example
{
"id": "4",
"inBasket": true,
"onWishlist": true,
"additionalImages": [Image],
"assets": [Document],
"availability": Availability,
"badges": [Badge],
"color": ItemColor,
"documents": [Document],
"features": [ItemAttribute],
"image": Image,
"images": [Image],
"itemDiscount": ItemDiscount,
"link": Link,
"oldPrice": Money,
"price": Money,
"product": Product,
"recommendations": ItemRecommendations,
"relations": [ProductRelations],
"rrpPrice": Money,
"seo": Seo,
"services": [ProductService],
"shortDescription": "abc123",
"size": "xyz789",
"sku": "abc123",
"variations": [ItemAttribute],
"videos": [Video]
}
ItemAttribute
Description
Item attribute that constitutes product variations like size or color
Fields
Field Name | Description |
---|---|
displayName - String!
|
The display name of this attribute (e.g. 'color') If not defined, this is an empty string. |
displayValue - String!
|
The value of this attribute (e.g. 'green') |
name - String!
|
The name of this attribute (e.g. 'import:color') Deprecated, this will be deleted without replacement in the future. No longer supported |
Possible Types
ItemAttribute Types |
---|
Example
{
"displayName": "xyz789",
"displayValue": "xyz789",
"name": "abc123"
}
ItemColor
Description
The detailed color of the item
Fields
Field Name | Description |
---|---|
displayName - String!
|
The display name of this color (e.g. 'fuchsia' or 'ivory') |
searchColor - SearchColor
|
The corresponding search color |
Example
{
"displayName": "abc123",
"searchColor": SearchColor
}
ItemDiscount
Description
Discounts that are shown early in the shop (e.g. on a product list or a product detail page)
Fields
Field Name | Description |
---|---|
discountAmount - Money
|
Discount amount if discount is absolute |
discountPercent - BigDecimal
|
Percentage discount if discount is relative |
promotionsSavings - Money!
|
Savings compared to normal price |
Example
{
"discountAmount": Money,
"discountPercent": BigDecimal,
"promotionsSavings": Money
}
ItemRecommendations
ItemViewEvent
Description
Item view event
Example
{"categoryId": 4, "itemId": "4"}
JSON
Description
A JSON scalar
Example
{}
LandingPage
Description
Page maintained under 'Landing Pages' in the back office
A landing page is valid if content is maintained on it. This behavior can be changed by implementing a shop specific PageValidator
.
Fields
Field Name | Description |
---|---|
link - Link!
|
Link to this landing page |
metaTagDescription - String
|
The meta tag description for this page Deprecated, use seo instead. No longer supported
|
metaTagRobots - String
|
The meta tag robots for this page Deprecated, use seo instead. No longer supported
|
metaTagTitle - String
|
The meta tag title for this page Deprecated, use seo instead. No longer supported
|
name - String!
|
Name of this landing page |
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this page Such a parameter can be, for example, a teaser insertion. There can be different types of parameters, from simple text to a complex teaser. By default, the page parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#pageParameterWhitelist ). |
Arguments
|
|
raster - Raster
|
Raster of this page including all teasers |
seo - Seo!
|
SEO information of this page |
seoBoxText - String
|
HTML formatted SEO box text for this page Deprecated, use seo instead. No longer supported
|
seoThumbnail - Image
|
SEO thumbnail for this page Deprecated, use seo instead. No longer supported
|
Example
{
"link": Link,
"metaTagDescription": "abc123",
"metaTagRobots": "abc123",
"metaTagTitle": "abc123",
"name": "abc123",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "abc123",
"seoThumbnail": Image
}
LandingPageLink
Description
Link to a landing page
Example
{
"landingPageId": "4",
"originalPath": "abc123",
"url": "xyz789"
}
LastSearchTerm
Description
A single representation of an executed search
Example
{
"hits": 123,
"searchDate": "2007-12-03T10:15:30Z",
"searchTerm": "abc123"
}
LastSearchTerms
Description
A list of recently executed searches including the count
Fields
Field Name | Description |
---|---|
count - Int!
|
The number of searches the user recently executed |
searchTerms - [LastSearchTerm]!
|
The list of searches the user has recently executed |
Example
{"count": 987, "searchTerms": [LastSearchTerm]}
LastSeenItem
LastSeenItems
Description
A list of recently viewed items including the count
Fields
Field Name | Description |
---|---|
count - Int!
|
The number of items the user lastly viewed |
items - [LastSeenItem]!
|
The list of items the user lastly viewed |
Example
{"count": 123, "items": [LastSeenItem]}
LayerLink
Link
Description
A link that can point to a variety of resources (e.g. an external link, a link to a category, to an article or a shop page)
Fields
Field Name | Description |
---|---|
internalLink - InternalLink!
|
Internal representation of this link with some link-specific information |
linkId - ID
|
ID of link to create LinkInput |
linkType - LinkType!
|
Type of link to create LinkInput |
name - String
|
A name for this link, which can be set in the back office |
openLinkInNewWindow - Boolean!
|
Flag indicating whether link should be opened in a separate window |
parameters - [LinkParameter]!
|
List of parameters of this link that can be specified in the backoffice (e.g. as tracking parameters) These parameters can also be part of the URL of this resource. This depends on the shop implementation of the IUrlGenerator . |
title - String
|
A title for this link, which can be set in the back office |
url - String
|
URL of a resource, which can be absolute or relative (how an URL is build is implemented in the backend of the shop, see IUrlGenerator ) The URL can be null if the link is invalid (e.g. invalid external link or link to item no longer available). |
Arguments
|
Example
{
"internalLink": ArticleLink,
"linkId": 4,
"linkType": "ARTICLE",
"name": "abc123",
"openLinkInNewWindow": true,
"parameters": [LinkParameter],
"title": "xyz789",
"url": "abc123"
}
LinkAttribute
LinkInput
Description
Link input type that can be used to resolve different types of pages like maintained pages (e.g. homepage), landing pages, content tree pages (e.g. imprint)
Example
{"id": "4", "type": "ARTICLE"}
LinkListAttribute
Description
Backend type 'NamedLinkList' which is a list of links
Example
{
"links": [Link],
"name": "abc123"
}
LinkParameter
LinkType
Description
Parameter tuple of a Link that can be specified in the backoffice (e.g. as a tracking parameter)
Values
Enum Value | Description |
---|---|
|
Article link (link to a product or item) To build a LinkInputuse articleId` of ArticleLink as ID. |
|
Asset link To build a LinkInput use assetId of AssetLink as ID. |
|
Brand link To build a LinkInput use brandId of BrandLink as ID. |
|
Category link To build a LinkInput use categoryId of CategoryPageLink as ID. |
|
Content tree page link To build a LinkInput use contentTreeId of ContentTreeLink as ID. |
|
External link To build a LinkInput use url of ExternalLink as ID. |
|
Article link of an item To build a LinkInput use articleId (item ID) of ArticleLink as ID. |
|
Landing page link To build a LinkInput use landingPageId of LandingPageLink as ID. |
|
Layer link To build a LinkInput use layerPath of LayerLink as ID. |
|
Page link (used on maintained pages such as the homepage) To build a LinkInput use containerId of PageLink as ID. |
|
Article link of a product To build a LinkInput use articleId (product ID) of ArticleLink as ID. |
|
Search term link To build a LinkInput use searchTerm of SearchTermLink as ID. |
|
Search term group link To build a LinkInput use searchTerm of SearchTermGroupLink as ID. |
|
SEO term link To build a LinkInput use seoTerm of SeoTermLink as ID. |
|
Undefined link type |
Example
"ARTICLE"
LinkedBrandListAttribute
Description
Backend type 'LinkedBrandList', which is a list of product brands including links maintained in the back office
Fields
Field Name | Description |
---|---|
linkedBrands - [BrandListEntry]!
|
List of product brands including links |
name - String!
|
The name of this attribute |
Example
{
"linkedBrands": [BrandListEntry],
"name": "xyz789"
}
LinkedImage
Long
Description
A scalar representing Java's java.lang.Long
Example
{}
MaintainedPage
Description
Page maintained under 'Maintained Pages' in the back office, such as homepage
Fields
Field Name | Description |
---|---|
id - ID!
|
The ID of this maintained page |
metaTagDescription - String
|
The meta tag description for this page Deprecated, use seo instead. No longer supported
|
metaTagRobots - String
|
The meta tag robots for this page Deprecated, use seo instead. No longer supported
|
metaTagTitle - String
|
The meta tag title for this page Deprecated, use seo instead. No longer supported
|
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this page Such a parameter can be, for example, a teaser insertion. There can be different types of parameters, from simple text to a complex teaser. By default, the page parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#pageParameterWhitelist ). |
Arguments
|
|
raster - Raster
|
Raster of this page including all teasers |
seo - Seo!
|
SEO information of this page |
seoBoxText - String
|
HTML formatted SEO box text for this page Deprecated, use seo instead. No longer supported
|
seoThumbnail - Image
|
SEO thumbnail for this page Deprecated, use seo instead. No longer supported
|
Example
{
"id": 4,
"metaTagDescription": "xyz789",
"metaTagRobots": "abc123",
"metaTagTitle": "abc123",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "abc123",
"seoThumbnail": Image
}
MaintainedProductPage
Description
Page maintained under 'Maintained Product Pages' in the back office
It is possible to define a specific layout for a single product detail page or a list of product detail pages in the back office.
Fields
Field Name | Description |
---|---|
link - Link!
|
Link to this product page |
metaTagDescription - String
|
The meta tag description for this page No longer supported |
metaTagRobots - String
|
The meta tag robots for this page No longer supported |
metaTagTitle - String
|
The meta tag title for this page No longer supported |
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this page Such a parameter can be, for example, a teaser insertion. There can be different types of parameters, from simple text to a complex teaser. By default, the page parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#pageParameterWhitelist ). |
Arguments
|
|
raster - Raster
|
Raster of this page including all teasers |
seo - Seo!
|
SEO information of this page |
seoBoxText - String
|
HTML formatted SEO box text for this page No longer supported |
seoThumbnail - Image
|
SEO thumbnail for this page No longer supported |
Example
{
"link": Link,
"metaTagDescription": "abc123",
"metaTagRobots": "abc123",
"metaTagTitle": "xyz789",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "abc123",
"seoThumbnail": Image
}
MergeCartInput
Description
Information to merge two carts
Fields
Input Field | Description |
---|---|
currentCartId - String
|
Current cart ID, which refers to the guest's cart before login, which is a cart with a guest ID |
mergePositions - Boolean
|
Specifies how cart positions should be merged when the same item entry is present in both carts If If If there is an item A with quantity 2 and 3 in previous cart and current cart respectively. If set to If set to Note: This is only relevant for the "COMBINE" merge strategy. Default = |
mergeStrategy - MergeStrategy!
|
Merge strategy refers to how the current cart and previous cart should be merged |
previousCartId - String
|
ID of the previously persisted cart, which refers to the cart of the logged-in user |
Example
{
"currentCartId": "abc123",
"mergePositions": false,
"mergeStrategy": "COMBINE",
"previousCartId": "abc123"
}
MergeCartProblem
Description
Problem when merging two existing carts
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "abc123"}
MergeCartProblems
Description
An aggregation of problems occurred when merging two existing carts
Fields
Field Name | Description |
---|---|
problems - [MergeCartProblem]
|
List of problems encountered |
Example
{"problems": [MergeCartProblem]}
MergeCartResult
Description
Result type merging two carts
Types
Union Types |
---|
Example
MergeCartProblems
MergeCartSuccess
Description
Type for successfully merging two shopping carts
Fields
Field Name | Description |
---|---|
cart - Cart!
|
The merged cart. |
Example
{"cart": Cart}
MergeStrategy
Description
ProductLists (either wishlist or cart) can be merged based on one of the below strategies
The "previous" productList is the previously persisted productList relating to the logged-in user.
The "current" productList is the user's productList before login.
When the "current" and "previous" productList IDs are the same, then
a) if the ID is not null
, the "current" productList will be returned without modification
b) if the ID is null
, the user's active or default productList is returned, if any, otherwise NoValidCartFoundException/NoValidWishlistFoundException
is thrown
Assumption: A guest user can only have one cart and wishlist, which is default and active.
Values
Enum Value | Description |
---|---|
|
Combines the "previous" and the "current" productList into the "previous" productList, which is returned, and deletes the "current" productList If only the "previous" productList exists, the "previous" productList is returned. If only the "current" productList exists, this cart is set as the "previous" productList and returned. If the "current" productList and the "previous" productList do not exist, then it returns a) active or default productList of the logged-in user, if any b) c) If both carts have the same item entry, the merge is done based on the |
|
Deletes the "previous" productList and keeps the "current" productList and returns it If the "current" productList does not exist, then it returns a) active or default productList of the logged-in user, if any b) c) |
|
Deletes the "current" productList and keeps the "previous" productList and returns it If the "previous" productList does not exist, then it returns a) active or default productList of the logged-in user, if any b) c) |
Example
"COMBINE"
MergeWishlistInput
Description
Information to merge two wishlists
Fields
Input Field | Description |
---|---|
currentWishlistId - String
|
Current Wishlist ID, which refers to the guest's wishlist before login, which is a wishlist with a guest ID |
mergePositions - Boolean
|
Specifies how wishlist positions should be merged when the same item entry is present If If Example: If there is an item A with quantity 2 and 3 in previous and current wishlist respectively. If set to If set to Note: This is only relevant for the "COMBINE" merge strategy. Default = |
mergeStrategy - MergeStrategy!
|
Merge strategy refers to how the current wishlist and previous wishlist should be merged |
previousWishlistId - String
|
ID of the previously persisted wishlist, which refers to the wishlist of the logged-in user |
Example
{
"currentWishlistId": "abc123",
"mergePositions": true,
"mergeStrategy": "COMBINE",
"previousWishlistId": "abc123"
}
MergeWishlistProblem
Description
Problem when merging two existing wishlists
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "xyz789"}
MergeWishlistProblems
Description
An aggregation of problems occurred when merging two existing wishlists
Fields
Field Name | Description |
---|---|
problems - [MergeWishlistProblem]
|
List of problems encountered |
Example
{"problems": [MergeWishlistProblem]}
MergeWishlistResult
Description
Result type merging two wishlists
Types
Union Types |
---|
Example
MergeWishlistProblems
MergeWishlistSuccess
Description
Type for successfully merging two wishlists
Fields
Field Name | Description |
---|---|
wishlist - Wishlist!
|
The merged wishlist. |
Example
{"wishlist": Wishlist}
MetaTag
Money
Description
A monetary amount like '19.99 €'
Fields
Field Name | Description |
---|---|
amount - BigDecimal!
|
The amount as BigDecimal |
currencyCode - String!
|
The currency code compliant to ISO 4217 |
currencySymbol - String!
|
The currency symbol like '€' |
intAmount - Int!
|
The amount as Int (e.g. 995 instead of 9.95) |
precision - Int
|
The precision of the amount |
stringValue - String!
|
The amount value as String |
Example
{
"amount": BigDecimal,
"currencyCode": "xyz789",
"currencySymbol": "abc123",
"intAmount": 987,
"precision": 987,
"stringValue": "abc123"
}
NumberAttribute
Object
Description
An object scalar
Example
Object
Order
Description
An order
Fields
Field Name | Description |
---|---|
billingAddress - OrderBillingAddress
|
The billing address |
discountInfo - OrderDiscountInfo
|
Information on total discount amount and promotion details |
orderDate - String!
|
Order time |
orderLines - [OrderItem]!
|
All order lines |
orderNumber - String!
|
The order number |
paymentInfos - [OrderPaymentInfo]!
|
Payment details information |
shippingAddresses - [OrderShippingAddress]!
|
The shipping address |
shippingInfo - OrderShippingInfo
|
Detailed shipping information such as shipping cost, shipping method and tracking code The tracking code of an order is empty. To get the tracking code, see OrderShippingInfo of each OrderItem. |
status - String!
|
Current state of this order |
subTotal - Money!
|
The subtotal amount of this order (see subtotal of CartDetails) |
total - Money!
|
Total invoice amount of this order |
Example
{
"billingAddress": OrderBillingAddress,
"discountInfo": OrderDiscountInfo,
"orderDate": "xyz789",
"orderLines": [OrderItem],
"orderNumber": "abc123",
"paymentInfos": [OrderPaymentInfo],
"shippingAddresses": [OrderShippingAddress],
"shippingInfo": OrderShippingInfo,
"status": "xyz789",
"subTotal": Money,
"total": Money
}
OrderAddressValidationProblem
Description
Problems if the Address Input has invalid fields
Fields
Field Name | Description |
---|---|
message - String!
|
The failure reason to display with field information |
Example
{"message": "abc123"}
OrderBillingAddress
Description
A billing address
Fields
Field Name | Description |
---|---|
addition - String
|
The address additions |
city - String!
|
The city specified for this address |
company - String
|
The company specified for this address |
country - String!
|
The country code for this address |
email - String
|
The email |
firstname - String!
|
The first name of the customer |
lastname - String!
|
The last name of the customer |
number - String!
|
The street number for this address |
phone - String
|
The phone number |
postcode - String!
|
The postal code of this address |
salutation - String!
|
The salutation of the customer |
street - String!
|
The street name of this address |
title - String
|
The title of the customer |
Example
{
"addition": "xyz789",
"city": "abc123",
"company": "abc123",
"country": "abc123",
"email": "abc123",
"firstname": "xyz789",
"lastname": "abc123",
"number": "abc123",
"phone": "xyz789",
"postcode": "abc123",
"salutation": "xyz789",
"street": "xyz789",
"title": "abc123"
}
OrderDateRange
OrderDiscountInfo
Description
Information on total discount amount and promotion details
Fields
Field Name | Description |
---|---|
promotions - [OrderPromotion]!
|
Promotion related details like used code, name, description and type of promotion |
totalAmount - Money!
|
The total discount amount |
Example
{
"promotions": [OrderPromotion],
"totalAmount": Money
}
OrderEvent
Description
Order event
Fields
Input Field | Description |
---|---|
orderId - String!
|
The Order ID |
orderLines - [OrderLineInput!]!
|
All order lines of the order |
promotions - [PromotionInput!]
|
All used promotions |
totalPrice - Float!
|
Total price including shipping and discounts |
Example
{
"orderId": "xyz789",
"orderLines": [OrderLineInput],
"promotions": [PromotionInput],
"totalPrice": 987.65
}
OrderFilterInput
Description
Filters to select specific orders
The relationship between each filter criterion is a logical AND.
Fields
Input Field | Description |
---|---|
articleName - String
|
List of article names There must be at least one item for each name in an order. |
dateRange - OrderDateRange
|
The time interval in which an order was placed If no interval is set, orders from the last 6 months are fetched (this value can be changed in the backend, see OmsFilterCriteriaConverter ). |
orderNumbers - [String]
|
Order number list An order must match at least one number. |
skus - [String]
|
List of SKUs There must be at least one item for each SKU in an order. |
status - String
|
The processing status of an order |
Example
{
"articleName": "xyz789",
"dateRange": OrderDateRange,
"orderNumbers": ["xyz789"],
"skus": ["abc123"],
"status": "xyz789"
}
OrderItem
Description
A detailed order line
Fields
Field Name | Description |
---|---|
discountInfo - Money!
|
Amount of discount applied for this position |
images - [OrderItemImage]!
|
A list of images of the ordered item (can be empty, e.g. if the item is no longer sold) |
itemId - String!
|
The ID of the ordered item |
name - String!
|
The Name of the ordered item |
quantity - Int!
|
The quantity of this position |
shippingInfo - OrderShippingInfo
|
Detailed shipping information such as shipping cost, shipping method and tracking code |
sku - String!
|
The SkU of the ordered item |
status - String
|
The status of the ordered item |
totalPrice - Money!
|
The total price of this position |
unitPrice - Money!
|
The unit price of the ordered item |
Example
{
"discountInfo": Money,
"images": [OrderItemImage],
"itemId": "xyz789",
"name": "xyz789",
"quantity": 123,
"shippingInfo": OrderShippingInfo,
"sku": "abc123",
"status": "xyz789",
"totalPrice": Money,
"unitPrice": Money
}
OrderItemImage
Description
An image of an ordered item
Fields
Field Name | Description |
---|---|
url - String
|
URL of the image |
Example
{"url": "xyz789"}
OrderLineInput
Description
Single order line
Fields
Input Field | Description |
---|---|
categoryId - ID
|
The ID of best matching product category |
itemId - ID!
|
The ID of the ordered item |
name - String!
|
Name of ordered item or product |
price - Float!
|
Total price of this order line |
quantity - Int!
|
Number of these items ordered |
sku - String!
|
SKU of the ordered item |
Example
{
"categoryId": 4,
"itemId": 4,
"name": "abc123",
"price": 987.65,
"quantity": 123,
"sku": "abc123"
}
OrderListResult
OrderPagingInput
Description
Limit, offset and sort to list orders page by page
Fields
Input Field | Description |
---|---|
page - Int!
|
Index of current page (beginning with 1). Default = 1 |
pageSize - Int!
|
Number of orders per page. Default = 10 |
sortBy - OrderSortBy!
|
Sorting to list orders. Default = ORDER_DATE |
sortDirection - OrderSortDirection!
|
The sort order. Default = DESC |
Example
{"page": 123, "pageSize": 987, "sortBy": "ORDER_DATE", "sortDirection": "ASC"}
OrderPaymentInfo
Description
Payment details information
Fields
Field Name | Description |
---|---|
amount - Money
|
The amount already paid |
method - String
|
The payment method |
paymentDate - String
|
The payment date |
paymentId - String
|
The payment ID of an order |
referenceNumber - String
|
The payment reference number |
status - String
|
The payment status |
transactionId - String
|
The transaction ID |
type - String
|
The payment type |
Example
{
"amount": Money,
"method": "abc123",
"paymentDate": "xyz789",
"paymentId": "abc123",
"referenceNumber": "abc123",
"status": "xyz789",
"transactionId": "abc123",
"type": "xyz789"
}
OrderPromotion
Description
Details of a promotion used for an order
Example
{
"description": "abc123",
"promotionCode": "xyz789",
"promotionName": "abc123",
"promotionType": "xyz789"
}
OrderShippingAddress
Description
A shipping address
Fields
Field Name | Description |
---|---|
addition - String
|
The address additions |
city - String!
|
The city specified for this address |
company - String
|
The company specified for this address |
country - String!
|
The country code for this address |
email - String
|
The email |
firstname - String!
|
The first name of the customer |
lastname - String!
|
The last name of the customer |
number - String!
|
The street number for this address |
phone - String
|
The phone number |
postcode - String!
|
The postal code of this address |
salutation - String!
|
The salutation of the customer |
street - String!
|
The street name of this address |
title - String
|
The title of the customer |
Example
{
"addition": "xyz789",
"city": "abc123",
"company": "xyz789",
"country": "xyz789",
"email": "abc123",
"firstname": "abc123",
"lastname": "abc123",
"number": "abc123",
"phone": "xyz789",
"postcode": "abc123",
"salutation": "abc123",
"street": "abc123",
"title": "xyz789"
}
OrderShippingInfo
Example
{
"shippingCost": Money,
"shippingMethod": "abc123",
"trackingCode": "abc123"
}
OrderSortBy
Description
Available sort orders
Values
Enum Value | Description |
---|---|
|
Date an order was submitted |
|
Used payment method |
|
Current status of an order |
|
Total invoice amount of an order |
Example
"ORDER_DATE"
OrderSortDirection
Description
Sort orders
Values
Enum Value | Description |
---|---|
|
Ascending order |
|
Descending order |
Example
"ASC"
OrderSubmitProblem
Description
Problem when submitting an order
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "abc123"}
OrderSubmitProblems
Description
An aggregation of problems occurred when submitting an order
Fields
Field Name | Description |
---|---|
problems - [OrderSubmitProblem]
|
List of problems encountered |
Example
{"problems": [OrderSubmitProblem]}
OrderSubmitResult
Description
Result type when submitting an order
Types
Union Types |
---|
Example
OrderSubmitProblems
OrderSubmitSuccess
Page
Description
Basic type for a shop page that contains most of the fields necessary to display a page
Fields
Field Name | Description |
---|---|
metaTagDescription - String
|
The meta tag description for this page Deprecated, use seo instead. No longer supported
|
metaTagRobots - String
|
The meta tag robots for this page Deprecated, use seo instead. No longer supported
|
metaTagTitle - String
|
The meta tag title for this page Deprecated, use seo instead. No longer supported
|
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this page Such a parameter can be, for example, a teaser insertion. There can be different types of parameters, from simple text to a complex teaser. By default, the page parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#pageParameterWhitelist ). |
Arguments
|
|
raster - Raster
|
Raster of this page including all teasers |
seo - Seo!
|
SEO information of this page |
seoBoxText - String
|
HTML formatted SEO box text for this page Deprecated, use seo instead. No longer supported
|
seoThumbnail - Image
|
SEO thumbnail for this page Deprecated, use seo instead. No longer supported
|
Possible Types
Page Types |
---|
Example
{
"metaTagDescription": "xyz789",
"metaTagRobots": "xyz789",
"metaTagTitle": "abc123",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "xyz789",
"seoThumbnail": Image
}
PageLink
Description
Link to a maintained page like homepage
Example
{"containerId": 4, "url": "xyz789"}
PageSearchResult
Description
A SearchTermGroupPage is maintained for the search query and should be displayed
Fields
Field Name | Description |
---|---|
page - Page!
|
Typically, this is a maintained SearchTermGroupPage |
searchResult - ProductSearchResult
|
Optional search result By default, no search result is returned. The search result can be activated in the backend (see SearchProvider#allowSearchOnSearchTermGroupPage ). |
Example
{
"page": Page,
"searchResult": ProductSearchResult
}
Paging
Description
The paging information
Example
{"limit": 123, "offset": 987}
ParameterInput
Description
Key/values parameter (e.g. used for request parameters)
Fields
Input Field | Description |
---|---|
name - String!
|
Name of parameter |
values - [String!]!
|
Values of parameter |
Example
{
"name": "xyz789",
"values": ["abc123"]
}
Payment
PaymentMethod
Description
A payment method
Fields
Field Name | Description |
---|---|
code - String!
|
The payment method code used as methodCode in PaymentMethodInput |
interfaceId - String!
|
The ID of the payment method interface used as interfaceId in PaymentMethodInput |
label - String!
|
The name of this payment method to display |
Example
{
"code": "xyz789",
"interfaceId": "abc123",
"label": "abc123"
}
PaymentMethodInput
PercentBenefit
Description
Benefit of a percentage discount
Example
{
"cap": Money,
"image": Image,
"percentage": 987.65,
"title": "abc123"
}
PercentOnCheapestItemBenefit
Description
Benefit of a percentage discount on the cheapest item
Example
{
"image": Image,
"singleItemPercentage": 123.45,
"title": "abc123"
}
PercentOnMostExpensiveItemBenefit
Description
Benefit of a percentage discount on the most expensive item
Example
{
"image": Image,
"singleItemPercentage": 123.45,
"title": "abc123"
}
Phone
PhoneInput
PhoneType
Description
Available phone types
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"FAX"
PositionOperation
Description
The possible operations related to the position of a cart
As long as there are no unions of input types, we need to define inputs that behave like unions.
Therefore, every operation on this input is exclusive. This means that only one operation can be set at a time.
Fields
Input Field | Description |
---|---|
addPosition - CreatePositionInput
|
Adds a new position |
addPromoItem - AddPromoItemOperation
|
Adds a promotion item |
removePosition - DeletePosition
|
Removes a position |
restorePosition - RestorePosition
|
Restores a deleted position |
updatePosition - UpdatePositionInput
|
Updates a position |
Example
{
"addPosition": CreatePositionInput,
"addPromoItem": AddPromoItemOperation,
"removePosition": DeletePosition,
"restorePosition": RestorePosition,
"updatePosition": UpdatePositionInput
}
PrivacyConsentInput
Description
The user's consent for tracking
Example
{"marketing": false, "other": false, "tracking": false}
Product
Description
A shop product
Fields
Field Name | Description |
---|---|
id - ID
|
The ID of this product |
additionalImages - [Image]!
|
Additional Images of this product |
Arguments
|
|
assets - [Asset]!
|
Assets of this item for display on the product detail page |
bestVariation - Item
|
The preferred item of this product |
brand - Brand
|
The brand of this product |
breadcrumb - [Category]!
|
Category path of this product |
Arguments
|
|
categories - [Category]!
|
List of all categories to which the product belongs |
category - Category
|
The best matching category of this product |
documents - [Document]!
|
Documents of this product for display on the product detail page |
features - [ProductFeature]!
|
List of all product features Product features are properties that are maintained on the product (e.g. material). |
globalContent - Raster
|
Global content maintained for all product detail pages |
image - Image
|
Image of this product for display on product lists |
link - Link!
|
Link to this product |
longDescription - String
|
Product long description |
Arguments
|
|
materials - [String!]!
|
The material composition of this product |
name - String!
|
The name of this product |
page - MaintainedProductPage
|
Product detail page maintained in the back office for this product |
recommendations - ProductRecommendations!
|
Recommendations for this product based on the selected strategy |
Arguments
|
|
reviews - Reviews!
|
List of all reviews for this product |
sellingPoints - [String!]!
|
List of selling points for this product |
seo - Seo!
|
SEO information of this product |
shortDescription - String
|
Product short description |
variations - [Item]!
|
The items of this product The default supported sorts are: 'ID' (ascending), 'PRICE' (ascending) AND 'NONE' Default: 'NONE' |
Arguments
|
|
vat - String
|
The value added tax for this product |
videos - [Video]!
|
Videos of this product for display on the product detail page |
Example
{
"id": 4,
"additionalImages": [Image],
"assets": [Document],
"bestVariation": Item,
"brand": Brand,
"breadcrumb": [Category],
"categories": [Category],
"category": Category,
"documents": [Document],
"features": [ProductFeature],
"globalContent": Raster,
"image": Image,
"link": Link,
"longDescription": "abc123",
"materials": ["xyz789"],
"name": "abc123",
"page": MaintainedProductPage,
"recommendations": ProductRecommendations,
"reviews": Reviews,
"sellingPoints": ["xyz789"],
"seo": Seo,
"shortDescription": "abc123",
"variations": [Item],
"vat": "abc123",
"videos": [Video]
}
ProductBox
Description
A product with a list of its filtered items
Example
{
"item": Item,
"items": [Item],
"product": Product
}
ProductFeature
Fields
Field Name | Description |
---|---|
sequenceNo - Int
|
Sequence number to sort this attribute into a list of attributes |
Possible Types
ProductFeature Types |
---|
Example
{"sequenceNo": 987}
ProductList
ProductListAttribute
Description
Backend types 'Product', 'ProductList', 'ProductListUnordered', 'HeroProductList' and 'AntiHeroProductList' which are lists of products and items
Fields
Field Name | Description |
---|---|
name - String!
|
The name of this attribute |
searchResultEntries - [SearchResultEntry]!
|
Product list (with all relevant items, e.g. if the product list is the result of a search for "red") |
Example
{
"name": "abc123",
"searchResultEntries": [SearchResultEntry]
}
ProductRecommendationStrategy
Description
Available strategies for product recommendations
Values
Enum Value | Description |
---|---|
|
Strategy based on product/item images |
|
Strategy based on products in users' shopping carts |
|
Strategy based on the product of orders from users |
|
Strategy based on product views from users |
Example
"AI_IMAGE"
ProductRecommendations
Description
Result type for product recommendations
Fields
Field Name | Description |
---|---|
products - [Product]!
|
List of recommended products |
totalCount - Int!
|
Total count of recommended products |
Example
{"products": [Product], "totalCount": 123}
ProductRelation
Description
Relation between an item and a product or item (including attributes)
Fields
Field Name | Description |
---|---|
attributes - [RelationAttribute]!
|
List of attributes of this relation |
relation - RelatedProduct!
|
The related product or item |
Example
{
"attributes": [RelationAttribute],
"relation": Item
}
ProductRelations
Description
Relation between an item and a list of products or items (including attributes)
Fields
Field Name | Description |
---|---|
displayName - String
|
Display name of this relation (e.g. 'Accessory products') |
relations - [ProductRelation]!
|
List of related products or items |
totalCount - Int!
|
Total number of related products or items |
Example
{
"displayName": "xyz789",
"relations": [ProductRelation],
"totalCount": 987
}
ProductSearchResult
Description
The search result with a list of the products and items found
Fields
Field Name | Description |
---|---|
content - ContentSearchResult!
|
Returns a list of the entries found for the content search. The content search returns matches in searchable content with title, text of the content and link, if available. For example, a HTML Teaser can be configured to be searchable. |
entries - [SearchResultEntry]!
|
List of search hits |
filters - [Filter]!
|
List of available filters for further filtering |
groupBy - [String!]!
|
Names of product variations this search result is grouped by (see name of ItemAttribute and variations of Item) For example, for an item-based search result grouped by the color of each item, this returns [import:color] . For a product-based search result, this list is empty. These values can be used to highlight or hide the corresponding values of the product variations. Deprecated, the information on how the search result was grouped can now be found in the SearchItem. No longer supported |
minPrice - String!
|
The minimum price for all items of a search hit |
selectedCategory - SearchResultCategory
|
Category tree for further filtering by category |
Arguments
|
|
seo - Seo!
|
SEO information of this search result |
sorts - [SearchSort]!
|
List of available sorts |
teaserInsertions - [TeaserAttribute]!
|
24 teasers to be displayed within the product list The returned list may contain null if no teaser is maintained for a position. |
totalCount - Int!
|
Total number of search hits |
Example
{
"content": ContentSearchResult,
"entries": [SearchResultEntry],
"filters": [Filter],
"groupBy": ["abc123"],
"minPrice": "xyz789",
"selectedCategory": SearchResultCategory,
"seo": Seo,
"sorts": [SearchSort],
"teaserInsertions": [TeaserAttribute],
"totalCount": 987
}
ProductService
Description
Description of an additional product service
Example
{
"html": "abc123",
"id": "xyz789",
"value": "xyz789"
}
ProductSourceInput
Description
Possible values for the source when adding a product to the cart or wishlist
Values
Enum Value | Description |
---|---|
|
Product was added from cart |
|
Product was added from direct order |
|
Product was added from wishlist |
|
Product was added from product detail page |
|
Product was added from quick view |
|
Fallback if source unknown |
Example
"BASKET"
ProductSuggest
Description
Product suggestion(s) (e.g. 'Nike Air Force' for 'forc')
Fields
Field Name | Description |
---|---|
match - String!
|
Product string that matches on query string (e.g. 'Nike Air Force' for 'forc') |
products - [Product]!
|
Suggested products |
Arguments
|
Example
{
"match": "xyz789",
"products": [Product]
}
ProductViewEvent
Description
Product view event
Example
{"categoryId": 4, "itemId": 4}
PromoItem
Description
Types of available promotion item types
Types
Union Types |
---|
Example
FreeAddonsInfo
Promotion
Description
A shop promotion
A promotion contains a list of benefits that are applied to a cart position or the entire cart. Available benefit types are:
Example
{
"benefits": [Benefit],
"description": "abc123",
"id": "4",
"name": "abc123"
}
PromotionInput
RangeDoubleFilter
Description
Range filter to filter by double values
Fields
Field Name | Description |
---|---|
displayName - String!
|
The name of this filter to display |
id - ID!
|
Filter ID which is used in RangeFilterInput as id |
max - Float!
|
Highest value in result set after all other filters have been applied |
maxSelected - Float!
|
Currently applied upper bound (equal to max if no max value was selected) |
min - Float!
|
Lowest value in result set after all other filters have been applied |
minSelected - Float!
|
Currently applied lower bound (equal to min if no min value was selected) |
unit - String
|
Unit like "cm" or "kg" |
Example
{
"displayName": "xyz789",
"id": "4",
"max": 987.65,
"maxSelected": 123.45,
"min": 987.65,
"minSelected": 123.45,
"unit": "abc123"
}
RangeFilterInput
RangePriceFilter
Description
Range filter to filter by price
Fields
Field Name | Description |
---|---|
count - Int!
|
Number of search hits in selected range after all other filters have been applied |
displayName - String!
|
The name of this filter to display |
id - ID!
|
Filter ID which is used in RangeFilterInput as id |
max - Money!
|
Highest price in result set after all other filters have been applied |
maxSelected - Money!
|
Currently applied upper bound (equal to max if no price filter is set) |
min - Money!
|
Lowest price in result set after all other filters have been applied |
minSelected - Money!
|
Currently applied lower bound (equal to min if no price filter is set) |
percentileBoundaries - [Money]!
|
Selectable prices between min and max |
Example
{
"count": 987,
"displayName": "xyz789",
"id": 4,
"max": Money,
"maxSelected": Money,
"min": Money,
"minSelected": Money,
"percentileBoundaries": [Money]
}
Raster
Description
Raster used on pages to display teasers
Fields
Field Name | Description |
---|---|
elements - [RasterElement]!
|
All raster elements with maintained content |
Arguments
|
|
totalHeight - Int!
|
Total height of raster (number of rows excluding empty rows at end of raster) |
totalWidth - Int!
|
Total width of raster (number of columns including empty columns at end of raster) |
Example
{
"elements": [RasterElement],
"totalHeight": 123,
"totalWidth": 987
}
RasterElement
Description
Raster element with position and teaser content
Fields
Field Name | Description |
---|---|
column - Int!
|
Index of starting column (0 for first column) |
height - Int!
|
The height as number of rows |
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this raster element By default, the raster element parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#rasterElementParameterWhitelist ). |
Arguments
|
|
row - Int!
|
Index of starting row (0 for first row) |
teaser - TeaserAttribute
|
Content of this element (not set if teaser is not supported by API) |
tracking - String
|
Additional tracking information |
width - Int!
|
The width as number of columns |
Example
{
"column": 987,
"height": 123,
"parameters": [ContentAttribute],
"row": 987,
"teaser": TeaserAttribute,
"tracking": "xyz789",
"width": 987
}
RasterElementSort
Description
Sorting of raster elements
Fields
Input Field | Description |
---|---|
sortOrder - SortOrder!
|
Sort order of raster elements Default: ascending. Default = ASC |
sortType - RasterElementSortType!
|
Sort type of raster elements Default: by row (first row 0 / column 0, then row 0 / column 1, ..., row 1 / column 0, ...). Default = ROW |
Example
{"sortOrder": "ASC", "sortType": "COLUMN"}
RasterElementSortType
Description
Sorting types for raster elements
Values
Enum Value | Description |
---|---|
|
Elements are sorted by column (elements with column == 0 first) |
|
Elements are sorted by row (elements with row == 0 first) |
Example
"COLUMN"
Rating
Description
Available ratings
Values
Enum Value | Description |
---|---|
|
5 'stars' rating |
|
4 'stars' rating |
|
1 'star' rating |
|
3 'stars' rating |
|
2 'stars' rating |
Example
"FIVE"
RatingFilter
Description
Search filter to search for products with user ratings
Fields
Field Name | Description |
---|---|
displayName - String!
|
The name of this filter to display |
id - ID!
|
Filter ID which is used in EnumFilterInput as id |
ratingFilterValues - [RatingFilterValue]!
|
Filter value to filter by user rating |
Example
{
"displayName": "xyz789",
"id": "4",
"ratingFilterValues": [RatingFilterValue]
}
RatingFilterValue
Description
Filter value to filter by rating
A filter on TWO
'stars' filters the search results to all products with a rating of at least TWO
'stars'.
Fields
Field Name | Description |
---|---|
count - Int
|
Number of search hits when restricted to this value after all other filters have been applied |
displayValue - String
|
The name of this filter value to display |
rating - Rating!
|
Value of the RatingFilter which is used in EnumFilterInput as values Use the string presentation of this value as 'values' in EnumFilterInput. |
selected - Boolean
|
true if used in current search
|
Example
{
"count": 987,
"displayValue": "xyz789",
"rating": "FIVE",
"selected": false
}
RecommendationPaging
Description
Limit and offset for a list of recommendations
Fields
Input Field | Description |
---|---|
limit - Int!
|
The number of recommendations per page Default: 100. Default = 100 |
maxLimit - Int
|
Maximal number of recommendations to request By default this is offset + limit . |
offset - Int!
|
The starting position in the recommendation list Example: To show the entries with index 15 to 24, set offset to 15 and limit to 10. Default: 0. Default = 0 |
Example
{"limit": 123, "maxLimit": 123, "offset": 123}
Redirect
Description
Redirect information
Fields
Field Name | Description |
---|---|
responseCode - Int!
|
This code is 301 (indicating that the resource has permanently moved to a new location) or 302 (indicating that the resource reside temporarily under a different URI) |
url - String!
|
The redirect URL, which can be absolute or relative (depending on how it was maintained in the back office) |
Example
{"responseCode": 123, "url": "abc123"}
RedirectSearchResult
Description
The search result is not a list of products and articles, but a specific page should be displayed
Fields
Field Name | Description |
---|---|
link - Link!
|
Link to resource to be displayed Typically, it is the product detail page if there was only one search hit, or a redirect to a maintained ContentTreePage such as the imprint. |
Example
{"link": Link}
RegistrationTypeInput
Description
User types
Values
Enum Value | Description |
---|---|
|
User is a guest user |
|
User is a registered user |
Example
"GUEST"
RelatedProduct
RelationAttribute
Description
An attribute of a relation
Fields
Field Name | Description |
---|---|
displayName - String
|
Display name of this attribute (e.g. 'size') |
values - [BaseValue]!
|
List of attribute values |
Example
{
"displayName": "xyz789",
"values": [BaseValue]
}
RelationsPaging
Description
The paging information for product relations
Example
{"limit": 987, "offset": 987}
RemoveAttribute
Description
Operation to remove a attribute from a cart
Fields
Input Field | Description |
---|---|
name - String!
|
The name of the attribute to remove |
Example
{"name": "abc123"}
RemoveFromBasketEvent
Description
Remove from basket event
Fields
Input Field | Description |
---|---|
itemId - ID!
|
The ID of the removed item |
Example
{"itemId": "4"}
RemoveFromWishlistEvent
Description
Remove from wishlist event
Fields
Input Field | Description |
---|---|
itemId - ID!
|
The ID of the removed item |
Example
{"itemId": 4}
ResolvedLink
Fields
Field Name | Description |
---|---|
linkId - ID
|
ID of link to create LinkInput This can be empty if the type of this link cannot be determined. |
linkType - LinkType
|
Type of link to create LinkInput This can be empty if the type of this link cannot be determined. |
responseCode - Int
|
This code is 301 (indicating that the resource has permanently moved to a new location), 302 (indicating that the resource reside temporarily under a different URI) If it is not a redirect, the response code is empty. |
url - String
|
The resolved URL The URL can be null if the link is invalid (e.g. invalid external link or link to item no longer available). |
Example
{
"linkId": 4,
"linkType": "ARTICLE",
"responseCode": 987,
"url": "abc123"
}
RestorePosition
Description
Operation to restore a deleted position
Fields
Input Field | Description |
---|---|
positionId - ID!
|
The ID of the deleted position to be restored |
Example
{"positionId": "4"}
Review
Description
Detailed review of a product
Fields
Field Name | Description |
---|---|
author - String!
|
The author of this review |
helpfulCount - Int!
|
'Review is helpful' counter |
id - ID!
|
The ID of this review |
message - String!
|
The text of this review |
notHelpfulCount - Int!
|
'Review is not helpful' counter |
rating - Int!
|
The rating of this review |
title - String!
|
The title of this review |
Example
{
"author": "xyz789",
"helpfulCount": 987,
"id": 4,
"message": "xyz789",
"notHelpfulCount": 123,
"rating": 123,
"title": "xyz789"
}
Reviews
Description
All reviews of a product
Fields
Field Name | Description |
---|---|
average - Float!
|
Average rating of a product (0 if there are no reviews) |
bestRating - Int!
|
Best rating of a product (0 if there are no reviews) |
count - Int!
|
Total number of reviews of a product |
reviews - [Review]!
|
List of all reviews |
worstRating - Int!
|
Worst rating of a product (0 if there are no reviews) |
Example
{
"average": 123.45,
"bestRating": 123,
"count": 123,
"reviews": [Review],
"worstRating": 123
}
SEOTermLink
Salutation
SearchColor
Description
The broad color of an item
Fields
Field Name | Description |
---|---|
displayName - String!
|
The display name of this color (e.g. 'red' or 'black') |
Example
{"displayName": "abc123"}
SearchEvent
Description
Search event
Fields
Input Field | Description |
---|---|
query - String!
|
Term used for the search |
results - [SearchResultInput!]!
|
Top 10 search results |
total - Int!
|
Number of search hits |
Example
{
"query": "xyz789",
"results": [SearchResultInput],
"total": 123
}
SearchFilter
Description
Search query including product/item based attribute filters
Fields
Input Field | Description |
---|---|
byUser - Boolean!
|
If set to true , the search was performed by a user For example, this parameter should remain false when clicking on a teaser that triggers a search. Default: false . Default = false |
category - ID
|
Limits the search to a category |
enumFilters - [EnumFilterInput!]!
|
Specifies filters that operate on discrete values and computes an intersection of all specified filters The available filters can be found by execute a search without any filter set (see field filters in ProductSearchResult). Default = [] |
rangeFilters - [RangeFilterInput!]!
|
Specifies filters that operate on range of numerical values and computes an intersection of all specified filters The available filters can be found by execute a search without any filter set (see field filters in ProductSearchResult). Default = [] |
searchTerm - String
|
Term to search for products and items Either a search term or a category or both must be specified for a search. |
Example
{
"byUser": false,
"category": 4,
"enumFilters": [EnumFilterInput],
"rangeFilters": [RangeFilterInput],
"searchTerm": "xyz789"
}
SearchFilterEvent
Description
Search filter event
Fields
Input Field | Description |
---|---|
filters - [EnumFilterInput!]!
|
List of filters used by the user (except range/price filters) |
query - String!
|
Term used for the search |
Example
{
"filters": [EnumFilterInput],
"query": "xyz789"
}
SearchItem
Description
Item that is the result of a search (e.g. a red shoe when searching for "nike red")
In addition to the item found, this SearchItem also contains the information on which item attributes the search was grouped by.
Fields
Field Name | Description |
---|---|
groupBy - [ItemAttribute]!
|
The item variations by which the search result is grouped (see 'variations' of Item) These values can be used, for example, to highlight these variations. For a product-based search result, this list is empty. |
item - Item!
|
The found item |
variations - [ItemAttribute]!
|
The item variations by which a search result is not grouped For a product-based search result, this list is equal to variations of the item. |
Example
{
"groupBy": [ItemAttribute],
"item": Item,
"variations": [ItemAttribute]
}
SearchPaging
Description
Limit, offset and sort to list a search result
Fields
Input Field | Description |
---|---|
limit - Int
|
The number of entries per page The default value is 100 only if no default value is configured in the back office. |
offset - Int!
|
The starting position in the search result list Example: To show the entries with index 15 to 24, set offset to 15 and limit to 10. Default: 0. Default = 0 |
sortBy - String
|
Sorting defined by the shop (e.g. 'price') The available sorts can be found by execute a search without sortBy set (see field sorts in ProductSearchResult). |
Example
{
"limit": 123,
"offset": 987,
"sortBy": "abc123"
}
SearchResult
Description
Types of different search result types
Types
Union Types |
---|
Example
PageSearchResult
SearchResultCategory
Description
Category tree showing the number of search hits in each category
Fields
Field Name | Description |
---|---|
category - Category
|
Product category (initially the category that was filtered by) |
children - [SearchResultCategory]!
|
Valid child categories of category If category is not set or is the root category, these are the top-level categories. |
count - Int!
|
Total number of search hits in category |
Example
{
"category": Category,
"children": [SearchResultCategory],
"count": 987
}
SearchResultEntry
Description
Single search hit
Fields
Field Name | Description |
---|---|
antiHeroArticle - Boolean!
|
true if the search hit is an "anti-hero" article
|
bestItem - SearchItem!
|
The best Item calculated by the Best Item Comparator of the searchItems Normally has the best price depending on how the comparator is implemented in the Shop |
heroArticle - Boolean!
|
true if the search hit is a "hero" article that can be promoted
|
items - [Item]!
|
Matching items of the product, which may be a subset of all items of the product Deprecated, use searchItems instead. No longer supported
|
product - Product!
|
Matching product |
searchItems - [SearchItem]!
|
Matching items of the product, which may be a subset of all items of the product A SearchItem also contains information about which attributes were used to group the items when searching. |
Example
{
"antiHeroArticle": false,
"bestItem": SearchItem,
"heroArticle": true,
"items": [Item],
"product": Product,
"searchItems": [SearchItem]
}
SearchResultInput
SearchSort
Description
Available sorting
Fields
Field Name | Description |
---|---|
displayName - String!
|
The name of this sorting to display |
name - String!
|
The name of this sorting used as sortBy in SearchPaging |
selected - Boolean!
|
true if this sorting is the default
|
Example
{
"displayName": "xyz789",
"name": "abc123",
"selected": true
}
SearchSuggest
Description
Result of search suggestion query containing different types of suggestions
Fields
Field Name | Description |
---|---|
brandSuggests - [BrandSuggest]!
|
Suggested brands where the query string is at the beginning of a word of the brand name |
categorySearchSuggests - [CategorySearchSuggest]!
|
Suggested search terms within a category where the query string is at the beginning of a word of the search term |
categorySuggests - [CategorySuggest]!
|
Suggested categories where the query string is at the beginning of a word of the category name |
productSuggests - [ProductSuggest]!
|
Suggested products where the query string is at the beginning of a word of the product name In the back office it is possible to index more fields of a product than just the name (e.g. short description or SKU). |
topSearchSuggests - [TopSearchSuggest]!
|
Suggested search terms where the query string is at the beginning of a word of the search term |
Example
{
"brandSuggests": [BrandSuggest],
"categorySearchSuggests": [CategorySearchSuggest],
"categorySuggests": [CategorySuggest],
"productSuggests": [ProductSuggest],
"topSearchSuggests": [TopSearchSuggest]
}
SearchTermGroupLink
Description
Link to a group of search terms
Fields
Field Name | Description |
---|---|
allSearchTerms - [String!]!
|
All search terms that belong to the same group as the search term |
searchTerm - String!
|
A search term from the search term group (used as ID to build LinkInput) |
Example
{
"allSearchTerms": ["xyz789"],
"searchTerm": "xyz789"
}
SearchTermGroupPage
Description
Page maintained under 'Search term groups' in the back office
It is possible to define a specific layout for a search term group in the back office.
Fields
Field Name | Description |
---|---|
link - Link!
|
Link to this search page |
metaTagDescription - String
|
The meta tag description for this page No longer supported |
metaTagRobots - String
|
The meta tag robots for this page No longer supported |
metaTagTitle - String
|
The meta tag title for this page No longer supported |
parameters - [ContentAttribute]!
|
Additional shop specific parameters of this page Such a parameter can be, for example, a teaser insertion. There can be different types of parameters, from simple text to a complex teaser. By default, the page parameters are disabled and need to be enabled in the backend (see ShopApiConfigurer#pageParameterWhitelist ). |
Arguments
|
|
raster - Raster
|
Raster of this page including all teasers |
seo - Seo!
|
SEO information of this page |
seoBoxText - String
|
HTML formatted SEO box text for this page No longer supported |
seoThumbnail - Image
|
SEO thumbnail for this page No longer supported |
Example
{
"link": Link,
"metaTagDescription": "xyz789",
"metaTagRobots": "xyz789",
"metaTagTitle": "abc123",
"parameters": [ContentAttribute],
"raster": Raster,
"seo": Seo,
"seoBoxText": "xyz789",
"seoThumbnail": Image
}
SearchTermLink
SearchTermRecommendations
Description
Result type for search term recommendations
Fields
Field Name | Description |
---|---|
searchTerms - [String!]!
|
List of recommended search terms |
totalCount - Int!
|
Total count of recommended search terms |
Example
{
"searchTerms": ["abc123"],
"totalCount": 987
}
Seo
Description
SEO information of a page
Fields
Field Name | Description |
---|---|
canonicalUrl - String
|
The SEO main term This is set for a category whose name is a SEO main term from another category. |
headline - String
|
The headline as it can be maintained in the backoffice |
hreflang - [Hreflang]!
|
URLs of other versions of this page in different languages |
metaTags - [MetaTag]!
|
" List of meta tags (e.g. robots ) |
seoBoxText - String
|
HTML formatted SEO box text |
title - String
|
The meta tag title |
Example
{
"canonicalUrl": "xyz789",
"headline": "xyz789",
"hreflang": [Hreflang],
"metaTags": [MetaTag],
"seoBoxText": "xyz789",
"title": "abc123"
}
SetActive
Description
Operation to set the active flag
Fields
Input Field | Description |
---|---|
value - Boolean!
|
true indicates the active status. Default = false
|
Example
{"value": true}
SetBillingAddress
Description
Operation to set the billing address
Fields
Input Field | Description |
---|---|
value - AddressInput
|
The billing address |
Example
{"value": AddressInput}
SetBirthDate
Description
Operation to set the birthDate
Fields
Input Field | Description |
---|---|
value - Date!
|
The birth date to set |
Example
{"value": "2007-12-03"}
SetCompany
Description
Operation to set a customer's company
Fields
Input Field | Description |
---|---|
value - String!
|
The company to set |
Example
{"value": "xyz789"}
SetDefault
Description
Operation to set the default flag
Fields
Input Field | Description |
---|---|
value - Boolean!
|
true indicates the default status. Default = false
|
Example
{"value": false}
SetDefaultShippingAddress
Description
Operation to set the default shipping address
Fields
Input Field | Description |
---|---|
addressId - String!
|
The ID of an existing shipping address to make the default |
Example
{"addressId": "xyz789"}
SetFirstname
Description
Operation to set the first name
Fields
Input Field | Description |
---|---|
value - String!
|
The first name to set |
Example
{"value": "xyz789"}
SetFreeAddons
Description
Sets one or more free addons to the cart
Existing free addons will be overwritten.
Fields
Input Field | Description |
---|---|
items - [SetPromoItemInput]!
|
The list of promotion items to set |
setPromotionReference - SetPromotionReference!
|
The referenced promotion |
Example
{
"items": [SetPromoItemInput],
"setPromotionReference": SetPromotionReference
}
SetFreeItems
Description
Sets one or more free items to the cart
Existing free items will be overwritten.
Fields
Input Field | Description |
---|---|
items - [SetPromoItemInput]!
|
The list of promotion items to set |
setPromotionReference - SetPromotionReference!
|
The referenced promotion |
Example
{
"items": [SetPromoItemInput],
"setPromotionReference": SetPromotionReference
}
SetGuestId
Description
Operation to set the ID of a guest user (usually the email address)
Fields
Input Field | Description |
---|---|
value - String
|
The identifier of the guest. Use |
Example
{"value": "abc123"}
SetItemId
Description
Operation to set the item ID
Fields
Input Field | Description |
---|---|
value - String!
|
The item ID |
Example
{"value": "xyz789"}
SetLastname
Description
Operation to set the last name
Fields
Input Field | Description |
---|---|
value - String!
|
The last name to set |
Example
{"value": "abc123"}
SetName
Description
Operation to sets the name field
Fields
Input Field | Description |
---|---|
value - String!
|
The name to set |
Example
{"value": "abc123"}
SetPaymentMethod
Description
Operation to set the payment method
Fields
Input Field | Description |
---|---|
value - PaymentMethodInput!
|
The payment method |
Example
{"value": PaymentMethodInput}
SetProductId
Description
Operation to set the product ID
Fields
Input Field | Description |
---|---|
value - String!
|
The product ID |
Example
{"value": "xyz789"}
SetPromoItemInput
Description
Operation to set the ID and the quantity of a promotion item
Fields
Input Field | Description |
---|---|
setItemId - SetItemId!
|
Sets the id of the promotion item |
setQuantity - SetQuantity!
|
Sets the quantity of the promotion item |
Example
{
"setItemId": SetItemId,
"setQuantity": SetQuantity
}
SetPromotionReference
Description
Operation to set the referenced promotion of a promotion item
Fields
Input Field | Description |
---|---|
value - String!
|
The promotion reference |
Example
{"value": "abc123"}
SetQuantity
Description
Operation to sets the quantity field (overrides prior value)
Fields
Input Field | Description |
---|---|
value - Int
|
The quantity to set. Default = 1 |
Example
{"value": 987}
SetReviewHelpful
Description
Operation to set whether this review is helpful
Fields
Input Field | Description |
---|---|
value - Boolean!
|
true if the rating is helpful
|
Example
{"value": false}
SetSalutation
Description
Operation to set a customer's salutation
Fields
Input Field | Description |
---|---|
value - String!
|
The salutation to set |
Example
{"value": "abc123"}
SetShippingAddress
Description
Operation to set the shipping address
Fields
Input Field | Description |
---|---|
notes - String
|
Additional notes for the address |
value - AddressInput!
|
The shipping address |
Example
{
"notes": "xyz789",
"value": AddressInput
}
SetShippingMethod
Description
Operation to set the shipping method
Fields
Input Field | Description |
---|---|
value - ShippingMethodInput!
|
The shipping method |
Example
{"value": ShippingMethodInput}
SetSpecialPriceItems
Description
Sets one or more items with a special price to the cart
Existing items with a special price will be overwritten.
Fields
Input Field | Description |
---|---|
items - [SetPromoItemInput]!
|
The list of promotion items to set |
setPromotionReference - SetPromotionReference!
|
The referenced promotion |
Example
{
"items": [SetPromoItemInput],
"setPromotionReference": SetPromotionReference
}
SetTitle
Description
Operation to set a customer's title
Fields
Input Field | Description |
---|---|
value - String!
|
The title to set |
Example
{"value": "abc123"}
ShippingAddress
Description
A shipping address of the customer
Fields
Field Name | Description |
---|---|
additions - [String]!
|
The address additions |
attributes - JSON
|
Additional attributes as JSON
|
city - String!
|
The city specified for this address |
company - String
|
The company specified for this address |
country - Country!
|
The country code and label for this address |
email - String
|
The email |
firstname - String!
|
The first name of the customer |
id - ID
|
ID of this address |
isShop - Boolean!
|
true if this shipping address is a pickup shop
|
isStation - Boolean!
|
true if this shipping address is a packstation If this shipping address is a packstation street is the post number and number is the station number of the packstation.
|
lastname - String!
|
The last name of the customer |
notes - String
|
Notes accompanying the order |
number - String!
|
The street number for this address This is the station number for a packstation. |
phone - String
|
The phone number |
postcode - String!
|
The postal code of this address |
salutation - Salutation
|
The salutation of the customer |
street - String!
|
The street name of this address This is the post number (the customer number at DHL) for a packstation. |
title - String
|
The title of the customer |
Example
{
"additions": ["abc123"],
"attributes": {},
"city": "abc123",
"company": "abc123",
"country": Country,
"email": "abc123",
"firstname": "xyz789",
"id": "4",
"isShop": false,
"isStation": true,
"lastname": "abc123",
"notes": "abc123",
"number": "abc123",
"phone": "abc123",
"postcode": "abc123",
"salutation": Salutation,
"street": "xyz789",
"title": "abc123"
}
ShippingAddressPagingInput
Description
Limit and offset to list shipping addresses page by page
Example
{"page": 123, "pageSize": 987}
ShippingMethod
Description
A shipping method
Fields
Field Name | Description |
---|---|
amount - Money!
|
The costs of this shipping method |
description - String
|
Additional information |
freeShipping - Boolean!
|
true if a free shipping promotion is applied to the cart, false otherwise
|
name - String!
|
Name of the shipping method |
shipperId - String!
|
The ID for the shipper used as shipperId in ShippingMethodInput |
Example
{
"amount": Money,
"description": "abc123",
"freeShipping": false,
"name": "abc123",
"shipperId": "xyz789"
}
ShippingMethodInput
Description
The shipping method information
Fields
Input Field | Description |
---|---|
shipperId - String!
|
The ID of the shipper of the order |
Example
{"shipperId": "xyz789"}
ShippingMethodProblem
Description
The selected shipping method and the current cart are not compatible
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
shipperId - String
|
Provided shipper ID (see shipperId of ShippingMethod) |
Example
{
"message": "xyz789",
"shipperId": "abc123"
}
ShopGlobalParameters
Description
Collection of non-core global parameters
Example
{
"benefitHeader": "xyz789",
"campaignHeader": "xyz789",
"productsPerPage": 123,
"productsPerSearchPage": 123
}
SortOrder
Description
Sort orders
Values
Enum Value | Description |
---|---|
|
Ascending order |
|
Descending order |
Example
"ASC"
SpecialPriceBenefit
Description
A special price benefit
Fields
Field Name | Description |
---|---|
image - Image
|
The image of the benefit maintained in the back office |
max - Int!
|
The maximum number of selectable items for this benefit |
skus - [String!]!
|
List of SKUs of selectable items |
title - String
|
The title of the benefit maintained in the back office |
Example
{
"image": Image,
"max": 987,
"skus": ["abc123"],
"title": "abc123"
}
SpecialPriceInfo
Description
" Information about special price items if a special price benefit can be applied
It provides a list of the selectable and selected special price items.
Fields
Field Name | Description |
---|---|
image - Image
|
The image of the special price promotion |
max - Int!
|
The maximum number of selectable items with a special price |
promotion - Promotion
|
The related promotion |
promotionReference - ID!
|
The promotion reference |
selectableItems - [SpecialPriceItem]!
|
List of items with a special price to choose from |
selectedItems - [SpecialPriceItem]!
|
List of items with a special price selected by the user |
title - String
|
The display title of the special price promotion |
Example
{
"image": Image,
"max": 123,
"promotion": Promotion,
"promotionReference": "4",
"selectableItems": [SpecialPriceItem],
"selectedItems": [SpecialPriceItem],
"title": "abc123"
}
SpecialPriceItem
Description
A promotion item with a special price (used in SpecialPriceInfo)
Example
{
"item": Item,
"specialPrice": Money
}
StartSessionEvent
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
StringListAttribute
Description
Backend types 'StringList', 'MultiStringSelector' and 'ColorList' which are a list of texts
Fields
Field Name | Description |
---|---|
name - String!
|
The name of this attribute |
texts - [String!]!
|
List of text values of this attribute |
Example
{
"name": "abc123",
"texts": ["xyz789"]
}
TabAttribute
Description
A single (teaser) tab
Fields
Field Name | Description |
---|---|
attributes - [ContentAttribute]!
|
List of attributes of this tab (e.g. text fields, links or images) |
name - String!
|
The name of this attribute, which is the index of the tab (starting with 0) |
trackingInfo - String
|
Tracking information automatically attached to links in this tab |
Example
{
"attributes": [ContentAttribute],
"name": "xyz789",
"trackingInfo": "xyz789"
}
TabsAttribute
Description
Backend type 'Tab' commonly used as a list of tabs in a teaser
Fields
Field Name | Description |
---|---|
name - String!
|
The name of this attribute |
tabs - [TabAttribute]!
|
List of single tabs |
Arguments
|
Example
{
"name": "abc123",
"tabs": [TabAttribute]
}
TakeAndPayBenefit
Description
Take & Pay benefit (e.g. Take 3 and get 1 for free)
Fields
Field Name | Description |
---|---|
image - Image
|
The image of the benefit maintained in the back office |
oncePerOrder - Boolean!
|
true if the benefit is only applicable once per order
|
title - String
|
The title of the benefit maintained in the back office |
youPay - Int!
|
Number of items you have to pay for |
youTake - Int!
|
Number of items you take |
Example
{
"image": Image,
"oncePerOrder": false,
"title": "abc123",
"youPay": 987,
"youTake": 987
}
TextAttribute
TextFormat
Description
Available text formats
Values
Enum Value | Description |
---|---|
|
HTML formatted text |
|
Plain text |
Example
"HTML"
TopSearchSuggest
TouchpointEvent
Description
Touchpoint event
Fields
Input Field | Description |
---|---|
parameters - [ParameterInput!]
|
The request parameters of current page |
referrer - String
|
The referrer url |
url - String!
|
The relative url of current page |
Example
{
"parameters": [ParameterInput],
"referrer": "xyz789",
"url": "xyz789"
}
TrackingEventInput
Description
List of tracking events to be triggered
Fields
Input Field | Description |
---|---|
addToBasket - AddToBasketEvent
|
Event to track when the user adds a product to the cart |
addToWishlist - AddToWishlistEvent
|
Event to track when the user adds a product to the wishlist |
categoryFilter - CategoryFilterEvent
|
Event to track user initiated filtering on a category page |
categoryLandingPageView - CategoryLandingPageViewEvent
|
Event to track view of category landing page (category without a product list) |
categoryProductListView - CategoryProductListViewEvent
|
Event to track view of category page with a product list |
checkout - CheckoutEvent
|
Event to track each step during checkout to create a checkout funnel |
contentView - ContentViewEvent
|
Event to track all page views that not have their own event (e.g. maintained pages like homepage, landing pages, content tree pages like imprint) |
information - InformationEvent
|
Event to track start of a non-bot user session When starting a new session, use mutation tracking_init instead. |
interest - InterestEvent
|
Event to track an interest of a user "Standard" interests for products and categories are already tracked in the appropriate events (e.g. ProductViewEvent, AddToBasketEvent, CategoryProductListViewEvent). |
itemView - ItemViewEvent
|
Event to track item view that used for used for recently viewed articles Should be triggered on item variation change on product detail page. |
order - OrderEvent
|
Event to track when a user successfully places an order |
productView - ProductViewEvent
|
Event to track product view that is used for recommendations, calculation user interests and recently viewed products Should be triggered on initial product detail page view. |
removeFromBasket - RemoveFromBasketEvent
|
Event to track when the user removes a product from the cart |
removeFromWishlist - RemoveFromWishlistEvent
|
Event to track when the user removes a product from the wishlist |
search - SearchEvent
|
Event to track user initiated search Should only be triggered for first search results page. |
searchFilter - SearchFilterEvent
|
Event to track user initiated filtering on a search result page |
startSession - StartSessionEvent
|
Event to track start of user session Should be triggered before any other event. When starting a new session, use mutation tracking_init instead. |
teaserClick - TeaserClickEvent
|
Event to track when a user clicks a teaser |
touchpoint - TouchpointEvent
|
Event to track touchpoints Should be triggered before any other event in every request. When starting a new session, use mutation tracking_init instead. |
userLogin - UserLoginEvent
|
Event to track user login |
userLogout - UserLogoutEvent
|
Event to track user logout |
Example
{
"addToBasket": AddToBasketEvent,
"addToWishlist": AddToWishlistEvent,
"categoryFilter": CategoryFilterEvent,
"categoryLandingPageView": CategoryLandingPageViewEvent,
"categoryProductListView": CategoryProductListViewEvent,
"checkout": CheckoutEvent,
"contentView": ContentViewEvent,
"information": InformationEvent,
"interest": InterestEvent,
"itemView": ItemViewEvent,
"order": OrderEvent,
"productView": ProductViewEvent,
"removeFromBasket": RemoveFromBasketEvent,
"removeFromWishlist": RemoveFromWishlistEvent,
"search": SearchEvent,
"searchFilter": SearchFilterEvent,
"startSession": StartSessionEvent,
"teaserClick": TeaserClickEvent,
"touchpoint": TouchpointEvent,
"userLogin": UserLoginEvent,
"userLogout": UserLogoutEvent
}
Translation
TranslationFilter
Description
Filter to select translations by translation key
Fields
Input Field | Description |
---|---|
keyPrefix - String!
|
Prefix with which the keys of the translations should begin |
Example
{"keyPrefix": "xyz789"}
Translations
Description
A list of translations
Fields
Field Name | Description |
---|---|
totalCount - Int!
|
Total number of translations |
translations - [Translation]!
|
List of translations for the current MultiChannelSelector |
Example
{"totalCount": 987, "translations": [Translation]}
UpdateCartInput
Description
Operations to update a cart
Fields
Input Field | Description |
---|---|
cartId - ID
|
The ID of the cart to update (see If left out it will try to use the best one or create a new one if none exists. |
ops - [UpdateCartOperation!]!
|
Update operations on cart |
Example
{"cartId": 4, "ops": [UpdateCartOperation]}
UpdateCartOperation
Description
The possible update operations on a cart.
As long as there are no unions of input types, we need to define inputs that behave like unions. Therefore, every operation on this input is exclusive. This means that only one operation can be set at a time.
Fields
Input Field | Description |
---|---|
attributeOp - AttributeOperation
|
Operations on cart related attributes |
positionOp - PositionOperation
|
Operations on cart positions |
resetShippingAddress - Boolean
|
Clears the shipping address of the cart |
setActive - SetActive
|
Sets the cart as active There can be only one active cart. If a cart is set as active, all other carts are deactivated. |
setBillingAddress - SetBillingAddress
|
Sets a billing address for the cart |
setDefault - SetDefault
|
Sets the cart as default There can only be one default cart. If a cart is set as default, all other carts are set to |
setGuestId - SetGuestId
|
Sets the ID of the guest user This ID is required for a guest checkout (usually the email address). |
setName - SetName
|
Sets the name of the cart |
setPaymentMethod - SetPaymentMethod
|
Sets the payment method for the cart |
setShippingAddress - SetShippingAddress
|
Sets a shipping address for the cart |
setShippingMethod - SetShippingMethod
|
Sets the shipping method for the cart |
voucherOp - VoucherOperation
|
Operations on vouchers |
Example
{
"attributeOp": AttributeOperation,
"positionOp": PositionOperation,
"resetShippingAddress": true,
"setActive": SetActive,
"setBillingAddress": SetBillingAddress,
"setDefault": SetDefault,
"setGuestId": SetGuestId,
"setName": SetName,
"setPaymentMethod": SetPaymentMethod,
"setShippingAddress": SetShippingAddress,
"setShippingMethod": SetShippingMethod,
"voucherOp": VoucherOperation
}
UpdateCartProblem
Description
Problem when updating an existing cart or creating a new cart
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Possible Types
UpdateCartProblem Types |
---|
Example
{"message": "xyz789"}
UpdateCartProblems
Description
An aggregation of problems occurred when updating an existing cart or creating a new cart
Fields
Field Name | Description |
---|---|
problems - [UpdateCartProblem]!
|
List of problems encountered |
Example
{"problems": [UpdateCartProblem]}
UpdateCartResult
Description
Result type when updating a cart or creating a new cart
Types
Union Types |
---|
Example
UpdateCartProblems
UpdateCartSuccess
Description
Type for successfully updating a cart
Fields
Field Name | Description |
---|---|
cart - Cart!
|
The updated cart |
Example
{"cart": Cart}
UpdateCustomerInput
Description
Operations to update a customer
Fields
Input Field | Description |
---|---|
ops - [UpdateCustomerOperation!]!
|
Update operations on customer |
Example
{"ops": [UpdateCustomerOperation]}
UpdateCustomerOperation
Description
The possible update operations on a customer
As long as there are no unions of input types, we need to define inputs that behave like unions. Therefore, every operation on this input is exclusive. This means that only one operation can be set at a time.
Fields
Input Field | Description |
---|---|
addPhoneNo - AddPhoneNo
|
Adds a phoneNo to the customer phone list |
addShippingAddress - AddShippingAddress
|
Adds a shipping address to the address book |
deletePhoneNo - DeletePhoneNo
|
Deletes a phone number from the customer phone list |
deleteShippingAddress - DeleteShippingAddress
|
Deletes a shipping address from the address book |
setBillingAddress - SetBillingAddress
|
Sets a billing address for a customer |
setBirthDate - SetBirthDate
|
Sets the date of birth for a customer |
setCompany - SetCompany
|
Sets the customer's company |
setDefaultShippingAddress - SetDefaultShippingAddress
|
Sets the default shipping address for a customer |
setFirstname - SetFirstname
|
Sets the first name for a customer |
setLastname - SetLastname
|
Sets the last name for a customer |
setSalutation - SetSalutation
|
Sets a salutation for a customer |
setTitle - SetTitle
|
Sets a title for a customer |
Example
{
"addPhoneNo": AddPhoneNo,
"addShippingAddress": AddShippingAddress,
"deletePhoneNo": DeletePhoneNo,
"deleteShippingAddress": DeleteShippingAddress,
"setBillingAddress": SetBillingAddress,
"setBirthDate": SetBirthDate,
"setCompany": SetCompany,
"setDefaultShippingAddress": SetDefaultShippingAddress,
"setFirstname": SetFirstname,
"setLastname": SetLastname,
"setSalutation": SetSalutation,
"setTitle": SetTitle
}
UpdateCustomerProblem
Description
Problem when updating customer data
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Possible Types
UpdateCustomerProblem Types |
---|
Example
{"message": "xyz789"}
UpdateCustomerProblems
Description
An aggregation of problems occurred when updating customer data
Fields
Field Name | Description |
---|---|
problems - [UpdateCustomerProblem]!
|
List of problems encountered |
Example
{"problems": [UpdateCustomerProblem]}
UpdateCustomerResult
Description
Result type when updating customer data
Types
Union Types |
---|
Example
UpdateCustomerProblems
UpdateCustomerSuccess
Description
Type for successfully updating customer data
Fields
Field Name | Description |
---|---|
customer - Customer!
|
The updated customer |
Example
{"customer": Customer}
UpdatePositionInput
Description
Operation to update a position
Fields
Input Field | Description |
---|---|
attributeOp - AttributeOperation
|
Operations on position related attributes |
positionId - ID!
|
The ID of the position to update |
setItemId - SetItemId
|
The item ID |
setQuantity - SetQuantity
|
The item quantity |
Example
{
"attributeOp": AttributeOperation,
"positionId": "4",
"setItemId": SetItemId,
"setQuantity": SetQuantity
}
UpdateQuantity
Description
Operation to add an amount to the quantity field
Fields
Input Field | Description |
---|---|
quantity - Int
|
The amount to add. Default = 1 |
Example
{"quantity": 987}
UpdateReview
Description
Operations to update review
Fields
Input Field | Description |
---|---|
id - ID!
|
The ID of the rating to be updated |
ops - [UpdateReviewOperation!]!
|
Operations to update the review |
Example
{"id": 4, "ops": [UpdateReviewOperation]}
UpdateReviewOperation
Description
Operation to update a review
Fields
Input Field | Description |
---|---|
setReviewHelpful - SetReviewHelpful!
|
Operation to set whether this review is helpful |
Example
{"setReviewHelpful": SetReviewHelpful}
UpdateWishlistInput
Description
Operations to update a wishlist
Fields
Input Field | Description |
---|---|
ops - [UpdateWishlistOperation!]!
|
Update operations on wishlist |
wishlistId - ID
|
The ID of the wishlist to update (see If left out it will try to use the best one or create a new one if none exists. |
Example
{
"ops": [UpdateWishlistOperation],
"wishlistId": "4"
}
UpdateWishlistOperation
Description
The possible update operations on a wishlist
As long as there are no unions of input types, we need to define inputs that behave like unions. Therefore, every operation on this input is exclusive. This means that only one operation can be set at a time.
Fields
Input Field | Description |
---|---|
addItem - AddItemToWishlist
|
Adds a new item |
addProduct - AddProductToWishlist
|
Adds a new product |
removePosition - DeletePosition
|
Removes a position |
Example
{
"addItem": AddItemToWishlist,
"addProduct": AddProductToWishlist,
"removePosition": DeletePosition
}
UpdateWishlistProblem
Description
Problem when updating an existing wishlist or creating a new wishlist
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "abc123"}
UpdateWishlistProblems
Description
An aggregation of problems occurred when updating an existing wishlist
Fields
Field Name | Description |
---|---|
problems - [UpdateWishlistProblem]!
|
List of problems encountered |
Example
{"problems": [UpdateWishlistProblem]}
UpdateWishlistResult
Description
Result type when updating a wishlist
Types
Union Types |
---|
Example
UpdateWishlistProblems
UpdateWishlistSuccess
Description
Type for successfully updating a wishlist
Fields
Field Name | Description |
---|---|
wishlist - Wishlist!
|
The updated wishlist |
Example
{"wishlist": Wishlist}
UrlFilter
UserLoginEvent
Description
User login event
Fields
Input Field | Description |
---|---|
customerNumber - String!
|
The customer number of the user |
firstName - String
|
The first name of the user |
lastName - String
|
The last name of the user |
registrationType - RegistrationTypeInput!
|
The user type (REGISTERED or GUEST ) Default: REGISTERED . Default = REGISTERED |
salutation - String
|
The salutation |
Example
{
"customerNumber": "xyz789",
"firstName": "xyz789",
"lastName": "xyz789",
"registrationType": "GUEST",
"salutation": "abc123"
}
UserLogoutEvent
Description
User log out event
Fields
Input Field | Description |
---|---|
_ - Boolean
|
Unused field that can be ignored |
Example
{"_": true}
ValueWithUnit
ValueWithUnitAttribute
Description
Standard item attribute value including unit (e.g. length)
Fields
Field Name | Description |
---|---|
displayName - String!
|
The display name of this attribute (e.g. 'length') If not defined, this is an empty string. |
displayValue - String!
|
The value of this attribute |
name - String!
|
The name of this attribute (e.g. 'import:length') Deprecated, this will be deleted without replacement in the future. No longer supported |
sequenceNo - Int
|
Sequence number to sort this attribute into a list of attributes |
unit - String!
|
Unit of attribute value (e.g. centimeter) |
values - [ValueWithUnit]!
|
List of values of this attribute If there is only one value, it is the same as displayValue and unit (including visualizing images). |
Example
{
"displayName": "xyz789",
"displayValue": "xyz789",
"name": "abc123",
"sequenceNo": 123,
"unit": "xyz789",
"values": [ValueWithUnit]
}
ValueWithUnitFeature
Description
Standard product feature value including unit (e.g. length)
Fields
Field Name | Description |
---|---|
displayName - String!
|
The display name of this feature If not defined, this is an empty string. |
images - [Image]!
|
List of images to visualize feature |
name - String!
|
The name of this feature Deprecated, this will be deleted without replacement in the future. No longer supported |
sequenceNo - Int
|
Sequence number to sort this attribute into a list of attributes |
unit - String!
|
Unit of feature value (e.g. centimeter) |
value - String!
|
The value of this feature |
values - [ValueWithUnit]!
|
List of values of this attribute If there is only one value, it is the same as value , unit and images . |
Example
{
"displayName": "xyz789",
"images": [Image],
"name": "abc123",
"sequenceNo": 987,
"unit": "abc123",
"value": "abc123",
"values": [ValueWithUnit]
}
Video
VoucherCodeStatus
Description
The list of possible voucher statuses
Values
Enum Value | Description |
---|---|
|
The voucher code is attainable |
|
The voucher code is invalid |
|
The voucher code is valid |
Example
"ATTAINABLE"
VoucherOperation
Description
The possible voucher operations on a cart.
As long as there are no unions of input types, we need to define inputs that behave like unions.
Therefore, every operation on this input is exclusive. This means that only one operation can be set at a time.
Fields
Input Field | Description |
---|---|
addVoucher - AddVoucher
|
Adds a voucher code |
removeVoucher - DeleteVoucher
|
Removes a voucher code |
Example
{
"addVoucher": AddVoucher,
"removeVoucher": DeleteVoucher
}
VoucherProblem
Wishlist
Description
A wishlist of a user
Fields
Field Name | Description |
---|---|
createdAt - DateTime!
|
Creation date of this wishlist |
entries - [WishlistEntry!]!
|
All positions of this wishlist |
id - ID!
|
The ID of this wishlist |
name - String!
|
The name of this wishlist |
Example
{
"createdAt": "2007-12-03T10:15:30Z",
"entries": [WishlistEntry],
"id": "4",
"name": "xyz789"
}
WishlistEntry
Description
A wishlist position
Fields
Field Name | Description |
---|---|
creationTime - DateTime
|
Creation date of this position |
id - ID!
|
The ID of this position Needed for mutations (see DeletePosition) |
item - Item
|
The item of this position Can be |
product - Product
|
The product of this position Can be |
valid - Boolean!
|
Product/item is valid A product can become invalid if, for example, it is sold out or is no longer in the assortment. |
Example
{
"creationTime": "2007-12-03T10:15:30Z",
"id": 4,
"item": Item,
"product": Product,
"valid": true
}
WishlistToCartProblem
Description
Problem when moving all positions from a wishlist to a cart
Fields
Field Name | Description |
---|---|
message - String!
|
The message to display This is usually the message code for translation. |
Example
{"message": "abc123"}
WishlistToCartProblems
Description
An aggregation of problems occurred when moving all positions from a wishlist to a cart
Fields
Field Name | Description |
---|---|
problems - [WishlistToCartProblem]
|
List of problems encountered |
Example
{"problems": [WishlistToCartProblem]}
WishlistToCartResult
Description
Result type moving positions from a wishlist to a cart
Types
Union Types |
---|
Example
WishlistToCartProblems
WishlistToCartSuccess
Description
Type for successfully moving positions from a wishlist to a cart
Fields
Field Name | Description |
---|---|
cart - Cart!
|
The updated cart |
Example
{"cart": Cart}