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.

Contact

novomind iSHOP Support

ishop-support@novomind.com

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

49

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.

Product lists

This guide demonstrates how to implement modern product listings using the GraphQL API of the novomind iSHOP. Learn to efficiently fetch product data, implement pagination/sorting, optimize for performance, and leverage built-in features like recommendations and SEO.

Basic Product Listing Implementation

query ProductListing($categoryId: ID!, $pageSize: Int = 20, $pageIndex: Int = 0) {
  core_category(id: $categoryId) {
    id
    name
    description
    seoThumbnail
    products(paging: {limit: $pageSize, offset: $pageIndex*$pageSize}) {
      total
      items {
        id
        name
        sku
        price {
          gross
          net
          currency
        }
        availability
        thumbnail
        rating
      }
    }
    topsellers(limit: 5) {
      id
      name
      thumbnail
    }
  }
}

Key Implementation Aspects

Pagination Strategy

  • Implement "Load More" pattern using total count and page calculations
  • Store current page state: totalPages = Math.ceil(total / pageSize)
  • Example pagination controls:
    const handlePageChange = (newPage) => {
      fetchData({
        variables: {
          pageSize: 20,
          pageIndex: newPage
        }
      });
    };
    

Product Card Components

  • Display core fields:
    • thumbnail image
    • name + sku
    • Formatted price.gross with currency
    • Stock indicator using availability
    • Rating stars from rating field

SEO meta data

  • Use category's built-in SEO data:
    seo {
      title
      description
      keywords
    }
    
  • Implement schema.org markup using product data
  • Generate canonical URLs based on pagination

Advanced Features

Sorting Implementation

products(
  paging: {limit: 20, offset: 0}
  sorting: {field: PRICE, order: ASC}
) {
  # ... fields ...
}
  • Supported sort fields (check schema):
    • NAME
    • PRICE
    • RELEVANCE
    • NEWEST

Filter Integration

products(
  filters: [
    {attribute: "color", values: ["red", "blue"]}
    {priceRange: {min: 50, max: 100}}
  ]
) {
  # ... fields ...
}
  • Map UI filters to GraphQL input types
  • Handle filter combinations with state management

Performance Optimizations

Image Loading

thumbnail(size: "400x400", format: WEBP)
  • Use responsive image techniques:
    images {
      xs: url(size: "200x200")
      sm: url(size: "400x400")
      lg: url(size: "800x800")
    }
    

Caching Strategy

  • Use Apollo Cache policies
  • Cache partial results for instant navigation
  • Implement cache-and-network fetch policy

Caching might be challenging and might lead to potential issues. Please refer to novomind for suggestions on how to implement proper caching mechanisms.

Error States & Edge Cases

  • Handle empty states:
    {data?.products?.items?.length === 0 && <EmptyList />}
    
  • Manage loading skeletons during fetches
  • Handle category redirects:
    core_category(id: $id) {
      redirect {
        target
        code
      }
    }
    

Recommendations Integration

core_categoryRecommendations(categoryId: $id) {
  items {
    id
    name
    thumbnail
  }
}
  • Display "Related Categories" section
  • Implement carousel component for recommendations

Implementation Checklist

  1. Set up Apollo Client with error handling
  2. Create pagination component
  3. Build product card template
  4. Implement sorting/filtering UI
  5. Add loading states
  6. Configure SEO meta tags
  7. Set up analytics tracking
  8. Implement mobile-responsive grid

Content Management

The novomind iSHOP Backoffice is a CMS to create content for exisiting PIM categories, new pages or other areas of your shop.

The first step is to create grids in the Grid Manager, you can use these grids on pages to add content ("teaser") to the grid cells in Categories and Pages or Other Maintenance Levels.

Here's a comprehensive guide to CMS grid and teaser functionality based on typical ecommerce implementations:


CMS Grids & Teasers Implementation Guide

1. Core Concepts

Grid System

  • Definition: Structural containers that organize content into rows/columns
  • Key Features:
    • Responsive column layouts (2-6 columns)
    • Nestable structure (grids within grids)
    • Zone-based positioning (header, footer, product detail areas)
  • Schema Reference:
    type GridAttribute implements ContentAttribute {
      name: String!
      columns: Int!
      elements: [ContentAttribute!]! # Can contain teasers or nested grids
    }
    

Teasers

  • Definition: Pre-configured content modules with various display formats
  • Common Types:
    • Slider Teasers: Image carousels with text overlays
    • Product Teasers: Featured item showcases
    • Text Teasers: Promotional content blocks
    • Brand Teasers: Manufacturer/product line highlights
  • Schema Reference:
    type SliderTeaser implements ContentAttribute & TeaserAttribute {
      meta: TeaserMeta!
      tabs: [SliderTeaserTab]!
    }
    

2. Implementation Workflow

Step 1: Fetch Grid Layout

query GetPageLayout($pageId: ID!) {
  page(id: $pageId) {
    attributes {
      ... on GridAttribute {
        name
        columns
        elements {
          __typename
          ... on SliderTeaser {
            tabs {
              headline
              image { url altText }
              trackingInfo
            }
          }
          ... on ProductTeaser {
            products {
              id
              name
              price
            }
          }
        }
      }
    }
  }
}

Step 2: Grid Component Implementation (React Example)

const GridRenderer = ({ grid }) => (
  <div className={`grid grid-cols-${grid.columns}`}>
    {grid.elements.map((element, index) => (
      <div key={index} className="grid-item">
        {element.__typename === 'SliderTeaser' && (
          <SliderTeaserComponent data={element} />
        )}
        {element.__typename === 'ProductTeaser' && (
          <ProductTeaserComponent data={element} />
        )}
      </div>
    ))}
  </div>
);

Here's a Vue.js-focused implementation guide with Apollo Client and a 12-column grid system:

<!-- CMSGridRenderer.vue -->
            <template>
              <div class="grid grid-cols-12 gap-4">
                <template v-for="(element, index) in elements" :key="index">
                  <!-- Grid Container -->
                  <div v-if="element.__typename === 'GridAttribute'" 
                       :class="`col-span-${element.columns}`">
                    <CMSGridRenderer :elements="element.elements" />
                  </div>
            
                  <!-- Teaser Components -->
                  <div v-if="element.__typename === 'SliderTeaser'" 
                       :class="`col-span-${element.meta?.width || 12}`">
                    <SliderTeaser :tabs="element.tabs" />
                  </div>
            
                  <div v-if="element.__typename === 'ProductTeaser'"
                       :class="`col-span-${element.meta?.width || 12}`">
                    <ProductTeaser :products="element.products" />
                  </div>
                </template>
              </div>
            </template>
            
            <script setup>
            import { useQuery } from '@vue/apollo-composable'
            import gql from 'graphql-tag'
            
            const props = defineProps({
              elements: {
                type: Array,
                default: () => []
              }
            })
            
            // Apollo Query Example
            const { result, loading, error } = useQuery(gql`
              query GetPageLayout($pageId: ID!) {
                page(id: $pageId) {
                  attributes {
                    __typename
                    ... on GridAttribute {
                      columns
                      elements {
                        __typename
                        ... on SliderTeaser {
                          tabs {
                            headline
                            image { url altText }
                          }
                          meta { width }
                        }
                        ... on ProductTeaser {
                          products {
                            id
                            name
                            price
                          }
                          meta { width }
                        }
                      }
                    }
                  }
                }
              }
            `, {
              pageId: 'homepage' // Dynamic ID from route
            })
            </script>
            

Step 3: Teaser Components

Slider Teaser Implementation:

const SliderTeaserComponent = ({ data }) => (
  <div className="slider-teaser">
    {data.tabs.map((tab, index) => (
      <div key={index} className="slide">
        <img 
          src={tab.image.url} 
          alt={tab.image.altText}
          className="teaser-image"
        />
        <div className="teaser-content">
          <h2>{tab.headline}</h2>
          <p>{tab.subHeadline}</p>
        </div>
      </div>
    ))}
  </div>
);

Product Teaser Implementation:

const ProductTeaserComponent = ({ data }) => (
  <div className="product-teaser">
    <h3>Featured Products</h3>
    <div className="product-grid">
      {data.products.map(product => (
        <ProductCard 
          key={product.id}
          name={product.name}
          price={product.price}
          image={product.images[0]}
        />
      ))}
    </div>
  </div>
);

3. Key Features & Best Practices

Responsive Grid Handling

/* Base grid styles */
            .grid {
              display: grid;
              gap: 1.5rem;
              padding: 1rem;
            }
            
            /* Column variations */
            .grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
            .grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
            
            /* Mobile adaptation */
            @media (max-width: 768px) {
              .grid { grid-template-columns: 1fr; }
            }
            

Teaser Configuration Options

Property Type Description
columns int Grid column count (2-6)
meta.zone string Placement area (header/main/footer)
meta.priority int Display order in zone
image.size string Responsive image breakpoints

Performance Optimization

  1. Image Handling:
    image {
      url(size: "800x600", format: WEBP)
      srcSet(sizes: ["400x300", "800x600"])
    }
    
  2. Lazy Loading:
    <img loading="lazy" decoding="async" ...>
    
  3. Caching Strategy:
    // Apollo Client configuration
    new InMemoryCache({
      typePolicies: {
        GridAttribute: { merge: true }
      }
    })
    

Tracking & Analytics

// Teaser interaction tracking
const handleTeaserClick = (teaserData) => {
  analytics.track('teaser_click', {
    teaser_id: teaserData.meta.id,
    zone: teaserData.meta.zone,
    content_type: teaserData.__typename
  });
};

4. Content Relationships

graph TD
    A[Page] --> B[Grid]
    B --> C[Teaser 1]
    B --> D[Teaser 2]
    B --> E[Nested Grid]
    E --> F[Teaser 3]
    E --> G[Teaser 4]

5. Troubleshooting Common Issues

Problem: Teasers not appearing in correct grid
Solution

  1. Verify zone configuration in CMS
  2. Check grid columns vs teaser meta.width
  3. Validate cache invalidation strategy

Problem: Image quality issues
Solution

# Use optimized image formats
image {
  url(format: WEBP, quality: 80)
}

Problem: Tracking not working
Solution

  1. Check trackingInfo field population
  2. Verify analytics implementation
  3. Test with preview mode disabled

6. Advanced Implementation

Dynamic Grid Layouts

// Dynamic class binding for Tailwind
const GridContainer = ({ columns }) => (
  <div className={`grid grid-cols-${columns} gap-4`}>
    {/* Teaser components */}
  </div>
);

Personalized Content

You can create customer segments in the iSHOP Backoffice based on various parameters. Use these segments to differentiate content between different target audiences:

query GetPersonalizedTeasers($segment: String!) {
  teasers(filter: { audienceSegment: $segment }) {
    # Personalized content
  }
}

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_addAllToCartmutation 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": "xyz789",
      "customerIdentifier": "xyz789",
      "firstname": "abc123",
      "lastname": "abc123",
      "orders": OrderListResult,
      "phoneNumbers": [Phone],
      "salutation": "xyz789",
      "title": "xyz789",
      "username": "abc123"
    }
  }
}

adyen_paymentMethods

Description

Fetch all available payment methods for a transaction based on the transaction context (like amount, country and currency)

Response

Returns an AdyenPaymentMethodsPayload!

Arguments
Name Description
data - AdyenPaymentMethodsInput! The transaction context

Example

Query
query Adyen_paymentMethods($data: AdyenPaymentMethodsInput!) {
  adyen_paymentMethods(data: $data) {
    paymentMethods {
      brand
      brands
      displayName
      methodCode
    }
  }
}
Variables
{"data": AdyenPaymentMethodsInput}
Response
{
  "data": {
    "adyen_paymentMethods": {
      "paymentMethods": [AdyenPaymentMethod]
    }
  }
}

b2b_getCurrentUser

Description

Fetches the information about the currently logged in user

Response

Returns a B2BUser!

Example

Query
query B2b_getCurrentUser {
  b2b_getCurrentUser {
    company {
      addresses {
        ...CompanyAddressesFragment
      }
      commercialRegisterNumber
      externalId
      id
      members {
        ...B2BUserPageFragment
      }
      name
      permissions {
        ...UnitPermissionsFragment
      }
      status
      taxIdentificationNumber
    }
    email
    firstname
    id
    lastname
    permissions {
      activate
      assign
      create
      delete
      roles {
        ...RolePermissionsFragment
      }
      update
    }
    phone
    roles {
      roles {
        ...B2BUserRoleFragment
      }
      totalCount
    }
    salutation
    status
    title
    units {
      totalCount
      units {
        ... on B2BCompany {
          ...B2BCompanyFragment
        }
        ... on B2BSubUnit {
          ...B2BSubUnitFragment
        }
      }
    }
  }
}
Response
{
  "data": {
    "b2b_getCurrentUser": {
      "company": B2BCompany,
      "email": "abc123",
      "firstname": "xyz789",
      "id": 4,
      "lastname": "abc123",
      "permissions": B2BUserPermissions,
      "phone": "abc123",
      "roles": B2BUserRolePage,
      "salutation": "DIVERSE",
      "status": "ACTIVE",
      "title": "xyz789",
      "units": B2BUnitPage
    }
  }
}

b2b_getRoles

Description

Fetches a list of all user roles

Response

Returns a B2BUserRolePage!

Arguments
Name Description
paging - B2BRolePaging

Example

Query
query B2b_getRoles($paging: B2BRolePaging) {
  b2b_getRoles(paging: $paging) {
    roles {
      id
      name
    }
    totalCount
  }
}
Variables
{"paging": B2BRolePaging}
Response
{
  "data": {
    "b2b_getRoles": {
      "roles": [B2BUserRole],
      "totalCount": 123
    }
  }
}

b2b_getUnit

Description

Fetches unit by ID
Result is empty if current user is not a member of this unit or if unit with the given ID does not exist.

Response

Returns a B2BUnit

Arguments
Name Description
id - ID!

Example

Query
query B2b_getUnit($id: ID!) {
  b2b_getUnit(id: $id) {
    ... on B2BCompany {
      addresses {
        ...CompanyAddressesFragment
      }
      commercialRegisterNumber
      externalId
      id
      members {
        ...B2BUserPageFragment
      }
      name
      permissions {
        ...UnitPermissionsFragment
      }
      status
      taxIdentificationNumber
    }
    ... on B2BSubUnit {
      addresses {
        ...SubUnitAddressesFragment
      }
      externalId
      id
      members {
        ...B2BUserPageFragment
      }
      name
      path {
        ... on B2BCompany {
          ...B2BCompanyFragment
        }
        ... on B2BSubUnit {
          ...B2BSubUnitFragment
        }
      }
      permissions {
        ...UnitPermissionsFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{"data": {"b2b_getUnit": B2BCompany}}

b2b_getUnits

Description

Fetches units of user's company (root unit)

Response

Returns a B2BUnitPage!

Arguments
Name Description
filter - B2BUnitFilter
paging - B2BUnitPaging! Default = {page: 1, pageSize: 10, sortBy: NAME, sortDirection: ASC}

Example

Query
query B2b_getUnits(
  $filter: B2BUnitFilter,
  $paging: B2BUnitPaging!
) {
  b2b_getUnits(
    filter: $filter,
    paging: $paging
  ) {
    totalCount
    units {
      ... on B2BCompany {
        ...B2BCompanyFragment
      }
      ... on B2BSubUnit {
        ...B2BSubUnitFragment
      }
    }
  }
}
Variables
{
  "filter": B2BUnitFilter,
  "paging": {
    "page": 1,
    "pageSize": 10,
    "sortBy": "NAME",
    "sortDirection": "ASC"
  }
}
Response
{
  "data": {
    "b2b_getUnits": {
      "totalCount": 987,
      "units": [B2BCompany]
    }
  }
}

b2b_getUsers

Description

Fetches a list of users of the company the current user is logged in.

Response

Returns a B2BUserPage!

Arguments
Name Description
filter - B2BUserFilter
input - B2BUserInput
paging - B2BUserPaging

Example

Query
query B2b_getUsers(
  $filter: B2BUserFilter,
  $input: B2BUserInput,
  $paging: B2BUserPaging
) {
  b2b_getUsers(
    filter: $filter,
    input: $input,
    paging: $paging
  ) {
    totalCount
    users {
      company {
        ...B2BCompanyFragment
      }
      email
      firstname
      id
      lastname
      permissions {
        ...B2BUserPermissionsFragment
      }
      phone
      roles {
        ...B2BUserRolePageFragment
      }
      salutation
      status
      title
      units {
        ...B2BUnitPageFragment
      }
    }
  }
}
Variables
{
  "filter": B2BUserFilter,
  "input": B2BUserInput,
  "paging": B2BUserPaging
}
Response
{
  "data": {
    "b2b_getUsers": {
      "totalCount": 987,
      "users": [B2BUser]
    }
  }
}

cart_availableExpressPayments

Description

Fetch all allowed express payments for a specific cart

Response

Returns [PaymentTypeInfo]!

Arguments
Name Description
amount - Float The value of the current cart, this is used for Adyen Payments Codes
cartId - ID The cart ID to fetch payments for

Example

Query
query Cart_availableExpressPayments(
  $amount: Float,
  $cartId: ID
) {
  cart_availableExpressPayments(
    amount: $amount,
    cartId: $cartId
  ) {
    interfaceId
    methodCode
  }
}
Variables
{"amount": 123.45, "cartId": 4}
Response
{
  "data": {
    "cart_availableExpressPayments": [
      {"interfaceId": "ADYEN", "methodCode": "ADYEN_APPLEPAY"}
    ]
  }
}

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. Deprecated: Use cart_availablePaymentsV2 instead

Response

Returns [Payment]!

Arguments
Name Description
amount - Float The value of the current cart, this is used for Adyen Payments Codes
cartId - ID The cart ID to fetch payments for

Example

Query
query Cart_availablePayments(
  $amount: Float,
  $cartId: ID
) {
  cart_availablePayments(
    amount: $amount,
    cartId: $cartId
  ) {
    interfaceId
    methodCodes
  }
}
Variables
{"amount": 987.65, "cartId": "4"}
Response
{
  "data": {
    "cart_availablePayments": [
      {
        "interfaceId": "4",
        "methodCodes": ["abc123"]
      }
    ]
  }
}

cart_availablePaymentsV2

Description

Fetch all allowed payments for a specific cart, returns a flattened PaymentTypeInfo, same interfaceIds can occur in List These payments should be used in the checkout process.

Response

Returns [PaymentTypeInfo]!

Arguments
Name Description
amount - Float The value of the current cart, this is used for Adyen Payments Codes
cartId - ID The cart ID to fetch payments for

Example

Query
query Cart_availablePaymentsV2(
  $amount: Float,
  $cartId: ID
) {
  cart_availablePaymentsV2(
    amount: $amount,
    cartId: $cartId
  ) {
    interfaceId
    methodCode
  }
}
Variables
{"amount": 123.45, "cartId": "4"}
Response
{
  "data": {
    "cart_availablePaymentsV2": [
      {"interfaceId": "ADYEN", "methodCode": "ADYEN_APPLEPAY"}
    ]
  }
}

checkout_getOrderDetails

Description

Get the order details created by the previous mutation call checkout_submitOrder

Response

Returns a CheckoutOrderDetailsResult

Arguments
Name Description
orderId - ID! The order ID to fetch payments for
orderToken - String! The order token
retryCount - Int! The current retry count (FE must send 0 on first call)

Example

Query
query Checkout_getOrderDetails(
  $orderId: ID!,
  $orderToken: String!,
  $retryCount: Int!
) {
  checkout_getOrderDetails(
    orderId: $orderId,
    orderToken: $orderToken,
    retryCount: $retryCount
  ) {
    ... on CheckoutOrder {
      billingAddress {
        ...CheckoutOrderAddressFragment
      }
      delivery {
        ...CheckoutOrderDeliveryFragment
      }
      orderId
      orderStatus
      paymentMethod {
        ...PaymentMethodFragment
      }
      positions {
        ...CheckoutOrderPositionFragment
      }
      promotions {
        ...CheckoutOrderPromotionsFragment
      }
      shippingAddress {
        ...CheckoutOrderAddressFragment
      }
      summary {
        ...CheckoutOrderSummaryFragment
      }
    }
    ... on OrderSubmitProblems {
      problems {
        ...OrderSubmitProblemFragment
      }
    }
    ... on PendingCheckoutOrder {
      maxRetries
      orderId
      retryCount
      retryIn
    }
  }
}
Variables
{
  "orderId": 4,
  "orderToken": "abc123",
  "retryCount": 987
}
Response
{"data": {"checkout_getOrderDetails": CheckoutOrder}}

core_brand

Description

Fetch a product brand by its ID

Response

Returns a Brand

Arguments
Name Description
id - ID! ID of brand to fetch

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 {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      bestVariation {
        ...ItemFragment
      }
      brand {
        ...BrandFragment
      }
      breadcrumb {
        ...CategoryFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categories {
        ...CategoryFragment
      }
      category {
        ...CategoryFragment
      }
      documents {
        ...DocumentFragment
      }
      features {
        ...ProductFeatureFragment
      }
      globalContent {
        ...RasterFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      longDescription
      materials
      name
      new
      page {
        ...MaintainedProductPageFragment
      }
      recommendations {
        ...ProductRecommendationsFragment
      }
      reviews {
        ...ReviewsFragment
      }
      sellingPoints
      seo {
        ...SeoFragment
      }
      shortDescription
      variations {
        ...ItemFragment
      }
      videos {
        ...VideoFragment
      }
    }
    topsellers {
      products {
        ...ProductFragment
      }
      totalCount
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "core_brand": {
      "id": "4",
      "image": Image,
      "link": Link,
      "name": "abc123",
      "parameters": [ContentAttribute],
      "productCount": 987,
      "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": "abc123",
  "paging": {"limit": 100, "offset": 0}
}
Response
{
  "data": {
    "core_brandRecommendations": {
      "brands": [Brand],
      "totalCount": 987
    }
  }
}

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 {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      bestVariation {
        ...ItemFragment
      }
      brand {
        ...BrandFragment
      }
      breadcrumb {
        ...CategoryFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categories {
        ...CategoryFragment
      }
      category {
        ...CategoryFragment
      }
      documents {
        ...DocumentFragment
      }
      features {
        ...ProductFeatureFragment
      }
      globalContent {
        ...RasterFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      longDescription
      materials
      name
      new
      page {
        ...MaintainedProductPageFragment
      }
      recommendations {
        ...ProductRecommendationsFragment
      }
      reviews {
        ...ReviewsFragment
      }
      sellingPoints
      seo {
        ...SeoFragment
      }
      shortDescription
      variations {
        ...ItemFragment
      }
      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

Response

Returns a Category

Arguments
Name Description
id - ID! ID of category to fetch

Example

Query
query Core_category($id: ID!) {
  core_category(id: $id) {
    ancestors {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    bottomTeaserInsertion {
      meta {
        ...TeaserMetaFragment
      }
      name
    }
    breadcrumbs {
      elements {
        ...BreadcrumbNavigationElementFragment
      }
    }
    categoryContent {
      categoryNavigation {
        ...CategoryNavigationFragment
      }
      raster {
        ...RasterFragment
      }
    }
    children {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      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
    }
    name
    navigationFlyout {
      alt
      boUrl
      fileName
      height
      imageRole
      name
      rank
      title
      url
      width
    }
    parameters {
      name
    }
    parent {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      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
    }
    seoHeadline
    teaserInsertions {
      meta {
        ...TeaserMetaFragment
      }
      name
    }
    topTeaserInsertion {
      meta {
        ...TeaserMetaFragment
      }
      name
    }
    topsellers {
      products {
        ...ProductFragment
      }
      totalCount
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "core_category": {
      "ancestors": [Category],
      "bottomTeaserInsertion": TeaserAttribute,
      "breadcrumbs": Breadcrumbs,
      "categoryContent": CategoryContent,
      "children": [Category],
      "id": 4,
      "idsDown": "xyz789",
      "isHiddenFor": false,
      "link": Link,
      "name": "abc123",
      "navigationFlyout": Image,
      "parameters": [ContentAttribute],
      "parent": Category,
      "products": PageSearchResult,
      "raster": Raster,
      "recommendations": CategoryRecommendations,
      "redirect": ResolvedLink,
      "seo": Seo,
      "seoHeadline": "abc123",
      "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
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    totalCount
  }
}
Variables
{
  "categoryId": "xyz789",
  "paging": {"limit": 100, "offset": 0}
}
Response
{
  "data": {
    "core_categoryRecommendations": {
      "categories": [Category],
      "totalCount": 123
    }
  }
}

core_globalParameters

Requires internal database keys and is not suitable for API users. Will be removed in the future release
Description

Deprecated. This query should no longer be used and will be removed in a future release.

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

Response

Returns an Item

Arguments
Name Description
id - ID! ID of item to fetch

Example

Query
query Core_item($id: ID!) {
  core_item(id: $id) {
    additionalImages {
      alt
      boUrl
      fileName
      height
      imageRole
      name
      rank
      title
      url
      width
    }
    assets {
      ... on Document {
        ...DocumentFragment
      }
      ... on Image {
        ...ImageFragment
      }
      ... on Video {
        ...VideoFragment
      }
    }
    availability {
      available
      maxQuantity
      messageKey
      minQuantity
      ordinal
      status
    }
    badges {
      name
      type
    }
    color {
      displayName
      searchColor {
        ...SearchColorFragment
      }
    }
    documents {
      displayName
      fileName
      url
    }
    facilityAvailability {
      availability {
        ...AvailabilityFragment
      }
      facility {
        ...FacilityFragment
      }
    }
    facilityStocks {
      facility {
        ...FacilityFragment
      }
      stock {
        ...StockFragment
      }
    }
    features {
      displayName
      displayValue
      id {
        ...AttributeIdFragment
      }
      name
    }
    groupedFeatures {
      displayName
      features {
        ...ItemAttributeFragment
      }
    }
    id
    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
    }
    onlineAvailability {
      available
      maxQuantity
      messageKey
      minQuantity
      ordinal
      status
    }
    onlineStock {
      level
      stock
    }
    price {
      amount
      currencyCode
      currencySymbol
      intAmount
      precision
      stringValue
    }
    priceInformation {
      oldGrossPrice {
        ...MoneyFragment
      }
      oldNetPrice {
        ...MoneyFragment
      }
      oldPrice {
        ...MoneyFragment
      }
      providerPrice {
        ...ProviderPriceFragment
      }
      providerPrices {
        ...ProviderPriceFragment
      }
      savingPercentage
    }
    product {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      bestVariation {
        ...ItemFragment
      }
      brand {
        ...BrandFragment
      }
      breadcrumb {
        ...CategoryFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categories {
        ...CategoryFragment
      }
      category {
        ...CategoryFragment
      }
      documents {
        ...DocumentFragment
      }
      features {
        ...ProductFeatureFragment
      }
      globalContent {
        ...RasterFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      longDescription
      materials
      name
      new
      page {
        ...MaintainedProductPageFragment
      }
      recommendations {
        ...ProductRecommendationsFragment
      }
      reviews {
        ...ReviewsFragment
      }
      sellingPoints
      seo {
        ...SeoFragment
      }
      shortDescription
      variations {
        ...ItemFragment
      }
      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
      id {
        ...AttributeIdFragment
      }
      name
    }
    videos {
      fileName
      url
    }
    inBasket
    onWishlist
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "core_item": {
      "additionalImages": [Image],
      "assets": [Document],
      "availability": Availability,
      "badges": [Badge],
      "color": ItemColor,
      "documents": [Document],
      "facilityAvailability": [FacilityAvailability],
      "facilityStocks": [FacilityStock],
      "features": [ItemAttribute],
      "groupedFeatures": [BaseFeatureGroup],
      "id": "4",
      "image": Image,
      "images": [Image],
      "itemDiscount": ItemDiscount,
      "link": Link,
      "oldPrice": Money,
      "onlineAvailability": Availability,
      "onlineStock": Stock,
      "price": Money,
      "priceInformation": PriceInformation,
      "product": Product,
      "recommendations": ItemRecommendations,
      "relations": [ProductRelations],
      "rrpPrice": Money,
      "seo": Seo,
      "services": [ProductService],
      "shortDescription": "xyz789",
      "size": "abc123",
      "sku": "xyz789",
      "variations": [ItemAttribute],
      "videos": [Video],
      "inBasket": false,
      "onWishlist": false
    }
  }
}

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 {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      availability {
        ...AvailabilityFragment
      }
      badges {
        ...BadgeFragment
      }
      color {
        ...ItemColorFragment
      }
      documents {
        ...DocumentFragment
      }
      facilityAvailability {
        ...FacilityAvailabilityFragment
      }
      facilityStocks {
        ...FacilityStockFragment
      }
      features {
        ...ItemAttributeFragment
      }
      groupedFeatures {
        ...BaseFeatureGroupFragment
      }
      id
      image {
        ...ImageFragment
      }
      images {
        ...ImageFragment
      }
      itemDiscount {
        ...ItemDiscountFragment
      }
      link {
        ...LinkFragment
      }
      oldPrice {
        ...MoneyFragment
      }
      onlineAvailability {
        ...AvailabilityFragment
      }
      onlineStock {
        ...StockFragment
      }
      price {
        ...MoneyFragment
      }
      priceInformation {
        ...PriceInformationFragment
      }
      product {
        ...ProductFragment
      }
      recommendations {
        ...ItemRecommendationsFragment
      }
      relations {
        ...ProductRelationsFragment
      }
      rrpPrice {
        ...MoneyFragment
      }
      seo {
        ...SeoFragment
      }
      services {
        ...ProductServiceFragment
      }
      shortDescription
      size
      sku
      variations {
        ...ItemAttributeFragment
      }
      videos {
        ...VideoFragment
      }
      inBasket
      onWishlist
    }
    totalCount
  }
}
Variables
{
  "itemId": "xyz789",
  "paging": {"limit": 100, "offset": 0}
}
Response
{
  "data": {
    "core_itemRecommendations": {
      "items": [Item],
      "totalCount": 987
    }
  }
}

core_items

Description

Fetch a list of items by their IDs

Response

Returns [Item]!

Arguments
Name Description
ids - [ID!]! IDs of items to fetch

Example

Query
query Core_items($ids: [ID!]!) {
  core_items(ids: $ids) {
    additionalImages {
      alt
      boUrl
      fileName
      height
      imageRole
      name
      rank
      title
      url
      width
    }
    assets {
      ... on Document {
        ...DocumentFragment
      }
      ... on Image {
        ...ImageFragment
      }
      ... on Video {
        ...VideoFragment
      }
    }
    availability {
      available
      maxQuantity
      messageKey
      minQuantity
      ordinal
      status
    }
    badges {
      name
      type
    }
    color {
      displayName
      searchColor {
        ...SearchColorFragment
      }
    }
    documents {
      displayName
      fileName
      url
    }
    facilityAvailability {
      availability {
        ...AvailabilityFragment
      }
      facility {
        ...FacilityFragment
      }
    }
    facilityStocks {
      facility {
        ...FacilityFragment
      }
      stock {
        ...StockFragment
      }
    }
    features {
      displayName
      displayValue
      id {
        ...AttributeIdFragment
      }
      name
    }
    groupedFeatures {
      displayName
      features {
        ...ItemAttributeFragment
      }
    }
    id
    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
    }
    onlineAvailability {
      available
      maxQuantity
      messageKey
      minQuantity
      ordinal
      status
    }
    onlineStock {
      level
      stock
    }
    price {
      amount
      currencyCode
      currencySymbol
      intAmount
      precision
      stringValue
    }
    priceInformation {
      oldGrossPrice {
        ...MoneyFragment
      }
      oldNetPrice {
        ...MoneyFragment
      }
      oldPrice {
        ...MoneyFragment
      }
      providerPrice {
        ...ProviderPriceFragment
      }
      providerPrices {
        ...ProviderPriceFragment
      }
      savingPercentage
    }
    product {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      bestVariation {
        ...ItemFragment
      }
      brand {
        ...BrandFragment
      }
      breadcrumb {
        ...CategoryFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categories {
        ...CategoryFragment
      }
      category {
        ...CategoryFragment
      }
      documents {
        ...DocumentFragment
      }
      features {
        ...ProductFeatureFragment
      }
      globalContent {
        ...RasterFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      longDescription
      materials
      name
      new
      page {
        ...MaintainedProductPageFragment
      }
      recommendations {
        ...ProductRecommendationsFragment
      }
      reviews {
        ...ReviewsFragment
      }
      sellingPoints
      seo {
        ...SeoFragment
      }
      shortDescription
      variations {
        ...ItemFragment
      }
      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
      id {
        ...AttributeIdFragment
      }
      name
    }
    videos {
      fileName
      url
    }
    inBasket
    onWishlist
  }
}
Variables
{"ids": [4]}
Response
{
  "data": {
    "core_items": [
      {
        "additionalImages": [Image],
        "assets": [Document],
        "availability": Availability,
        "badges": [Badge],
        "color": ItemColor,
        "documents": [Document],
        "facilityAvailability": [FacilityAvailability],
        "facilityStocks": [FacilityStock],
        "features": [ItemAttribute],
        "groupedFeatures": [BaseFeatureGroup],
        "id": "4",
        "image": Image,
        "images": [Image],
        "itemDiscount": ItemDiscount,
        "link": Link,
        "oldPrice": Money,
        "onlineAvailability": Availability,
        "onlineStock": Stock,
        "price": Money,
        "priceInformation": PriceInformation,
        "product": Product,
        "recommendations": ItemRecommendations,
        "relations": [ProductRelations],
        "rrpPrice": Money,
        "seo": Seo,
        "services": [ProductService],
        "shortDescription": "abc123",
        "size": "xyz789",
        "sku": "xyz789",
        "variations": [ItemAttribute],
        "videos": [Video],
        "inBasket": false,
        "onWishlist": false
      }
    ]
  }
}

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
    }
    name
    parameters {
      name
    }
    raster {
      elements {
        ...RasterElementFragment
      }
      totalHeight
      totalWidth
    }
    seo {
      canonicalUrl
      headline
      hreflang {
        ...HreflangFragment
      }
      metaTags {
        ...MetaTagFragment
      }
      seoBoxText
      title
    }
  }
}
Response
{
  "data": {
    "core_landingPages": [
      {
        "link": Link,
        "name": "xyz789",
        "parameters": [ContentAttribute],
        "raster": Raster,
        "seo": Seo
      }
    ]
  }
}

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 {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      bestVariation {
        ...ItemFragment
      }
      brand {
        ...BrandFragment
      }
      breadcrumb {
        ...CategoryFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categories {
        ...CategoryFragment
      }
      category {
        ...CategoryFragment
      }
      documents {
        ...DocumentFragment
      }
      features {
        ...ProductFeatureFragment
      }
      globalContent {
        ...RasterFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      longDescription
      materials
      name
      new
      page {
        ...MaintainedProductPageFragment
      }
      recommendations {
        ...ProductRecommendationsFragment
      }
      reviews {
        ...ReviewsFragment
      }
      sellingPoints
      seo {
        ...SeoFragment
      }
      shortDescription
      variations {
        ...ItemFragment
      }
      videos {
        ...VideoFragment
      }
    }
    totalCount
  }
}
Variables
{"includingReducedProducts": true, "paging": {"limit": 100, "offset": 0}}
Response
{
  "data": {
    "core_lastSearchRecommendations": {
      "products": [Product],
      "totalCount": 987
    }
  }
}

core_mainCategories

Will be removed in a future release. Use core_mainNavigation instead
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
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    bottomTeaserInsertion {
      meta {
        ...TeaserMetaFragment
      }
      name
    }
    breadcrumbs {
      elements {
        ...BreadcrumbNavigationElementFragment
      }
    }
    categoryContent {
      categoryNavigation {
        ...CategoryNavigationFragment
      }
      raster {
        ...RasterFragment
      }
    }
    children {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      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
    }
    name
    navigationFlyout {
      alt
      boUrl
      fileName
      height
      imageRole
      name
      rank
      title
      url
      width
    }
    parameters {
      name
    }
    parent {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      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
    }
    seoHeadline
    teaserInsertions {
      meta {
        ...TeaserMetaFragment
      }
      name
    }
    topTeaserInsertion {
      meta {
        ...TeaserMetaFragment
      }
      name
    }
    topsellers {
      products {
        ...ProductFragment
      }
      totalCount
    }
  }
}
Variables
{"order": "ASC"}
Response
{
  "data": {
    "core_mainCategories": [
      {
        "ancestors": [Category],
        "bottomTeaserInsertion": TeaserAttribute,
        "breadcrumbs": Breadcrumbs,
        "categoryContent": CategoryContent,
        "children": [Category],
        "id": "4",
        "idsDown": "abc123",
        "isHiddenFor": true,
        "link": Link,
        "name": "abc123",
        "navigationFlyout": Image,
        "parameters": [ContentAttribute],
        "parent": Category,
        "products": PageSearchResult,
        "raster": Raster,
        "recommendations": CategoryRecommendations,
        "redirect": ResolvedLink,
        "seo": Seo,
        "seoHeadline": "xyz789",
        "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
      }
      name
      parameters {
        ...ContentAttributeFragment
      }
      parent {
        ...ContentTreePageFragment
      }
      raster {
        ...RasterFragment
      }
      root {
        ...ContentTreePageFragment
      }
      seo {
        ...SeoFragment
      }
      siblings {
        ...ContentTreePageFragment
      }
    }
    children {
      ancestors {
        ...ContentTreePageFragment
      }
      children {
        ...ContentTreePageFragment
      }
      link {
        ...LinkFragment
      }
      name
      parameters {
        ...ContentAttributeFragment
      }
      parent {
        ...ContentTreePageFragment
      }
      raster {
        ...RasterFragment
      }
      root {
        ...ContentTreePageFragment
      }
      seo {
        ...SeoFragment
      }
      siblings {
        ...ContentTreePageFragment
      }
    }
    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
    }
    parent {
      ancestors {
        ...ContentTreePageFragment
      }
      children {
        ...ContentTreePageFragment
      }
      link {
        ...LinkFragment
      }
      name
      parameters {
        ...ContentAttributeFragment
      }
      parent {
        ...ContentTreePageFragment
      }
      raster {
        ...RasterFragment
      }
      root {
        ...ContentTreePageFragment
      }
      seo {
        ...SeoFragment
      }
      siblings {
        ...ContentTreePageFragment
      }
    }
    raster {
      elements {
        ...RasterElementFragment
      }
      totalHeight
      totalWidth
    }
    root {
      ancestors {
        ...ContentTreePageFragment
      }
      children {
        ...ContentTreePageFragment
      }
      link {
        ...LinkFragment
      }
      name
      parameters {
        ...ContentAttributeFragment
      }
      parent {
        ...ContentTreePageFragment
      }
      raster {
        ...RasterFragment
      }
      root {
        ...ContentTreePageFragment
      }
      seo {
        ...SeoFragment
      }
      siblings {
        ...ContentTreePageFragment
      }
    }
    seo {
      canonicalUrl
      headline
      hreflang {
        ...HreflangFragment
      }
      metaTags {
        ...MetaTagFragment
      }
      seoBoxText
      title
    }
    siblings {
      ancestors {
        ...ContentTreePageFragment
      }
      children {
        ...ContentTreePageFragment
      }
      link {
        ...LinkFragment
      }
      name
      parameters {
        ...ContentAttributeFragment
      }
      parent {
        ...ContentTreePageFragment
      }
      raster {
        ...RasterFragment
      }
      root {
        ...ContentTreePageFragment
      }
      seo {
        ...SeoFragment
      }
      siblings {
        ...ContentTreePageFragment
      }
    }
  }
}
Variables
{"order": "ASC"}
Response
{
  "data": {
    "core_mainContentTreePages": [
      {
        "ancestors": [ContentTreePage],
        "children": [ContentTreePage],
        "link": Link,
        "name": "xyz789",
        "parameters": [ContentAttribute],
        "parent": ContentTreePage,
        "raster": Raster,
        "root": ContentTreePage,
        "seo": Seo,
        "siblings": [ContentTreePage]
      }
    ]
  }
}

core_mainNavigation

Description

With the query it is possible to get the main navigation.

e.g.:

  • Woman ** T-Shirt *** long T-Shirt *** short T-Shirt ** trousers *** straight *** skinny
  • Men ** trousers *** straight *** skinny
Response

Returns a MainNavigation!

Example

Query
query Core_mainNavigation {
  core_mainNavigation {
    mainNavigationElements {
      children {
        ...MainNavigationElementFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      name
    }
  }
}
Response
{
  "data": {
    "core_mainNavigation": {
      "mainNavigationElements": [MainNavigationElement]
    }
  }
}

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.

Response

Returns a Page

Arguments
Name Description
url - String! The URL to resolve

Example

Query
query Core_pageByUrl($url: String!) {
  core_pageByUrl(url: $url) {
    parameters {
      name
    }
    raster {
      elements {
        ...RasterElementFragment
      }
      totalHeight
      totalWidth
    }
    seo {
      canonicalUrl
      headline
      hreflang {
        ...HreflangFragment
      }
      metaTags {
        ...MetaTagFragment
      }
      seoBoxText
      title
    }
  }
}
Variables
{"url": "abc123"}
Response
{
  "data": {
    "core_pageByUrl": {
      "parameters": [ContentAttribute],
      "raster": Raster,
      "seo": Seo
    }
  }
}

core_product

Description

Fetch a product by its ID

Response

Returns a Product

Arguments
Name Description
id - ID! ID of product to fetch

Example

Query
query Core_product($id: ID!) {
  core_product(id: $id) {
    additionalImages {
      alt
      boUrl
      fileName
      height
      imageRole
      name
      rank
      title
      url
      width
    }
    assets {
      ... on Document {
        ...DocumentFragment
      }
      ... on Image {
        ...ImageFragment
      }
      ... on Video {
        ...VideoFragment
      }
    }
    bestVariation {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      availability {
        ...AvailabilityFragment
      }
      badges {
        ...BadgeFragment
      }
      color {
        ...ItemColorFragment
      }
      documents {
        ...DocumentFragment
      }
      facilityAvailability {
        ...FacilityAvailabilityFragment
      }
      facilityStocks {
        ...FacilityStockFragment
      }
      features {
        ...ItemAttributeFragment
      }
      groupedFeatures {
        ...BaseFeatureGroupFragment
      }
      id
      image {
        ...ImageFragment
      }
      images {
        ...ImageFragment
      }
      itemDiscount {
        ...ItemDiscountFragment
      }
      link {
        ...LinkFragment
      }
      oldPrice {
        ...MoneyFragment
      }
      onlineAvailability {
        ...AvailabilityFragment
      }
      onlineStock {
        ...StockFragment
      }
      price {
        ...MoneyFragment
      }
      priceInformation {
        ...PriceInformationFragment
      }
      product {
        ...ProductFragment
      }
      recommendations {
        ...ItemRecommendationsFragment
      }
      relations {
        ...ProductRelationsFragment
      }
      rrpPrice {
        ...MoneyFragment
      }
      seo {
        ...SeoFragment
      }
      services {
        ...ProductServiceFragment
      }
      shortDescription
      size
      sku
      variations {
        ...ItemAttributeFragment
      }
      videos {
        ...VideoFragment
      }
      inBasket
      onWishlist
    }
    brand {
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      name
      parameters {
        ...ContentAttributeFragment
      }
      productCount
      products {
        ...ProductFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    breadcrumb {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    breadcrumbs {
      elements {
        ...BreadcrumbNavigationElementFragment
      }
    }
    categories {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    category {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    documents {
      displayName
      fileName
      url
    }
    features {
      displayName
      id {
        ...AttributeIdFragment
      }
      name
      value
    }
    globalContent {
      elements {
        ...RasterElementFragment
      }
      totalHeight
      totalWidth
    }
    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
    }
    longDescription
    materials
    name
    new
    page {
      link {
        ...LinkFragment
      }
      parameters {
        ...ContentAttributeFragment
      }
      raster {
        ...RasterFragment
      }
      seo {
        ...SeoFragment
      }
    }
    recommendations {
      products {
        ...ProductFragment
      }
      totalCount
    }
    reviews {
      average
      bestRating
      count
      filterOptions {
        ...ReviewFilterOptionsFragment
      }
      ratingHistogram {
        ...RatingHistogramFragment
      }
      reviews {
        ...ReviewFragment
      }
      reviewsOfCurrentUser {
        ...ReviewFragment
      }
      usedReviewSorting
      worstRating
    }
    sellingPoints
    seo {
      canonicalUrl
      headline
      hreflang {
        ...HreflangFragment
      }
      metaTags {
        ...MetaTagFragment
      }
      seoBoxText
      title
    }
    shortDescription
    variations {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      availability {
        ...AvailabilityFragment
      }
      badges {
        ...BadgeFragment
      }
      color {
        ...ItemColorFragment
      }
      documents {
        ...DocumentFragment
      }
      facilityAvailability {
        ...FacilityAvailabilityFragment
      }
      facilityStocks {
        ...FacilityStockFragment
      }
      features {
        ...ItemAttributeFragment
      }
      groupedFeatures {
        ...BaseFeatureGroupFragment
      }
      id
      image {
        ...ImageFragment
      }
      images {
        ...ImageFragment
      }
      itemDiscount {
        ...ItemDiscountFragment
      }
      link {
        ...LinkFragment
      }
      oldPrice {
        ...MoneyFragment
      }
      onlineAvailability {
        ...AvailabilityFragment
      }
      onlineStock {
        ...StockFragment
      }
      price {
        ...MoneyFragment
      }
      priceInformation {
        ...PriceInformationFragment
      }
      product {
        ...ProductFragment
      }
      recommendations {
        ...ItemRecommendationsFragment
      }
      relations {
        ...ProductRelationsFragment
      }
      rrpPrice {
        ...MoneyFragment
      }
      seo {
        ...SeoFragment
      }
      services {
        ...ProductServiceFragment
      }
      shortDescription
      size
      sku
      variations {
        ...ItemAttributeFragment
      }
      videos {
        ...VideoFragment
      }
      inBasket
      onWishlist
    }
    videos {
      fileName
      url
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "core_product": {
      "additionalImages": [Image],
      "assets": [Document],
      "bestVariation": Item,
      "brand": Brand,
      "breadcrumb": [Category],
      "breadcrumbs": Breadcrumbs,
      "categories": [Category],
      "category": Category,
      "documents": [Document],
      "features": [ProductFeature],
      "globalContent": Raster,
      "id": "4",
      "image": Image,
      "link": Link,
      "longDescription": "xyz789",
      "materials": ["xyz789"],
      "name": "abc123",
      "new": true,
      "page": MaintainedProductPage,
      "recommendations": ProductRecommendations,
      "reviews": Reviews,
      "sellingPoints": ["xyz789"],
      "seo": Seo,
      "shortDescription": "abc123",
      "variations": [Item],
      "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

The strategy `AI_IMAGE` is no longer supported and will no longer provide any recommendations for this. 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 {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      bestVariation {
        ...ItemFragment
      }
      brand {
        ...BrandFragment
      }
      breadcrumb {
        ...CategoryFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categories {
        ...CategoryFragment
      }
      category {
        ...CategoryFragment
      }
      documents {
        ...DocumentFragment
      }
      features {
        ...ProductFeatureFragment
      }
      globalContent {
        ...RasterFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      longDescription
      materials
      name
      new
      page {
        ...MaintainedProductPageFragment
      }
      recommendations {
        ...ProductRecommendationsFragment
      }
      reviews {
        ...ReviewsFragment
      }
      sellingPoints
      seo {
        ...SeoFragment
      }
      shortDescription
      variations {
        ...ItemFragment
      }
      videos {
        ...VideoFragment
      }
    }
    totalCount
  }
}
Variables
{
  "includingReducedProducts": true,
  "paging": {"limit": 100, "offset": 0},
  "productIds": ["abc123"],
  "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) {
    additionalImages {
      alt
      boUrl
      fileName
      height
      imageRole
      name
      rank
      title
      url
      width
    }
    assets {
      ... on Document {
        ...DocumentFragment
      }
      ... on Image {
        ...ImageFragment
      }
      ... on Video {
        ...VideoFragment
      }
    }
    bestVariation {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      availability {
        ...AvailabilityFragment
      }
      badges {
        ...BadgeFragment
      }
      color {
        ...ItemColorFragment
      }
      documents {
        ...DocumentFragment
      }
      facilityAvailability {
        ...FacilityAvailabilityFragment
      }
      facilityStocks {
        ...FacilityStockFragment
      }
      features {
        ...ItemAttributeFragment
      }
      groupedFeatures {
        ...BaseFeatureGroupFragment
      }
      id
      image {
        ...ImageFragment
      }
      images {
        ...ImageFragment
      }
      itemDiscount {
        ...ItemDiscountFragment
      }
      link {
        ...LinkFragment
      }
      oldPrice {
        ...MoneyFragment
      }
      onlineAvailability {
        ...AvailabilityFragment
      }
      onlineStock {
        ...StockFragment
      }
      price {
        ...MoneyFragment
      }
      priceInformation {
        ...PriceInformationFragment
      }
      product {
        ...ProductFragment
      }
      recommendations {
        ...ItemRecommendationsFragment
      }
      relations {
        ...ProductRelationsFragment
      }
      rrpPrice {
        ...MoneyFragment
      }
      seo {
        ...SeoFragment
      }
      services {
        ...ProductServiceFragment
      }
      shortDescription
      size
      sku
      variations {
        ...ItemAttributeFragment
      }
      videos {
        ...VideoFragment
      }
      inBasket
      onWishlist
    }
    brand {
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      name
      parameters {
        ...ContentAttributeFragment
      }
      productCount
      products {
        ...ProductFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    breadcrumb {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    breadcrumbs {
      elements {
        ...BreadcrumbNavigationElementFragment
      }
    }
    categories {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    category {
      ancestors {
        ...CategoryFragment
      }
      bottomTeaserInsertion {
        ...TeaserAttributeFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categoryContent {
        ...CategoryContentFragment
      }
      children {
        ...CategoryFragment
      }
      id
      idsDown
      isHiddenFor
      link {
        ...LinkFragment
      }
      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
      }
      seoHeadline
      teaserInsertions {
        ...TeaserAttributeFragment
      }
      topTeaserInsertion {
        ...TeaserAttributeFragment
      }
      topsellers {
        ...ProductRecommendationsFragment
      }
    }
    documents {
      displayName
      fileName
      url
    }
    features {
      displayName
      id {
        ...AttributeIdFragment
      }
      name
      value
    }
    globalContent {
      elements {
        ...RasterElementFragment
      }
      totalHeight
      totalWidth
    }
    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
    }
    longDescription
    materials
    name
    new
    page {
      link {
        ...LinkFragment
      }
      parameters {
        ...ContentAttributeFragment
      }
      raster {
        ...RasterFragment
      }
      seo {
        ...SeoFragment
      }
    }
    recommendations {
      products {
        ...ProductFragment
      }
      totalCount
    }
    reviews {
      average
      bestRating
      count
      filterOptions {
        ...ReviewFilterOptionsFragment
      }
      ratingHistogram {
        ...RatingHistogramFragment
      }
      reviews {
        ...ReviewFragment
      }
      reviewsOfCurrentUser {
        ...ReviewFragment
      }
      usedReviewSorting
      worstRating
    }
    sellingPoints
    seo {
      canonicalUrl
      headline
      hreflang {
        ...HreflangFragment
      }
      metaTags {
        ...MetaTagFragment
      }
      seoBoxText
      title
    }
    shortDescription
    variations {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      availability {
        ...AvailabilityFragment
      }
      badges {
        ...BadgeFragment
      }
      color {
        ...ItemColorFragment
      }
      documents {
        ...DocumentFragment
      }
      facilityAvailability {
        ...FacilityAvailabilityFragment
      }
      facilityStocks {
        ...FacilityStockFragment
      }
      features {
        ...ItemAttributeFragment
      }
      groupedFeatures {
        ...BaseFeatureGroupFragment
      }
      id
      image {
        ...ImageFragment
      }
      images {
        ...ImageFragment
      }
      itemDiscount {
        ...ItemDiscountFragment
      }
      link {
        ...LinkFragment
      }
      oldPrice {
        ...MoneyFragment
      }
      onlineAvailability {
        ...AvailabilityFragment
      }
      onlineStock {
        ...StockFragment
      }
      price {
        ...MoneyFragment
      }
      priceInformation {
        ...PriceInformationFragment
      }
      product {
        ...ProductFragment
      }
      recommendations {
        ...ItemRecommendationsFragment
      }
      relations {
        ...ProductRelationsFragment
      }
      rrpPrice {
        ...MoneyFragment
      }
      seo {
        ...SeoFragment
      }
      services {
        ...ProductServiceFragment
      }
      shortDescription
      size
      sku
      variations {
        ...ItemAttributeFragment
      }
      videos {
        ...VideoFragment
      }
      inBasket
      onWishlist
    }
    videos {
      fileName
      url
    }
  }
}
Variables
{"ids": ["4"]}
Response
{
  "data": {
    "core_products": [
      {
        "additionalImages": [Image],
        "assets": [Document],
        "bestVariation": Item,
        "brand": Brand,
        "breadcrumb": [Category],
        "breadcrumbs": Breadcrumbs,
        "categories": [Category],
        "category": Category,
        "documents": [Document],
        "features": [ProductFeature],
        "globalContent": Raster,
        "id": "4",
        "image": Image,
        "link": Link,
        "longDescription": "abc123",
        "materials": ["xyz789"],
        "name": "abc123",
        "new": true,
        "page": MaintainedProductPage,
        "recommendations": ProductRecommendations,
        "reviews": Reviews,
        "sellingPoints": ["xyz789"],
        "seo": Seo,
        "shortDescription": "abc123",
        "variations": [Item],
        "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": "abc123"}
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_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": "abc123"}
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": 987
    }
  }
}

core_teaserSnippets

Description

Returns teasers defined as teaser snippets in the back office

Response

Returns [TeaserSnippet]!

Arguments
Name Description
names - [String!]! Teaser snippet names as defined in the back office

Example

Query
query Core_teaserSnippets($names: [String!]!) {
  core_teaserSnippets(names: $names) {
    name
    teaser {
      meta {
        ...TeaserMetaFragment
      }
      name
    }
  }
}
Variables
{"names": ["xyz789"]}
Response
{
  "data": {
    "core_teaserSnippets": [
      {
        "name": "xyz789",
        "teaser": TeaserAttribute
      }
    ]
  }
}

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 {
      additionalImages {
        ...ImageFragment
      }
      assets {
        ... on Document {
          ...DocumentFragment
        }
        ... on Image {
          ...ImageFragment
        }
        ... on Video {
          ...VideoFragment
        }
      }
      bestVariation {
        ...ItemFragment
      }
      brand {
        ...BrandFragment
      }
      breadcrumb {
        ...CategoryFragment
      }
      breadcrumbs {
        ...BreadcrumbsFragment
      }
      categories {
        ...CategoryFragment
      }
      category {
        ...CategoryFragment
      }
      documents {
        ...DocumentFragment
      }
      features {
        ...ProductFeatureFragment
      }
      globalContent {
        ...RasterFragment
      }
      id
      image {
        ...ImageFragment
      }
      link {
        ...LinkFragment
      }
      longDescription
      materials
      name
      new
      page {
        ...MaintainedProductPageFragment
      }
      recommendations {
        ...ProductRecommendationsFragment
      }
      reviews {
        ...ReviewsFragment
      }
      sellingPoints
      seo {
        ...SeoFragment
      }
      shortDescription
      variations {
        ...ItemFragment
      }
      videos {
        ...VideoFragment
      }
    }
    totalCount
  }
}
Variables
{
  "categoryIds": ["abc123"],
  "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": 987,
      "translations": [Translation]
    }
  }
}

payments_find

use cart_availablePaymentsV2 instead
Description

Filters a payment by its interface ID Deprecated: Use cart_availablePaymentsV2 instead

Response

Returns a Payment

Arguments
Name Description
interfaceId - ID! The interface ID (see interfaceId of Payment)

Example

Query
query Payments_find($interfaceId: ID!) {
  payments_find(interfaceId: $interfaceId) {
    interfaceId
    methodCodes
  }
}
Variables
{"interfaceId": "4"}
Response
{
  "data": {
    "payments_find": {
      "interfaceId": "4",
      "methodCodes": ["abc123"]
    }
  }
}

payments_findAll

use cart_availablePaymentsV2 instead
Description

Fetch all available payments Deprecated: Use cart_availablePaymentsV2 instead

Response

Returns [Payment]!

Example

Query
query Payments_findAll {
  payments_findAll {
    interfaceId
    methodCodes
  }
}
Response
{
  "data": {
    "payments_findAll": [
      {
        "interfaceId": 4,
        "methodCodes": ["xyz789"]
      }
    ]
  }
}

shop_findCart

Description

Fetch a specific cart for the current user

Response

Returns a Cart

Arguments
Name Description
cartId - ID The ID of the cart to fetch

Example

Query
query Shop_findCart($cartId: ID) {
  shop_findCart(cartId: $cartId) {
    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
    }
    id
    active
    attribute
    attributes
    availableShippingMethods {
      amount {
        ...MoneyFragment
      }
      description
      freeShipping
      name
      shipperId
    }
    billingAddress {
      addition
      additions
      attributes
      city
      company
      country {
        ...CountryFragment
      }
      email
      firstname
      id
      lastname
      notes
      number
      phone
      postcode
      salutation {
        ...SalutationFragment
      }
      street
      title
    }
    comment
    createdAt
    delivery {
      availableMethods {
        ...CheckoutCartDeliveryMethodFragment
      }
      freeShipping {
        ...CheckoutFreeShippingEffectFragment
      }
      selectedMethod {
        ...CheckoutCartDeliveryMethodFragment
      }
    }
    editable
    guestId
    isDefault
    name
    paymentDetails {
      giftCard {
        ...GiftCardFragment
      }
      selectedPaymentMethods {
        ...PaymentMethodFragment
      }
    }
    positions {
      comment
      details {
        ...ItemFragment
      }
      discountAmount {
        ...MoneyFragment
      }
      discountInfo {
        ...DiscountFragment
      }
      discountPercentage
      id
      price {
        ...PriceFragment
      }
      pricing {
        ...CheckoutPositionPricingFragment
      }
      promotion {
        ...PromotionFragment
      }
      promotionDescription
      promotionName
      provider {
        ...ProviderFragment
      }
      quantity
      totalCurrentGrossPrice {
        ...MoneyFragment
      }
      totalCurrentNetPrice {
        ...MoneyFragment
      }
      totalCurrentPrice {
        ...MoneyFragment
      }
      totalDiscount {
        ...MoneyFragment
      }
      totalOldGrossPrice {
        ...MoneyFragment
      }
      totalOldNetPrice {
        ...MoneyFragment
      }
      totalOldPrice {
        ...MoneyFragment
      }
      totalPositionGrossPrice {
        ...MoneyFragment
      }
      totalPositionNetPrice {
        ...MoneyFragment
      }
      totalPositionPrice {
        ...MoneyFragment
      }
      voucher
    }
    promotionDetails {
      additionalFees {
        ...AdditionalFeeFragment
      }
      articleCount
      attainableInfos {
        ...AttainableInfoFragment
      }
      deliveryInfo {
        ...DetailedDeliveryInfoFragment
      }
      discountInfo {
        ...CartDiscountInfoFragment
      }
      discountsVatIncluded
      freeShippingInfo {
        ...FreeShippingInfoFragment
      }
      grossSubtotal {
        ...MoneyFragment
      }
      grossTotal {
        ...MoneyFragment
      }
      informativeBenefits {
        ...InformativeBenefitInfoFragment
      }
      netSubtotal {
        ...MoneyFragment
      }
      netTotal {
        ...MoneyFragment
      }
      positionCount
      positions {
        ...CartPositionFragment
      }
      promoItems {
        ... on FreeAddonsInfo {
          ...FreeAddonsInfoFragment
        }
        ... on FreeItemsInfo {
          ...FreeItemsInfoFragment
        }
        ... on SpecialPriceInfo {
          ...SpecialPriceInfoFragment
        }
      }
      promotionsSaving {
        ...MoneyFragment
      }
      subtotal {
        ...MoneyFragment
      }
      total {
        ...MoneyFragment
      }
      totalSavings {
        ...MoneyFragment
      }
      vatInfo {
        ...VatInfoFragment
      }
      vatTotal {
        ...MoneyFragment
      }
      voucherCodeStatus
      voucherSavings {
        ...MoneyFragment
      }
      vouchers
    }
    promotions {
      cartDiscount {
        ...CheckoutCartDiscountFragment
      }
      informationalBenefits {
        ...CheckoutInformationalBenefitFragment
      }
      promotionSavings {
        ...MonetaryAmountFragment
      }
      selectableOffers {
        ...CheckoutSelectableOfferFragment
      }
      voucherSavings {
        ...MonetaryAmountFragment
      }
      vouchers {
        ...CheckoutCartVoucherFragment
      }
    }
    selectedPaymentMethod {
      code
      interfaceId
      label
    }
    selectedPaymentMethodV2 {
      code
      interfaceId
      label
    }
    selectedShippingMethod {
      amount {
        ...MoneyFragment
      }
      description
      freeShipping
      name
      shipperId
    }
    shared
    shippingAddresses {
      addition
      additions
      attributes
      city
      company
      country {
        ...CountryFragment
      }
      email
      firstname
      id
      isShop
      isStation
      lastname
      notes
      number
      phone
      postcode
      salutation {
        ...SalutationFragment
      }
      street
      title
    }
    summary {
      additionalFees {
        ...CheckoutCartAdditionalFeeFragment
      }
      articleCount
      discountsVatIncluded
      positionCount
      subtotal {
        ...CheckoutDetailedPriceFragment
      }
      total {
        ...CheckoutDetailedPriceFragment
      }
      totalSavings {
        ...MonetaryAmountFragment
      }
      vat {
        ...CheckoutCartVatInfoFragment
      }
    }
  }
}
Variables
{"cartId": 4}
Response
{
  "data": {
    "shop_findCart": {
      "details": CartDetails,
      "id": 4,
      "active": true,
      "attribute": Object,
      "attributes": Object,
      "availableShippingMethods": [ShippingMethod],
      "billingAddress": BillingAddress,
      "comment": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "delivery": CheckoutCartDelivery,
      "editable": false,
      "guestId": "xyz789",
      "isDefault": true,
      "name": "abc123",
      "paymentDetails": PaymentDetails,
      "positions": [CartPosition],
      "promotionDetails": PromotionDetails,
      "promotions": CheckoutCartPromotions,
      "selectedPaymentMethod": PaymentMethod,
      "selectedPaymentMethodV2": PaymentMethodV2,
      "selectedShippingMethod": ShippingMethod,
      "shared": false,
      "shippingAddresses": [ShippingAddress],
      "summary": CheckoutCartSummary
    }
  }
}

shop_findCarts

Description

Fetch all carts for the current user

Response

Returns [Cart]!

Example

Query
query Shop_findCarts {
  shop_findCarts {
    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
    }
    id
    active
    attribute
    attributes
    availableShippingMethods {
      amount {
        ...MoneyFragment
      }
      description
      freeShipping
      name
      shipperId
    }
    billingAddress {
      addition
      additions
      attributes
      city
      company
      country {
        ...CountryFragment
      }
      email
      firstname
      id
      lastname
      notes
      number
      phone
      postcode
      salutation {
        ...SalutationFragment
      }
      street
      title
    }
    comment
    createdAt
    delivery {
      availableMethods {
        ...CheckoutCartDeliveryMethodFragment
      }
      freeShipping {
        ...CheckoutFreeShippingEffectFragment
      }
      selectedMethod {
        ...CheckoutCartDeliveryMethodFragment
      }
    }
    editable
    guestId
    isDefault
    name
    paymentDetails {
      giftCard {
        ...GiftCardFragment
      }
      selectedPaymentMethods {
        ...PaymentMethodFragment
      }
    }
    positions {
      comment
      details {
        ...ItemFragment
      }
      discountAmount {
        ...MoneyFragment
      }
      discountInfo {
        ...DiscountFragment
      }
      discountPercentage
      id
      price {
        ...PriceFragment
      }
      pricing {
        ...CheckoutPositionPricingFragment
      }
      promotion {
        ...PromotionFragment
      }
      promotionDescription
      promotionName
      provider {
        ...ProviderFragment
      }
      quantity
      totalCurrentGrossPrice {
        ...MoneyFragment
      }
      totalCurrentNetPrice {
        ...MoneyFragment
      }
      totalCurrentPrice {
        ...MoneyFragment
      }
      totalDiscount {
        ...MoneyFragment
      }
      totalOldGrossPrice {
        ...MoneyFragment
      }
      totalOldNetPrice {
        ...MoneyFragment
      }
      totalOldPrice {
        ...MoneyFragment
      }
      totalPositionGrossPrice {
        ...MoneyFragment
      }
      totalPositionNetPrice {
        ...MoneyFragment
      }
      totalPositionPrice {
        ...MoneyFragment
      }
      voucher
    }
    promotionDetails {
      additionalFees {
        ...AdditionalFeeFragment
      }
      articleCount
      attainableInfos {
        ...AttainableInfoFragment
      }
      deliveryInfo {
        ...DetailedDeliveryInfoFragment
      }
      discountInfo {
        ...CartDiscountInfoFragment
      }
      discountsVatIncluded
      freeShippingInfo {
        ...FreeShippingInfoFragment
      }
      grossSubtotal {
        ...MoneyFragment
      }
      grossTotal {
        ...MoneyFragment
      }
      informativeBenefits {
        ...InformativeBenefitInfoFragment
      }
      netSubtotal {
        ...MoneyFragment
      }
      netTotal {
        ...MoneyFragment
      }
      positionCount
      positions {
        ...CartPositionFragment
      }
      promoItems {
        ... on FreeAddonsInfo {
          ...FreeAddonsInfoFragment
        }
        ... on FreeItemsInfo {
          ...FreeItemsInfoFragment
        }
        ... on SpecialPriceInfo {
          ...SpecialPriceInfoFragment
        }
      }
      promotionsSaving {
        ...MoneyFragment
      }
      subtotal {
        ...MoneyFragment
      }
      total {
        ...MoneyFragment
      }
      totalSavings {
        ...MoneyFragment
      }
      vatInfo {
        ...VatInfoFragment
      }
      vatTotal {
        ...MoneyFragment
      }
      voucherCodeStatus
      voucherSavings {
        ...MoneyFragment
      }
      vouchers
    }
    promotions {
      cartDiscount {
        ...CheckoutCartDiscountFragment
      }
      informationalBenefits {
        ...CheckoutInformationalBenefitFragment
      }
      promotionSavings {
        ...MonetaryAmountFragment
      }
      selectableOffers {
        ...CheckoutSelectableOfferFragment
      }
      voucherSavings {
        ...MonetaryAmountFragment
      }
      vouchers {
        ...CheckoutCartVoucherFragment
      }
    }
    selectedPaymentMethod {
      code
      interfaceId
      label
    }
    selectedPaymentMethodV2 {
      code
      interfaceId
      label
    }
    selectedShippingMethod {
      amount {
        ...MoneyFragment
      }
      description
      freeShipping
      name
      shipperId
    }
    shared
    shippingAddresses {
      addition
      additions
      attributes
      city
      company
      country {
        ...CountryFragment
      }
      email
      firstname
      id
      isShop
      isStation
      lastname
      notes
      number
      phone
      postcode
      salutation {
        ...SalutationFragment
      }
      street
      title
    }
    summary {
      additionalFees {
        ...CheckoutCartAdditionalFeeFragment
      }
      articleCount
      discountsVatIncluded
      positionCount
      subtotal {
        ...CheckoutDetailedPriceFragment
      }
      total {
        ...CheckoutDetailedPriceFragment
      }
      totalSavings {
        ...MonetaryAmountFragment
      }
      vat {
        ...CheckoutCartVatInfoFragment
      }
    }
  }
}
Response
{
  "data": {
    "shop_findCarts": [
      {
        "details": CartDetails,
        "id": 4,
        "active": true,
        "attribute": Object,
        "attributes": Object,
        "availableShippingMethods": [ShippingMethod],
        "billingAddress": BillingAddress,
        "comment": "abc123",
        "createdAt": "2007-12-03T10:15:30Z",
        "delivery": CheckoutCartDelivery,
        "editable": false,
        "guestId": "xyz789",
        "isDefault": true,
        "name": "abc123",
        "paymentDetails": PaymentDetails,
        "positions": [CartPosition],
        "promotionDetails": PromotionDetails,
        "promotions": CheckoutCartPromotions,
        "selectedPaymentMethod": PaymentMethod,
        "selectedPaymentMethodV2": PaymentMethodV2,
        "selectedShippingMethod": ShippingMethod,
        "shared": true,
        "shippingAddresses": [ShippingAddress],
        "summary": CheckoutCartSummary
      }
    ]
  }
}

shop_findUnitShoppingList

Description

Fetch a specific unit shopping list, it must contain the unit-id from the users token.

Response

Returns a UnitShoppingList

Arguments
Name Description
id - ID! The ID of the shopping list to fetch

Example

Query
query Shop_findUnitShoppingList($id: ID!) {
  shop_findUnitShoppingList(id: $id) {
    createdAt
    entries {
      createdAt
      id
      item {
        ...ItemFragment
      }
      lastModifiedBy
      quantity
      updatedAt
    }
    id
    lastModifiedBy
    name
    units
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "shop_findUnitShoppingList": {
      "createdAt": "2007-12-03T10:15:30Z",
      "entries": [UnitShoppingListEntry],
      "id": "4",
      "lastModifiedBy": "abc123",
      "name": "xyz789",
      "units": ["xyz789"],
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

shop_findUnitShoppingLists

Description

Fetch all unit shopping lists which contain the unit-id from the users token.

Response

Returns a UnitShoppingListsFindPayload!

Arguments
Name Description
filter - UnitShoppingListFilterInput! Default = {unitIds: []}
paging - UnitShoppingListPagingInput Default = {paging: {limit: 100, offset: 0}, sorting: {sortColumn: CREATED_AT, sortOrder: ASC}}

Example

Query
query Shop_findUnitShoppingLists(
  $filter: UnitShoppingListFilterInput!,
  $paging: UnitShoppingListPagingInput
) {
  shop_findUnitShoppingLists(
    filter: $filter,
    paging: $paging
  ) {
    entries {
      createdAt
      entries {
        ...UnitShoppingListEntryFragment
      }
      id
      lastModifiedBy
      name
      units
      updatedAt
    }
    totalCount
  }
}
Variables
{
  "filter": {"unitIds": [""]},
  "paging": {
    "paging": {"limit": 100, "offset": 0},
    "sorting": {"sortColumn": "CREATED_AT", "sortOrder": "ASC"}
  }
}
Response
{
  "data": {
    "shop_findUnitShoppingLists": {
      "entries": [UnitShoppingList],
      "totalCount": 123
    }
  }
}

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
    totalCount
  }
}
Variables
{"wishlistId": "4"}
Response
{
  "data": {
    "shop_findWishlist": {
      "createdAt": "2007-12-03T10:15:30Z",
      "entries": [WishlistEntry],
      "id": "4",
      "name": "xyz789",
      "totalCount": 987
    }
  }
}

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
    totalCount
  }
}
Response
{
  "data": {
    "shop_findWishlists": [
      {
        "createdAt": "2007-12-03T10:15:30Z",
        "entries": [WishlistEntry],
        "id": "4",
        "name": "xyz789",
        "totalCount": 987
      }
    ]
  }
}

shop_globalParameters

Description

Collection of non-core global parameters

Response

Returns a ShopGlobalParameters!

Example

Query
query Shop_globalParameters {
  shop_globalParameters {
    benefitHeader
    campaignHeader
    displayPriceSelector
    gtmContainerId
    productsPerPage
    productsPerSearchPage
    vatIncluded
  }
}
Response
{
  "data": {
    "shop_globalParameters": {
      "benefitHeader": "xyz789",
      "campaignHeader": "abc123",
      "displayPriceSelector": false,
      "gtmContainerId": "xyz789",
      "productsPerPage": 123,
      "productsPerSearchPage": 123,
      "vatIncluded": true
    }
  }
}

shop_loadReturnRequest

Description

Load open return requests for an order. Requires an authenticated customer. Only return requests with status NEW, ACCEPTED or REJECTED are returned, ordered descending by creation date.

Response

Returns a LoadReturnRequestResult!

Arguments
Name Description
orderId - ID! ID of the order whose return requests should be loaded.

Example

Query
query Shop_loadReturnRequest($orderId: ID!) {
  shop_loadReturnRequest(orderId: $orderId) {
    ... on LoadReturnRequestProblems {
      problems {
        ...LoadReturnRequestProblemFragment
      }
    }
    ... on LoadReturnRequestSuccess {
      returnRequests {
        ...OrderReturnRequestFragment
      }
    }
  }
}
Variables
{"orderId": "4"}
Response
{
  "data": {
    "shop_loadReturnRequest": LoadReturnRequestProblems
  }
}

shop_withdrawalEligibility

Description

Checks whether a withdrawal for an order is possible without actually executing it. Useful for UI feedback. Requires an authenticated customer session. Only the order's owner can check eligibility.

Response

Returns a WithdrawalEligibilityResult!

Arguments
Name Description
orderNumber - String!

Example

Query
query Shop_withdrawalEligibility($orderNumber: String!) {
  shop_withdrawalEligibility(orderNumber: $orderNumber) {
    ... on WithdrawalEligibilityProblems {
      problems {
        ...OrderWithdrawalProblemFragment
      }
    }
    ... on WithdrawalEligibilitySuccess {
      options {
        ...WithdrawalOptionsFragment
      }
      orderNumber
      positions {
        ...WithdrawalEligiblePositionFragment
      }
    }
  }
}
Variables
{"orderNumber": "xyz789"}
Response
{
  "data": {
    "shop_withdrawalEligibility": WithdrawalEligibilityProblems
  }
}

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": "abc123"}}

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
  }
}

adyen_createSession

Description

Creates a payment session for Adyen's Drop-in and Components integrations (deprecated)

Response

Returns an AdyenCreateSessionPayload!

Arguments
Name Description
data - AdyenCreateSessionInput! Information to create a payment session

Example

Query
mutation Adyen_createSession($data: AdyenCreateSessionInput!) {
  adyen_createSession(data: $data) {
    id
    reference
    session
    sessionData
  }
}
Variables
{"data": AdyenCreateSessionInput}
Response
{
  "data": {
    "adyen_createSession": {
      "id": "4",
      "reference": "abc123",
      "session": {},
      "sessionData": "xyz789"
    }
  }
}

b2b_assignRolesToUser

Description

Assign one or more roles to a user.

Response

Returns a B2BUpdateUserResult!

Arguments
Name Description
input - AssignRolesToUserInput!

Example

Query
mutation B2b_assignRolesToUser($input: AssignRolesToUserInput!) {
  b2b_assignRolesToUser(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BRoleUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUpdateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BUserActivationProblem {
      key
      userId
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": AssignRolesToUserInput}
Response
{"data": {"b2b_assignRolesToUser": B2BProblem}}

b2b_assignUserToUnits

Description

Assigns one or more units to a user.

Response

Returns a B2BUpdateUserResult!

Arguments
Name Description
input - AssignUserToUnitsInput!

Example

Query
mutation B2b_assignUserToUnits($input: AssignUserToUnitsInput!) {
  b2b_assignUserToUnits(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BRoleUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUpdateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BUserActivationProblem {
      key
      userId
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": AssignUserToUnitsInput}
Response
{"data": {"b2b_assignUserToUnits": B2BProblem}}

b2b_createCompany

Description

Allows to create a new company. The company is a top-level root unit and does not have a parent. It can have one or more subunits.

Response

Returns a CreateUnitResult!

Arguments
Name Description
input - B2BCreateCompanyInput!

Example

Query
mutation B2b_createCompany($input: B2BCreateCompanyInput!) {
  b2b_createCompany(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
    ... on CreateUnitSuccess {
      unit {
        ... on B2BCompany {
          ...B2BCompanyFragment
        }
        ... on B2BSubUnit {
          ...B2BSubUnitFragment
        }
      }
    }
  }
}
Variables
{"input": B2BCreateCompanyInput}
Response
{"data": {"b2b_createCompany": B2BProblem}}

b2b_createShippingAddress

Description

Allows to create a new shipping address.

Response

Returns a B2BShippingAddressResult

Arguments
Name Description
input - ShippingAddressCreateInput!

Example

Query
mutation B2b_createShippingAddress($input: ShippingAddressCreateInput!) {
  b2b_createShippingAddress(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BShippingAddressSuccess {
      address {
        ...B2BShippingAddressFragment
      }
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": ShippingAddressCreateInput}
Response
{"data": {"b2b_createShippingAddress": B2BProblem}}

b2b_createUnit

Description

Allows to create a new subunit. A Subunit must have a parent, which can be either a company or another subunit.

Response

Returns a CreateUnitResult!

Arguments
Name Description
input - CreateUnitInput!

Example

Query
mutation B2b_createUnit($input: CreateUnitInput!) {
  b2b_createUnit(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
    ... on CreateUnitSuccess {
      unit {
        ... on B2BCompany {
          ...B2BCompanyFragment
        }
        ... on B2BSubUnit {
          ...B2BSubUnitFragment
        }
      }
    }
  }
}
Variables
{"input": CreateUnitInput}
Response
{"data": {"b2b_createUnit": B2BProblem}}

b2b_createUser

Description

Allows to create a new user for the specified b2b unit.

Response

Returns a B2BCreateUserResult!

Arguments
Name Description
input - B2BCreateUserInput!

Example

Query
mutation B2b_createUser($input: B2BCreateUserInput!) {
  b2b_createUser(input: $input) {
    ... on B2BCreateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": B2BCreateUserInput}
Response
{"data": {"b2b_createUser": B2BCreateUserSuccess}}

b2b_deleteAddress

Description

Allows to delete shipping address of the unit

Response

Returns a Boolean!

Arguments
Name Description
input - DeleteUnitAddress!

Example

Query
mutation B2b_deleteAddress($input: DeleteUnitAddress!) {
  b2b_deleteAddress(input: $input)
}
Variables
{"input": DeleteUnitAddress}
Response
{"data": {"b2b_deleteAddress": false}}

b2b_setRoles

Description

Set one or more roles to a user. (override)

It replaces the roles currently assigned to a user with the given set of roles (roleInternalIds). Roles that are not included in the new list will be unassigned, and new ones will be added.

Authorization:

  • Requires USER_ROLE_EDIT permission.

Constraints:

  • A admin user cannot unassign their admin role.
  • A user must always have at least one role.
  • Attempting to remove the admin role will result in an error.

B2BProblem:

  • ishop.backend.problem.set.user.roles – Error happened while setting roles.
  • ishop.backend.problem.role.unassign-self – Admin attempted to unassign their admin role.
  • ishop.backend.problem.user.one-role – A user must always have at least one role..

Returns B2BUpdateUserResult:

  • On success: B2BUpdateUserSuccess containing the updated user information.
  • On failure: B2BProblem describing the error.
Response

Returns a B2BUpdateUserResult!

Arguments
Name Description
input - B2BSetRolesInput

Example

Query
mutation B2b_setRoles($input: B2BSetRolesInput) {
  b2b_setRoles(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BRoleUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUpdateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BUserActivationProblem {
      key
      userId
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": B2BSetRolesInput}
Response
{"data": {"b2b_setRoles": B2BProblem}}

b2b_setUnits

Description

Set one or more units to a user. (override)

It replaces the units currently assigned to a user with the given set of units (unitInternalIds). Existing assigned units that are not included in the units will be unassigned, and new ones will be added.

Authorization:

  • Requires USER_MEMBERSHIP_EDIT permission for the provided unitInternalIds.

Constraints:

  • A user must always belong to at least one unit.
  • Attempting to unassign the unit of the admin user will result in an error.

B2BProblem:

  • ishop.backend.problem.set.user.units – Error happened while setting units.
  • ishop.backend.problem.unit.unassign-self – Admin user tries to unassign themselves.
  • ishop.backend.problem.user.one-unit – A user must be member of at least one unit.

Returns B2BUpdateUserResult:

  • On success: B2BUpdateUserSuccess containing the updated user information.
  • On failure: B2BProblem describing the error.
Response

Returns a B2BUpdateUserResult!

Arguments
Name Description
input - B2BSetUnitsInput

Example

Query
mutation B2b_setUnits($input: B2BSetUnitsInput) {
  b2b_setUnits(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BRoleUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUpdateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BUserActivationProblem {
      key
      userId
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": B2BSetUnitsInput}
Response
{"data": {"b2b_setUnits": B2BProblem}}

b2b_setUsersActivation

Description

Allows to toggle user status (active/inactive)

Response

Returns a B2BUpdateUsersResult!

Arguments
Name Description
input - UsersActivationInput!

Example

Query
mutation B2b_setUsersActivation($input: UsersActivationInput!) {
  b2b_setUsersActivation(input: $input) {
    result {
      ... on B2BProblem {
        ...B2BProblemFragment
      }
      ... on B2BRoleAssignProblem {
        ...B2BRoleAssignProblemFragment
      }
      ... on B2BRoleUnassignProblem {
        ...B2BRoleUnassignProblemFragment
      }
      ... on B2BUnitAssignProblem {
        ...B2BUnitAssignProblemFragment
      }
      ... on B2BUnitUnassignProblem {
        ...B2BUnitUnassignProblemFragment
      }
      ... on B2BUpdateUserSuccess {
        ...B2BUpdateUserSuccessFragment
      }
      ... on B2BUserActivationProblem {
        ...B2BUserActivationProblemFragment
      }
      ... on B2BValidationProblems {
        ...B2BValidationProblemsFragment
      }
    }
  }
}
Variables
{"input": UsersActivationInput}
Response
{
  "data": {
    "b2b_setUsersActivation": {"result": [B2BProblem]}
  }
}

b2b_unassignRolesFromUser

Description

Removes one or more roles from a user.

Response

Returns a B2BUpdateUserResult!

Arguments
Name Description
input - UnassignRolesFromUserInput!

Example

Query
mutation B2b_unassignRolesFromUser($input: UnassignRolesFromUserInput!) {
  b2b_unassignRolesFromUser(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BRoleUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUpdateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BUserActivationProblem {
      key
      userId
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": UnassignRolesFromUserInput}
Response
{"data": {"b2b_unassignRolesFromUser": B2BProblem}}

b2b_unassignUserFromUnits

Description

Removes one or more units from a user.

Response

Returns a B2BUpdateUserResult!

Arguments
Name Description
input - UnassignUnitsFromUserInput!

Example

Query
mutation B2b_unassignUserFromUnits($input: UnassignUnitsFromUserInput!) {
  b2b_unassignUserFromUnits(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BRoleUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUpdateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BUserActivationProblem {
      key
      userId
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": UnassignUnitsFromUserInput}
Response
{"data": {"b2b_unassignUserFromUnits": B2BProblem}}

b2b_updateCompany

Description

Allows to update an existing company.

Response

Returns a B2BUnitUpdateResult!

Arguments
Name Description
input - B2BCompanyUpdateInput!

Example

Query
mutation B2b_updateCompany($input: B2BCompanyUpdateInput!) {
  b2b_updateCompany(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BUnitUpdateSuccess {
      unit {
        ... on B2BCompany {
          ...B2BCompanyFragment
        }
        ... on B2BSubUnit {
          ...B2BSubUnitFragment
        }
      }
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": B2BCompanyUpdateInput}
Response
{"data": {"b2b_updateCompany": B2BProblem}}

b2b_updateShippingAddress

Description

Allows to update an existing shipping address.

Response

Returns a B2BShippingAddressResult!

Arguments
Name Description
input - B2BAddressUpdateInput!

Example

Query
mutation B2b_updateShippingAddress($input: B2BAddressUpdateInput!) {
  b2b_updateShippingAddress(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BShippingAddressSuccess {
      address {
        ...B2BShippingAddressFragment
      }
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": B2BAddressUpdateInput}
Response
{"data": {"b2b_updateShippingAddress": B2BProblem}}

b2b_updateSubUnit

Description

Allows to update an existing sub unit.

Response

Returns a B2BUnitUpdateResult!

Arguments
Name Description
input - B2BSubUnitUpdateInput!

Example

Query
mutation B2b_updateSubUnit($input: B2BSubUnitUpdateInput!) {
  b2b_updateSubUnit(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BUnitUpdateSuccess {
      unit {
        ... on B2BCompany {
          ...B2BCompanyFragment
        }
        ... on B2BSubUnit {
          ...B2BSubUnitFragment
        }
      }
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": B2BSubUnitUpdateInput}
Response
{"data": {"b2b_updateSubUnit": B2BProblem}}

b2b_updateUser

Description

Allows to update a user.

Response

Returns a B2BUpdateUserResult!

Arguments
Name Description
input - B2BUpdateUserInput!

Example

Query
mutation B2b_updateUser($input: B2BUpdateUserInput!) {
  b2b_updateUser(input: $input) {
    ... on B2BProblem {
      key
    }
    ... on B2BRoleAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BRoleUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitAssignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUnitUnassignProblem {
      failedIds
      key
      successIds
    }
    ... on B2BUpdateUserSuccess {
      user {
        ...B2BUserFragment
      }
    }
    ... on B2BUserActivationProblem {
      key
      userId
    }
    ... on B2BValidationProblems {
      problems {
        ...B2BValidationProblemFragment
      }
    }
  }
}
Variables
{"input": B2BUpdateUserInput}
Response
{"data": {"b2b_updateUser": B2BProblem}}

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 `null`, the positions will be moved to the active/default wishlist.
                                          
                                          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_create

Description

Create a new cart. Useful in multi cart environments.

Response

Returns a CreateCartResult

Arguments
Name Description
data - CreateCartInput!

Example

Query
mutation Cart_create($data: CreateCartInput!) {
  cart_create(data: $data) {
    ... on CreateCartProblems {
      problems {
        ...CreateCartProblemFragment
      }
    }
    ... on CreateCartSuccess {
      cart {
        ...CartFragment
      }
    }
  }
}
Variables
{"data": CreateCartInput}
Response
{"data": {"cart_create": CreateCartProblems}}

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": true}}

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 {
      addedEntries {
        ...MergedEntryFragment
      }
      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}}

checkout_cancelOrder

Description

Cancel an existing Order, this sets the status of the stored Order to cancelled

Response

Returns an OrderCancelResult

Arguments
Name Description
input - OrderCancelInput! The orderId from the previous request checkout_submitOrder

Example

Query
mutation Checkout_cancelOrder($input: OrderCancelInput!) {
  checkout_cancelOrder(input: $input) {
    ... on OrderCancelProblems {
      problems {
        ...OrderCancelProblemFragment
      }
    }
    ... on OrderCancelSuccess {
      orderId
    }
  }
}
Variables
{"input": OrderCancelInput}
Response
{"data": {"checkout_cancelOrder": OrderCancelProblems}}

checkout_confirmOrder

Use checkout_confirmOrderV2 instead
Description

Confirms the Paypal Order and Stores a cart of the current user including as an order for further processing Deprecated: "Use checkout_confirmOrderV2 instead

Response

Returns an OrderSubmitResult

Arguments
Name Description
confirmationInput - OrderConfirmationInput The OrderConfirmationInput data
orderId - String! The orderId from the previous request checkout_submitOrder

Example

Query
mutation Checkout_confirmOrder(
  $confirmationInput: OrderConfirmationInput,
  $orderId: String!
) {
  checkout_confirmOrder(
    confirmationInput: $confirmationInput,
    orderId: $orderId
  ) {
    ... on OrderSubmitProblems {
      problems {
        ...OrderSubmitProblemFragment
      }
    }
    ... on OrderSubmitSdkAction {
      action {
        ...SdkActionFragment
      }
      id
      resultCode
    }
    ... on OrderSubmitSuccess {
      id
      orderToken
      pspPaymentId
      redirectUrl
    }
    ... on OrderSubmitThreeDS {
      data {
        ... on ThreeDSNative {
          ...ThreeDSNativeFragment
        }
        ... on ThreeDSRedirect {
          ...ThreeDSRedirectFragment
        }
      }
      id
    }
  }
}
Variables
{
  "confirmationInput": OrderConfirmationInput,
  "orderId": "abc123"
}
Response
{"data": {"checkout_confirmOrder": OrderSubmitProblems}}

checkout_confirmOrderV2

Description

Confirms the Paypal Order and Stores a cart of the current user including as an order for further processing

Response

Returns a CheckoutConfirmOrderResult

Arguments
Name Description
confirmationInput - OrderConfirmationInputV2!
orderId - String!

Example

Query
mutation Checkout_confirmOrderV2(
  $confirmationInput: OrderConfirmationInputV2!,
  $orderId: String!
) {
  checkout_confirmOrderV2(
    confirmationInput: $confirmationInput,
    orderId: $orderId
  ) {
    ... on CheckoutOrder {
      billingAddress {
        ...CheckoutOrderAddressFragment
      }
      delivery {
        ...CheckoutOrderDeliveryFragment
      }
      orderId
      orderStatus
      paymentMethod {
        ...PaymentMethodFragment
      }
      positions {
        ...CheckoutOrderPositionFragment
      }
      promotions {
        ...CheckoutOrderPromotionsFragment
      }
      shippingAddress {
        ...CheckoutOrderAddressFragment
      }
      summary {
        ...CheckoutOrderSummaryFragment
      }
    }
    ... on OrderSubmitProblems {
      problems {
        ...OrderSubmitProblemFragment
      }
    }
  }
}
Variables
{
  "confirmationInput": OrderConfirmationInputV2,
  "orderId": "xyz789"
}
Response
{"data": {"checkout_confirmOrderV2": CheckoutOrder}}

checkout_submitOrder

Description

Stores a cart of the current user including input data as an order for further processing

Response

Returns an OrderSubmitResult

Arguments
Name Description
input - SubmitOrderInput Operations to update a cart

Example

Query
mutation Checkout_submitOrder($input: SubmitOrderInput) {
  checkout_submitOrder(input: $input) {
    ... on OrderSubmitProblems {
      problems {
        ...OrderSubmitProblemFragment
      }
    }
    ... on OrderSubmitSdkAction {
      action {
        ...SdkActionFragment
      }
      id
      resultCode
    }
    ... on OrderSubmitSuccess {
      id
      orderToken
      pspPaymentId
      redirectUrl
    }
    ... on OrderSubmitThreeDS {
      data {
        ... on ThreeDSNative {
          ...ThreeDSNativeFragment
        }
        ... on ThreeDSRedirect {
          ...ThreeDSRedirectFragment
        }
      }
      id
    }
  }
}
Variables
{"input": SubmitOrderInput}
Response
{"data": {"checkout_submitOrder": OrderSubmitProblems}}

core_calculateCart

is only used internally and should therefore be replaced by a REST API in your shop service
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
      }
      promotion {
        ...PromotionFragment
      }
      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": 987,
      "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"]
    }
  }
}

core_calculateOrder

is only used internally and should therefore be replaced by a REST API in your shop service
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
      }
      promotion {
        ...PromotionFragment
      }
      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": 123,
      "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

Response

Returns a String!

Arguments
Name Description
message - String! Test text

Example

Query
mutation Echo($message: String!) {
  echo(message: $message)
}
Variables
{"message": "xyz789"}
Response
{"data": {"echo": "xyz789"}}

novosales_createReview

Description

Create a new product review

Response

Returns a SubmitReviewResult!

Arguments
Name Description
input - CreateReview! Operation to create a review

Example

Query
mutation Novosales_createReview($input: CreateReview!) {
  novosales_createReview(input: $input) {
    ... on SubmitReviewProblems {
      problems {
        ...SubmitReviewProblemFragment
      }
    }
    ... on SubmitReviewSuccess {
      review {
        ...ReviewFragment
      }
    }
  }
}
Variables
{"input": CreateReview}
Response
{"data": {"novosales_createReview": SubmitReviewProblems}}

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_submitGuestWithdrawal

Description

Submits a withdrawal request for a guest (unauthenticated) user. The customer is identified by order number and billing name. Always withdraws the entire order.

Response

Returns a SubmitWithdrawalResult!

Arguments
Name Description
input - SubmitGuestWithdrawalInput!

Example

Query
mutation Shop_submitGuestWithdrawal($input: SubmitGuestWithdrawalInput!) {
  shop_submitGuestWithdrawal(input: $input) {
    ... on SubmitWithdrawalProblems {
      problems {
        ...OrderWithdrawalProblemFragment
      }
    }
    ... on SubmitWithdrawalSuccess {
      summary {
        ...WithdrawalSummaryFragment
      }
    }
  }
}
Variables
{"input": SubmitGuestWithdrawalInput}
Response
{
  "data": {
    "shop_submitGuestWithdrawal": SubmitWithdrawalProblems
  }
}

shop_submitOrder

Description

Stores a cart of the current user including payment data as an order for further processing
Deprecated: use checkout_submitOrder instead

Response

Returns an OrderSubmitResult

Arguments
Name Description
cartId - ID! The ID of the cart for which an order is to be placed
paymentInputData - PaymentInputData The PaymentInputData data

Example

Query
mutation Shop_submitOrder(
  $cartId: ID!,
  $paymentInputData: PaymentInputData
) {
  shop_submitOrder(
    cartId: $cartId,
    paymentInputData: $paymentInputData
  ) {
    ... on OrderSubmitProblems {
      problems {
        ...OrderSubmitProblemFragment
      }
    }
    ... on OrderSubmitSdkAction {
      action {
        ...SdkActionFragment
      }
      id
      resultCode
    }
    ... on OrderSubmitSuccess {
      id
      orderToken
      pspPaymentId
      redirectUrl
    }
    ... on OrderSubmitThreeDS {
      data {
        ... on ThreeDSNative {
          ...ThreeDSNativeFragment
        }
        ... on ThreeDSRedirect {
          ...ThreeDSRedirectFragment
        }
      }
      id
    }
  }
}
Variables
{
  "cartId": "4",
  "paymentInputData": PaymentInputData
}
Response
{"data": {"shop_submitOrder": OrderSubmitProblems}}

shop_submitWithdrawal

Description

Submits a withdrawal request for an authenticated user. The customer is identified via their session token. Supports withdrawal of the entire order or specific positions.

Response

Returns a SubmitWithdrawalResult!

Arguments
Name Description
input - SubmitWithdrawalInput!

Example

Query
mutation Shop_submitWithdrawal($input: SubmitWithdrawalInput!) {
  shop_submitWithdrawal(input: $input) {
    ... on SubmitWithdrawalProblems {
      problems {
        ...OrderWithdrawalProblemFragment
      }
    }
    ... on SubmitWithdrawalSuccess {
      summary {
        ...WithdrawalSummaryFragment
      }
    }
  }
}
Variables
{"input": SubmitWithdrawalInput}
Response
{
  "data": {
    "shop_submitWithdrawal": SubmitWithdrawalProblems
  }
}

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": true}}

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}}

unit_shoppingList_create

Description

Create a unit shopping list with the unit-id from the Users token.

Response

Returns a CreateUnitShoppingListResult

Arguments
Name Description
input - CreateUnitShoppingListInput

Example

Query
mutation Unit_shoppingList_create($input: CreateUnitShoppingListInput) {
  unit_shoppingList_create(input: $input) {
    ... on CreateUnitShoppingListProblems {
      problems {
        ...CreateUnitShoppingListProblemFragment
      }
    }
    ... on CreateUnitShoppingListSuccess {
      shoppingList {
        ...UnitShoppingListFragment
      }
    }
  }
}
Variables
{"input": CreateUnitShoppingListInput}
Response
{
  "data": {
    "unit_shoppingList_create": CreateUnitShoppingListProblems
  }
}

unit_shoppingList_delete

Description

Delete a unit shopping list with the unit-id from the Users token.

Response

Returns a DeleteUnitShoppingListResult

Arguments
Name Description
input - DeleteUnitShoppingListInput!

Example

Query
mutation Unit_shoppingList_delete($input: DeleteUnitShoppingListInput!) {
  unit_shoppingList_delete(input: $input) {
    ... on DeleteUnitShoppingListProblems {
      problems {
        ...DeleteUnitShoppingListProblemFragment
      }
    }
    ... on DeleteUnitShoppingListSuccess {
      success
    }
  }
}
Variables
{"input": DeleteUnitShoppingListInput}
Response
{
  "data": {
    "unit_shoppingList_delete": DeleteUnitShoppingListProblems
  }
}

unit_shoppingList_empty

Description

Remove all positions in shopping list with the unit-id from the Users token.

Response

Returns an UpdateUnitShoppingListResult

Arguments
Name Description
id - ID

Example

Query
mutation Unit_shoppingList_empty($id: ID) {
  unit_shoppingList_empty(id: $id) {
    ... on UpdateUnitShoppingListProblems {
      problems {
        ...UpdateUnitShoppingListProblemFragment
      }
    }
    ... on UpdateUnitShoppingListSuccess {
      shoppingList {
        ...UnitShoppingListFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "unit_shoppingList_empty": UpdateUnitShoppingListProblems
  }
}

unit_shoppingList_update

Description

Update a unit shopping list with the unit-id from the Users token.

Response

Returns an UpdateUnitShoppingListResult

Arguments
Name Description
input - UpdateUnitShoppingListInput!

Example

Query
mutation Unit_shoppingList_update($input: UpdateUnitShoppingListInput!) {
  unit_shoppingList_update(input: $input) {
    ... on UpdateUnitShoppingListProblems {
      problems {
        ...UpdateUnitShoppingListProblemFragment
      }
    }
    ... on UpdateUnitShoppingListSuccess {
      shoppingList {
        ...UnitShoppingListFragment
      }
    }
  }
}
Variables
{"input": UpdateUnitShoppingListInput}
Response
{
  "data": {
    "unit_shoppingList_update": UpdateUnitShoppingListProblems
  }
}

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 `null`, the positions will be moved to the active/default cart.
If no cart exists for the current user, a new cart will be created.
wishlistId - ID

The ID of the wishlist whose positions are to be moved

If this ID is `null`, the positions of the active/default wishlist will be moved.

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 `null`, the active/default wishlist will be emptied.

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
fieldName - String! The field name that failed validation
message - String!

The message to display

This is usually the message code for translation.

  • ishop.backend.problem.invalid-phone: The provided phone number is empty or longer than 32 characters and not matches the phone number regular expression
value - String The String value that failed validation
Example
{
  "fieldName": "xyz789",
  "message": "xyz789",
  "value": "abc123"
}

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 String, Int, Float, Boolean, Objects and arrays of these types.

Examples:

# String
"addAttribute": {
"name": "test",
"value": "bert"
}
# Int
"addAttribute": {
"name": "int",
"value": 1056
}
# Float
"addAttribute": {
"name": "float",
"value": 10.56
}
# Boolean
"addAttribute": {
"name": "boolean",
"value": true
}
# Object
"addAttribute": {
"name": "object",
"value": {
"attr1": "test",
"attr2": 10.56,
"attr3": false,
"attr4": [1, 2]
}
}
# Array
"addAttribute": {
"name": "list",
"value": ["one", "two"]
}
Example
{
  "name": "abc123",
  "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}

AddToWishlist

Description

Operation to add a product to wishlist with preference for dimension, e.g. color, which is derived by given item

Fields
Input Field Description
setItemId - SetItemId!
setProductId - SetProductId!
Example
{
  "setItemId": SetItemId,
  "setProductId": SetProductId
}

AddVoucher

Description

Operation to add a voucher code

Fields
Input Field Description
code - String! The voucher code
Example
{"code": "xyz789"}

AdditionalFee

Description

An additional fee

Fields
Field Name Description
grossFee - Money!
label - String!
netFee - Money!
vatRate - VatRate
Example
{
  "grossFee": Money,
  "label": "abc123",
  "netFee": Money,
  "vatRate": VatRate
}

Address

Description

An address

Fields
Field Name Description
addition - String The address addition
additions - [String] The address additions
Deprecated, use field addition of type String instead. No longer supported
attributes - JSON

Additional attributes as JSON
Example:

{
"attribute1": "value1",
"attribute2": {
"test": 157
},
"attribute3": 5.90
}
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

BillingAddress

ShippingAddress

Example
{
  "addition": "abc123",
  "additions": ["abc123"],
  "attributes": {},
  "city": "xyz789",
  "company": "abc123",
  "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
addition - String The address addition
attributes - JSON

Additional attributes as JSON
Example:

{
"attribute1": "value1",
"attribute2": {
"test": 157
},
"attribute3": 5.90
}
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
{
  "addition": "xyz789",
  "attributes": {},
  "city": "xyz789",
  "company": "abc123",
  "country": "xyz789",
  "email": "xyz789",
  "firstname": "xyz789",
  "isShop": true,
  "isStation": true,
  "lastname": "xyz789",
  "number": "xyz789",
  "phone": "xyz789",
  "postcode": "abc123",
  "salutation": "abc123",
  "street": "abc123",
  "title": "xyz789"
}

AddressPermissions

Fields
Field Name Description
create - Boolean!
delete - Boolean!
update - Boolean!
Example
{"create": false, "delete": true, "update": true}

AdyenApplePayInput

Description

Set the Apple Pay for Adyen

Fields
Input Field Description
token - String! The token
Example
{"token": "xyz789"}

AdyenCreateSessionInput

Description

Information to create a payment session (deprecated)

Fields
Input Field Description
amount - Amount! The amount of the payment
cartId - ID! The cart ID for which to create the payment session
countryCode - String! The country code of the shopper (ISO 3166-1 ALPHA-2)
This is used to filter the list of available payment methods for the shopper.
language - String The language in which the payment methods are displayed (ISO 639-1). Default = "en"
returnUrl - String URL to which the shopper should be returned after a redirect
This URL can contain a maximum of 1024 characters and should contain the http or https protocol. You can also provide your own additional query parameters, such as the shopper ID or an order reference number.
If you set this returnUrl you have to handle the request. Otherwise, the default returnUrl specified in the application properties will be used and processed by the backend.
Example
{
  "amount": Amount,
  "cartId": 4,
  "countryCode": "xyz789",
  "language": "abc123",
  "returnUrl": "abc123"
}

AdyenCreateSessionPayload

Description

A payment session (deprecated)

Fields
Field Name Description
id - ID! A unique ID for the session data
reference - String! The payment reference
session - JSON! The complete response object in a JSON format
Used to create a configuration for an Adyen checkout in Adyen's Drop-In and Components integration (see Adyen documentation).
sessionData - String! The payment session data
Example
{
  "id": 4,
  "reference": "xyz789",
  "session": {},
  "sessionData": "xyz789"
}

AdyenCreditCardInput

Description

Set the credit card data for Adyen

Fields
Input Field Description
browserInfoInput - BrowserInfoInput! The BrowserInfoInput
clientData - String! The clientData for risk check!
encryptedCardNumber - String! The number encrypted
encryptedExpiryMonth - String! The expiry month encrypted
encryptedExpiryYear - String! The expiry year encrypted
encryptedSecurityCode - String! The security code encrypted
origin - String! The origin
ownerName - String! The owner name
Example
{
  "browserInfoInput": BrowserInfoInput,
  "clientData": "xyz789",
  "encryptedCardNumber": "xyz789",
  "encryptedExpiryMonth": "abc123",
  "encryptedExpiryYear": "abc123",
  "encryptedSecurityCode": "xyz789",
  "origin": "xyz789",
  "ownerName": "xyz789"
}

AdyenGooglePayInput

Description

Set the Google Pay for Adyen

Fields
Input Field Description
browserInfoInput - BrowserInfoInput! The BrowserInfoInput
token - String! The token
Example
{
  "browserInfoInput": BrowserInfoInput,
  "token": "xyz789"
}

AdyenPaymentMethod

Fields
Field Name Description
brand - String The brand of this payment method
brands - [String] List of possible brands (e.g. visa, mc, maestro)
displayName - String! The display name of this payment method
methodCode - ID! The unique payment method code
Example
{
  "brand": "abc123",
  "brands": ["xyz789"],
  "displayName": "abc123",
  "methodCode": "4"
}

AdyenPaymentMethodsInput

Description

The transaction context (deprecated)

Fields
Input Field Description
amount - Amount! The amount of the payment
countryCode - String! The country code of the shopper (ISO 3166-1 ALPHA-2)
This is used to filter the list of available payment methods for the shopper.
language - String The language in which the payment methods are displayed (ISO 639-1). Default = "en"
Example
{
  "amount": Amount,
  "countryCode": "abc123",
  "language": "xyz789"
}

AdyenPaymentMethodsPayload

Description

List of Adyen payment methods

Fields
Field Name Description
paymentMethods - [AdyenPaymentMethod]! List of payment methods
Example
{"paymentMethods": [AdyenPaymentMethod]}

AdyenPaypalExpressDetailsInput

Description

Set Payment Details Data for Paypal Express

Fields
Input Field Description
billingToken - String Set the billingToken
facilitatorAccessToken - String! Set the facilitatorAccessToken
orderID - String! Set the orderID
payerID - String! Set the payerID
paymentID - String! Set the paymentID
paymentSource - String! Set the paymentSource
Example
{
  "billingToken": "abc123",
  "facilitatorAccessToken": "abc123",
  "orderID": "abc123",
  "payerID": "xyz789",
  "paymentID": "abc123",
  "paymentSource": "abc123"
}

AdyenPaypalExpressInput

Description

Set Payment Data for Paypal Express

Fields
Input Field Description
details - AdyenPaypalExpressDetailsInput! Set the Paypal Express details data
email - String! Set the email
paymentData - String! Set the payment data
Example
{
  "details": AdyenPaypalExpressDetailsInput,
  "email": "abc123",
  "paymentData": "xyz789"
}

AdyenSepaCardInput

Description

Set the sepa card data for Adyen

Fields
Input Field Description
clientData - String The clientData for risk check - if not set a risk check is skipped
ibanNumber - String! The iban number
ownerName - String! The owner name
Example
{
  "clientData": "xyz789",
  "ibanNumber": "abc123",
  "ownerName": "xyz789"
}

Amount

Description

Payment amount

Fields
Input Field Description
currency - String! The three-letter ISO 4217 currency code
value - Int! The payment amount in the smallest unit
Example
{"currency": "abc123", "value": 123}

AmountBenefit

Description

Benefit of an absolute discount

Fields
Field Name Description
discount - Money The discount amount
image - Image The image of the benefit maintained in the back office
title - String The title of the benefit maintained in the back office
Example
{
  "discount": Money,
  "image": Image,
  "title": "xyz789"
}

ArticleType

Description

Type of ArticleLink

Values
Enum Value Description

ITEM

PRODUCT

UNKNOWN

Example
"ITEM"

Asset

Types
Union Types

Document

Image

Video

Example
Document

AssignRolesToUserInput

Fields
Input Field Description
roleInternalIds - [String!]! A list of internal identifier of the roles to which the user should be added. Available via the attribute id in B2BUserRole.
userInternalId - String! The internal identifier of the user to assign. Available via the attribute id in B2BUser.
Example
{
  "roleInternalIds": ["abc123"],
  "userInternalId": "xyz789"
}

AssignUserToUnitsInput

Fields
Input Field Description
unitInternalIds - [String!]! A list of internal identifier of the units to which the user should be added. Available via the attribute id in B2BUnit.
userInternalId - String! The internal identifier of the user to assign. Available via the attribute id in B2BUser.
Example
{
  "unitInternalIds": ["abc123"],
  "userInternalId": "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": false,
  "customerIdentifier": "xyz789",
  "failureDescriptions": ["abc123"],
  "promotion": Promotion,
  "successful": false,
  "voucherCode": "xyz789",
  "voucherName": "xyz789"
}

AttributeId

Description

The technical ID of a product feature or an item attribute

Fields
Field Name Description
id - String! The attribute ID (e.g. 'import:color')
Example
{"id": "xyz789"}

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

General Availability of an item, accumulates all availabilities (warehouses and stores)

Fields
Field Name Description
available - Boolean! true if item is available
maxQuantity - Int! Maximum quantity available
messageKey - String Additional information as message key
minQuantity - Int! Minimum quantity available (usually 1)
ordinal - Int! the ordinal of the AvailabilityStatus, AVAILABLE = 0, LATER_AVAILABLE = 1, NOT_AVAILABLE = 2
status - AvailabilityStatus! The status (#AvailabilityStatus) of the Item, one of AVAILABLE, LATER_AVAILABLE, NOT_AVAILABLE
Example
{
  "available": false,
  "maxQuantity": 123,
  "messageKey": "abc123",
  "minQuantity": 987,
  "ordinal": 987,
  "status": "AVAILABLE"
}

AvailabilityStatus

Description

Possible status for availablility

Values
Enum Value Description

AVAILABLE

LATER_AVAILABLE

NOT_AVAILABLE

Example
"AVAILABLE"

B2BAddressUpdateInput

Fields
Input Field Description
addition - String The address addition (no change if not set)
Will be deleted if empty.
city - String The city specified of the address (no change if not set)
country - String The country code according to ISO 3166-1 alpha-3 (no change if not set)
email - String The email address of the contact (no change if not set)
Will be deleted if empty.
entrance - String Designation of the entrance (no change if not set)
Will be deleted if empty.
firstname - String The first name of the contact (no change if not set)
Will be deleted if empty.
floor - String The floor (no change if not set)
Will be deleted if empty.
id - ID! The ID of the address to update
lastname - String The last name of the contact (no change if not set)
Will be deleted if empty.
number - String The street number of the address (no change if not set)
phone - String Phone number of the contact (no change if not set)
Will be deleted if empty.
salutation - B2BUserSalutation The Salutation of the contact (no change if not set)
street - String The street name of the address (no change if not set)
title - String The title of the contact (no change if not set)
Will be deleted if empty.
unitId - ID! The ID of the unit to which the address belongs
zipCode - String The zip code of the address (no change if not set)
Example
{
  "addition": "xyz789",
  "city": "abc123",
  "country": "abc123",
  "email": "xyz789",
  "entrance": "abc123",
  "firstname": "xyz789",
  "floor": "xyz789",
  "id": "4",
  "lastname": "abc123",
  "number": "xyz789",
  "phone": "abc123",
  "salutation": "DIVERSE",
  "street": "abc123",
  "title": "abc123",
  "unitId": "4",
  "zipCode": "xyz789"
}

B2BAuthorizationInput

Fields
Input Field Description
assign - AssignRolesToUserInput Provide a list of roles the user should get. See AssignRolesToUserInput
unassign - UnassignRolesFromUserInput Provide a list of roles the user shouldn't have. See UnassignRolesFromUserInput
Example
{
  "assign": AssignRolesToUserInput,
  "unassign": UnassignRolesFromUserInput
}

B2BCompany

Fields
Field Name Description
addresses - CompanyAddresses! The addresses of this unit
commercialRegisterNumber - String! The commercial register number of this company
externalId - String The externalId identifier of this company. This means an identifier provided by the maintainer or an external system.
id - ID! The id of this company
members - B2BUserPage! Members of this company
name - String! The name of this company
permissions - UnitPermissions! Permissions of the current user for this company
status - B2BUnitStatus! Approval status of this company
taxIdentificationNumber - String! The tax identification number of this company
Example
{
  "addresses": CompanyAddresses,
  "commercialRegisterNumber": "abc123",
  "externalId": "abc123",
  "id": 4,
  "members": B2BUserPage,
  "name": "xyz789",
  "permissions": UnitPermissions,
  "status": "APPROVED",
  "taxIdentificationNumber": "abc123"
}

B2BCompanyBillingAddress

Fields
Field Name Description
address - B2BUnitAddress!
contact - B2BContact
contactInfo - B2BContactInfo
Example
{
  "address": B2BUnitAddress,
  "contact": B2BContact,
  "contactInfo": B2BContactInfo
}

B2BCompanyUpdateInput

Fields
Input Field Description
addition - String The address addition (no change if not set)
Will be deleted if empty.
city - String The city specified of the address (no change if not set)
country - String The country code according to ISO 3166-1 alpha-3 (no change if not set)
email - String The email address of the unit contact (no change if not set)
entrance - String Designation of the entrance (no change if not set)
Will be deleted if empty.
firstname - String The first name of the unit contact (no change if not set)
floor - String The floor (no change if not set)
Will be deleted if empty.
id - ID! The ID of the company to update
lastname - String The last name of the unit contact (no change if not set)
number - String The street number of the address (no change if not set)
phone - String Phone number of the unit contact (no change if not set)
salutation - B2BUserSalutation The Salutation of the unit contact (no change if not set)
street - String The street name of the address (no change if not set)
title - String The title of the unit contact (no change if not set)
Will be deleted if empty.
zipCode - String The zip code of the address (no change if not set)
Example
{
  "addition": "abc123",
  "city": "abc123",
  "country": "abc123",
  "email": "xyz789",
  "entrance": "abc123",
  "firstname": "abc123",
  "floor": "xyz789",
  "id": "4",
  "lastname": "abc123",
  "number": "abc123",
  "phone": "abc123",
  "salutation": "DIVERSE",
  "street": "abc123",
  "title": "abc123",
  "zipCode": "xyz789"
}

B2BContact

Fields
Field Name Description
firstname - String The first name of the unit partner
lastname - String The last name of the unit partner
salutation - B2BUserSalutation! The Salutation of the unit partner
title - String The title of the unit partner
Example
{
  "firstname": "xyz789",
  "lastname": "xyz789",
  "salutation": "DIVERSE",
  "title": "abc123"
}

B2BContactInfo

Fields
Field Name Description
email - String The email address of the unit partner
phone - String Phone number of the unit partner
Example
{
  "email": "abc123",
  "phone": "xyz789"
}

B2BCreateCompanyInput

Fields
Input Field Description
address - CreateBillingAddressInput! The address of the company
commercialRegisterNumber - ID! The commercial register number of the company
name - String! The name of the company
taxIdentificationNumber - ID! The tax identification number of the company
Example
{
  "address": CreateBillingAddressInput,
  "commercialRegisterNumber": "4",
  "name": "xyz789",
  "taxIdentificationNumber": 4
}

B2BCreateUserInput

Description

Input type for creating a new B2B user.

Fields
Input Field Description
email - String! Email address of the user.
firstname - String! First name of the user.
invitationMail - Boolean! Whether an invitation email should be sent to the user. Defaults to true. Default = true
lastname - String! Last name of the user.
phone - String Phone number of the user.
roleIds - [ID!]! IDs of the roles to which the user will be assigned.
salutation - B2BUserSalutation! Salutation of the user. Default - NOT_SPECIFIED. Default = NOT_SPECIFIED
title - String Title of the user (e.g., Dr., Prof.).
unitIds - [ID!]! IDs of the B2B units to which the user will be assigned.
Example
{
  "email": "abc123",
  "firstname": "xyz789",
  "invitationMail": true,
  "lastname": "xyz789",
  "phone": "abc123",
  "roleIds": ["4"],
  "salutation": "DIVERSE",
  "title": "abc123",
  "unitIds": ["4"]
}

B2BCreateUserResult

B2BCreateUserSuccess

Fields
Field Name Description
user - B2BUser!
Example
{"user": B2BUser}

B2BMembershipInput

Fields
Input Field Description
assign - AssignUserToUnitsInput Provide a list of units the user should be member of. See AssignUserToUnitsInput
unassign - UnassignUnitsFromUserInput Provide a list of units the user shouldn't be member of. See UnassignUnitsFromUserInput
Example
{
  "assign": AssignUserToUnitsInput,
  "unassign": UnassignUnitsFromUserInput
}

B2BProblem

Fields
Field Name Description
key - String!

Key indicating the type of b2b problem that needs to be communicated to the user.

Company creation

  • ishop.backend.problem.permission.company-create: Insufficient permission or company already exists.
  • ishop.backend.problem.company.create: Could not create company.

Unit creation

  • ishop.backend.problem.unit.create: An error occurred while creating a new unit.

User creation & updates

  • ishop.backend.problem.user.create: An error occurred while creating a new user.
  • ishop.backend.problem.user.update: An error occurred while updating the user.
  • ishop.backend.problem.user.activate: An error occurred while activating the user.
  • ishop.backend.problem.user.deactivate: An error occurred while deactivating the user.

User ↔ Unit assignment

  • ishop.backend.problem.set.user.units: An error occurred while setting user units
  • ishop.backend.problem.unit.assign: An error occurred while assigning user to units.
  • ishop.backend.problem.unit.unassign-self: User attempted to unassign themselves.
  • ishop.backend.problem.unit.unassign: An error occurred while unassigning user from units.
  • ishop.backend.problem.user.one-unit: A user must be member of at least one unit.

User ↔ Role assignment

  • ishop.backend.problem.set.user.roles: An error occurred while setting user roles
  • ishop.backend.problem.role.assign: An error occurred while assigning role(s) to the user.
  • ishop.backend.problem.role.unassign-self: User attempted to unassign their own role.
  • ishop.backend.problem.role.unassign: An error occurred while unassigning role(s) from the user.
  • ishop.backend.problem.user.one-role: A user must always have at least one role.

Company update

  • ishop.backend.problem.company.update: An error occurred while updating company.

Subunit update

  • ishop.backend.problem.unit.update: An error occurred while updating unit.

Address (Shipping)

  • ishop.backend.problem.address.shipping.create: An error occurred while creating shipping address.
  • ishop.backend.problem.address.shipping.update: An error occurred while updating shipping address.

Address (Billing)

  • ishop.backend.problem.address.billing.create: An error occurred while creating create billing address.
Example
{"key": "xyz789"}

B2BRoleAssignProblem

Fields
Field Name Description
failedIds - [String!]! The list of internal IDs that failed to be assigned or unassigned.
key - String!

Key indicating the problem

  • ishop.backend.problem.role.assign: One or more roles could not be assigned to the user.
successIds - [String!]! The list of internal IDs that were successfully assigned or unassigned.
Example
{
  "failedIds": ["abc123"],
  "key": "xyz789",
  "successIds": ["xyz789"]
}

B2BRolePaging

Fields
Input Field Description
page - Int!
pageSize - Int!
Example
{"page": 987, "pageSize": 987}

B2BRoleUnassignProblem

Fields
Field Name Description
failedIds - [String!]! The list of internal IDs that failed to be assigned or unassigned.
key - String!

Key indicating the problem

  • ishop.backend.problem.role.unassign: One or more roles could not be unassigned from the user.
successIds - [String!]! The list of internal IDs that were successfully assigned or unassigned.
Example
{
  "failedIds": ["xyz789"],
  "key": "xyz789",
  "successIds": ["abc123"]
}

B2BSetRolesInput

Fields
Input Field Description
roleInternalIds - [String!]! A list of internal identifier of the roles to which the user should be added. Available via the attribute id in B2BUserRole.
userInternalId - String! The internal identifier of the user to assign. Available via the attribute id in B2BUser.
Example
{
  "roleInternalIds": ["abc123"],
  "userInternalId": "xyz789"
}

B2BSetUnitsInput

Fields
Input Field Description
unitInternalIds - [String!]! A list of internal identifier of the units to which the user should be added. Available via the attribute id in B2BUnit.
userInternalId - String! The internal identifier of the user to assign. Available via the attribute id in B2BUser.
Example
{
  "unitInternalIds": ["abc123"],
  "userInternalId": "abc123"
}

B2BShippingAddress

Fields
Field Name Description
address - B2BUnitAddress!
contact - B2BContact
contactInfo - B2BContactInfo
Example
{
  "address": B2BUnitAddress,
  "contact": B2BContact,
  "contactInfo": B2BContactInfo
}

B2BShippingAddressResult

Example
B2BProblem

B2BShippingAddressSuccess

Fields
Field Name Description
address - B2BShippingAddress! Created/updated shipping address
Example
{"address": B2BShippingAddress}

B2BSortDirection

Values
Enum Value Description

ASC

DESC

Example
"ASC"

B2BSubUnit

Fields
Field Name Description
addresses - SubUnitAddresses! The addresses of this unit
externalId - String The externalId of this sub unit
id - ID! The id of this sub unit
members - B2BUserPage! Members of this sub unit
name - String! The name of this sub unit
path - [B2BUnit!]!

The hierarchical path from the root to the parent unit of this unit.

The path is a list of units representing the ancestry of this unit, ordered from the top-level root organization down to this unit itself.

The path includes all parent units in order.

permissions - UnitPermissions! Permissions of the current user for this sub unit
Example
{
  "addresses": SubUnitAddresses,
  "externalId": "xyz789",
  "id": "4",
  "members": B2BUserPage,
  "name": "xyz789",
  "path": [B2BCompany],
  "permissions": UnitPermissions
}

B2BSubUnitBillingAddress

Fields
Field Name Description
address - B2BUnitAddress
contact - B2BContact
contactInfo - B2BContactInfo
Example
{
  "address": B2BUnitAddress,
  "contact": B2BContact,
  "contactInfo": B2BContactInfo
}

B2BSubUnitUpdateInput

Fields
Input Field Description
addition - String The address addition (no change if not set)
Will be deleted if empty.
city - String The city specified of the address (no change if not set)
Will be deleted if empty.
country - String The country code according to ISO 3166-1 alpha-3 (no change if not set)
Will be deleted if empty.
email - String The email address of the contact (no change if not set)
Will be deleted if empty.
entrance - String Designation of the entrance (no change if not set)
Will be deleted if empty.
externalId - String The externalId of the sub unit (no change if not set)
Will be deleted if empty.
firstname - String The first name of the contact (no change if not set)
Will be deleted if empty.
floor - String The floor (no change if not set)
Will be deleted if empty.
id - ID! The ID of the sub unit to update
lastname - String The last name of the contact (no change if not set)
Will be deleted if empty.
name - String The new name of the company/sub unit (no change if not set)
number - String The street number of the address (no change if not set)
Will be deleted if empty.
phone - String Phone number of the contact (no change if not set)
Will be deleted if empty.
salutation - B2BUserSalutation The Salutation of the contact (no change if not set)
street - String The street name of the address (no change if not set)
Will be deleted if empty.
title - String The title of the contact (no change if not set)
Will be deleted if empty.
zipCode - String The zip code of the address (no change if not set)
Will be deleted if empty.
Example
{
  "addition": "abc123",
  "city": "abc123",
  "country": "abc123",
  "email": "abc123",
  "entrance": "xyz789",
  "externalId": "xyz789",
  "firstname": "abc123",
  "floor": "xyz789",
  "id": 4,
  "lastname": "abc123",
  "name": "xyz789",
  "number": "abc123",
  "phone": "abc123",
  "salutation": "DIVERSE",
  "street": "xyz789",
  "title": "xyz789",
  "zipCode": "abc123"
}

B2BUnit

Types
Union Types

B2BCompany

B2BSubUnit

Example
B2BCompany

B2BUnitAddress

Fields
Field Name Description
addition - String The address addition
city - String! City specified of the address
country - String! The country code according to ISO 3166-1 alpha-3 (no change if not set)
entrance - String Designation of the entrance
floor - String The floor
id - ID! The id of the address
number - String! House number of the address
street - String! Street of the address
zipCode - String! ZIP code of the address
Example
{
  "addition": "xyz789",
  "city": "abc123",
  "country": "xyz789",
  "entrance": "xyz789",
  "floor": "abc123",
  "id": 4,
  "number": "xyz789",
  "street": "abc123",
  "zipCode": "xyz789"
}

B2BUnitAssignProblem

Fields
Field Name Description
failedIds - [String!]! The list of internal IDs that failed to be assigned or unassigned.
key - String!

Key indicating the problem

  • ishop.backend.problem.unit.assign: One or more units could not be assigned to the user.
successIds - [String!]! The list of internal IDs that were successfully assigned or unassigned.
Example
{
  "failedIds": ["xyz789"],
  "key": "abc123",
  "successIds": ["xyz789"]
}

B2BUnitFilter

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

B2BUnitInput

Fields
Input Field Description
id - [ID!]!
Example
{"id": [4]}

B2BUnitPage

Fields
Field Name Description
totalCount - Int! The total number of units
units - [B2BUnit!]! List of fetched units
Example
{"totalCount": 987, "units": [B2BCompany]}

B2BUnitPaging

Fields
Input Field Description
page - Int! Page offset from which to start returning units. Default = 1
pageSize - Int! Maximum number of units to return
If all units have to be fetched, set pageSize to -1. Default = 10
sortBy - B2BUnitSortBy! Sort the available units based on name or externalID. Default = NAME
sortDirection - B2BSortDirection! Sort the units in ascending or descending order. Default = ASC
Example
{"page": 987, "pageSize": 987, "sortBy": "EXTERNAL_ID", "sortDirection": "ASC"}

B2BUnitSortBy

Values
Enum Value Description

EXTERNAL_ID

NAME

Example
"EXTERNAL_ID"

B2BUnitStatus

Values
Enum Value Description

APPROVED

AWAITING_APPROVAL

DENIED

Example
"APPROVED"

B2BUnitUnassignProblem

Fields
Field Name Description
failedIds - [String!]! The list of internal IDs that failed to be assigned or unassigned.
key - String!

Key indicating the problem

  • ishop.backend.problem.unit.unassign: One or more units could not be unassigned from the user.
successIds - [String!]! The list of internal IDs that were successfully assigned or unassigned.
Example
{
  "failedIds": ["xyz789"],
  "key": "abc123",
  "successIds": ["abc123"]
}

B2BUnitUpdateResult

Example
B2BProblem

B2BUnitUpdateSuccess

Fields
Field Name Description
unit - B2BUnit! Updated unit details
Example
{"unit": B2BCompany}

B2BUpdateUserInput

Description

Input type for updating a B2B user.

Fields
Input Field Description
firstname - String First name of the user.
invitationMail - Boolean! Whether an invitation email should be sent to the user.
lastname - String Last name of the user.
phone - String Phone number of the user.
roles - B2BAuthorizationInput Roles to which the user will be assigned or unassigned.
salutation - B2BUserSalutation Salutation of the user.
title - String Title of the user (e.g., Dr., Prof.).
units - B2BMembershipInput Units to which the user will be assigned or unassigned.
userId - ID! The internal identifier of the user to unassign. Available via the attribute id in B2BUser.
Example
{
  "firstname": "abc123",
  "invitationMail": false,
  "lastname": "xyz789",
  "phone": "abc123",
  "roles": B2BAuthorizationInput,
  "salutation": "DIVERSE",
  "title": "xyz789",
  "units": B2BMembershipInput,
  "userId": 4
}

B2BUpdateUserResult

B2BUpdateUserSuccess

Fields
Field Name Description
user - B2BUser! Updated user if update is success
Example
{"user": B2BUser}

B2BUpdateUsersResult

Fields
Field Name Description
result - [B2BUpdateUserResult!]! Updated users result
Example
{"result": [B2BProblem]}

B2BUser

Fields
Field Name Description
company - B2BCompany Company of the user, if the user is assigned to a company
email - String The email of the user
firstname - String The first name of the user
id - ID! Technical identifier of a user
lastname - String The last name of the user
permissions - B2BUserPermissions! Permissions of the user related to managing user in the company
phone - String The phone number of the user
roles - B2BUserRolePage! The roles of the user
salutation - B2BUserSalutation! The Salutation of the user
status - B2BUserStatus The Status of the user
title - String The title of the user
units - B2BUnitPage! Fetches user units with pagination
Arguments
filter - B2BUnitFilter
paging - B2BUnitPaging!
Example
{
  "company": B2BCompany,
  "email": "xyz789",
  "firstname": "xyz789",
  "id": "4",
  "lastname": "abc123",
  "permissions": B2BUserPermissions,
  "phone": "xyz789",
  "roles": B2BUserRolePage,
  "salutation": "DIVERSE",
  "status": "ACTIVE",
  "title": "xyz789",
  "units": B2BUnitPage
}

B2BUserActivationProblem

Fields
Field Name Description
key - String!

User activation & deactivation

  • ishop.backend.problem.user.activate: An error occurred while activating the user.
  • ishop.backend.problem.user.deactivate: An error occurred while deactivating the user.
  • ishop.backend.problem.user.retrieve.error: An error occurred on retrieving userdata.
userId - String! The internal identifier of the user to activate/deactivate. Available via the attribute id in B2BUser.
Example
{
  "key": "abc123",
  "userId": "abc123"
}

B2BUserFilter

Fields
Input Field Description
status - B2BUserStatus Filter user based on status "ACTIVE" or "INACTIVE"
unit - B2BUnitInput Filter user based on unit id
Example
{"status": "ACTIVE", "unit": B2BUnitInput}

B2BUserInput

Fields
Input Field Description
searchTerm - String
Example
{"searchTerm": "xyz789"}

B2BUserPage

Fields
Field Name Description
totalCount - Int! The total number of users
users - [B2BUser!]! List of fetched users
Example
{"totalCount": 123, "users": [B2BUser]}

B2BUserPaging

Fields
Input Field Description
page - Int! Page offset from which to start returning users. Default = 1
pageSize - Int! Maximum number of users to return
If all users have to be fetched, set pageSize to -1. Default = 10
sortBy - B2BUserSortBy! Sort the available users based on LASTNAME, FIRSTNAME or EMAIL. Default = LASTNAME
sortDirection - B2BSortDirection! Sort the users in ascending or descending order. Default = DESC
Example
{"page": 123, "pageSize": 123, "sortBy": "EMAIL", "sortDirection": "ASC"}

B2BUserPermissions

Fields
Field Name Description
activate - Boolean!
assign - Boolean!
create - Boolean!
delete - Boolean!
roles - RolePermissions!
update - Boolean!
Example
{
  "activate": false,
  "assign": true,
  "create": true,
  "delete": false,
  "roles": RolePermissions,
  "update": false
}

B2BUserRole

Fields
Field Name Description
id - ID! ID of this role
name - String! Name of this role (e.g. 'B2B_BUYER')
Example
{
  "id": "4",
  "name": "abc123"
}

B2BUserRolePage

Fields
Field Name Description
roles - [B2BUserRole!]! List of fetched user roles
totalCount - Int! The total number of user roles
Example
{"roles": [B2BUserRole], "totalCount": 123}

B2BUserSalutation

Description

Available salutation for b2b users

Values
Enum Value Description

DIVERSE

MR

MRS

NOT_SPECIFIED

Example
"DIVERSE"

B2BUserSortBy

Values
Enum Value Description

EMAIL

FIRSTNAME

LASTNAME

Example
"EMAIL"

B2BUserStatus

Values
Enum Value Description

ACTIVE

INACTIVE

Example
"ACTIVE"

B2BValidationProblem

Description

Represents a validation problem that occurred while processing input.

Fields
Field Name Description
fieldName - String The field name that failed validation
key - String!

Jakarta Validation message key indicating the problem

  • jakarta.validation.constraints.NotBlank.message: A field value must not be blank.
  • jakarta.validation.constraints.NotNull.message: A field value must not be null.
  • jakarta.validation.constraints.Size.message: A field value must meet size restrictions.
  • jakarta.validation.constraints.Email.message: A field value must be a valid email address.
  • jakarta.validation.constraints.Iso3Country.message: A field value must be a valid ISO3 country code.
  • jakarta.validation.constraints.AllOrNone.message.street_number_zipCode_city_country: Either all fields (street, number, zipCode, city, country) must be set or none.
  • jakarta.validation.constraints.OnlyIfSet.message.addition_street: Field 'addition' requires 'street' to be set.
  • jakarta.validation.constraints.OnlyIfSet.message.entrance_street: Field 'entrance' requires 'street' to be set.
  • jakarta.validation.constraints.OnlyIfSet.message.floor_street: Field 'floor' requires 'street' to be set.
  • jakarta.validation.constraints.OnlyIfSet.message.title_lastname: Field 'title' requires 'lastname' to be set.
  • jakarta.validation.constraints.OnlyIfSet.message.firstname_lastname: Field 'firstname' requires 'lastname' to be set.
value - String The String value that failed validation
Example
{
  "fieldName": "xyz789",
  "key": "xyz789",
  "value": "abc123"
}

B2BValidationProblems

Fields
Field Name Description
problems - [B2BValidationProblem!]! List of failed validations
Example
{"problems": [B2BValidationProblem]}

Badge

Description

A label for a product to be displayed on the product detail page or product list

Fields
Field Name Description
name - String! Name of the badge
type - String! Type of the badge
Example
{
  "name": "abc123",
  "type": "xyz789"
}

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')
id - AttributeId! The technical ID of this attribute
name - String! The name of this attribute (e.g. 'import:color') Deprecated, use field id of id instead. 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",
  "id": AttributeId,
  "name": "xyz789",
  "sequenceNo": 987,
  "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.

id - AttributeId! The technical ID of this feature
images - [Image]! List of images to visualize feature
name - String!

The name of this feature

Deprecated, use field id of id instead.

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",
  "id": AttributeId,
  "images": [Image],
  "name": "xyz789",
  "sequenceNo": 987,
  "value": "abc123",
  "values": [BaseValue]
}

BaseFeatureGroup

Fields
Field Name Description
displayName - String!
features - [ItemAttribute]!
Example
{
  "displayName": "xyz789",
  "features": [ItemAttribute]
}

BaseValue

Description

A product/item attribute value

Fields
Field Name Description
images - [Image]! List of images to visualize this attribute value
value - String! The value (e.g. '10')
Example
{
  "images": [Image],
  "value": "abc123"
}

BasicPrice

Description

Basic price according PAngV

Fields
Field Name Description
displayValue - String! Display value. e.g. '1.99€ / 1kg'
price - Money! Basic price according PAngV
unit - ValueWithUnit! Source unit of measure, e.g. '1' (value) and 'kg' (unit)
Example
{
  "displayValue": "abc123",
  "price": Money,
  "unit": ValueWithUnit
}

Benefit

Description

The base type of a benefit

Fields
Field Name Description
image - Image The image of the benefit maintained in the back office
title - String The title of the benefit maintained in the back office
Example
{
  "image": Image,
  "title": "xyz789"
}

BigDecimal

Description

An arbitrary precision signed decimal

Example
BigDecimal

BillingAddress

Description

The billing address of the customer

Fields
Field Name Description
addition - String The address addition
additions - [String] The address additions
Deprecated, use field addition of type String instead. No longer supported
attributes - JSON

Additional attributes as JSON
Example:

{
"attribute1": "value1",
"attribute2": {
"test": 157
},
"attribute3": 5.90
}
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
{
  "addition": "xyz789",
  "additions": ["abc123"],
  "attributes": {},
  "city": "abc123",
  "company": "xyz789",
  "country": Country,
  "email": "abc123",
  "firstname": "xyz789",
  "id": "4",
  "lastname": "xyz789",
  "notes": "abc123",
  "number": "abc123",
  "phone": "xyz789",
  "postcode": "xyz789",
  "salutation": Salutation,
  "street": "xyz789",
  "title": "abc123"
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

BooleanAttribute

Description

Backend type 'Boolean'

Fields
Field Name Description
bool - Boolean! The value of this attribute
name - String! The name of this attribute
Example
{"bool": false, "name": "abc123"}

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
names - [String!]!

Name(s) of the parameter(s) as defined in the backend

productCount - Int! Total number of valid products of this brand
products - [Product]! Valid products of this brand
Arguments
paging - Paging!

Paging to list product

Default: [Paging](#Paging) with `limit` 100 and `offset` 0
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
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: [Paging](#RecommendationPaging) with `limit` 100 and `offset` 0
Example
{
  "id": 4,
  "image": Image,
  "link": Link,
  "name": "abc123",
  "parameters": [ContentAttribute],
  "productCount": 123,
  "products": [Product],
  "topsellers": ProductRecommendations
}

BrandListAttribute

Description

Backend type 'BrandList' which is a list of product brands

Fields
Field Name Description
brands - [Brand]! List of product brands
name - String! The name of this attribute
Example
{
  "brands": [Brand],
  "name": "abc123"
}

BrandListEntry

Description

A product brand including link that is maintained in the back office

Fields
Field Name Description
brand - Brand! The product brand
link - Link The link to the brand as maintained in the back office
Example
{"brand": Brand, "link": Link}

BrandRecommendations

Description

Result type for brand recommendations

Fields
Field Name Description
brands - [Brand]! List of recommended brands
totalCount - Int! Total count of recommended brands
Example
{"brands": [Brand], "totalCount": 987}

BrandSuggest

Description

Brand suggestion(s) (e.g. 'Adidas Originals' for 'orig')

Fields
Field Name Description
brands - [Brand]! Suggested brands
Arguments
limit - Int!

Limits the number of brands that were suggested because the same search term was indexed for all of those brands

For example, if there are two brands with the same name 'Platinum', this list will contain those two brands.
                                            But you may want to avoid duplicate brand names in the list, then this list can be limited to one entry, which is the default.
                                            
                                            Default: 1
                                            
match - String! Brand string that matches on query string (e.g. 'Adidas Originals' for 'orig')
Example
{
  "brands": [Brand],
  "match": "xyz789"
}

BrandsTeaser

Description

A teaser with a list of product brands This teaser type is activated by default.

Fields
Field Name Description
additionalBrands - [BrandListEntry]! A list of additional brands
headline - String The headline of this teaser
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
topBrands - [BrandListEntry]! The List of top brands
Example
{
  "additionalBrands": [BrandListEntry],
  "headline": "abc123",
  "meta": TeaserMeta,
  "name": "xyz789",
  "topBrands": [BrandListEntry]
}

BreadcrumbNavigationElement

Description

This element describe an entry for the breadcrumb in the shop

Fields
Field Name Description
id - ID! The ID of the navigation element
link - Link! the defined link of this navigation element
name - String! the name of the navigation element
siblings - [BreadcrumbNavigationElement]! the direct children of the breadcrumbNavigationElement
Example
{
  "id": 4,
  "link": Link,
  "name": "abc123",
  "siblings": [BreadcrumbNavigationElement]
}

Breadcrumbs

Description

Root object for breadcrumbs creation

Fields
Field Name Description
elements - [BreadcrumbNavigationElement]! all elements to show a breadcrumb
Example
{"elements": [BreadcrumbNavigationElement]}

BrowserInfoInput

Description

Set the BrowserInfo data for Adyen

Fields
Input Field Description
acceptHeader - String! The acceptHeader
colorDepth - Int! The colorDepth
javaEnabled - Boolean! The javaEnabled flag
language - String! The language (e.g. de-DE)
screenHeight - Int! The screenHeight
screenWidth - Int! The screenWidth
timeZoneOffset - Int! The timeZoneOffset
userAgent - String! The userAgent
Example
{
  "acceptHeader": "abc123",
  "colorDepth": 123,
  "javaEnabled": true,
  "language": "abc123",
  "screenHeight": 987,
  "screenWidth": 123,
  "timeZoneOffset": 123,
  "userAgent": "abc123"
}

CancellationFailedProblem

Description

The cancellation request to the OMS failed.

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

CancellationStatusInfo

Description

Information on item cancellation status

Fields
Field Name Description
date - String! The date when the cancellation occurred.
quantity - Int! The quantity of items that were canceled.
reason - String The reason provided for the cancellation.
Example
{
  "date": "xyz789",
  "quantity": 123,
  "reason": "xyz789"
}

Cart

Description

A complete cart of a user

Fields
Field Name Description
details - CartDetails! The cart details like cart positions, used voucher, total amount
id - ID! The ID of this cart
active - Boolean!

true if this cart is active

This is required if more than one cart is used. Only one cart can be active.

attribute - Object Cart related attribute No longer supported
Arguments
attributeName - String!

Name of the attribute

attributes - Object Cart related attributes No longer supported
availableShippingMethods - [ShippingMethod]! All available shipping methods. Deprecated: use delivery.availableMethods instead. Use Cart.delivery.availableMethods
billingAddress - BillingAddress The billing address for the order
comment - String The Users comment related to the cart
createdAt - DateTime! Creation date of this cart
delivery - CheckoutCartDelivery Delivery/shipping information
editable - Boolean!

true if this cart is editable

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).

isDefault - Boolean!

true if this cart is the default cart

This is required if more than one cart is used. Only one cart can be default.

name - String! The name of this cart
paymentDetails - PaymentDetails The Payment Details containing giftcard and payment methods
positions - [CartPosition!]! Line items in this cart (new API)
promotionDetails - PromotionDetails! The detailed information of a cart including promotion information. Deprecated: use positions, summary, delivery, and promotions instead. Use Cart.positions, Cart.summary, Cart.delivery, Cart.promotions
promotions - CheckoutCartPromotions! All promotion and voucher effects
selectedPaymentMethod - PaymentMethod The selected payment method Deprecated: use selectedPaymentMethodV2 instead. Use Cart.selectedPaymentMethodV2
selectedPaymentMethodV2 - PaymentMethodV2 The selected payment method
selectedShippingMethod - ShippingMethod The selected shipping method. Deprecated: use delivery.selectedMethod instead. Use Cart.delivery.selectedMethod
shared - Boolean! true if this cart as shared
shippingAddresses - [ShippingAddress]!

The shipping address for the order

This list contains one or no shipping address.

summary - CheckoutCartSummary! Cart totals, counts, taxes, and fees
Example
{
  "details": CartDetails,
  "id": "4",
  "active": false,
  "attribute": Object,
  "attributes": Object,
  "availableShippingMethods": [ShippingMethod],
  "billingAddress": BillingAddress,
  "comment": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "delivery": CheckoutCartDelivery,
  "editable": false,
  "guestId": "abc123",
  "isDefault": true,
  "name": "abc123",
  "paymentDetails": PaymentDetails,
  "positions": [CartPosition],
  "promotionDetails": PromotionDetails,
  "promotions": CheckoutCartPromotions,
  "selectedPaymentMethod": PaymentMethod,
  "selectedPaymentMethodV2": PaymentMethodV2,
  "selectedShippingMethod": ShippingMethod,
  "shared": false,
  "shippingAddresses": [ShippingAddress],
  "summary": CheckoutCartSummary
}

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)
promotion - Promotion The related promotion
promotionDescription - String The description of the related promotion
promotionName - String The name of the related promotion
Example
{
  "capped": false,
  "discount": Money,
  "discountPercentage": BigDecimal,
  "discountWithoutCombinable": Money,
  "promotion": Promotion,
  "promotionDescription": "abc123",
  "promotionName": "xyz789"
}

CartDiscountInfo

Description

Detailed information about cart related discount which is used in PromotionDetails
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. 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 total discount amount for non-combinable promotions (for amount and percent based)
promotion - Promotion The related promotion
Example
{
  "capped": false,
  "discount": Money,
  "discountPercentage": BigDecimal,
  "promotion": Promotion
}

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": "abc123",
  "promotion": Promotion,
  "quantity": 123,
  "totalCurrentPrice": Money,
  "totalDiscount": Money,
  "totalOldPrice": Money,
  "totalPositionPrice": Money,
  "voucher": "abc123"
}

CartPosition

Description

A complete cart position

Fields
Field Name Description
comment - String The Users comment on the cart
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)
price - Price Unit price information
pricing - CheckoutPositionPricing! All pricing for this position
promotion - Promotion The promotion to which the position relates
promotionDescription - String Description of the promotion applied to this position
promotionName - String Name of the promotion applied to this position
provider - Provider The provider
Does not have to be set if, for example, there is only one provider.
quantity - Int! The quantity of this position
totalCurrentGrossPrice - Money The current total gross price of this position without any promotions: [totalCurrentGrossPrice = price.grossPrice x quantity]
totalCurrentNetPrice - Money The current total net price of this position without any promotions
totalCurrentPrice - Money The current total price of this position without any promotions
Deprecated: use totalCurrentGrossPrice instead No longer supported
totalDiscount - Money The total discount on this position
totalOldGrossPrice - Money The total strike gross price of this position: total strike price = item strike price x quantity
totalOldNetPrice - Money The total strike net price of this position
totalOldPrice - Money The total strike price of this position
Deprecated, use totalOldGrossPrice instead.
totalPositionGrossPrice - Money The final price of this position including applied promotions (see totalPrice of Discount)
This amount can be calculated: totalPositionGrossPrice = totalCurrentGrossPrice - totalDiscount If this position is a FreeItemBenefit totalPositionPrice is 0.
totalPositionNetPrice - Money The final price of this position including applied promotions (see totalPrice of Discount)
totalPositionPrice - Money The final price of this position including applied promotions (see totalPrice of Discount)
Deprecated: use totalPositionGrossPrice instead No longer supported
voucher - String The voucher code to which the position relates
Example
{
  "comment": "xyz789",
  "details": Item,
  "discountAmount": Money,
  "discountInfo": Discount,
  "discountPercentage": BigDecimal,
  "id": "xyz789",
  "price": Price,
  "pricing": CheckoutPositionPricing,
  "promotion": Promotion,
  "promotionDescription": "abc123",
  "promotionName": "xyz789",
  "provider": Provider,
  "quantity": 987,
  "totalCurrentGrossPrice": Money,
  "totalCurrentNetPrice": Money,
  "totalCurrentPrice": Money,
  "totalDiscount": Money,
  "totalOldGrossPrice": Money,
  "totalOldNetPrice": Money,
  "totalOldPrice": Money,
  "totalPositionGrossPrice": Money,
  "totalPositionNetPrice": Money,
  "totalPositionPrice": Money,
  "voucher": "abc123"
}

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": "abc123"}

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

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 Will be removed in a future release. Create breadcrumbs resolver in shop service. Refer to reference implementation
Arguments
order - SortOrder!

The categories are sorted from top-level category to parent category, this sorting can be reversed here Default: ascending (sorted from top-level category to parent category)

bottomTeaserInsertion - TeaserAttribute Teaser to be displayed below the product list
breadcrumbs - Breadcrumbs! describes the categories from main navigation to the current selected category
categoryContent - CategoryContent

Can be used to check if the category has a maintained raster.

If this is the case the left navigation should also be rendered through the categoryNavigation

children - [Category]! List of child categories of this category Will be removed in a future release. Not needed anymore, will be provided by dedicated tree
Arguments
hidden - CategoryHiddenStatus

Parameter to exclude categories in navigations (main, left or after search navigation)

Default: all valid categories are returned
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)
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

Will be removed in a future release. Not needed anymore
isHiddenFor - Boolean! Backoffice Hidden Category Parameter Type - if enabled the Category is hidden dependent on where it is used Will be removed in a future release. Not needed anymore
Arguments
param - CategoryHiddenStatus!

Type of HiddenParameter

link - Link! Link to this category
name - String! The name of this category (e.g. 'Women' or 'Shoes')
navigationFlyout - Image The navigation flyout for this category Will be removed in a future release. Use navigationFlyout in MainNavigationElement instead
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).

Will be removed in a future release. Not needed anymore
Arguments
names - [String!]!

Name(s) of the parameter(s) as defined in the backend

parent - Category The parent category of this category, or null if this category is a top-level category Will be removed in a future release. Not needed anymore, will be provided by dedicated tree
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.

⚠️ Attention: ⚠️ Please note that a search is being executed here. A search is a comparatively expensive operation. ⚠️ Attention: ⚠️

Arguments
filter - CategorySearchFilter!

Filter to select products within this category

Default: filter without any restrictions
paging - SearchPaging!

Paging and sorting to list the products

Default: [Paging](#SearchPaging) with `limit` as defined in back office or 100 and `offset` 0
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).

Will be removed in a future release. Use new field categoryContent
recommendations - CategoryRecommendations! Similar/recommended categories to this category
Arguments
paging - RecommendationPaging!

Paging to list recommended categories

Default: [Paging](#RecommendationPaging) with `limit` 100 and `offset` 0
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
seoHeadline - String SEO headline text for this category page Will be removed in future release. Use seo#headline
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
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: [Paging](#RecommendationPaging) with `limit` 100 and `offset` 0
Example
{
  "ancestors": [Category],
  "bottomTeaserInsertion": TeaserAttribute,
  "breadcrumbs": Breadcrumbs,
  "categoryContent": CategoryContent,
  "children": [Category],
  "id": "4",
  "idsDown": "xyz789",
  "isHiddenFor": true,
  "link": Link,
  "name": "abc123",
  "navigationFlyout": Image,
  "parameters": [ContentAttribute],
  "parent": Category,
  "products": PageSearchResult,
  "raster": Raster,
  "recommendations": CategoryRecommendations,
  "redirect": ResolvedLink,
  "seo": Seo,
  "seoHeadline": "abc123",
  "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
}

CategoryContent

Description

Definition of a category entry page. This object provides the information if the current category has a maintained raster and a left navigation tree.

⚠️ Attention: ⚠️ The category navigation do not provide the total count of each category navigation element since it does not perform a search.

Fields
Field Name Description
categoryNavigation - CategoryNavigation

a category navigation which can be used to create a left navigation if the customer wants a category entry page with a left navigation.

it starts from the first level category of the provided category

e.g. Tree:

  • Woman ** T-Shirt *** long T-Shirt *** short T-Shirt <-- selected category ** trousers *** straight *** skinny
  • Men ** trousers *** straight *** skinny

the tree will start from Woman

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).

Example
{
  "categoryNavigation": CategoryNavigation,
  "raster": Raster
}

CategoryHiddenStatus

Description

Category visibility related to the context in which categories should be displayed

Values
Enum Value Description

AFTER_SEARCH_NAVIGATION

LEFT_NAVIGATION

TOP_NAVIGATION

Example
"AFTER_SEARCH_NAVIGATION"

CategoryLandingPageViewEvent

Description

Category landing page view Event

Fields
Input Field Description
categoryId - ID! The category ID
url - String! The relative url of the category
Example
{
  "categoryId": "4",
  "url": "abc123"
}

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]
}

CategoryNavigation

Description

Root object for the left navigation on a category entry page

Fields
Field Name Description
navigationElements - [NavigationElement] A list of navigation elements which should be shown in the left navigation
Example
{"navigationElements": [CategoryNavigationElement]}

CategoryNavigationElement

Fields
Field Name Description
children - [CategoryNavigationElement]! the direct children of the categoryNavigationElement
id - ID! The ID of the navigation element
link - Link! the defined link of this navigation element
name - String! the name of the navigation element
Example
{
  "children": [CategoryNavigationElement],
  "id": 4,
  "link": Link,
  "name": "abc123"
}

CategoryProductListViewEvent

Description

Category product list event

Fields
Input Field Description
categoryId - ID! The category ID
currentPage - Int! Index of the current page of the product list (starting with 0)
lastPage - Int! Index of the last page of the product list (starting with 0)
url - String! The relative url of the category
Example
{
  "categoryId": "4",
  "currentPage": 987,
  "lastPage": 987,
  "url": "xyz789"
}

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": 987}

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

categoryTreeType - CategoryTreeType This instructs the search which category tree should be created.
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,
  "categoryTreeType": "ALL_RELEVANT",
  "enumFilters": [EnumFilterInput],
  "ignoreMaintainedContent": true,
  "rangeFilters": [RangeFilterInput]
}

CategorySearchSuggest

Description

Search term suggestion within a top-level category (e.g. 'chair in Furniture' for 'chai')

Fields
Field Name Description
category - Category! Top-level category
searchTerm - String! Suggested search term (e.g. 'chair')
totalCount - Int! Number of search hits for search term within category
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
limit - Int!

Limits the number of categories that were suggested because the same search term was indexed for all of those categories

For example, if there are two categories with the same name 'Women', this list will contain those two categories.
                                            But you may want to avoid duplicate category names in the list, then this list can be limited to one entry, which is the default.
                                            
                                            Default: 1
                                            
match - String! Category string that matches on query string (e.g. 'Smart Home' for 'hom')
Example
{
  "categories": [Category],
  "match": "xyz789"
}

CategoryTreeElement

Description

Root object for the left navigation

This type represents a category node used for navigation in search results. It provides information about a category including its ID, name, link, children, and product count for display in navigation menus.

Fields
Field Name Description
children - [CategoryTreeElement]! the direct children of the CategoryTreeElement
count - Int! The number of products in the category
id - ID! The ID of the navigation element
link - Link! the defined link of this navigation element
name - String! the name of the navigation element
Example
{
  "children": [CategoryTreeElement],
  "count": 987,
  "id": 4,
  "link": Link,
  "name": "abc123"
}

CategoryTreeType

Values
Enum Value Description

ALL_RELEVANT

FULL

REDUCED_TO_ACTIVE

Example
"ALL_RELEVANT"

CategoryWrapper

Description

A product category with a name maintained in the back office

Fields
Field Name Description
category - Category The product category
name - String The name of this category (may differ from name of Category)
Example
{
  "category": Category,
  "name": "xyz789"
}

CheckoutCartAdditionalFee

Description

An additional fee with DetailedPrice breakdown.

Fields
Field Name Description
label - String! Display label for this fee
price - CheckoutDetailedPrice! Fee as a DetailedPrice (gross, net, vat, vatRate)
Example
{
  "label": "xyz789",
  "price": CheckoutDetailedPrice
}

CheckoutCartDelivery

Description

All delivery/shipping information for the cart.

Fields
Field Name Description
availableMethods - [CheckoutCartDeliveryMethod!]! All delivery methods available for this cart.
freeShipping - CheckoutFreeShippingEffect Free-shipping promotion details. Null when no free-shipping promotion is active.
selectedMethod - CheckoutCartDeliveryMethod The delivery method selected for this cart. Null when no delivery info is available.
Example
{
  "availableMethods": [CheckoutCartDeliveryMethod],
  "freeShipping": CheckoutFreeShippingEffect,
  "selectedMethod": CheckoutCartDeliveryMethod
}

CheckoutCartDeliveryMethod

Description

A delivery/shipping method with its associated costs and metadata.

Fields
Field Name Description
cost - CheckoutDetailedPrice Delivery cost before any free-shipping discount
deliveryTimeDescription - String Human-readable delivery time estimate
discountedCost - CheckoutDetailedPrice Delivery cost after a free-shipping discount is applied. Null when no discount applies.
freeShippingPossible - Boolean Whether a free-shipping promotion can be attained
name - String Display name of the shipping method. Null when the backend does not provide it.
shipperId - String! Shipper identifier
Example
{
  "cost": CheckoutDetailedPrice,
  "deliveryTimeDescription": "abc123",
  "discountedCost": CheckoutDetailedPrice,
  "freeShippingPossible": false,
  "name": "xyz789",
  "shipperId": "abc123"
}

CheckoutCartDiscount

Description

Cart-level discount from a promotion

Fields
Field Name Description
amount - MonetaryAmount Absolute discount amount
capped - Boolean! Whether the discount was capped at a maximum value
percentage - BigDecimal Discount as a percentage (e.g. 10.0 for 10%)
promotionDescription - String Description of the promotion
promotionName - String Name of the promotion
Example
{
  "amount": MonetaryAmount,
  "capped": true,
  "percentage": BigDecimal,
  "promotionDescription": "xyz789",
  "promotionName": "abc123"
}

CheckoutCartPromotions

Description

All promotion and voucher information for the cart.

Fields
Field Name Description
cartDiscount - CheckoutCartDiscount Cart-level discount details
informationalBenefits - [CheckoutInformationalBenefit!]! Informational promotion messages
promotionSavings - MonetaryAmount Savings from promotions (excludes voucher savings)
selectableOffers - [CheckoutSelectableOffer!]! Promotions offering free/special-price items for selection
voucherSavings - MonetaryAmount Savings from vouchers
vouchers - [CheckoutCartVoucher!]! All vouchers entered for this cart with their results
Example
{
  "cartDiscount": CheckoutCartDiscount,
  "informationalBenefits": [CheckoutInformationalBenefit],
  "promotionSavings": MonetaryAmount,
  "selectableOffers": [CheckoutSelectableOffer],
  "voucherSavings": MonetaryAmount,
  "vouchers": [CheckoutCartVoucher]
}

CheckoutCartSummary

Description

Aggregated totals, item counts, tax breakdown, and additional fees for the cart.

Fields
Field Name Description
additionalFees - [CheckoutCartAdditionalFee!]! Additional fees applied to this cart (e.g. payment surcharge, packaging fee)
articleCount - Int! Total number of articles (sum of all quantities)
discountsVatIncluded - Boolean! Whether discount amounts are calculated on gross (VAT-inclusive) prices
positionCount - Int! Number of distinct line items (positions)
subtotal - CheckoutDetailedPrice! Sum of all position totals (after per-position discounts, before shipping and fees)
total - CheckoutDetailedPrice! Final cart total including shipping, fees, and all discounts
totalSavings - MonetaryAmount Total savings across all sources. Null when there are no savings.
vat - CheckoutCartVatInfo VAT breakdown by rate. Null when VAT is not calculated yet.
Example
{
  "additionalFees": [CheckoutCartAdditionalFee],
  "articleCount": 987,
  "discountsVatIncluded": true,
  "positionCount": 123,
  "subtotal": CheckoutDetailedPrice,
  "total": CheckoutDetailedPrice,
  "totalSavings": MonetaryAmount,
  "vat": CheckoutCartVatInfo
}

CheckoutCartVatInfo

Description

VAT breakdown for the cart (MonetaryAmount-based).

Fields
Field Name Description
total - MonetaryAmount! The total VAT amount
vatInfosPerRate - [CheckoutCartVatInfoPerRate!]! The list of VAT amounts per rate
Example
{
  "total": MonetaryAmount,
  "vatInfosPerRate": [CheckoutCartVatInfoPerRate]
}

CheckoutCartVatInfoPerRate

Description

VAT amount for a single rate (MonetaryAmount-based).

Fields
Field Name Description
amount - MonetaryAmount! The VAT amount for this rate
rate - VatRate! The VAT rate
Example
{
  "amount": MonetaryAmount,
  "rate": VatRate
}

CheckoutCartVoucher

Description

A voucher entered for this cart with its redemption result.

Fields
Field Name Description
code - String! The voucher code entered by the customer
result - CheckoutCartVoucherResult! Redemption outcome
Example
{
  "code": "xyz789",
  "result": CheckoutCartVoucherApplied
}

CheckoutCartVoucherApplied

Description

Voucher was successfully applied.

Fields
Field Name Description
name - String Display name of the voucher
promotionDescription - String Description of the promotion activated by this voucher
promotionName - String Name of the promotion activated by this voucher
Example
{
  "name": "abc123",
  "promotionDescription": "xyz789",
  "promotionName": "abc123"
}

CheckoutCartVoucherNotApplied

Description

Voucher was not applied.

Fields
Field Name Description
attainable - Boolean! Whether the voucher could be applied if conditions are met
failureReasons - [String!]! Human-readable reasons why the voucher was not applied
Example
{
  "attainable": false,
  "failureReasons": ["abc123"]
}

CheckoutCartVoucherResult

Description

Outcome of a voucher redemption attempt.

Example
CheckoutCartVoucherApplied

CheckoutConfirmOrderResult

Description

Result type getting CheckoutConfirmOrderResult

Example
CheckoutOrder

CheckoutDetailedPrice

Description

A price with gross, net, and VAT breakdown. Used for every price point in the new Cart API.

vatRate is null for mixed-rate totals (e.g. a cart total combining items at different VAT rates).

Fields
Field Name Description
gross - MonetaryAmount! VAT-inclusive amount
net - MonetaryAmount! VAT-exclusive amount
vat - MonetaryAmount VAT amount (gross - net). Null if VAT is not yet calculated.
vatRate - VatRate VAT rate. Null for mixed-rate totals.
Example
{
  "gross": MonetaryAmount,
  "net": MonetaryAmount,
  "vat": MonetaryAmount,
  "vatRate": VatRate
}

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": "abc123",
  "orderLines": [OrderLineInput],
  "step": "xyz789"
}

CheckoutFreeAddonsOffer

Description

Free addons offer: customer picks free addon items. Promotion metadata is not available for this offer type.

Fields
Field Name Description
mainItem - Item! The main item that triggered this offer
maxSelectable - Int!
promotionReference - ID!
selectableAddons - [Item!]! Addon items available for selection
selectedAddons - [Item!]! Addon items already selected by the customer
Example
{
  "mainItem": Item,
  "maxSelectable": 987,
  "promotionReference": "4",
  "selectableAddons": [Item],
  "selectedAddons": [Item]
}

CheckoutFreeItemsOffer

Description

Free items offer: customer picks items for free

Fields
Field Name Description
image - Image Display image
maxSelectable - Int!
promotionDescription - String Description of the promotion
promotionName - String Name of the promotion
promotionReference - ID!
selectableItems - [Item!]! Items available for selection
selectedItems - [Item!]! Items already selected by the customer
title - String Display title
Example
{
  "image": Image,
  "maxSelectable": 987,
  "promotionDescription": "xyz789",
  "promotionName": "xyz789",
  "promotionReference": 4,
  "selectableItems": [Item],
  "selectedItems": [Item],
  "title": "abc123"
}

CheckoutFreeShippingEffect

Description

Free-shipping promotion effect.

Fields
Field Name Description
free - Boolean! Whether shipping is currently free
image - Image Display image
promotionDescription - String Description of the promotion that grants free shipping
promotionName - String Name of the promotion that grants free shipping
title - String Display title
voucher - String Voucher code that triggered free shipping (if any)
Example
{
  "free": true,
  "image": Image,
  "promotionDescription": "abc123",
  "promotionName": "xyz789",
  "title": "abc123",
  "voucher": "abc123"
}

CheckoutInformationalBenefit

Description

A non-price-changing promotional message

Fields
Field Name Description
image - Image Display image
promotionDescription - String Description of the related promotion
promotionName - String Name of the related promotion
title - String Display title
type - String! Application-specific type key
Example
{
  "image": Image,
  "promotionDescription": "xyz789",
  "promotionName": "abc123",
  "title": "xyz789",
  "type": "abc123"
}

CheckoutOrder

Description

Type for checkout order

Fields
Field Name Description
billingAddress - CheckoutOrderAddress! The billingAddress of the order
delivery - CheckoutOrderDelivery! Delivery/shipping information for the order
orderId - ID! The ID of the order
orderStatus - CheckoutOrderStatus! The status of the order
paymentMethod - PaymentMethod! The paymentMethod of the order
positions - [CheckoutOrderPosition!]! Line items of the order
promotions - CheckoutOrderPromotions! Promotion and voucher effects on the order
shippingAddress - CheckoutOrderAddress! The shippingAddress of the order
summary - CheckoutOrderSummary! Order totals, counts, taxes, and fees
Example
{
  "billingAddress": CheckoutOrderAddress,
  "delivery": CheckoutOrderDelivery,
  "orderId": "4",
  "orderStatus": "CANCELLED",
  "paymentMethod": PaymentMethod,
  "positions": [CheckoutOrderPosition],
  "promotions": CheckoutOrderPromotions,
  "shippingAddress": CheckoutOrderAddress,
  "summary": CheckoutOrderSummary
}

CheckoutOrderAddress

Description

Address for a checkout order. All fields are optional to support digital orders where only customer name and email are available.

Fields
Field Name Description
addition - String
additions - [String] No longer supported
attributes - JSON
city - String
company - String
country - Country
email - String
firstname - String
id - ID
isShop - Boolean
isStation - Boolean
lastname - String
notes - String
number - String
phone - String
postcode - String
salutation - Salutation
street - String
title - String
Example
{
  "addition": "xyz789",
  "additions": ["abc123"],
  "attributes": {},
  "city": "xyz789",
  "company": "abc123",
  "country": Country,
  "email": "abc123",
  "firstname": "abc123",
  "id": 4,
  "isShop": true,
  "isStation": false,
  "lastname": "xyz789",
  "notes": "abc123",
  "number": "abc123",
  "phone": "xyz789",
  "postcode": "xyz789",
  "salutation": Salutation,
  "street": "abc123",
  "title": "abc123"
}

CheckoutOrderDelivery

Description

Delivery information for the order

Fields
Field Name Description
freeShipping - CheckoutFreeShippingEffect Free-shipping promotion details
selectedMethod - CheckoutOrderDeliveryMethod The shipping method for this order
Example
{
  "freeShipping": CheckoutFreeShippingEffect,
  "selectedMethod": CheckoutOrderDeliveryMethod
}

CheckoutOrderDeliveryMethod

Description

Shipping method with cost and time info

Fields
Field Name Description
cost - CheckoutDetailedPrice Delivery cost before free-shipping discount
deliveryTimeDescription - String Human-readable delivery time estimate
discountedCost - CheckoutDetailedPrice Delivery cost after free-shipping discount
name - String Display name of the shipping method
shipperId - String! Shipper identifier
Example
{
  "cost": CheckoutDetailedPrice,
  "deliveryTimeDescription": "abc123",
  "discountedCost": CheckoutDetailedPrice,
  "name": "xyz789",
  "shipperId": "xyz789"
}

CheckoutOrderDetailsResult

Description

Result type getting OrderDetails

Example
CheckoutOrder

CheckoutOrderPosition

Description

A line item in the order

Fields
Field Name Description
comment - String User comment on this position
details - Item The product item
id - String! Position ID
pricing - CheckoutPositionPricing! All pricing for this position
promotionDescription - String Description of the promotion applied to this position
promotionName - String Name of the promotion applied to this position
quantity - Int! Quantity of this item
voucher - String The voucher code that affects this position
Example
{
  "comment": "xyz789",
  "details": Item,
  "id": "abc123",
  "pricing": CheckoutPositionPricing,
  "promotionDescription": "xyz789",
  "promotionName": "xyz789",
  "quantity": 123,
  "voucher": "xyz789"
}

CheckoutOrderPromotions

Description

All promotion and voucher information for the order

Fields
Field Name Description
cartDiscount - CheckoutCartDiscount Cart-level discount details
informationalBenefits - [CheckoutInformationalBenefit!]! Informational promotion messages
promotionSavings - MonetaryAmount Savings from promotions
vouchers - [CheckoutOrderVoucher!]! Vouchers applied to this order
Example
{
  "cartDiscount": CheckoutCartDiscount,
  "informationalBenefits": [CheckoutInformationalBenefit],
  "promotionSavings": MonetaryAmount,
  "vouchers": [CheckoutOrderVoucher]
}

CheckoutOrderStatus

Description

The Checkout Order Status

Values
Enum Value Description

CANCELLED

CAPTURE_PENDING

COMPLETED

PROCESSING

UNDEFINED

Example
"CANCELLED"

CheckoutOrderSummary

Description

Order totals, item counts, tax breakdown, and fees

Fields
Field Name Description
additionalFees - [CheckoutCartAdditionalFee!]! Additional fees on the order
articleCount - Int! Total number of articles (sum of all quantities)
positionCount - Int! Number of distinct line items
subtotal - CheckoutDetailedPrice! Sum of all position totals
total - CheckoutDetailedPrice! Final order total including shipping, fees, and all discounts
totalSavings - MonetaryAmount Total savings across all sources. Null when there are no savings.
vat - CheckoutCartVatInfo VAT breakdown by rate
Example
{
  "additionalFees": [CheckoutCartAdditionalFee],
  "articleCount": 987,
  "positionCount": 987,
  "subtotal": CheckoutDetailedPrice,
  "total": CheckoutDetailedPrice,
  "totalSavings": MonetaryAmount,
  "vat": CheckoutCartVatInfo
}

CheckoutOrderVoucher

Description

A voucher applied to this order

Fields
Field Name Description
code - String! The voucher code
promotionDescription - String Description of the promotion activated by this voucher
promotionName - String Name of the promotion activated by this voucher
Example
{
  "code": "xyz789",
  "promotionDescription": "xyz789",
  "promotionName": "abc123"
}

CheckoutPositionDiscount

Description

Discount breakdown for a single cart position.

Fields
Field Name Description
amount - MonetaryAmount! Total discount amount for this position
capped - Boolean! Whether the discount was capped
discountedQuantity - Int! Number of items receiving the discount
discountedUnitPrice - CheckoutDetailedPrice Per-item price after discount
effectivePercent - Int! Effective discount as a percentage
fullPriceQuantity - Int! Number of items NOT receiving the discount
fullPriceUnitPrice - CheckoutDetailedPrice Per-item price for non-discounted items
image - Image Display image
title - String Display title
Example
{
  "amount": MonetaryAmount,
  "capped": false,
  "discountedQuantity": 987,
  "discountedUnitPrice": CheckoutDetailedPrice,
  "effectivePercent": 123,
  "fullPriceQuantity": 123,
  "fullPriceUnitPrice": CheckoutDetailedPrice,
  "image": Image,
  "title": "abc123"
}

CheckoutPositionPricing

Description

Complete pricing breakdown for a cart position.

Fields
Field Name Description
discount - CheckoutPositionDiscount Discount details. Null when no promotion discount applies.
lineTotal - CheckoutDetailedPrice Line total based on current prices (after promotions). Null when current prices are unavailable.
strikethrough - CheckoutDetailedPrice Old/was price multiplied by quantity. Present only for strike-through prices.
total - CheckoutDetailedPrice Position total based on base prices (before promotions). Null when position prices are unavailable.
unitPrice - CheckoutDetailedPrice! Single-item price (before quantity multiplication)
Example
{
  "discount": CheckoutPositionDiscount,
  "lineTotal": CheckoutDetailedPrice,
  "strikethrough": CheckoutDetailedPrice,
  "total": CheckoutDetailedPrice,
  "unitPrice": CheckoutDetailedPrice
}

CheckoutSelectableOffer

Description

Common fields for all selectable promotion offers.

Fields
Field Name Description
maxSelectable - Int! Maximum number of items the customer can select
promotionReference - ID! Unique reference to this promotion offer
Possible Types
CheckoutSelectableOffer Types

CheckoutFreeAddonsOffer

CheckoutFreeItemsOffer

CheckoutSpecialPriceOffer

Example
{
  "maxSelectable": 123,
  "promotionReference": "4"
}

CheckoutSpecialPriceOffer

Description

Special price offer: customer picks items at a reduced price

Fields
Field Name Description
image - Image Display image
maxSelectable - Int!
promotionDescription - String Description of the promotion
promotionName - String Name of the promotion
promotionReference - ID!
selectableItems - [SpecialPriceItem!]! Items with special prices available for selection
selectedItems - [SpecialPriceItem!]! Items with special prices already selected
title - String Display title
Example
{
  "image": Image,
  "maxSelectable": 987,
  "promotionDescription": "xyz789",
  "promotionName": "abc123",
  "promotionReference": "4",
  "selectableItems": [SpecialPriceItem],
  "selectedItems": [SpecialPriceItem],
  "title": "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')
id - AttributeId! The technical ID of this attribute
name - String! The name of this attribute (e.g. 'import:color') Deprecated, use field id of id instead.
sequenceNo - Int Sequence number to sort this attribute into a list of attributes
Example
{
  "cssColorCode": "xyz789",
  "displayName": "xyz789",
  "displayValue": "abc123",
  "id": AttributeId,
  "name": "abc123",
  "sequenceNo": 123
}

CompanyAddresses

Fields
Field Name Description
billingAddress - B2BCompanyBillingAddress! The billing address of this company
permissions - AddressPermissions! Permissions of the current user for this company
shippingAddresses - [B2BShippingAddress!]! The shipping addresses of this company
Example
{
  "billingAddress": B2BCompanyBillingAddress,
  "permissions": AddressPermissions,
  "shippingAddresses": [B2BShippingAddress]
}

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.

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": 987}

ContentSearchResultEntry

Description

The specific result entry of the content search

Fields
Field Name Description
fullText - String The long text of the content search result entry.
title - String The title of the content search result entry.
url - String The url/link of the content search result entry.
Example
{
  "fullText": "xyz789",
  "title": "xyz789",
  "url": "abc123"
}

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
order - SortOrder!

The content tree pages are sorted from top-level page to parent page, this sorting can be reversed here

Default: ascending (sorted from top-level page to parent page)
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
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)
link - Link! Link to this content tree page
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
names - [String!]!

Name(s) of the parameter(s) as defined in the backend

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
siblings - [ContentTreePage]! The siblings of the page, including itself to show it ordered correctly
Example
{
  "ancestors": [ContentTreePage],
  "children": [ContentTreePage],
  "link": Link,
  "name": "abc123",
  "parameters": [ContentAttribute],
  "parent": ContentTreePage,
  "raster": Raster,
  "root": ContentTreePage,
  "seo": Seo,
  "siblings": [ContentTreePage]
}

ContentViewEvent

Description

Content view event

Fields
Input Field Description
contentId - ID linkId of corresponding Link of the page to be tracked
url - String! The relative url of the page to be tracked
Example
{
  "contentId": "4",
  "url": "xyz789"
}

Country

Description

A country

Fields
Field Name Description
code - String! The ISO 3166-1 code of this country
label - String! The display name of this country
Example
{
  "code": "abc123",
  "label": "abc123"
}

CreateAddressInput

Fields
Input Field Description
addition - String The address addition
addressLine1 - String Extra address Line 1 of the address
addressLine2 - String Extra address Line 2 specified of the address
addressLine3 - String Extra address Line 3 specified of the address
city - String! The city specified of the address
country - String! The country code according to ISO 3166-1 alpha-3
number - String! The street number of the address
street - String! The street name of the address
zipCode - String! The zip code of the address
Example
{
  "addition": "xyz789",
  "addressLine1": "abc123",
  "addressLine2": "xyz789",
  "addressLine3": "xyz789",
  "city": "xyz789",
  "country": "xyz789",
  "number": "xyz789",
  "street": "xyz789",
  "zipCode": "abc123"
}

CreateBillingAddressInput

Fields
Input Field Description
address - CreateAddressInput The Billing address of this unit
person - CreateUnitContactInput The contact person of this unit address
Example
{
  "address": CreateAddressInput,
  "person": CreateUnitContactInput
}

CreateCartInput

Description

Input type for cart_create mutation

Fields
Input Field Description
setActive - SetActive Sets the new cart active. There can be only one active cart. If a cart is set active, all other carts will be deactivated. Default false.
setDefault - SetDefault Sets the new cart as default. There can be only one default cart. If a cart is set default, all other carts will be set to false. Default false.
setName - SetName Sets the name of the new cart
Example
{
  "setActive": SetActive,
  "setDefault": SetDefault,
  "setName": SetName
}

CreateCartProblem

Description

Problem when creating a new cart

Fields
Field Name Description
message - String!

The message to display

This is usually the message code for translation.

Example
{"message": "xyz789"}

CreateCartProblems

Description

An aggregation of problems occurred when creating a new cart

Fields
Field Name Description
problems - [CreateCartProblem]! List of problems encountered
Example
{"problems": [CreateCartProblem]}

CreateCartResult

Description

Result type when creating a new cart

Example
CreateCartProblems

CreateCartSuccess

Description

Type for successfully creating a new cart

Fields
Field Name Description
cart - Cart! The newly created cart
Example
{"cart": Cart}

CreateContactInput

Fields
Input Field Description
email - String The email address of the contact
phone - String Phone number of the contact
Example
{
  "email": "abc123",
  "phone": "xyz789"
}

CreateContactPersonInput

Fields
Input Field Description
firstname - String! The first name of the unit contact
lastname - String! The last name of the unit contact
salutation - B2BUserSalutation! The Salutation of the unit contact. Default = NOT_SPECIFIED
title - String The title of the unit contact
Example
{
  "firstname": "xyz789",
  "lastname": "xyz789",
  "salutation": "DIVERSE",
  "title": "abc123"
}

CreatePositionInput

Description

Operation to create a new position

Fields
Input Field Description
addAttributes - [AddAttribute!]! Adds attributes to the position. Default = []
setComment - SetComment Sets a Users comment on the position
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],
  "setComment": SetComment,
  "setItemId": SetItemId,
  "updateIfExists": true,
  "updateQuantity": UpdateQuantity
}

CreateReview

Description

Operation to create a review

Fields
Input Field Description
author - String The Author of the review
itemId - String The id of the reviewed item
message - String! The Text of the review
productId - ID! The ID of the product that the review belongs to
rating - Int! The rating of the review
title - String The Title of the review
variation - String The variation of the reviewed item
verifiedPurchase - String The verifiedPurchase of the reviewed item
Example
{
  "author": "abc123",
  "itemId": "xyz789",
  "message": "abc123",
  "productId": 4,
  "rating": 987,
  "title": "xyz789",
  "variation": "xyz789",
  "verifiedPurchase": "abc123"
}

CreateUnitContactInput

Fields
Input Field Description
contact - CreateContactInput The contact details of the unit
person - CreateContactPersonInput The contact person of the unit
Example
{
  "contact": CreateContactInput,
  "person": CreateContactPersonInput
}

CreateUnitInput

Fields
Input Field Description
address - CreateBillingAddressInput The address of the unit
externalId - String The externalId of the sub unit
name - String! Name of the unit
parentId - String! The parent internal id of the unit
Example
{
  "address": CreateBillingAddressInput,
  "externalId": "abc123",
  "name": "xyz789",
  "parentId": "abc123"
}

CreateUnitResult

CreateUnitShoppingListInput

Description

Operations to create a unit shopping list

Fields
Input Field Description
setName - SetName! Sets the name of the unit shopping list
unitId - ID This is mandatory if there is no unitId in the access token if not this is optional
Example
{"setName": SetName, "unitId": 4}

CreateUnitShoppingListProblem

Description

A problem when creating a new unit shopping list

Fields
Field Name Description
message - String! The message
Example
{"message": "xyz789"}

CreateUnitShoppingListProblems

Description

An aggregation of problems occurred when creating a new unit shopping list

Fields
Field Name Description
problems - [CreateUnitShoppingListProblem]! List of problems encountered
Example
{"problems": [CreateUnitShoppingListProblem]}

CreateUnitShoppingListResult

Description

Result type when creating a new unit shopping list

Example
CreateUnitShoppingListProblems

CreateUnitShoppingListSuccess

Description

Type for successfully creating a unit shopping list

Fields
Field Name Description
shoppingList - UnitShoppingList! the shopping list created
Example
{"shoppingList": UnitShoppingList}

CreateUnitSuccess

Fields
Field Name Description
unit - B2BUnit!
Example
{"unit": B2BCompany}

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

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
paging - ShippingAddressPagingInput!

Paging to list the shipping addresses of the address book

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
filter - OrderFilterInput!

Filter to select specific orders

paging - OrderPagingInput!

Paging and sorting to list the orders

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": "xyz789",
  "customerIdentifier": "abc123",
  "firstname": "abc123",
  "lastname": "xyz789",
  "orders": OrderListResult,
  "phoneNumbers": [Phone],
  "salutation": "abc123",
  "title": "xyz789",
  "username": "xyz789"
}

Date

Description

An RFC-3339 compliant Full Date Scalar

Example
"2007-12-03"

DateAttribute

Description

Backend type 'Date'

Fields
Field Name Description
date - DateTime! The value of this attribute
name - String! The name of this attribute
Example
{
  "date": "2007-12-03T10:15:30Z",
  "name": "xyz789"
}

DateRangeInput

Description

Date range input for filtering by date

Fields
Input Field Description
from - DateTime! Start date (inclusive). Format: YYYY-MM-DD
to - DateTime! End date (inclusive). Format: YYYY-MM-DD
Example
{
  "from": "2007-12-03T10:15:30Z",
  "to": "2007-12-03T10:15:30Z"
}

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"}

DeleteFromWishlist

Description

Removes a specific product (productId), item (itemId), or combination (productId and itemId) from the wishlist.

  • productId → Removes entry with matching productId where itemId is null.
  • itemId → Removes entry with matching itemId where productId is null.
  • productId + itemId → Removes entry where both match.
Fields
Input Field Description
setItemId - SetItemId
setProductId - SetProductId
Example
{
  "setItemId": SetItemId,
  "setProductId": SetProductId
}

DeleteFromWishlistProblem

Description

The wishlist entry cannot be deleted

Fields
Field Name Description
message - String!

The message to display

This is usually the message code for translation.

  • ishop.backend.problem.wishlist.no-id: No id to delete
Example
{"message": "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"}

DeleteUnitAddress

Fields
Input Field Description
addressId - ID! ID of the address to be deleted
unitId - ID! ID of the unit whose address has to be deleted
Example
{"addressId": 4, "unitId": "4"}

DeleteUnitShoppingListInput

Description

Input for unit shopping list deletion

Fields
Input Field Description
id - ID! The ID of the unit shopping list
Example
{"id": "4"}

DeleteUnitShoppingListProblem

Fields
Field Name Description
message - String! The message
Example
{"message": "xyz789"}

DeleteUnitShoppingListProblems

Description

An aggregation of problems occurred when deleting a unit shopping list

Fields
Field Name Description
problems - [DeleteUnitShoppingListProblem]! List of problems encountered
Example
{"problems": [DeleteUnitShoppingListProblem]}

DeleteUnitShoppingListResult

Description

Result type when deleting a unit shopping list

Example
DeleteUnitShoppingListProblems

DeleteUnitShoppingListSuccess

Description

Type for successfully deleting a unit shopping list

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

DeleteVoucher

Description

Operation to remove a voucher code

Fields
Input Field Description
code - String! The voucher code to remove
Example
{"code": "abc123"}

DeleteWishlistInput

Description

Operation to delete a wishlist

Fields
Input Field Description
wishlistId - String! The ID of the wishlist to delete
Example
{"wishlistId": "xyz789"}

DeliveryDetail

Description

Information on order item delivery information

Fields
Field Name Description
carrier - String The carrier handling the delivery (e.g., DHL, DPD, FEDEX, HERMES,TNT, UPD)
deliveryMode - String The mode of item delivery (e.g., DELIVERY, # The mode of delivery (e.g., standard, express))
pickupOutletId - String Id of the pickup store where the item can be picked up if delivery mode is pickup
pickupOutletName - String Name of the pickup store where the item can be picked up if delivery mode is pickup
plannedDeliveryDateFrom - String Start of the planned delivery window
plannedDeliveryDateTo - String End of the planned delivery window, delivery is scheduled between this time and plannedDeliveryDateFrom
requestedDeliveryDate - String Date the delivery was requested
shippingType - String The shipping type of delivery (e.g., standard, express)
Example
{
  "carrier": "xyz789",
  "deliveryMode": "abc123",
  "pickupOutletId": "xyz789",
  "pickupOutletName": "xyz789",
  "plannedDeliveryDateFrom": "abc123",
  "plannedDeliveryDateTo": "xyz789",
  "requestedDeliveryDate": "xyz789",
  "shippingType": "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": "xyz789",
  "discountedDeliveryCost": Money,
  "freeShippingPossible": true,
  "shipper": "abc123"
}

DetailedDeliveryInfo

Description

Detailed delivery information

Fields
Field Name Description
deliveryCost - Money The delivery costs
Deprecated: use grossDeliveryCost instead No longer supported
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
grossDeliveryCosts - Money The gross delivery costs
netDeliveryCosts - Money The net delivery costs
shipper - String Name of the shipper
vatRate - VatRate The VAT rate for delivery costs
Example
{
  "deliveryCost": Money,
  "deliveryTimeDescription": "xyz789",
  "discountedDeliveryCost": Money,
  "freeShippingPossible": true,
  "grossDeliveryCosts": Money,
  "netDeliveryCosts": Money,
  "shipper": "abc123",
  "vatRate": VatRate
}

Discount

Description

A position related discount (see CartPosition)

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": true,
  "discount": Money,
  "discountTotal": Money,
  "discountedPrice": Money,
  "discountedQuantity": 123,
  "discountedTotalPrice": Money,
  "effectivePercent": 123,
  "image": Image,
  "previousTotalPrice": Money,
  "quantity": 123,
  "title": "xyz789",
  "totalPrice": Money,
  "undiscountedPrice": Money,
  "undiscountedQuantity": 123,
  "undiscountedTotalPrice": Money
}

Document

Description

A document (e.g. a manual for a product)

Fields
Field Name Description
displayName - String The display name of this document
fileName - String! The file name of this document
url - String! Absolute URL of this document
Example
{
  "displayName": "xyz789",
  "fileName": "abc123",
  "url": "abc123"
}

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": "xyz789"}

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

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

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

Fields
Input Field Description
id - ID! Filter ID (e.g. 'color', 'brand', 'size')
values - [ID!]!

List of discrete values to filter on (e.g. 'white', 'blue', 'red')

The union of the given values is calculated.

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": false
}

ExternalPaymentOrderSubmitProblem

Description

Problem when payment is failed due to any internal/config error, exception

Fields
Field Name Description
interfaceId - String! The ID of the payment method interface used as interfaceId in PaymentMethodInput
message - String!

The message key for error display

  • ishop.backend.problem.payment-failed - payment failed due to internal error or exception
methodCode - String! The payment method code used as methodCode in PaymentMethodInput
Example
{
  "interfaceId": "xyz789",
  "message": "abc123",
  "methodCode": "abc123"
}

Facility

Description

Base type for warehouses and stores

Fields
Field Name Description
displayName - String! The displayName of the facility
id - ID! The ID of the facility
Possible Types
Facility Types

Store

Warehouse

Example
{"displayName": "xyz789", "id": 4}

FacilityAvailability

Description

Item Availability for a facility (warehouses and stores)

Fields
Field Name Description
availability - Availability! The availability of the facility
facility - Facility! The facility
Example
{
  "availability": Availability,
  "facility": Facility
}

FacilityStock

Description

Stock information for a specific Facility

Fields
Field Name Description
facility - Facility! The facility
stock - Stock! The stock information
Example
{
  "facility": Facility,
  "stock": Stock
}

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
Example
{
  "displayName": "abc123",
  "id": "4"
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

FooterTeaser

Description

A 'Footer' teaser

This teaser type is activated by default.

Fields
Field Name Description
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
placeholder - Image A placeholder image
tabs - [FooterTeaserTab]! A ordered list of FooterTeaserTabs
Example
{
  "meta": TeaserMeta,
  "name": "xyz789",
  "placeholder": Image,
  "tabs": [FooterTeaserTab]
}

FooterTeaserTab

Description

Single tab of a FooterTeaser

Fields
Field Name Description
headline - String The headline of this tab
links - [Link]! Link list of this tab
name - String The name of this tab
trackingInfo - String Additional Tracking information
Example
{
  "headline": "abc123",
  "links": [Link],
  "name": "abc123",
  "trackingInfo": "xyz789"
}

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": 987,
  "promotion": Promotion,
  "promotionReference": 4,
  "selectableAddons": [Item],
  "selectedAddons": [Item]
}

FreeItemBenefit

Description

Benefit of one or more free items

Fields
Field Name Description
image - Image The image of the benefit maintained in the back office
maxSelectable - Int! The maximum number of selectable free items
selectableItems - [Item]! List of free items to choose from
title - String The title of the benefit maintained in the back office
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

Description

A free shipping benefit

Fields
Field Name Description
image - Image The image of the benefit maintained in the back office
title - String The title of the benefit maintained in the back office
Example
{
  "image": Image,
  "title": "abc123"
}

FreeShippingInfo

Description

Information about free shipping promotion

Fields
Field Name Description
free - Boolean! true if the shipping is free
image - Image The image of the promotion
promotion - Promotion The related promotion
title - String The display title of the promotion
voucher - String Related voucher code
Example
{
  "free": true,
  "image": Image,
  "promotion": Promotion,
  "title": "xyz789",
  "voucher": "abc123"
}

GenericTeaser

Description

A generic teaser, used when no specific TeaserAttribute is defined for a teaser

By default, the generic teasers are disabled and need to be enabled in the backend (see ShopApiConfigurer#allowGenericTeaser and ShopApiConfigurer#teaserAttributeBlacklist).

Fields
Field Name Description
attributes - [ContentAttribute]! List of attributes of this teaser (e.g. text fields, links or images)
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
tabsAttributes - [TabsAttribute]! List of tabs of this teaser
Example
{
  "attributes": [ContentAttribute],
  "meta": TeaserMeta,
  "name": "xyz789",
  "tabsAttributes": [TabsAttribute]
}

GiftCard

Description

Represents a gift card with a voucher code, description, and payment amount

Fields
Field Name Description
balance - MonetaryAmount Amount of the Voucher
description - String Description
voucherCode - String Code of the voucher
Example
{
  "balance": MonetaryAmount,
  "description": "xyz789",
  "voucherCode": "abc123"
}

GiftCardNotEnoughBalanceProblem

Description

Problem when payment with giftcard is failed due to any internal/config error, exception

Fields
Field Name Description
message - String! The message key for error display
Example
{"message": "xyz789"}

GlobalParameter

Description

DEPRECATED: Used only by the deprecated core_globalParameters query. Will be removed in future release. A single Global parameter

Fields
Field Name Description
parameters - [ContentAttribute]!

Values of the parameter

The name of the parameter is name of ContentAttribute

Arguments
paging - GlobalParameterPaging!

Paging and sorting to list the parameter values

Default: [Paging](#GlobalParameterPaging) with `limit` 100 and `offset` 0
type - String! Type of the parameter
Example
{
  "parameters": [ContentAttribute],
  "type": "abc123"
}

GlobalParameterFilter

Description

DEPRECATED: Used only by the deprecated core_globalParameters query.Will be removed in future release. 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": ["abc123"],
  "parameterType": "xyz789"
}

GlobalParameterPaging

Description

DEPRECATED: Used only by the deprecated core_globalParameters query. Will be removed in future release. 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": 987, "offset": 123, "order": "ASC"}

HeadlineTeaser

Description

A 'Headline' teaser

This teaser type is activated by default.

Fields
Field Name Description
headline - String The headline of this teaser
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
style - String! Style of headline, for example H1
Example
{
  "headline": "abc123",
  "meta": TeaserMeta,
  "name": "abc123",
  "style": "xyz789"
}

Hreflang

Description

Information to build hreflang link

Fields
Field Name Description
language - String! Language of alternative version
url - String! URL of alternative version
Example
{
  "language": "xyz789",
  "url": "xyz789"
}

HtmlTeaser

Description

An HTML teaser

This teaser type is activated by default.

Fields
Field Name Description
html - String! HTML formatted content
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
Example
{
  "html": "abc123",
  "meta": TeaserMeta,
  "name": "abc123"
}

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": "xyz789",
  "boUrl": "abc123",
  "fileName": "abc123",
  "height": 123,
  "imageRole": "CROPPED_IMAGE",
  "name": "abc123",
  "rank": 987,
  "title": "abc123",
  "url": "abc123",
  "width": 987
}

ImageAttribute

Description

Backend type 'Image' which is a image maintained in the back office

Fields
Field Name Description
image - Image! The maintained image
name - String! The name of this attribute
Example
{
  "image": Image,
  "name": "xyz789"
}

ImageLinkTeaser

Description

An image link teaser

This teaser type is activated by default.

Fields
Field Name Description
image - LinkedImage! A linked image
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
Example
{
  "image": LinkedImage,
  "meta": TeaserMeta,
  "name": "abc123"
}

ImageListAttribute

Description

Backend type 'ImageList' which is a list of images maintained in the back office

Fields
Field Name Description
images - [Image]! List of maintained images
name - String! The name of this attribute
Example
{
  "images": [Image],
  "name": "xyz789"
}

ImageRole

Description

Role of an image

Values
Enum Value Description

CROPPED_IMAGE

DETAIL_IMAGE

MAIN_IMAGE

MANUFACTURER_IMAGE

PATTERN_IMAGE

REARVIEW_IMAGE

ZOOM_IMAGE

Example
"CROPPED_IMAGE"

ImageTextTeaser

Description

AN 'Image Text' teaser

This teaser type is activated by default.

Fields
Field Name Description
buttonColor - String The color of the button
buttonText - String The text in the button
headline - String The headline of this teaser
image - Image! Image for this teaser
imageForMobile - Image Mobile image for this teaser
link - Link! The target of the button on this teaser
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
position - String The position of the headline, text and button elements
text - String The text of this teaser
textColor - String The color of the text
Example
{
  "buttonColor": "xyz789",
  "buttonText": "xyz789",
  "headline": "abc123",
  "image": Image,
  "imageForMobile": Image,
  "link": Link,
  "meta": TeaserMeta,
  "name": "abc123",
  "position": "abc123",
  "text": "abc123",
  "textColor": "abc123"
}

InformativeBenefit

Description

An informative benefit

Fields
Field Name Description
image - Image The image of the benefit maintained in the back office
title - String The title of the benefit maintained in the back office
type - String Shop specific type of the benefit
Example
{
  "image": Image,
  "title": "abc123",
  "type": "abc123"
}

InformativeBenefitInfo

Description

Information about informative benefits

Fields
Field Name Description
image - Image The image of the promotion
promotion - Promotion The related promotion
title - String The display title of the promotion
type - String! The type of the informative benefit
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
987

InterestEvent

Description

User interest event (for example, if the user is interested in discounted items)

Fields
Input Field Description
name - String! Name of interest
value - String! Value of interest
Example
{
  "name": "xyz789",
  "value": "xyz789"
}

InvalidGuestIdProblem

Description

The entered GuestId is not a valid email address

Fields
Field Name Description
guestId - String The provided guest id
message - String!

The message to display

This is usually the message code for translation.

  • ishop.backend.problem.invalid-guest-id: The provided identifier of a guest is not a valid email
Example
{
  "guestId": "abc123",
  "message": "xyz789"
}

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.

  • ishop.backend.problem.invalid-payment: Selected payment is not available
Example
{"message": "xyz789"}

Invoice

Description

Information on order invoice

Fields
Field Name Description
creationDate - String The date of invoice creation
fileName - String The file name of the uploaded invoice
fileType - String The file type of the uploaded invoice
number - String! The invoice number
totalAmount - Money The total amount
Example
{
  "creationDate": "xyz789",
  "fileName": "xyz789",
  "fileType": "abc123",
  "number": "xyz789",
  "totalAmount": Money
}

Item

Description

A shop item

Fields
Field Name Description
additionalImages - [Image]! Additional Images of this item
Arguments
roles - [ImageRole!]!

Only Images of this ImageRoles are returned

assets - [Asset]! Assets of this item for display on the product detail page
availability - Availability! Availability of this item
badges - [Badge]! Item badges better use field new of Product or savingPercentage of Item
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
facilityAvailability - [FacilityAvailability!]! All availabilities of stores and warehouses
facilityStocks - [FacilityStock!]!

Stock of each facility (Warehouse and Stock)

It is NOT recommended to query facilityStocks in product list scenarios.

features - [ItemAttribute]!

List of all item features

Item features are properties that are maintained on the item (e.g. length).

groupedFeatures - [BaseFeatureGroup]!

List of all item and product features grouped by ishop_feature_group

Features are properties that are maintained on the item or product (e.g. length).

id - ID! The ID of this item
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
onlineAvailability - Availability! Accumulates warehouses availability
onlineStock - Stock!

Sum of stocks of all facilities of kind Warehouse

It is NOT recommended to query onlineStock in product list scenarios.

price - Money The current price of this item (promotion price or the default price if not found)
priceInformation - PriceInformation Price information depending on provider and quantity
product - Product! The product to which the item belongs
recommendations - ItemRecommendations! Content based recommendations for the item
Arguments
paging - RecommendationPaging!

Paging to list recommended items

Default: [Paging](#RecommendationPaging) with `limit` 100 and `offset` 0
relations - [ProductRelations]! Lists of products or items related to this item (e.g. for product recommendations)
Arguments
paging - RelationsPaging!

Paging for relations

Paging is applied to all returned relations
type - String

Type of relations (if not set, all relations are returned)

Default: not set (all relations are returned)
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
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
Example
{
  "additionalImages": [Image],
  "assets": [Document],
  "availability": Availability,
  "badges": [Badge],
  "color": ItemColor,
  "documents": [Document],
  "facilityAvailability": [FacilityAvailability],
  "facilityStocks": [FacilityStock],
  "features": [ItemAttribute],
  "groupedFeatures": [BaseFeatureGroup],
  "id": 4,
  "image": Image,
  "images": [Image],
  "itemDiscount": ItemDiscount,
  "link": Link,
  "oldPrice": Money,
  "onlineAvailability": Availability,
  "onlineStock": Stock,
  "price": Money,
  "priceInformation": PriceInformation,
  "product": Product,
  "recommendations": ItemRecommendations,
  "relations": [ProductRelations],
  "rrpPrice": Money,
  "seo": Seo,
  "services": [ProductService],
  "shortDescription": "xyz789",
  "size": "abc123",
  "sku": "abc123",
  "variations": [ItemAttribute],
  "videos": [Video],
  "inBasket": false,
  "onWishlist": true
}

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')
id - AttributeId! The technical ID of this attribute
name - String!

The name of this attribute (e.g. 'import:color')

Deprecated, use field id of id instead.

No longer supported
Possible Types
ItemAttribute Types

BaseAttribute

ColorAttribute

ValueWithUnitAttribute

Example
{
  "displayName": "xyz789",
  "displayValue": "abc123",
  "id": AttributeId,
  "name": "xyz789"
}

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": "xyz789",
  "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

Description

Result type for item recommendations

Fields
Field Name Description
items - [Item]! List of recommended items
totalCount - Int! Total count of recommended items
Example
{"items": [Item], "totalCount": 987}

ItemStockOrderSubmitProblem

Description

Problem that the requested quantity per order for an item is not available

Fields
Field Name Description
maxQuantity - Int! The maximum quantity
message - String!

The message key for error display

  • ishop.backend.problem.insufficient-stock: Requested quantity for an Item is not available
positionId - String! The ID of the position where this problem occurred
requestedQuantity - Int! Quantity that exceeds the maximum quantity
stockLevel - StockLevel stocklevel of the item
Example
{
  "maxQuantity": 987,
  "message": "xyz789",
  "positionId": "xyz789",
  "requestedQuantity": 987,
  "stockLevel": "HIGH"
}

ItemVariation

Description

A single product attribute variation of an article.

Fields
Field Name Description
name - String! Generated name of the variation, var1, var2, ... in the order the variations appear.
value - String! Value of the variation as the order carries it (e.g. 'Colour: Red').
Example
{
  "name": "abc123",
  "value": "abc123"
}

ItemViewEvent

Description

Item view event

Fields
Input Field Description
categoryId - ID

The ID of the category in whose context the product view was made

Such a category can be from whose product list the product was clicked or which was used as a criterion in a search.

itemId - ID! The item ID
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
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
names - [String!]!

Name(s) of the parameter(s) as defined in the back office

raster - Raster Raster of this page including all teasers
seo - Seo! SEO information of this page
Example
{
  "link": Link,
  "name": "abc123",
  "parameters": [ContentAttribute],
  "raster": Raster,
  "seo": Seo
}

LastSearchTerm

Description

A single representation of an executed search

Fields
Field Name Description
hits - Int! The number of hits for this search
searchDate - DateTime Time when the search was executed
searchTerm - String! The search term
Example
{
  "hits": 987,
  "searchDate": "2007-12-03T10:15:30Z",
  "searchTerm": "xyz789"
}

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

Description

A single representation of a viewed item

Fields
Field Name Description
item - Item! The viewed item
viewDate - DateTime Time when the item was viewed
Example
{
  "item": Item,
  "viewDate": "2007-12-03T10:15:30Z"
}

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]}

LinkAttribute

Description

Backend type 'Link'

Fields
Field Name Description
link - Link! 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)
name - String! The name of this attribute
Example
{
  "link": Link,
  "name": "xyz789"
}

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)

Fields
Input Field Description
id - ID! The link ID (see linkId of Link)
type - LinkType! The link type (see linkType of Link)
Example
{"id": 4, "type": "ARTICLE"}

LinkListAttribute

Description

Backend type 'NamedLinkList' which is a list of links

Fields
Field Name Description
links - [Link]! List of links 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)
name - String! The name of this attribute
Example
{
  "links": [Link],
  "name": "xyz789"
}

LinkParameter

Description

A parameter tuple

These parameters can be link that can be specified in backoffice

Fields
Field Name Description
key - String! The name of this parameter
value - String The value of this parameter
Example
{
  "key": "abc123",
  "value": "abc123"
}

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

ASSET

BRAND

CATEGORY

CONTENT_TREE_NODE

EXTERNAL

ITEM

LANDING_PAGE

LAYER

PAGE

PRODUCT

SEARCH_TERM

SEARCH_TERM_GROUP

SEO_TERM

UNDEFINED

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

Description

A image with a link

Fields
Field Name Description
image - Image! The image
link - Link! The resource to which the image is linked
linkColor - String The link color
Example
{
  "image": Image,
  "link": Link,
  "linkColor": "abc123"
}

LoadReturnRequestProblem

Description

Base interface for all problems that can occur when loading return requests.

Fields
Field Name Description
message - String! Human-readable description of the problem.
Possible Types
LoadReturnRequestProblem Types

OrderNotFoundLoadReturnRequestProblem

Example
{"message": "xyz789"}

LoadReturnRequestProblems

Fields
Field Name Description
problems - [LoadReturnRequestProblem!]! One or more problems that prevented the return requests from being loaded.
Example
{"problems": [LoadReturnRequestProblem]}

LoadReturnRequestResult

Description

Result of the shop_loadReturnRequest query. Either a successful payload or a list of domain problems.

Example
LoadReturnRequestProblems

LoadReturnRequestSuccess

Fields
Field Name Description
returnRequests - [OrderReturnRequest!]! List of open return requests for the requested order.
Example
{"returnRequests": [OrderReturnRequest]}

Long

Description

A 64-bit signed integer

Example
{}

MainNavigation

Description

The main navigation root object

Fields
Field Name Description
mainNavigationElements - [MainNavigationElement]! A list of navigation elements which should be shown in the main navigation
Example
{"mainNavigationElements": [MainNavigationElement]}

MainNavigationElement

Fields
Field Name Description
children - [MainNavigationElement]!

the direct children of the mainNavigationElement

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)

id - ID! The ID of the navigation element
image - Image An image for this navigation element. Backoffice category parameter "flyoutImage"
link - Link! the defined link of this navigation element
name - String! the name of the navigation element
Example
{
  "children": [MainNavigationElement],
  "id": "4",
  "image": Image,
  "link": Link,
  "name": "xyz789"
}

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
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
names - [String!]!

Name(s) of the parameter(s) as defined in the back office

raster - Raster Raster of this page including all teasers
seo - Seo! SEO information of this page
Example
{
  "id": 4,
  "parameters": [ContentAttribute],
  "raster": Raster,
  "seo": Seo
}

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
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
names - [String!]!

Name(s) of the parameter(s) as defined in the back office

raster - Raster Raster of this page including all teasers
seo - Seo! SEO information of this page
Example
{
  "link": Link,
  "parameters": [ContentAttribute],
  "raster": Raster,
  "seo": Seo
}

MaxQuantityPerOrderExceededOrderSubmitProblem

Description

Problem that the maximum quantity per order for an item has been exceeded

Fields
Field Name Description
maxQuantity - Int! The maximum quantity
message - String!

The message key for error display

  • ishop.backend.problem.max-quantity-per-order-exceeded: Maximum quantity per order for an item has been exceeded
positionId - String! The ID of the position where this problem occurred
requestedQuantity - Int! Quantity that exceeds the maximum quantity
Example
{
  "maxQuantity": 123,
  "message": "abc123",
  "positionId": "xyz789",
  "requestedQuantity": 123
}

MaxQuantityPerOrderExceededValidationProblem

Description

Problem that the maximum quantity per order for an item has been exceeded

Fields
Field Name Description
maxQuantity - Int! The maximum quantity
message - String!

The message key for error display

  • ishop.backend.problem.max-quantity-per-order-exceeded: Maximum quantity per order for an item has been exceeded
requestedQuantity - Int! Quantity that exceeds the maximum quantity
Example
{
  "maxQuantity": 123,
  "message": "abc123",
  "requestedQuantity": 987
}

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 true, same item entries will be merged into a single entry and the quantity of the current (guest) cart entry wins.

If false, then keep the item entries as is.

Example:

If there is an item A with quantity 2 in the previous cart and quantity 3 in the current cart.

If set to true, a single entry with quantity 3 (current wins) exists after the merge.

If set to false, two entries exist with quantity 2 and quantity 3 respectively after the merge.

Note: This is only relevant for the "COMBINE" merge strategy. Default = false

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": "xyz789"
}

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": "xyz789"}

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

Example
MergeCartProblems

MergeCartSuccess

Description

Type for successfully merging two shopping carts

Fields
Field Name Description
addedEntries - [MergedEntry!]! Entries newly added from the guest basket during this merge.
cart - Cart! The merged cart.
Example
{
  "addedEntries": [MergedEntry],
  "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

COMBINE

KEEP_CURRENT

KEEP_PREVIOUS

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 true, same item entries will be merged into a single entry and the quantity of the current (guest) wishlist entry wins.

If false, then keep the item entries as is.

Example:

If there is an item A with quantity 2 in the previous wishlist and quantity 3 in the current wishlist.

If set to true, a single entry with quantity 3 (current wins) exists after the merge.

If set to false, two entries exist with quantity 2 and quantity 3 respectively after the merge.

Note: This is only relevant for the "COMBINE" merge strategy. Default = true

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": false,
  "mergeStrategy": "COMBINE",
  "previousWishlistId": "xyz789"
}

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": "abc123"}

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

Example
MergeWishlistProblems

MergeWishlistSuccess

Description

Type for successfully merging two wishlists

Fields
Field Name Description
wishlist - Wishlist! The merged wishlist.
Example
{"wishlist": Wishlist}

MergedEntry

Description

An entry that was added to the basket during a merge.

Fields
Field Name Description
itemId - String! The item ID of the added entry.
quantity - Int! The quantity of the added entry.
Example
{"itemId": "xyz789", "quantity": 123}

MetaTag

Description

Single meta tag with of name and content

Fields
Field Name Description
content - String! Value of this tag (e.g. noindex)
name - String! Name of this tag (e.g. robots)
Example
{
  "content": "xyz789",
  "name": "abc123"
}

MinQuantityPerOrderSubceededOrderSubmitProblem

Description

Problem that the minimum quantity per order for an item has been subceeded

Fields
Field Name Description
message - String!

The message key for error display

  • ishop.backend.problem.min-quantity-per-order-subceeded: Minimum quantity per order for an item has been subceeded
minQuantity - Int! The minimum quantity
positionId - String! The ID of the position where this problem occurred
requestedQuantity - Int! Quantity that subceeds the minimum quantity
Example
{
  "message": "xyz789",
  "minQuantity": 123,
  "positionId": "xyz789",
  "requestedQuantity": 987
}

MinQuantityPerOrderSubceededValidationProblem

Description

Problem that the minimm quantity per order for an item has been subceeded

Fields
Field Name Description
message - String!

The message key for error display

  • ishop.backend.problem.min-quantity-per-order-sebceeded: Minimum quantity per order for an item has been subceeded
minQuantity - Int! The minimum quantity
requestedQuantity - Int! Quantity that subceeds the minimum quantity
Example
{
  "message": "xyz789",
  "minQuantity": 123,
  "requestedQuantity": 123
}

MonetaryAmount

Description

Represents a Monetary Amount

Fields
Field Name Description
currency - String The Currency
value - BigDecimal The Value
Example
{
  "currency": "abc123",
  "value": BigDecimal
}

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": "abc123",
  "currencySymbol": "xyz789",
  "intAmount": 987,
  "precision": 987,
  "stringValue": "abc123"
}

MultiImageTextTeaser

Description

A Multi Image Text Teaser

This teaser type is activated by default.

Fields
Field Name Description
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
tabs - [MultiImageTextTeaserTab]! An ordered list of MultiImageTextTeaserTabs
Example
{
  "meta": TeaserMeta,
  "name": "abc123",
  "tabs": [MultiImageTextTeaserTab]
}

MultiImageTextTeaserTab

Description

Single tab of a MultiImageTextTeaser

Fields
Field Name Description
buttonColor - String The color of the button
buttonText - String The text in the button
headline - String The headline of this tab
image - Image! Image for this tab
imageForMobile - Image Mobile image for this tab
link - Link! The target of the button on this tab
text - String The text of this tab
textColor - String The color of the text
trackingInfo - String Additional Tracking information
Example
{
  "buttonColor": "abc123",
  "buttonText": "xyz789",
  "headline": "xyz789",
  "image": Image,
  "imageForMobile": Image,
  "link": Link,
  "text": "xyz789",
  "textColor": "xyz789",
  "trackingInfo": "xyz789"
}

NavigationElement

Example
CategoryNavigationElement

NoResponseFromPspOrderSubmitProblem

Description

Problem when PSP does not respond within the maximum number of retries

Fields
Field Name Description
message - String! The message key for error display
Example
{"message": "xyz789"}

NotAvailableItemOrderSubmitProblem

Description

Problem that an item of the order is no longer available

Fields
Field Name Description
message - String!

The message key for error display

  • ishop.backend.problem.item-not-available: Item is no longer available
positionId - String! The ID of the position where this problem occurred
Example
{
  "message": "xyz789",
  "positionId": "abc123"
}

NotAvailableItemValidationProblem

Description

Problem that the item added to the cart is no longer available

Fields
Field Name Description
message - String!

The message key for error display

  • ishop.backend.problem.item-not-available: Item is no longer available
Example
{"message": "abc123"}

NumberAttribute

Description

Backend type 'Number'

Fields
Field Name Description
name - String! The name of this attribute
number - Long! The value of this attribute
Example
{"name": "abc123", "number": {}}

Object

Description

An object scalar

Example
Object

Order

Description

An order

Fields
Field Name Description
billingAddress - OrderBillingAddress The billing address
deliveryDetail - DeliveryDetail Detailed DeliveryInformation of this order
discountInfo - OrderDiscountInfo Information on total discount amount and promotion details
grossSubtotal - Money The subtotal amount inclusive tax
grossTotal - Money! Grand total invoice amount of this order inclusive tax
invoices - [Invoice!]! Attached invoices of this order
netSubtotal - Money The subtotal amount exclusive tax, calculated as: grossSubtotal - totalSalesVat
orderDate - String! Order time
orderLines - [OrderItem]! All order lines
orderNumber - String! The order number
paymentInfos - [OrderPaymentInfo]! Payment details information
priceCalculationGross - Boolean Determines whether price calculation is based on Gross or Net pricing. If true, prices are calculated using Gross values; otherwise, Net values are used.
refunds - [Refund!]! Refunds of this order
shippingAddresses - [OrderShippingAddress]! The shipping address
shippingInfo - OrderShippingInfo Shipping information about the order
status - String! Current state of this order
subTotal - Money! The subtotal amount of this order (see subtotal of CartDetails) Deprecated: use grossSubtotal instead No longer supported
total - Money! Total invoice amount of this order Deprecated: use grossTotal instead No longer supported
totalSalesTax - Money Total tax of order without shipping costs Deprecated: use totalSalesVat instead No longer supported
totalSalesVat - Money Total tax of order without shipping costs
totalShippingTax - Money Total tax for shipping costs of the order moved to OrderShippingInfo No longer supported
type - String! type of this order
Example
{
  "billingAddress": OrderBillingAddress,
  "deliveryDetail": DeliveryDetail,
  "discountInfo": OrderDiscountInfo,
  "grossSubtotal": Money,
  "grossTotal": Money,
  "invoices": [Invoice],
  "netSubtotal": Money,
  "orderDate": "abc123",
  "orderLines": [OrderItem],
  "orderNumber": "abc123",
  "paymentInfos": [OrderPaymentInfo],
  "priceCalculationGross": true,
  "refunds": [Refund],
  "shippingAddresses": [OrderShippingAddress],
  "shippingInfo": OrderShippingInfo,
  "status": "abc123",
  "subTotal": Money,
  "total": Money,
  "totalSalesTax": Money,
  "totalSalesVat": Money,
  "totalShippingTax": Money,
  "type": "xyz789"
}

OrderAddressValidationProblem

Description

Problems if the Address Input has invalid fields

Fields
Field Name Description
fieldName - String! The field name that failed validation
message - String! The failure reason
Example
{
  "fieldName": "abc123",
  "message": "xyz789"
}

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": "abc123",
  "city": "abc123",
  "company": "xyz789",
  "country": "abc123",
  "email": "abc123",
  "firstname": "abc123",
  "lastname": "xyz789",
  "number": "xyz789",
  "phone": "xyz789",
  "postcode": "abc123",
  "salutation": "abc123",
  "street": "xyz789",
  "title": "abc123"
}

OrderCancelInput

Description

Input to cancel an existing order

Fields
Input Field Description
orderId - ID! The orderId from the previous request checkout_submitOrder
orderToken - String! Sets the orderToken
Example
{"orderId": 4, "orderToken": "abc123"}

OrderCancelProblem

Fields
Field Name Description
message - String!
Possible Types
OrderCancelProblem Types

OrderCannotBeCancelledProblem

Example
{"message": "xyz789"}

OrderCancelProblems

Fields
Field Name Description
problems - [OrderCancelProblem] List of problems encountered
Example
{"problems": [OrderCancelProblem]}

OrderCancelResult

Description

Result type when cancelling an order

Example
OrderCancelProblems

OrderCancelSuccess

Description

Type for successfully cancelling an order

Fields
Field Name Description
orderId - String! The orderId
Example
{"orderId": "xyz789"}

OrderCannotBeCancelledProblem

Description

A problem when cancelling an order

Fields
Field Name Description
message - String! The message
Example
{"message": "xyz789"}

OrderConfirmationInput

Description

Set data for OrderConfirmation

Fields
Input Field Description
adyenPaypalExpressInput - AdyenPaypalExpressInput Set the Paypal Express data
orderToken - String Sets the orderToken
Example
{
  "adyenPaypalExpressInput": AdyenPaypalExpressInput,
  "orderToken": "xyz789"
}

OrderConfirmationInputV2

Description

Set data for OrderConfirmation V2

Fields
Input Field Description
orderToken - String! Sets the orderToken (required)
Example
{"orderToken": "abc123"}

OrderDateRange

Description

A filter to select orders by a time period

Fields
Input Field Description
from - Date End date (inclusive)
to - Date Start date (inclusive)
Example
{
  "from": "2007-12-03",
  "to": "2007-12-03"
}

OrderDiscountInfo

Description

Information on total discount amount and promotion details

Fields
Field Name Description
discountsVatIncl - Boolean Indicates whether totalDiscount includes VAT.
promotions - [OrderPromotion]! Promotion related details like used code, name, description and type of promotion
totalAmount - Money! The total discount amount
Example
{
  "discountsVatIncl": false,
  "promotions": [OrderPromotion],
  "totalAmount": Money
}

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": ["abc123"],
  "skus": ["abc123"],
  "status": "abc123"
}

OrderItem

Description

A detailed order line

Fields
Field Name Description
basicPrice - BasicPrice Basic price according PAngV Deprecated: use grossBasicPrice instead No longer supported
cancellationStatusInfos - [CancellationStatusInfo!]! Detailed cancellation status information
deliveryDetail - DeliveryDetail Detailed DeliveryInformation of this item
discountInfo - Money! Amount of discount applied for this position Deprecated: use totalDiscount instead No longer supported
discountsVatIncl - Boolean Indicates whether totalDiscount includes VAT.
grossBasicPrice - BasicPrice Basic price according PAngV inclusive tax
grossPrice - Money! The unit price of the ordered item inclusive tax without any discounts
images - [OrderItemImage]! A list of images of the ordered item (can be empty, e.g. if the item is no longer sold)
item - Item
itemId - String! The ID of the ordered item
name - String! The Name of the ordered item
netBasicPrice - BasicPrice Basic price according PAngV exclusive tax
netPrice - Money! The unit price of the ordered item exclusive tax without any discounts
positionNumber - String! The position number of the ordered item
quantity - Int! The quantity of this position
reviewable - Boolean! Indicates whether an order item can be reviewed as verified purchaser
shippingInfos - [OrderItemShippingInfo!]! Detailed shipping information
sku - String! The SkU of the ordered item
status - String The status of the ordered item
taxRate - Float Tax rate of order line Deprecated: use vatRate instead No longer supported
totalDiscount - Money!

Amount of total discount applied for this position.

  • discountsVatIncl = true: Discount includes VAT.
  • discountsVatIncl = false: Discount excludes VAT.
totalExclTax - Money The total price of this position exclusive tax Deprecated: use totalPositionNetPrice instead No longer supported
totalPositionGrossPrice - Money The total gross price of this position
totalPositionNetPrice - Money The total net price of this position
totalPositionVat - Money Total vat of order line
totalPrice - Money! The total price of this position Deprecated: use totalPositionGrossPrice instead No longer supported
totalTax - Money Total tax of order line Deprecated: use totalPositionVat instead No longer supported
unitPrice - Money! The unit price of the ordered item Deprecated: use grossPrice instead No longer supported
variation - String The variation details of the ordered item
vatRate - Float Vat rate of order line
Example
{
  "basicPrice": BasicPrice,
  "cancellationStatusInfos": [CancellationStatusInfo],
  "deliveryDetail": DeliveryDetail,
  "discountInfo": Money,
  "discountsVatIncl": true,
  "grossBasicPrice": BasicPrice,
  "grossPrice": Money,
  "images": [OrderItemImage],
  "item": Item,
  "itemId": "xyz789",
  "name": "abc123",
  "netBasicPrice": BasicPrice,
  "netPrice": Money,
  "positionNumber": "xyz789",
  "quantity": 123,
  "reviewable": false,
  "shippingInfos": [OrderItemShippingInfo],
  "sku": "abc123",
  "status": "xyz789",
  "taxRate": 123.45,
  "totalDiscount": Money,
  "totalExclTax": Money,
  "totalPositionGrossPrice": Money,
  "totalPositionNetPrice": Money,
  "totalPositionVat": Money,
  "totalPrice": Money,
  "totalTax": Money,
  "unitPrice": Money,
  "variation": "abc123",
  "vatRate": 987.65
}

OrderItemImage

Description

An image of an ordered item

Fields
Field Name Description
url - String URL of the image
Example
{"url": "xyz789"}

OrderItemShippingInfo

Description

Detailed shipping information of an OrderItem

Fields
Field Name Description
deliveryDate - String The datetime when the item was shipped.
deliveryNumber - String The deliveryNumber of the shipment
pickUpDate - String The datetime when the item can be picked.
quantityShipped - Int! The quantity of the item that has been shipped.
trackingCode - String The tracking code provided by the shipping carrier.
trackingUrl - String The URL for tracking the shipment online
Example
{
  "deliveryDate": "abc123",
  "deliveryNumber": "abc123",
  "pickUpDate": "xyz789",
  "quantityShipped": 987,
  "trackingCode": "abc123",
  "trackingUrl": "abc123"
}

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": "xyz789"
}

OrderListResult

Description

A list of orders from a single customer

Fields
Field Name Description
orderList - [Order]! List of orders, empty if the customer has not placed any orders yet
total - Int! Total number of customer's orders
Example
{"orderList": [Order], "total": 123}

OrderNotFoundLoadReturnRequestProblem

Description

Returned when no order matching the given ID can be found.

Fields
Field Name Description
message - String! Human-readable description of the problem.
Example
{"message": "abc123"}

OrderNotFoundProblem

Description

The order was not found or the provided customer details do not match.

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

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": "xyz789",
  "status": "xyz789",
  "transactionId": "xyz789",
  "type": "abc123"
}

OrderPromotion

Description

Details of a promotion used for an order

Fields
Field Name Description
description - String The description of the applied promotion
promotionCode - String The promotion code that was used
promotionName - String The name of the applied promotion
promotionType - String The type of applied promotion
Example
{
  "description": "xyz789",
  "promotionCode": "abc123",
  "promotionName": "xyz789",
  "promotionType": "xyz789"
}

OrderReturnRequest

Description

A single return request associated with an order.

Fields
Field Name Description
carrierType - String Carrier responsible for transporting the return, if known.
createdDate - String! Creation date of the return request.
externalId - String Optional external identifier, e.g. from the logistics provider.
id - String! Internal identifier of the return request.
items - [ReturnRequestDisplayItem!]! Line items included in this return request.
returnLabel - String Return label, if available.
returnLabelQr - String Return label as QR code, if available.
status - ReturnStatus! Current processing status of the return request.
trackingCode - String Shipment tracking code, if available.
trackingUrl - String Shipment tracking URL, if available.
Example
{
  "carrierType": "abc123",
  "createdDate": "abc123",
  "externalId": "xyz789",
  "id": "xyz789",
  "items": [ReturnRequestDisplayItem],
  "returnLabel": "xyz789",
  "returnLabelQr": "xyz789",
  "status": "ACCEPTED",
  "trackingCode": "xyz789",
  "trackingUrl": "abc123"
}

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": "xyz789",
  "company": "abc123",
  "country": "xyz789",
  "email": "xyz789",
  "firstname": "abc123",
  "lastname": "abc123",
  "number": "xyz789",
  "phone": "abc123",
  "postcode": "xyz789",
  "salutation": "xyz789",
  "street": "xyz789",
  "title": "abc123"
}

OrderShippingInfo

Description

Detailed shipping information of an Order

Fields
Field Name Description
cancelledQuantity - Int! The total quantity of items that have been canceled in the order.
pendingItems - [ShipmentItem!]! A list of items that are not yet shipped.
pendingQuantity - Int! The total quantity of items that are pending shipment, calculated as the total quantity minus the shipped and canceled quantities.
shipmentDetails - [ShipmentDetail!]! A list of shipment details, including tracking information, items shipped, and their quantities.
shippedQuantity - Int! The total quantity of items that have been successfully shipped.
shippingCost - Money The total shipping cost for the order.
totalQuantity - Int! The total quantity of items in the order.
totalShippableQuantity - Int! The total quantity of items in the order that are/will be shipped
totalShippingVat - Money Total tax for shipping costs of the order
Example
{
  "cancelledQuantity": 987,
  "pendingItems": [ShipmentItem],
  "pendingQuantity": 987,
  "shipmentDetails": [ShipmentDetail],
  "shippedQuantity": 123,
  "shippingCost": Money,
  "totalQuantity": 123,
  "totalShippableQuantity": 987,
  "totalShippingVat": Money
}

OrderSortBy

Description

Available sort orders

Values
Enum Value Description

ORDER_DATE

PAYMENT_METHOD

STATUS

TOTAL

Example
"ORDER_DATE"

OrderSortDirection

Description

Sort orders

Values
Enum Value Description

ASC

DESC

Example
"ASC"

OrderSubmitProblem

Example
{"message": "xyz789"}

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

Example
OrderSubmitProblems

OrderSubmitSdkAction

Fields
Field Name Description
action - SdkAction! The sdk response (currently for Paypal Express)
id - ID! The ID of the order
resultCode - String! The resultCode
Example
{
  "action": SdkAction,
  "id": "4",
  "resultCode": "xyz789"
}

OrderSubmitSuccess

Description

Type for successfully submit an order

Fields
Field Name Description
id - ID! The ID of the order
orderToken - String! an encrypted json token which contains a timestamp and the orderId
pspPaymentId - ID! The psp payment id, can be same as id
redirectUrl - String The redirect url of the payment
Example
{
  "id": 4,
  "orderToken": "abc123",
  "pspPaymentId": "4",
  "redirectUrl": "xyz789"
}

OrderSubmitThreeDS

Fields
Field Name Description
data - ThreeDSData The 3ds-secure response
id - ID! The ID of the order
Example
{
  "data": ThreeDSNative,
  "id": "4"
}

OrderWithdrawalProblem

Example
{"message": "abc123"}

Page

Description

Basic type for a shop page that contains most of the fields necessary to display a page

Fields
Field Name Description
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
names - [String!]!

Name(s) of the parameter(s) as defined in the back office

raster - Raster Raster of this page including all teasers
seo - Seo! SEO information of this page
Example
{
  "parameters": [ContentAttribute],
  "raster": Raster,
  "seo": Seo
}

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

Paging shop_findUnitShoppingLists query

Fields
Input Field Description
limit - Int! the max size of entries in the result, 1000 is max. Default = 100
offset - Int! Index of the starting entry
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, "offset": 987}

Payment

Description

Payment related information

Fields
Field Name Description
interfaceId - ID! The ID of the PSP
methodCodes - [String]! The method codes for this payment
Example
{
  "interfaceId": "4",
  "methodCodes": ["abc123"]
}

PaymentDetails

Description

Payment Details which contain giftcard and payment methods

Fields
Field Name Description
giftCard - GiftCard The gift card to be used for payment, if applicable
selectedPaymentMethods - [PaymentMethod] The payment method code used as methodCode
Example
{
  "giftCard": GiftCard,
  "selectedPaymentMethods": [PaymentMethod]
}

PaymentInputData

Description

Set additional Payment Data for Adyen
Deprecated: use checkout_submitOrder with SubmitOrderInput instead

Fields
Input Field Description
applePayInput - AdyenApplePayInput Set the Apple Pay data
creditCardInput - AdyenCreditCardInput Set the credit card data
googlePayInput - AdyenGooglePayInput Set the Google Pay data
sepaCardInput - AdyenSepaCardInput Set the sepa card data
Example
{
  "applePayInput": AdyenApplePayInput,
  "creditCardInput": AdyenCreditCardInput,
  "googlePayInput": AdyenGooglePayInput,
  "sepaCardInput": AdyenSepaCardInput
}

PaymentInterfaceType

Description

The Payment Interface Type

Values
Enum Value Description

ADYEN

COLLANA

INVOICE

IXOPAY

PAYPAL

PREPAYMENT

Example
"ADYEN"

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": "abc123",
  "interfaceId": "abc123",
  "label": "xyz789"
}

PaymentMethodCodeType

Description

The Payment MethodCode Type

Values
Enum Value Description

ADYEN_APPLEPAY

ADYEN_GOOGLEPAY

ADYEN_IDEAL

ADYEN_KLARNA

ADYEN_KLARNA_PAYNOW

ADYEN_PAYPAL

ADYEN_PAYPAL_EXPRESS

ADYEN_SCHEME

COLLANA_ORDERS

INVOICE_ORDERS

IXOPAY_ORDERS

PAYPAL_APPLEPAY

PAYPAL_BANCONTACT

PAYPAL_BLIK

PAYPAL_BOLETOBANCARIO

PAYPAL_CARD

PAYPAL_CREDIT

PAYPAL_EPS

PAYPAL_EXPRESS

PAYPAL_GIROPAY

PAYPAL_IDEAL

PAYPAL_ITAU

PAYPAL_MAXIMA

PAYPAL_MERCADOPAGO

PAYPAL_MULTIBANCO

PAYPAL_MYBANK

PAYPAL_ORDERS

PAYPAL_OXXO

PAYPAL_P24

PAYPAL_PAYLATER

PAYPAL_PAYU

PAYPAL_SEPA

PAYPAL_SOFORT

PAYPAL_TRUSTLY

PAYPAL_VENMO

PAYPAL_VERKKOPANKKI

PAYPAL_WECHATPAY

PAYPAL_ZIMPLER

PREPAYMENT_ORDERS

Example
"ADYEN_APPLEPAY"

PaymentMethodInput

Description

The payment method information

Fields
Input Field Description
interfaceId - String! The ID of the payment method interface
methodCode - String! The payment method code
Example
{
  "interfaceId": "abc123",
  "methodCode": "abc123"
}

PaymentMethodInputV2

Description

The payment method information

Fields
Input Field Description
interfaceId - PaymentInterfaceType! The ID of the payment method interface
methodCode - PaymentMethodCodeType! The payment method code
Example
{"interfaceId": "ADYEN", "methodCode": "ADYEN_APPLEPAY"}

PaymentMethodV2

Description

A payment method

Fields
Field Name Description
code - PaymentMethodCodeType! The payment method code used as methodCode in PaymentMethodInputV2
interfaceId - PaymentInterfaceType! The ID of the payment method interface used as interfaceId in PaymentMethodInput
label - String! The name of this payment method to display
Example
{
  "code": "ADYEN_APPLEPAY",
  "interfaceId": "ADYEN",
  "label": "abc123"
}

PaymentTypeInfo

Description

Payment related information

Fields
Field Name Description
interfaceId - PaymentInterfaceType! The ID of the PSP
methodCode - PaymentMethodCodeType! The method code for this payment
Example
{"interfaceId": "ADYEN", "methodCode": "ADYEN_APPLEPAY"}

PendingCheckoutOrder

Description

Type for pending order

Fields
Field Name Description
maxRetries - Int! The maximum number of retries allowed
orderId - ID! The ID of the order
retryCount - Int! The current retry count (incremented by BE)
retryIn - Int! The retry time in ms
Example
{
  "maxRetries": 123,
  "orderId": "4",
  "retryCount": 123,
  "retryIn": 987
}

PercentBenefit

Description

Benefit of a percentage discount

Fields
Field Name Description
cap - Money Maximum absolute discount
image - Image The image of the benefit maintained in the back office
percentage - Float The discount percentage
title - String The title of the benefit maintained in the back office
Example
{
  "cap": Money,
  "image": Image,
  "percentage": 123.45,
  "title": "abc123"
}

PercentOnCheapestItemBenefit

Description

Benefit of a percentage discount on the cheapest item

Fields
Field Name Description
image - Image The image of the benefit maintained in the back office
singleItemPercentage - Float The discount percentage applied on the cheapest item
title - String The title of the benefit maintained in the back office
Example
{
  "image": Image,
  "singleItemPercentage": 987.65,
  "title": "xyz789"
}

PercentOnMostExpensiveItemBenefit

Description

Benefit of a percentage discount on the most expensive item

Fields
Field Name Description
image - Image The image of the benefit maintained in the back office
singleItemPercentage - Float The discount percentage applied on the most expensive item
title - String The title of the benefit maintained in the back office
Example
{
  "image": Image,
  "singleItemPercentage": 123.45,
  "title": "abc123"
}

Phone

Description

phone of a customer

Fields
Field Name Description
number - String phone number
type - PhoneType phone type
Example
{"number": "xyz789", "type": "FAX"}

PhoneInput

Description

phone of a customer

Fields
Input Field Description
number - String! phone number
type - PhoneType phone type. Default = HOME
Example
{"number": "abc123", "type": "FAX"}

PhoneType

Description

Available phone types

Values
Enum Value Description

FAX

HOME

MOBILE

OTHER

PAGER

WORK

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
}

Price

Description

Price information for a specific minimum quantity

Fields
Field Name Description
basicPrice - BasicPrice The basic price according PAngV
Deprecated, use grossBasicPrice instead. No longer supported
grossBasicPrice - BasicPrice The gross basic price according PAngV
grossPrice - Money! The gross price
minQuantity - Float! The minimum quantity (starting with zero)
netBasicPrice - BasicPrice The net basic price according PAngV
netPrice - Money! The net price
validFrom - DateTime Date since this price is valid
validTo - DateTime Date until which this price is valid
vat - Money The VAT
vatRate - VatRate VAT information
Example
{
  "basicPrice": BasicPrice,
  "grossBasicPrice": BasicPrice,
  "grossPrice": Money,
  "minQuantity": 123.45,
  "netBasicPrice": BasicPrice,
  "netPrice": Money,
  "validFrom": "2007-12-03T10:15:30Z",
  "validTo": "2007-12-03T10:15:30Z",
  "vat": Money,
  "vatRate": VatRate
}

PriceInformation

Description

Price information depending on provider and quantity

Fields
Field Name Description
oldGrossPrice - Money

The old gross price (always for quantity 1)

Not necessarily a price from the provider with the best price.

oldNetPrice - Money

The old net price (always for quantity 1)

Not necessarily a price from the provider with the best price.

oldPrice - Money

The old price (always for quantity 1)

Not necessarily a price from the provider with the best price.

Deprecated, use oldGrossPrice instead.

No longer supported
providerPrice - ProviderPrice! The price of the provider with the best price for the minimum quantity
providerPrices - [ProviderPrice]! Prices of all providers
savingPercentage - Int The savingPercentage in relation to old price if old price > sales price
Example
{
  "oldGrossPrice": Money,
  "oldNetPrice": Money,
  "oldPrice": Money,
  "providerPrice": ProviderPrice,
  "providerPrices": [ProviderPrice],
  "savingPercentage": 123
}

PrivacyConsentInput

Description

The user's consent for tracking

Fields
Input Field Description
marketing - Boolean!

Allows tracking for marketing purposes

Default: false. Default = false

other - Boolean!

Allows tracking for other purposes

Default: false. Default = false

tracking - Boolean!

Allows tracking for tracking purposes

Default: false. Default = false

Example
{"marketing": false, "other": false, "tracking": true}

Product

Description

A shop product

Fields
Field Name Description
additionalImages - [Image]! Additional Images of this product
Arguments
roles - [ImageRole!]!

Only Images of this ImageRoles are returned

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 Will be removed in a future release. Replaced by breadcrumbs
Arguments
categoryId - String

Product category, since a product can belong to several categories

If no category ID is set, the best matching category is selected as the product category.
order - SortOrder!

The categories are sorted from top-level category to product category, this sorting can be reversed here

Default: ascending (sorted as defined in the backoffice)
breadcrumbs - Breadcrumbs! describes the categories from main navigation to the current selected category
Arguments
categoryId - String

Product category, since a product can belong to several categories

If no category ID is set, the best matching category is selected as the product category.
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
id - ID! The ID of this product
image - Image Image of this product for display on product lists
link - Link! Link to this product
longDescription - String Product long description
Arguments
format - TextFormat!

Format of the description (plain text or HTML formatted text)

Default: `PLAIN`
materials - [String!]! The material composition of this product
name - String! The name of this product
new - Boolean! if product is new, this could depend on first export date e.g.
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
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: [Paging](#RecommendationPaging) with `limit` 100 and `offset` 0
strategy - ProductRecommendationStrategy!

Recommendation strategy to use

Default: `PRODUCT`
reviews - Reviews! List of all reviews for this product.
Arguments
filter - ReviewFilter!
paging - ReviewPaging!
sortBy - ReviewSortBy!
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
sortBy - String!
videos - [Video]! Videos of this product for display on the product detail page
Example
{
  "additionalImages": [Image],
  "assets": [Document],
  "bestVariation": Item,
  "brand": Brand,
  "breadcrumb": [Category],
  "breadcrumbs": Breadcrumbs,
  "categories": [Category],
  "category": Category,
  "documents": [Document],
  "features": [ProductFeature],
  "globalContent": Raster,
  "id": "4",
  "image": Image,
  "link": Link,
  "longDescription": "abc123",
  "materials": ["abc123"],
  "name": "xyz789",
  "new": true,
  "page": MaintainedProductPage,
  "recommendations": ProductRecommendations,
  "reviews": Reviews,
  "sellingPoints": ["abc123"],
  "seo": Seo,
  "shortDescription": "xyz789",
  "variations": [Item],
  "videos": [Video]
}

ProductBox

Description

A product with a list of its filtered items

Fields
Field Name Description
item - Item! The preferred item of the product
items - [Item]!

Product variations to display

This is either all valid items of the product or a list of the filtered items of the product.

product - Product! The product to display
Example
{
  "item": Item,
  "items": [Item],
  "product": Product
}

ProductCinemaTeaser

Description

A Product cinema or recommendations teaser

This teaser type is activated by default.

Fields
Field Name Description
entries - [ProductBox]! A list of products with a list of filtered items
Arguments
paging - Paging!

Paging to list products

headline - String The headline of this teaser
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
totalCount - Int! Number of all products in this teaser
Example
{
  "entries": [ProductBox],
  "headline": "abc123",
  "meta": TeaserMeta,
  "name": "xyz789",
  "totalCount": 123
}

ProductFeature

Description

Base type for a feature of an product

Fields
Field Name Description
displayName - String!

The display name of this feature

If not defined, this is an empty string.

id - AttributeId! The technical ID of this feature
name - String!

The name of this feature

Deprecated, use field id of id instead.

No longer supported
value - String! The value of this feature
Possible Types
ProductFeature Types

BaseFeature

ValueWithUnitFeature

Example
{
  "displayName": "abc123",
  "id": AttributeId,
  "name": "abc123",
  "value": "abc123"
}

ProductList

Description

Types for different product lists like Cart and Wishlist

Fields
Field Name Description
id - ID! The ID of this product list
name - String! The name of this product list
Possible Types
ProductList Types

Cart

UnitShoppingList

Wishlist

Example
{
  "id": "4",
  "name": "abc123"
}

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": "xyz789",
  "searchResultEntries": [SearchResultEntry]
}

ProductRecommendationStrategy

Description

Available strategies for product recommendations

Values
Enum Value Description

AI_IMAGE

No longer supported

BASKET

ORDER

PRODUCT

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": 987}

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": "abc123",
  "relations": [ProductRelation],
  "totalCount": 123
}

ProductSearchResult

Description

The search result with a list of the products and items found

Fields
Field Name Description
bottomTeaserInsertion - TeaserAttribute Teaser to be displayed below the product list
categoryTree - CategoryNavigation a category navigation which can be used to create a left navigation if the customer wants a category entry page with a left navigation.
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
leftNavigation - CategoryNavigation Navigation structure for the left sidebar showing direct children of the current category or sibling categories if the current category has no children. This field is used to display the hierarchical navigation structure in the left sidebar of search results pages.
minPrice - String! The minimum price for all items of a search hit
selectedCategory - SearchResultCategory Category tree for further filtering by category Will be removed in a future release. Not needed anymore
Arguments
hidden - CategoryHiddenStatus!

Parameter to exclude categories in content tree that are hidden in main, left or after search navigation

Default: categories that are hidden in after search navigation will not be returned
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.

topTeaserInsertion - TeaserAttribute Teaser to be displayed above the product list
totalCount - Int! Total number of search hits
Example
{
  "bottomTeaserInsertion": TeaserAttribute,
  "categoryTree": CategoryNavigation,
  "content": ContentSearchResult,
  "entries": [SearchResultEntry],
  "filters": [Filter],
  "leftNavigation": CategoryNavigation,
  "minPrice": "abc123",
  "selectedCategory": SearchResultCategory,
  "seo": Seo,
  "sorts": [SearchSort],
  "teaserInsertions": [TeaserAttribute],
  "topTeaserInsertion": TeaserAttribute,
  "totalCount": 123
}

ProductService

Description

Description of an additional product service

Fields
Field Name Description
html - String!

HTML of this service (e.g. '

installment payment
')

id - String! ID of this service (e.g. 'installmentpayment')
value - String! Value of this service (e.g. 'installment payment')
Example
{
  "html": "xyz789",
  "id": "xyz789",
  "value": "xyz789"
}

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
limit - Int!

Limits the number of products that were suggested because the same search term was indexed for all of those products

For example, if there are two products with the same name 'Toilet Plunger', this list will contain those two products.
                                            But you may want to avoid duplicate product names in the list, then this list can be limited to one entry, which is the default.
                                            
                                            Default: 1
                                            
Example
{
  "match": "abc123",
  "products": [Product]
}

ProductViewEvent

Description

Product view event

Fields
Input Field Description
categoryId - ID

The ID of the category in whose context the product view was made

Such a category can be from whose product list the product was clicked or which was used as a criterion in a search.

itemId - ID! The item ID
Example
{
  "categoryId": "4",
  "itemId": "4"
}

PromoItem

Description

Types of available promotion item 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:

Fields
Field Name Description
benefits - [Benefit] A list of benefits of this promotion
description - String The description of this promotion
id - ID! The ID of this promotion
name - String The name of this promotion
Example
{
  "benefits": [Benefit],
  "description": "xyz789",
  "id": "4",
  "name": "xyz789"
}

PromotionDetails

Fields
Field Name Description
additionalFees - [AdditionalFee!]! The cart additional fees
articleCount - Int! The total number of items in this cart
attainableInfos - [AttainableInfo]! Attainable information about promotions and vouchers
deliveryInfo - DetailedDeliveryInfo Detailed information about delivery
discountInfo - CartDiscountInfo Detailed information about the cart discount
discountsVatIncluded - Boolean! Returns true if discounts are based on gross prices
freeShippingInfo - FreeShippingInfo Detailed information about free shipping promotion
grossSubtotal - Money! The gross subtotal amount of this cart (sum of totalDiscount of all CartPositions)
grossTotal - Money! The gross 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
informativeBenefits - [InformativeBenefitInfo]! Detailed information about informative benefits
netSubtotal - Money! The net subtotal amount of this cart
netTotal - Money! The net total amount of this cart including shipping costs and additional fees
positionCount - Int! The number of positions in this cart
positions - [CartPosition]! 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 CartPositions)
Deprecated: use grossSubtotal instead No longer supported
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
Deprecated: use grossTotal instead No longer supported
totalSavings - Money The total savings of the cart: totalSavings = promotions saving + (strike out price - current price) of each item in the cart
vatInfo - VatInfo The total VAT of this cart with a list of (possible different) vatRates
vatTotal - Money The total VAT of this cart Deprecated: use vatInfo instead
voucherCodeStatus - VoucherCodeStatus Status information about the used voucher code
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
{
  "additionalFees": [AdditionalFee],
  "articleCount": 987,
  "attainableInfos": [AttainableInfo],
  "deliveryInfo": DetailedDeliveryInfo,
  "discountInfo": CartDiscountInfo,
  "discountsVatIncluded": true,
  "freeShippingInfo": FreeShippingInfo,
  "grossSubtotal": Money,
  "grossTotal": Money,
  "informativeBenefits": [InformativeBenefitInfo],
  "netSubtotal": Money,
  "netTotal": Money,
  "positionCount": 987,
  "positions": [CartPosition],
  "promoItems": [FreeAddonsInfo],
  "promotionsSaving": Money,
  "subtotal": Money,
  "total": Money,
  "totalSavings": Money,
  "vatInfo": VatInfo,
  "vatTotal": Money,
  "voucherCodeStatus": "ATTAINABLE",
  "voucherSavings": Money,
  "vouchers": ["xyz789"]
}

PromotionResultOrderSubmitProblem

Description

Problem during calculation of cart (e.g. cart is empty or voucher is not redeemable)

Fields
Field Name Description
message - String!

The message key for error display

  • ishop.backend.problem.missing-billing-address: Missing BillingAddress
  • ishop.backend.problem.missing-payment-method: Missing PaymentMethod
  • ishop.backend.problem.missing-shipping-method: Missing ShippingMethod
  • ishop.backend.problem.cart-empty: Cart is empty
  • ishop.backend.problem.voucher-not-redeemable: Voucher is valid but can't be redeemed at this moment
  • ishop.backend.problem.missing-customer-id: Neither guestId nor customerId is set
  • ishop.backend.problem.multiple-customer-id: Either guestId or customerId is allowed
Example
{"message": "xyz789"}

Provider

Description

Provider information

Fields
Field Name Description
id - ID! Provider ID
Example
{"id": 4}

ProviderPrice

Description

Prices of a specific provider

Fields
Field Name Description
price - Price! Price information for minimum quantity
prices - [Price]! Price information for all quantities
provider - Provider

The provider

Does not have to be set if, for example, there is only one provider.

Example
{
  "price": Price,
  "prices": [Price],
  "provider": Provider
}

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": "abc123",
  "id": 4,
  "max": 123.45,
  "maxSelected": 987.65,
  "min": 987.65,
  "minSelected": 123.45,
  "unit": "xyz789"
}

RangeFilterInput

Description

Filter that operates on range of numerical values

Fields
Input Field Description
from - Float! Lower bound
id - ID! Filter ID (e.g. 'price', 'length', 'weight')
to - Float! Upper bound
Example
{"from": 123.45, "id": 4, "to": 123.45}

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 Will be removed in a future release. Not needed anymore
Example
{
  "count": 987,
  "displayName": "abc123",
  "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
sortBy - RasterElementSort!

Sort order of raster elements

Default: sorted by row (first row 0 / column 0, then row 0 / column 1, ..., row 1 / column 0, ...)
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": 987,
  "totalWidth": 123
}

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
names - [String!]!

Name(s) of the parameter(s) as defined in the backend

properties - RasterElementProperties! Properties for this element
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],
  "properties": RasterElementProperties,
  "row": 123,
  "teaser": TeaserAttribute,
  "tracking": "abc123",
  "width": 987
}

RasterElementBackground

Description

Background color of raster element

Values
Enum Value Description

GREY

PRIMARY_COLOR

SECONDARY_COLOR

STANDARD

Example
"GREY"

RasterElementLoadingImages

Description

Strategy of loading images in raster elements

Values
Enum Value Description

EAGER

LAZY

Example
"EAGER"

RasterElementProperties

Description

Additional properties of this raster element

Fields
Field Name Description
background - RasterElementBackground Background color
loadingImages - RasterElementLoadingImages Loading strategy of images
width - RasterElementWidth Width that content should use
Example
{"background": "GREY", "loadingImages": "EAGER", "width": "CONTENT_AREA"}

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

COLUMN

ROW

Example
"COLUMN"

RasterElementWidth

Description

Width that raster element content should use

Values
Enum Value Description

CONTENT_AREA

FULL_VIEWPORT

Example
"CONTENT_AREA"

Rating

Description

Available ratings

Values
Enum Value Description

FIVE

FOUR

ONE

THREE

TWO

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": "abc123",
  "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": "abc123",
  "rating": "FIVE",
  "selected": true
}

RatingHistogram

Description

Histogram of all ratings of current brand (all languages)

Fields
Field Name Description
maxRatingCountPerStar - Int!
ratingCountFiveStars - Int!
ratingCountFourStars - Int!
ratingCountOneStar - Int!
ratingCountThreeStars - Int!
ratingCountTwoStars - Int!
totalRatingCount - Int!
Example
{
  "maxRatingCountPerStar": 123,
  "ratingCountFiveStars": 987,
  "ratingCountFourStars": 123,
  "ratingCountOneStar": 123,
  "ratingCountThreeStars": 987,
  "ratingCountTwoStars": 987,
  "totalRatingCount": 987
}

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": 987, "maxLimit": 123, "offset": 987}

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": "xyz789"}

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}

Refund

Description

Refund details

Fields
Field Name Description
amount - Money Refund amount
paymentDate - String! Payment date when the refund initiated
paymentMethod - String Payment method of the refund
refundItems - [RefundItem!]! Details of the Items refunded
Example
{
  "amount": Money,
  "paymentDate": "xyz789",
  "paymentMethod": "xyz789",
  "refundItems": [RefundItem]
}

RefundItem

Description

A detailed refund item

Fields
Field Name Description
positionNumber - Int! Position of the item in the order
quantity - Int! Quantity of the items refunded
sku - String The Sku of the item
Example
{
  "positionNumber": 987,
  "quantity": 987,
  "sku": "abc123"
}

RelatedProduct

Description

Product or item that is related to another item

Types
Union Types

Item

Product

Example
Item

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": "abc123",
  "values": [BaseValue]
}

RelationsPaging

Description

The paging information for product relations

Fields
Input Field Description
limit - Int!

The number of entries per page

Default: 12. Default = 12

offset - Int!

Index of the starting entry

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, "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": "xyz789"}

RenameShoppingList

Description

Operation to rename a unit shopping List

Fields
Input Field Description
name - String! The new name of the shopping List
Example
{"name": "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"}

ReturnRequestDisplayItem

Description

A single order position included in a return request.

Fields
Field Name Description
name - String Display name of the article, if available.
note - String Optional free-text note left by the customer for this position.
positionNumber - Int! Position number identifying the line item within the original order.
quantity - Int! Number of units being returned for this position.
returnReason - String Customer-selected reason for returning this position, if provided.
sku - String! Stock-keeping unit of the returned article.
variations - [ItemVariation!]! Product attribute variations for this article, one entry per line of the order item's variation text.
Example
{
  "name": "xyz789",
  "note": "abc123",
  "positionNumber": 123,
  "quantity": 987,
  "returnReason": "abc123",
  "sku": "xyz789",
  "variations": [ItemVariation]
}

ReturnRequestFailedProblem

Description

The return request could not be saved to the OMS.

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

ReturnStatus

Values
Enum Value Description

ACCEPTED

CANCELLED

COMPLETED

DELETED

NEW

REJECTED

UNDEFINED

Example
"ACCEPTED"

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
itemId - String The itemId for which the review was given
mcs - String The mcs for which the review was given
message - String! The text of this review
notHelpfulCount - Int! 'Review is not helpful' counter
rating - Int! The rating of this review
ratingDate - String The submitted date of the rating
title - String The title of this review
variation - String The variation for which the review is given
verifiedPurchase - String The verified purchase date of the review
Example
{
  "author": "abc123",
  "helpfulCount": 987,
  "id": "4",
  "itemId": "abc123",
  "mcs": "xyz789",
  "message": "xyz789",
  "notHelpfulCount": 123,
  "rating": 123,
  "ratingDate": "abc123",
  "title": "xyz789",
  "variation": "xyz789",
  "verifiedPurchase": "xyz789"
}

ReviewFilter

Description

Filtering of ratings

Fields
Input Field Description
showAllLanguages - Boolean!
showFiveStars - Boolean!
showFourStars - Boolean!
showOneStar - Boolean!
showThreeStars - Boolean!
showTwoStars - Boolean!
Example
{
  "showAllLanguages": true,
  "showFiveStars": false,
  "showFourStars": true,
  "showOneStar": false,
  "showThreeStars": true,
  "showTwoStars": false
}

ReviewFilterOptions

Fields
Field Name Description
availableReviewsForFiveStars - Int!
availableReviewsForFourStars - Int!
availableReviewsForOneStar - Int!
availableReviewsForThreeStars - Int!
availableReviewsForTwoStars - Int!
otherLanguagesAvailable - Boolean!
Example
{
  "availableReviewsForFiveStars": 987,
  "availableReviewsForFourStars": 123,
  "availableReviewsForOneStar": 123,
  "availableReviewsForThreeStars": 987,
  "availableReviewsForTwoStars": 123,
  "otherLanguagesAvailable": false
}

ReviewPaging

Description

The paging information for reviews

Fields
Input Field Description
limit - Int!

The number of entries per page

Default: 5. Default = 5

offset - Int!

Index of the starting entry

Example: To show the entries with index 15 to 24, set offset to 15 and limit to 10.

Default: 0. Default = 0

Example
{"limit": 987, "offset": 123}

ReviewSortBy

Values
Enum Value Description

MOST_RECENT

RELEVANCE

TOP_REVIEWS

Example
"MOST_RECENT"

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 for current MCS brand and language
filterOptions - ReviewFilterOptions Information for displaying filtering by rating
ratingHistogram - RatingHistogram! Histogram of all ratings of current brand (all languages)
reviews - [Review]! List of all reviews
reviewsOfCurrentUser - [Review]! List of all reviews of current user
usedReviewSorting - ReviewSortBy! Sortig used to sort the reviews. Sorting by RELEVANCE (Default), TOP_REVIEWS or MOST_RECENT
worstRating - Int! Worst rating of a product (0 if there are no reviews)
Example
{
  "average": 987.65,
  "bestRating": 123,
  "count": 123,
  "filterOptions": ReviewFilterOptions,
  "ratingHistogram": RatingHistogram,
  "reviews": [Review],
  "reviewsOfCurrentUser": [Review],
  "usedReviewSorting": "MOST_RECENT",
  "worstRating": 123
}

RolePermissions

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

Salutation

Description

A salutation

Fields
Field Name Description
code - String! The code of this salutation
label - String! The display name of this salutation
Example
{
  "code": "abc123",
  "label": "abc123"
}

SdkAction

Fields
Field Name Description
paymentData - String! The paymentData
paymentMethodType - String! The paymentMethodType
sdkData - Object! A Map of data
type - String! The type
url - String The url
Example
{
  "paymentData": "xyz789",
  "paymentMethodType": "abc123",
  "sdkData": Object,
  "type": "xyz789",
  "url": "xyz789"
}

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"}

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
categoryTreeType - CategoryTreeType This instructs the search which category tree should be created.
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": true,
  "category": 4,
  "categoryTreeType": "ALL_RELEVANT",
  "enumFilters": [EnumFilterInput],
  "rangeFilters": [RangeFilterInput],
  "searchTerm": "abc123"
}

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": "xyz789"
}

SearchResult

Description

Types of different search result 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": 123
}

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": true,
  "bestItem": SearchItem,
  "heroArticle": true,
  "items": [Item],
  "product": Product,
  "searchItems": [SearchItem]
}

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": false
}

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]
}

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
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
names - [String!]!

Name(s) of the parameter(s) as defined in the back office

raster - Raster Raster of this page including all teasers
seo - Seo! SEO information of this page
Example
{
  "link": Link,
  "parameters": [ContentAttribute],
  "raster": Raster,
  "seo": Seo
}

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": ["xyz789"],
  "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": "abc123",
  "hreflang": [Hreflang],
  "metaTags": [MetaTag],
  "seoBoxText": "xyz789",
  "title": "xyz789"
}

ServiceContentTeaser

Description

The 'Service content' teaser

This teaser type is activated by default.

Fields
Field Name Description
anchor - String Anchor of this teaser
headline - String The headline of this teaser
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
tabs - [ServiceContentTeaserTab]! A ordered list of ServiceContentTeaserTabs
Example
{
  "anchor": "abc123",
  "headline": "abc123",
  "meta": TeaserMeta,
  "name": "abc123",
  "tabs": [ServiceContentTeaserTab]
}

ServiceContentTeaserTab

Description

Single tab of a ServiceContentTeaser

Fields
Field Name Description
anchor - String Anchor of this teaser tab
content - String Content of this teaser tab
open - Boolean! true if the tab content is initially displayed
service - String! Service headline
trackingInfo - String Additional Tracking information
Example
{
  "anchor": "xyz789",
  "content": "abc123",
  "open": true,
  "service": "xyz789",
  "trackingInfo": "xyz789"
}

SetActive

Description

Operation to set the active flag

Fields
Input Field Description
value - Boolean! true indicates the active status. Default = false
Example
{"value": false}

SetAdyenApplePay

Description

Set ApplePay Input for Adyen

Fields
Input Field Description
value - AdyenApplePayInput! Set the ApplePay data
Example
{"value": AdyenApplePayInput}

SetAdyenCreditCard

Description

Set Credit Card Input for Adyen

Fields
Input Field Description
value - AdyenCreditCardInput! Set the credit card data
Example
{"value": AdyenCreditCardInput}

SetAdyenGooglePay

Description

Set GooglePay Input for Adyen

Fields
Input Field Description
value - AdyenGooglePayInput! Set the GooglePay data
Example
{"value": AdyenGooglePayInput}

SetAdyenSepaCard

Description

Set Sepa Card Input for Adyen

Fields
Input Field Description
value - AdyenSepaCardInput! Set the sepa card data
Example
{"value": AdyenSepaCardInput}

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"}

SetCallbacks

Description

Post-payment landing URLs supplied by the frontend. host must be a bare hostname (no scheme, no path). When omitted, providers fall back to MCS-keyed server-side properties.

Fields
Input Field Description
approvedRelativePath - String!
cancelledRelativePath - String!
errorRelativePath - String!
host - String!
pendingRelativePath - String!
Example
{
  "approvedRelativePath": "abc123",
  "cancelledRelativePath": "xyz789",
  "errorRelativePath": "xyz789",
  "host": "xyz789",
  "pendingRelativePath": "abc123"
}

SetComment

Description

Operation to set a Users comment

Fields
Input Field Description
value - String! The Users comment - limited to max 255 chars
Example
{"value": "xyz789"}

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": true}

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 null to reset the guest ID.

Example
{"value": "abc123"}

SetItemId

Description

Operation to set the item ID

Fields
Input Field Description
value - String! The item ID
Example
{"value": "abc123"}

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": "xyz789"}

SetNewCustomValue

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

SetPaymentMethod

Description

Operation to set the payment method Deprecated: will be removed in the future, use

Fields
Input Field Description
value - PaymentMethodInput! The payment method
Example
{"value": PaymentMethodInput}

SetPaymentMethodV2

Description

Operation to set the payment method

Fields
Input Field Description
value - PaymentMethodInputV2! The payment method
Example
{"value": PaymentMethodInputV2}

SetPhoneNumbers

Description

Operation to set the phoneNumbers List

Fields
Input Field Description
value - [PhoneInput!]! The phone number list to set
Example
{"value": [PhoneInput]}

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": 123}

SetReference

Description

Set the reference

Fields
Input Field Description
value - String! The reference to set - limited to max 255 chars
Example
{"value": "abc123"}

SetReviewHelpful

Description

Operation to set whether this review is helpful

Fields
Input Field Description
value - Boolean! true if the rating is helpful
Example
{"value": true}

SetSalutation

Description

Operation to set a customer's salutation

Fields
Input Field Description
value - String! The salutation to set
Example
{"value": "xyz789"}

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": "abc123",
  "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": "xyz789"}

ShipmentDetail

Fields
Field Name Description
deliveryDate - String The datetime when the item was shipped.
deliveryNumber - String The deliveryNumber of the shipment
items - [ShipmentItem!]! The List of the item that has been shipped.
quantity - Int! The quantity of the item that has been shipped.
shipmentType - ShipmentType The Type of the shipment.
trackingCode - String The tracking number if available
trackingUrl - String The URL for tracking the shipment online
Example
{
  "deliveryDate": "xyz789",
  "deliveryNumber": "abc123",
  "items": [ShipmentItem],
  "quantity": 123,
  "shipmentType": "RETURN",
  "trackingCode": "abc123",
  "trackingUrl": "xyz789"
}

ShipmentItem

Fields
Field Name Description
itemId - String The id of the item
name - String The name of the item
quantity - Int! The Quantity of the item
sku - String The SKU of the item
Example
{
  "itemId": "xyz789",
  "name": "abc123",
  "quantity": 987,
  "sku": "xyz789"
}

ShipmentType

Values
Enum Value Description

RETURN

SHIPPING

Example
"RETURN"

ShippingAddress

Description

A shipping address of the customer

Fields
Field Name Description
addition - String The address addition
additions - [String] The address additions
Deprecated, use field addition of type String instead. No longer supported
attributes - JSON

Additional attributes as JSON
Example:

{
"attribute1": "value1",
"attribute2": {
"test": 157
},
"attribute3": 5.90
}
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.
This is required for packstation/store.
It can be null for normal address where street has the house number
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
{
  "addition": "xyz789",
  "additions": ["xyz789"],
  "attributes": {},
  "city": "xyz789",
  "company": "abc123",
  "country": Country,
  "email": "xyz789",
  "firstname": "abc123",
  "id": 4,
  "isShop": false,
  "isStation": true,
  "lastname": "xyz789",
  "notes": "xyz789",
  "number": "xyz789",
  "phone": "xyz789",
  "postcode": "abc123",
  "salutation": Salutation,
  "street": "abc123",
  "title": "abc123"
}

ShippingAddressCreateInput

Fields
Input Field Description
addition - String The address addition
city - String! The city specified of the address
country - String! The country code according to ISO 3166-1 alpha-3
email - String The email address of the contact
entrance - String Designation of the entrance
firstname - String The first name of the contact
floor - String The floor
lastname - String The last name of the contact
number - String! The street number of the address
phone - String Phone number of the contact
salutation - B2BUserSalutation The Salutation of the contact
street - String! The street name of the address
title - String The title of the contact
unitId - ID! The ID of the unit to which the address belongs
zipCode - String! The zip code of the address
Example
{
  "addition": "xyz789",
  "city": "xyz789",
  "country": "abc123",
  "email": "abc123",
  "entrance": "xyz789",
  "firstname": "abc123",
  "floor": "abc123",
  "lastname": "abc123",
  "number": "abc123",
  "phone": "xyz789",
  "salutation": "DIVERSE",
  "street": "xyz789",
  "title": "abc123",
  "unitId": 4,
  "zipCode": "abc123"
}

ShippingAddressPagingInput

Description

Limit and offset to list shipping addresses page by page

Fields
Input Field Description
page - Int! Index of current page (beginning with 1). Default = 1
pageSize - Int! Number of Addresses per page
If this value is empty or 0, all addresses are returned. Default = 0
Example
{"page": 123, "pageSize": 123}

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": true,
  "name": "xyz789",
  "shipperId": "abc123"
}

ShippingMethodInput

Description

The shipping method information

Fields
Input Field Description
deliveryInstructions - String The Delivery Instructions
shipperId - String! The ID of the shipper of the order
Example
{
  "deliveryInstructions": "xyz789",
  "shipperId": "abc123"
}

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.

  • ishop.backend.problem.no-shipping-method: No shipping methods available
shipperId - String Provided shipper ID (see shipperId of ShippingMethod)
Example
{
  "message": "xyz789",
  "shipperId": "abc123"
}

ShopGlobalParameters

Description

Collection of non-core global parameters

Fields
Field Name Description
benefitHeader - String Return the HTML for the benefit header
campaignHeader - String Return the HTML for the campaign header
displayPriceSelector - Boolean!

Determines whether the price selector (net/gross toggle) should be shown.

  • Returns true if the global parameter Toggle for net and gross prices attribute is set to "display" or not defined.
  • Returns false if it is set to "hide".
gtmContainerId - String Return the id for Google Tagmanager Container
productsPerPage - Int! Return the number of products per page
productsPerSearchPage - Int! Return the number of products per search page
vatIncluded - Boolean! Returns true if prices are configured as gross prices
Example
{
  "benefitHeader": "xyz789",
  "campaignHeader": "abc123",
  "displayPriceSelector": true,
  "gtmContainerId": "abc123",
  "productsPerPage": 987,
  "productsPerSearchPage": 987,
  "vatIncluded": false
}

SliderTeaser

Description

A Slider Teaser

This teaser type is activated by default.

Fields
Field Name Description
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
tabs - [SliderTeaserTab]! An ordered list of SliderTeaserTabs
Example
{
  "meta": TeaserMeta,
  "name": "abc123",
  "tabs": [SliderTeaserTab]
}

SliderTeaserTab

Description

Single tab of a SliderTeaser

Fields
Field Name Description
buttonColor - String The color of the button
buttonText - String The text in the button
headline - String The headline of this tab
image - Image! Image for this tab
imageForMobile - Image Mobile image for this tab
link - Link! The target of the button on this tab
position - String The position of the overlay
text - String The text of this tab
textColor - String The color of the text
trackingInfo - String Additional Tracking information
Example
{
  "buttonColor": "xyz789",
  "buttonText": "abc123",
  "headline": "xyz789",
  "image": Image,
  "imageForMobile": Image,
  "link": Link,
  "position": "abc123",
  "text": "abc123",
  "textColor": "xyz789",
  "trackingInfo": "xyz789"
}

SortOrder

Description

Sorting order mode

Values
Enum Value Description

ASC

DESC

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": 123,
  "skus": ["xyz789"],
  "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)

Fields
Field Name Description
item - Item! The related item
specialPrice - Money! The special price for the item
Example
{
  "item": Item,
  "specialPrice": Money
}

StartSessionEvent

Description

Start session event

Fields
Input Field Description
ip - String! The (anonymized) IP address
referrer - String The URL the user came from
url - String! The relative URL of the first page viewed by the user
Example
{
  "ip": "abc123",
  "referrer": "xyz789",
  "url": "xyz789"
}

Stock

Description

Stock information

Fields
Field Name Description
level - StockLevel! The stock level
stock - Long! Concrete stock
Example
{"level": "HIGH", "stock": {}}

StockLevel

Description

Types of stock level

Values
Enum Value Description

HIGH

LOW

MEDIUM

NO

UNKNOWN

Example
"HIGH"

Store

Description

A Store facility (a physical store which normally has an address and opening hours)

Fields
Field Name Description
displayName - String! The displayName of the store
id - ID! The ID of the store
Example
{
  "displayName": "xyz789",
  "id": "4"
}

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": ["abc123"]
}

SubUnitAddresses

Fields
Field Name Description
billingAddress - B2BSubUnitBillingAddress The billing address of this company
permissions - AddressPermissions! Permissions of the current user for this company
shippingAddresses - [B2BShippingAddress!]! The shipping addresses of this company
Example
{
  "billingAddress": B2BSubUnitBillingAddress,
  "permissions": AddressPermissions,
  "shippingAddresses": [B2BShippingAddress]
}

SubmitGuestWithdrawalInput

Description

Input – guest

Fields
Input Field Description
email - String! Customer's email address.
firstname - String! Customer's first name – must match the order's billing address.
lastname - String! Customer's last name – must match the order's billing address.
orderNumber - String! Order number of the order to withdraw from.
reason - String Optional reason for the withdrawal.
Example
{
  "email": "xyz789",
  "firstname": "abc123",
  "lastname": "xyz789",
  "orderNumber": "xyz789",
  "reason": "xyz789"
}

SubmitOrderInput

Description

Input to update a cart on mutation checkout_submitOrder

Fields
Input Field Description
cartId - ID The ID of the cart for which an order is to be placed if not set the default cart is used
confirmedOrder - Boolean! if confirmedOrder is set to false then checkout_confirmOrder is still needed to complete the order process. Default = true
ops - [SubmitOrderOperation!]! Update operations on cart on mutation checkout_submitOrder. Default = []
Example
{
  "cartId": 4,
  "confirmedOrder": true,
  "ops": [SubmitOrderOperation]
}

SubmitOrderOperation

Description

Operation to update a cart on mutation checkout_submitOrder

Fields
Input Field Description
setApplePay - SetAdyenApplePay Set the Apple Pay data
setCallbacks - SetCallbacks Set the callback urls
setCreditCard - SetAdyenCreditCard Set the credit card data
setGooglePay - SetAdyenGooglePay Set the Google Pay data
setReference - SetReference Sets the reference of the cart as attribute
setSepaCard - SetAdyenSepaCard Set the sepa card data
Example
{
  "setApplePay": SetAdyenApplePay,
  "setCallbacks": SetCallbacks,
  "setCreditCard": SetAdyenCreditCard,
  "setGooglePay": SetAdyenGooglePay,
  "setReference": SetReference,
  "setSepaCard": SetAdyenSepaCard
}

SubmitOrderVoucherProblem

Description

Problem when voucher / gift card redemption fails during order submission (e.g. invalid voucher, no credit left, charging failed)

Fields
Field Name Description
message - String! The message key for error display
type - VoucherProblemType! The technical / business reason why the voucher failed
voucherCode - String! The voucher or gift card code that caused the problem
Example
{
  "message": "abc123",
  "type": "CARD_CHARGING_FAILED",
  "voucherCode": "abc123"
}

SubmitReviewProblem

Description

Problem when submitting a Review

Fields
Field Name Description
message - String!

The message to display

This is usually the message code for translation.

Example
{"message": "abc123"}

SubmitReviewProblems

Description

An aggregation of problems occurred when submitting a Review

Fields
Field Name Description
problems - [SubmitReviewProblem]! List of problems encountered
Example
{"problems": [SubmitReviewProblem]}

SubmitReviewResult

Description

Result type when submitting a Review

Example
SubmitReviewProblems

SubmitReviewSuccess

Description

Type for successfully submitting a Review

Fields
Field Name Description
review - Review! The submitted Review
Example
{"review": Review}

SubmitWithdrawalInput

Description

Input – authenticated

Fields
Input Field Description
orderNumber - String! Order number of the order to withdraw from.
positions - [WithdrawalPositionInput!]

List of positions with the desired withdrawal quantity.

  • If EMPTY: withdrawal against the entire order.
  • If provided: withdrawal against the specified positions only. Default = []
reason - String Optional reason for the withdrawal.
Example
{
  "orderNumber": "xyz789",
  "positions": [WithdrawalPositionInput],
  "reason": "abc123"
}

SubmitWithdrawalProblems

Fields
Field Name Description
problems - [OrderWithdrawalProblem!]!
Example
{"problems": [OrderWithdrawalProblem]}

SubmitWithdrawalResult

Description

Results

Example
SubmitWithdrawalProblems

SubmitWithdrawalSuccess

Fields
Field Name Description
summary - WithdrawalSummary! Summary of actions performed per position.
Example
{"summary": WithdrawalSummary}

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": "abc123",
  "trackingInfo": "abc123"
}

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
ids - [Int!]

Indices of tabs to select (starting with 0)

If no indices are set, all tabs are returned.
                                            
                                            Default: no indices are set
                                            
Example
{
  "name": "xyz789",
  "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": "xyz789",
  "youPay": 987,
  "youTake": 987
}

TeaserAttribute

Description

Base type for all teaser types (e.g. HtmlTeaser)

A teaser can contain one or more TeaserSnippets.

Fields
Field Name Description
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
Example
{
  "meta": TeaserMeta,
  "name": "abc123"
}

TeaserClickEvent

Description

Teaser click event

Fields
Input Field Description
teaserId - ID! Name of the teaser
Example
{"teaserId": 4}

TeaserMeta

Description

Common teaser information

Fields
Field Name Description
teaserName - String Optional name of teaser
templateName - String! The name of the template that is used to control the same teaser in different designs in the frontend
trackingInfo - String Tracking information automatically attached to links in this teaser (unless this teaser is a tab teaser)
Example
{
  "teaserName": "xyz789",
  "templateName": "xyz789",
  "trackingInfo": "xyz789"
}

TeaserSnippet

Description

A teaser snippet, which is a teaser that can be used within another teaser

A placeholder with the following format is used for a teaser snippet used in a teaser: $[teaserSnippetName]

You need to parse the rendered teaser in the frontend for these placeholders. A rendered HTML teaser with a teaser snippet can look like this:

Text of the teaser with this teaser snippet: $[teaserSnippetName]
Fields
Field Name Description
name - String! The name of this teaser snippet
teaser - TeaserAttribute! The teaser, which itself could contain a teaser snippet
Example
{
  "name": "abc123",
  "teaser": TeaserAttribute
}

TextAttribute

Description

Backend types 'Text', 'LongText', 'HtmlText', 'ComboBox' and 'ComboBoxWithDefault' which are simple text types

Fields
Field Name Description
name - String! The name of this attribute
text - String! Text value of this attribute
Example
{
  "name": "abc123",
  "text": "xyz789"
}

TextFormat

Description

Available text formats

Values
Enum Value Description

HTML

PLAIN

Example
"HTML"

TextOverlayTeaser

Description

A 'Text overlay' teaser

This teaser type is activated by default.

Fields
Field Name Description
buttonColor - String The color of the button
buttonText - String The text in the button
headline - String The headline of this teaser
image - Image! Image, where the overlay is placed on
imageForMobile - Image Mobile image, where the overlay is placed on
link - Link! The target of the button on this teaser
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
position - String The position of the overlay
text - String The text of this teaser
textColor - String The color of the text
Example
{
  "buttonColor": "abc123",
  "buttonText": "xyz789",
  "headline": "abc123",
  "image": Image,
  "imageForMobile": Image,
  "link": Link,
  "meta": TeaserMeta,
  "name": "abc123",
  "position": "abc123",
  "text": "xyz789",
  "textColor": "xyz789"
}

ThreeDSData

Types
Union Types

ThreeDSNative

ThreeDSRedirect

Example
ThreeDSNative

ThreeDSNative

Fields
Field Name Description
authorisationToken - String! The authorisationToken
paymentData - String! The paymentData
paymentMethodType - String! The paymentMethodType
subtype - String! The subtype
token - String! The token
type - String! The type
url - String The url
Example
{
  "authorisationToken": "xyz789",
  "paymentData": "xyz789",
  "paymentMethodType": "abc123",
  "subtype": "xyz789",
  "token": "abc123",
  "type": "abc123",
  "url": "xyz789"
}

ThreeDSRedirect

Fields
Field Name Description
data - Object! A Map of data
method - String! The method
paymentMethodType - String! The paymentMethodType
type - String! The type
url - String The url
Example
{
  "data": Object,
  "method": "xyz789",
  "paymentMethodType": "abc123",
  "type": "xyz789",
  "url": "abc123"
}

TopSearchSuggest

Description

Search term suggestion (e.g. 'shoes' for 'sho')

Fields
Field Name Description
searchTerm - String! Suggested search term (e.g. 'shoes')
totalCount - Int! Number of search hits for search term
Example
{"searchTerm": "abc123", "totalCount": 123}

TrackingEventInput

Description

List of tracking events to be triggered

Fields
Input Field Description
categoryLandingPageView - CategoryLandingPageViewEvent

Event to track view of category landing page (category without a product list)

Should be triggered on initial category view.

categoryProductListView - CategoryProductListViewEvent

Event to track view of category page with a product list

Should be triggered on initial category view.

checkout - CheckoutEvent

Event to track each step during checkout to create a checkout funnel

Should be triggered when a user enters a new checkout step (e.g. shipping, payment, summary).

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)

Should be triggered on initial page view.

interest - InterestEvent

Event to track an interest of a user

"Standard" interests for brands and categories are already tracked in the appropriate events (e.g. ProductViewEvent, AddToBasketEvent, CategoryProductListViewEvent). This event is intended for shop-specific interests, which could be, for example, "gender" or "age".

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.

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.

teaserClick - TeaserClickEvent Event to track when a user clicks a teaser
Example
{
  "categoryLandingPageView": CategoryLandingPageViewEvent,
  "categoryProductListView": CategoryProductListViewEvent,
  "checkout": CheckoutEvent,
  "contentView": ContentViewEvent,
  "interest": InterestEvent,
  "itemView": ItemViewEvent,
  "productView": ProductViewEvent,
  "teaserClick": TeaserClickEvent
}

Translation

Description

A single translation

Fields
Field Name Description
key - String! The translation key
value - String! The translation for the current MultiChannelSelector
Example
{
  "key": "abc123",
  "value": "abc123"
}

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": 123, "translations": [Translation]}

UnassignRolesFromUserInput

Fields
Input Field Description
roleInternalIds - [String!]! A list of internal identifier of the roles from which the user should be removed. Available via the attribute id in B2BUserRole.
userInternalId - String! The internal identifier of the user to unassign. Available via the attribute id in B2BUser.
Example
{
  "roleInternalIds": ["abc123"],
  "userInternalId": "xyz789"
}

UnassignUnitsFromUserInput

Fields
Input Field Description
unitInternalIds - [String!]! A list of internal identifier of the units from which the user should be removed. Available via the attribute id in B2BUnit.
userInternalId - String! The internal identifier of the user to unassign. Available via the attribute id in B2BUser.
Example
{
  "unitInternalIds": ["abc123"],
  "userInternalId": "abc123"
}

UnitPermissions

Fields
Field Name Description
assign - Boolean!
create - Boolean!
delete - Boolean!
update - Boolean!
Example
{"assign": false, "create": true, "delete": true, "update": false}

UnitShoppingList

Description

A complete unit shopping list

Fields
Field Name Description
createdAt - DateTime! The creation date and time of this unit shopping list
entries - [UnitShoppingListEntry]! The entries of this unit shopping list
id - ID! The ID of this unit shopping list
lastModifiedBy - String The user who updated this list last time
name - String! The name of this unit shopping list
units - [String!]! The units this shopping list is assigned to
updatedAt - DateTime! The last update date and time of this unit shopping list
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "entries": [UnitShoppingListEntry],
  "id": "4",
  "lastModifiedBy": "abc123",
  "name": "xyz789",
  "units": ["xyz789"],
  "updatedAt": "2007-12-03T10:15:30Z"
}

UnitShoppingListEntry

Description

A unit shopping list position

Fields
Field Name Description
createdAt - DateTime! The creation date and time of this position
id - ID! The ID of this position
item - Item The item of this position
lastModifiedBy - String The user who updated this list last time
quantity - Int! The quantity of this position
updatedAt - DateTime! The last update date and time of this unit shopping list entry
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "item": Item,
  "lastModifiedBy": "abc123",
  "quantity": 123,
  "updatedAt": "2007-12-03T10:15:30Z"
}

UnitShoppingListFilterInput

Description

Filter for shop_findUnitShoppingLists query

Fields
Input Field Description
unitIds - [String!]! List of unit IDs to filter by. Empty list means all authorized units. Default = []
updatedRange - DateRangeInput Date range filter for lastModifiedDate. Null means no date filtering.
Example
{
  "unitIds": ["abc123"],
  "updatedRange": DateRangeInput
}

UnitShoppingListPagingInput

Description

Paging and sorting for shop_findUnitShoppingLists query

Fields
Input Field Description
paging - Paging
sorting - UnitShoppingListSortInput
Example
{
  "paging": Paging,
  "sorting": UnitShoppingListSortInput
}

UnitShoppingListSortInput

Description

Sorting for shop_findUnitShoppingLists query

Fields
Input Field Description
sortColumn - UnitShoppingListSortType THE fields to be sorted CREATED_AT or NAME. Default = CREATED_AT
sortOrder - SortOrder Sorting ASC or DESC. Default = ASC
Example
{"sortColumn": "CREATED_AT", "sortOrder": "ASC"}

UnitShoppingListSortType

Values
Enum Value Description

CREATED_AT

NAME

UPDATED_AT

Example
"CREATED_AT"

UnitShoppingListsFindPayload

Description

the result for shop_findUnitShoppingLists query

Fields
Field Name Description
entries - [UnitShoppingList]! the entries
totalCount - Int! the total count of the entries
Example
{"entries": [UnitShoppingList], "totalCount": 123}

UpdateCartInput

Description

Operations to update a cart

Fields
Input Field Description
cartId - ID

The ID of the cart to update (see ìd of Cart)

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 Deprecated: will be removed in the future
positionOp - PositionOperation Operations on cart positions
resetPaymentMethod - Boolean Clears the payment method for the cart
resetShippingAddress - Boolean Clears the shipping address of the cart
resetShippingMethod - Boolean Clears the shipping method for 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
setComment - SetComment Sets a Users comment on 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 false.

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
setNewCustomValue - SetNewCustomValue
setPaymentMethod - SetPaymentMethod Sets the payment method for the cart
setPaymentMethodV2 - SetPaymentMethodV2 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,
  "resetPaymentMethod": false,
  "resetShippingAddress": true,
  "resetShippingMethod": true,
  "setActive": SetActive,
  "setBillingAddress": SetBillingAddress,
  "setComment": SetComment,
  "setDefault": SetDefault,
  "setGuestId": SetGuestId,
  "setName": SetName,
  "setNewCustomValue": SetNewCustomValue,
  "setPaymentMethod": SetPaymentMethod,
  "setPaymentMethodV2": SetPaymentMethodV2,
  "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.

Example
{"message": "abc123"}

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

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
resetBirthDate - Boolean Deletes the date of birth for a customer
resetCompany - Boolean Deletes a company for a customer
resetSalutation - Boolean Deletes a salutation for a customer
resetTitle - Boolean Deletes a title for a customer
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
setPhoneNumbers - SetPhoneNumbers Sets the phoneNumbers List in the customer
to clear the list you can set an empty array.
setSalutation - SetSalutation Sets a salutation for a customer
setTitle - SetTitle Sets a title for a customer
updateShippingAddress - UpdateShippingAddress Updates a shipping address from the address book
Example
{
  "addPhoneNo": AddPhoneNo,
  "addShippingAddress": AddShippingAddress,
  "deletePhoneNo": DeletePhoneNo,
  "deleteShippingAddress": DeleteShippingAddress,
  "resetBirthDate": false,
  "resetCompany": false,
  "resetSalutation": false,
  "resetTitle": true,
  "setBillingAddress": SetBillingAddress,
  "setBirthDate": SetBirthDate,
  "setCompany": SetCompany,
  "setDefaultShippingAddress": SetDefaultShippingAddress,
  "setFirstname": SetFirstname,
  "setLastname": SetLastname,
  "setPhoneNumbers": SetPhoneNumbers,
  "setSalutation": SetSalutation,
  "setTitle": SetTitle,
  "updateShippingAddress": UpdateShippingAddress
}

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

AccountAddressValidationProblem

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

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
setComment - SetComment The comment of the position to update
setItemId - SetItemId The item ID
setQuantity - SetQuantity The item quantity
Example
{
  "attributeOp": AttributeOperation,
  "positionId": "4",
  "setComment": SetComment,
  "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}

UpdateShippingAddress

Description

Operation to update an existing shipping address

Fields
Input Field Description
addressId - String! The ID of the shipping address to update
value - AddressInput The address
Example
{
  "addressId": "abc123",
  "value": AddressInput
}

UpdateUnitShoppingListInput

Description

Operations to update a unit shopping list

Fields
Input Field Description
id - ID! The ID of the unit shopping list
ops - [UpdateUnitShoppingListOperation!]! Update operations on unit shopping list
Example
{"id": 4, "ops": [UpdateUnitShoppingListOperation]}

UpdateUnitShoppingListOperation

Description

An Operation to update a unit shopping list

Fields
Input Field Description
addPosition - CreatePositionInput Add a new position
removePosition - DeletePosition Remove a position
renameShoppingList - RenameShoppingList Rename a ShoppingList
restorePosition - RestorePosition Restore a position
updatePosition - UpdatePositionInput Update a new position
Example
{
  "addPosition": CreatePositionInput,
  "removePosition": DeletePosition,
  "renameShoppingList": RenameShoppingList,
  "restorePosition": RestorePosition,
  "updatePosition": UpdatePositionInput
}

UpdateUnitShoppingListProblem

Description

A problem when updating a new unit shopping list

Fields
Field Name Description
message - String! The message
Example
{"message": "abc123"}

UpdateUnitShoppingListProblems

Description

An aggregation of problems occurred when updating a unit shopping list

Fields
Field Name Description
problems - [UpdateUnitShoppingListProblem]! List of problems encountered
Example
{"problems": [UpdateUnitShoppingListProblem]}

UpdateUnitShoppingListResult

Description

Result type when updating a unit shopping list

Example
UpdateUnitShoppingListProblems

UpdateUnitShoppingListSuccess

Description

Type for successfully updating a unit shopping list

Fields
Field Name Description
shoppingList - UnitShoppingList! the shopping list updated
Example
{"shoppingList": UnitShoppingList}

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 id of Wishlist)

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
addToWishlist - AddToWishlist Adds a product to wishlist with given set product id and set item id
deleteFromWishlist - DeleteFromWishlist Deletes a product or item from the wishlist
removePosition - DeletePosition Removes a position
Example
{
  "addItem": AddItemToWishlist,
  "addProduct": AddProductToWishlist,
  "addToWishlist": AddToWishlist,
  "deleteFromWishlist": DeleteFromWishlist,
  "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.

Possible Types
UpdateWishlistProblem Types

DeleteFromWishlistProblem

Example
{"message": "xyz789"}

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

Example
UpdateWishlistProblems

UpdateWishlistSuccess

Description

Type for successfully updating a wishlist

Fields
Field Name Description
wishlist - Wishlist! The updated wishlist
Example
{"wishlist": Wishlist}

UrlFilter

Description

URL specification

Fields
Input Field Description
absolute - Boolean!

true if URL should be absolute

Default: false. Default = false

secure - Boolean!

true if https should be used

Default: true. Default = true

Example
{"absolute": true, "secure": true}

UserActivationInput

Fields
Input Field Description
active - Boolean! Status of the user to be set. True for active, false for inactive. Default = false
userId - String! The internal identifier of the user to assign. Available via the attribute id in B2BUser.
Example
{"active": true, "userId": "abc123"}

UsersActivationInput

Fields
Input Field Description
data - [UserActivationInput!]!
Example
{"data": [UserActivationInput]}

ValueWithUnit

Description

A product/item attribute value with unit

Fields
Field Name Description
images - [Image]! List of images to visualize this attribute value
unit - String! Unit of value (e.g. 'cm')
value - String! The value (e.g. '10')
Example
{
  "images": [Image],
  "unit": "abc123",
  "value": "abc123"
}

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
id - AttributeId! The technical ID of this attribute
name - String!

The name of this attribute (e.g. 'import:length')

Deprecated, use field id of id instead.

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": "abc123",
  "displayValue": "xyz789",
  "id": AttributeId,
  "name": "xyz789",
  "sequenceNo": 987,
  "unit": "abc123",
  "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.

id - AttributeId! The technical ID of this feature
images - [Image]! List of images to visualize feature
name - String!

The name of this feature

Deprecated, use field id of id instead.

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",
  "id": AttributeId,
  "images": [Image],
  "name": "xyz789",
  "sequenceNo": 123,
  "unit": "abc123",
  "value": "xyz789",
  "values": [ValueWithUnit]
}

VatInfo

Description

Detailed information about the Carts VAT. There can be different rates.

Fields
Field Name Description
total - Money! The total amount
vatInfosPerRate - [VatInfoPerRate!]! The list of VAT infos
Example
{
  "total": Money,
  "vatInfosPerRate": [VatInfoPerRate]
}

VatInfoPerRate

Fields
Field Name Description
amount - Money! The Amount of the VAT
rate - VatRate! The VAT rate
Example
{"amount": Money, "rate": VatRate}

VatRate

Description

VAT information

Fields
Field Name Description
displayValue - String! Display value of this VAT rate, e.g. '19%'
percentage - Float! VAT rate as a percentage, e.g. '19.0'
value - Float! VAT rate as a decimal value, e.g. '0.19'
Example
{
  "displayValue": "abc123",
  "percentage": 123.45,
  "value": 987.65
}

Video

Description

A video (e.g. for product detail page)

Fields
Field Name Description
fileName - String! The file name of this video
url - String! Absolute URL of this video
Example
{
  "fileName": "abc123",
  "url": "xyz789"
}

VideoTeaser

Description

A 'Video' teaser

This teaser type is activated by default.

Fields
Field Name Description
autoplay - Boolean! true if video starts automatically
controls - Boolean! true if control elements should be displayed
meta - TeaserMeta! Information common to all teasers
name - String! The name of this attribute
previewImage - Image A preview image
uri - String! The URI of this teaser
Example
{
  "autoplay": false,
  "controls": true,
  "meta": TeaserMeta,
  "name": "abc123",
  "previewImage": Image,
  "uri": "abc123"
}

VoucherCodeStatus

Description

The list of possible voucher statuses

Values
Enum Value Description

ATTAINABLE

INVALID

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

Description

A voucher could not be applied to the current cart

Fields
Field Name Description
message - String!

The message to display

This is usually the message code for translation.

  • ishop.backend.problem.voucher-exists: Voucher has already been entered by the user
  • ishop.backend.problem.another-voucher-exists: Another Voucher has already been entered by the user
  • ishop.backend.problem.multiple-vouchers: Only one voucher allowed
voucherCode - String The provided voucher code
Example
{
  "message": "xyz789",
  "voucherCode": "abc123"
}

VoucherProblemType

Description

Reason why voucher redemption failed

Values
Enum Value Description

CARD_CHARGING_FAILED

INVALID

NO_CREDIT

Example
"CARD_CHARGING_FAILED"

Warehouse

Description

A Warehouse facility (for online availability)

Fields
Field Name Description
displayName - String! The displayName of the warehouse
id - ID! The ID of the warehouse
Example
{"displayName": "abc123", "id": 4}

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
totalCount - Int! Total count of valid wishlist entries (excludes invalid items)
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "entries": [WishlistEntry],
  "id": 4,
  "name": "xyz789",
  "totalCount": 123
}

WishlistEntry

Description

A wishlist position returns either only product in case that there is no preference in terms of dimension yet or only item in case that a specific item is on wishlist or combination of product and item (both are set) indicating that there is a preference for dimension, e.g. color, which is derived by given item

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 null if product is set instead.

product - Product

The product of this position

Can be null if item is set instead.

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": "xyz789"}

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

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}

WithdrawalEligibilityProblems

Fields
Field Name Description
problems - [OrderWithdrawalProblem!]!
Example
{"problems": [OrderWithdrawalProblem]}

WithdrawalEligibilityResult

Example
WithdrawalEligibilityProblems

WithdrawalEligibilitySuccess

Fields
Field Name Description
options - WithdrawalOptions! Indicates which types of withdrawal are available for this order.
orderNumber - String!
positions - [WithdrawalEligiblePosition!]! Maximum withdrawable quantities broken down per position.
Example
{
  "options": WithdrawalOptions,
  "orderNumber": "abc123",
  "positions": [WithdrawalEligiblePosition]
}

WithdrawalEligiblePosition

Description

Per-position breakdown of how much can be cancelled and returned, based on the current shipment and return state of the position.

Fields
Field Name Description
maxCancellation - Int! Maximum quantity that can be cancelled.
maxReturn - Int! Maximum quantity that can be returned.
maxWithdrawal - Int! Maximum quantity eligible for withdrawal.
notShipped - Int! Quantity that has not been shipped yet.
orderedWithoutCancellations - Int! Ordered quantity minus already cancelled quantity.
positionNumber - ID!
returned - Int! Total quantity that has already been returned.
shipped - Int! Total quantity that has already been shipped.
Example
{
  "maxCancellation": 987,
  "maxReturn": 987,
  "maxWithdrawal": 123,
  "notShipped": 123,
  "orderedWithoutCancellations": 987,
  "positionNumber": "4",
  "returned": 123,
  "shipped": 123
}

WithdrawalNotAllowedProblem

Description

The order is not eligible for withdrawal.

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

WithdrawalOptions

Fields
Field Name Description
cancellationPossible - Boolean! At least one position can still be cancelled.
returnPossible - Boolean! At least one position can be returned.
Example
{"cancellationPossible": true, "returnPossible": false}

WithdrawalPositionInput

Fields
Input Field Description
positionNumber - ID!
reason - String Optional reason for withdrawing this specific position. Takes precedence over the order-level reason.
requestedQuantity - Int! Desired quantity for the withdrawal. Will be capped to the maximum withdrawable quantity for this position.
Example
{
  "positionNumber": "4",
  "reason": "xyz789",
  "requestedQuantity": 123
}

WithdrawalPositionNotFoundProblem

Description

A requested position does not exist on the order.

Fields
Field Name Description
message - String!
positionNumber - ID!
Example
{"message": "xyz789", "positionNumber": 4}

WithdrawalPositionResult

Fields
Field Name Description
positionNumber - ID!
quantity - Int! Quantity that was cancelled or requested for return.
returnRequestId - ID Only set for return requests: the ID of the return request created in the OMS.
Example
{
  "positionNumber": "4",
  "quantity": 123,
  "returnRequestId": "4"
}

WithdrawalQuantityExceededProblem

Description

The requested quantity exceeds the maximum withdrawable quantity for a position.

Fields
Field Name Description
maxQuantity - Int!
message - String!
positionNumber - ID!
requestedQuantity - Int!
Example
{
  "maxQuantity": 987,
  "message": "xyz789",
  "positionNumber": "4",
  "requestedQuantity": 987
}

WithdrawalSummary

Fields
Field Name Description
cancelledPositions - [WithdrawalPositionResult!]! Positions that were (partially) cancelled because they had not yet been shipped.
customerName - String! Full name of the customer from the billing address.
email - String! Email address of the customer from the billing address.
orderNumber - String!
returnRequestedPositions - [WithdrawalPositionResult!]! Positions for which a return request was created because they had already been shipped.
withdrawalDate - String! UTC timestamp of withdrawal in ISO-8601 instant format (e.g. 2026-04-30T14:23:11.123Z).
Example
{
  "cancelledPositions": [WithdrawalPositionResult],
  "customerName": "xyz789",
  "email": "abc123",
  "orderNumber": "abc123",
  "returnRequestedPositions": [WithdrawalPositionResult],
  "withdrawalDate": "xyz789"
}

WithdrawalValidationProblem

Description

One or more input fields failed validation.

Fields
Field Name Description
field - String The field that failed validation.
message - String!
value - String The rejected value as a string. Only set for simple scalar values.
Example
{
  "field": "xyz789",
  "message": "xyz789",
  "value": "abc123"
}