openapi: 3.1.0
info:
  version: '{{version}}'
  title: Storefront API Documentation
  description: >
    SCAYLE Storefront API is a REST API used to access your product data in any
    customer-facing application.

    Some common scenarios include retrieving campaigns, promotions, categories
    or configuration. You can also use it to save baskets or wishlists for
    individual customers and filter and search products.


    Core concepts of the Storefront API are:

    Variant: Any distinct sellable item, for example: a blue colored shirt in
    size L. Available quantity/stock information is always on variant level.

    Product: A product is a collection of one or more variants with some shared
    attributes, for example: A blue colored shirt (product) available in
    different sizes (variants). A product will be sold out when all its variants
    are sold out.

    Sibling: A product closely related to another product, for example, the same
    shirt by the same brand, but in another color.

    Category: Each product can be assigned to one or more category nodes in the
    category tree.

    Attribute: Attributes are, for example, size, material, color. Attributes
    can be assigned to product level or variant level.

    Filter: Any criteria available to filter a list of products, for example: an
    attribute or a category.

    Basket: The basket holds variants that a customer intends to buy and has
    added to his shopping cart.

    Wishlist: Customers can add variants to a wishlist to remember them or buy
    them later.


    Requests

    Base URL: https://{{tenant-space}}.storefront.api.scayle.cloud


    Authentication

    1. Generate access token in the SCAYLE Panel > Shops > Storefront > API
    Keys.

    2. Provide the generated access token in the X-Access-Token Header


    Note: After the token is generated in the SCAYLE Panel, it can take some
    time for changes to take effect.


    **Rate-Limiting Headers**


    SCAYLE Storefront API enforces a rate-limiting policy to manage the number
    of requests a client can make within a defined time window. Each response
    may include the following headers to provide users with their current
    rate-limit status:

      - `X-RateLimit-Limit`: Indicates the maximum number of allowed API requests for the current period, specific to the tenant's rate limit.
      - `X-RateLimit-Remaining`: Shows the remaining number of API requests allowed within the current period, specific to the tenant's rate limit.
      - `X-RateLimit-Reset`: The date and time when the current rate-limit window will reset.
      - `X-RateLimit-Scope`: Specifies the scope of the rate limit as it applies to the tenant, e.g., `global`.

    If a tenant exceeds its allowed limit, the response status code will be `429
    Too Many Requests`.
tags:
  - name: products
    description: Get products
    x-displayName: products
  - name: variants
    description: Get product variants
    x-displayName: variants
  - name: recommendations
    description: Get product recommendations
    x-displayName: recommendations
  - name: campaigns
    description: Get campaigns available per shop
    x-displayName: campaigns
  - name: categories
    description: Get categories
    x-displayName: categories
  - name: attributes
    description: Get attributes
    x-displayName: attributes
  - name: search-v1
    description: Deprecated Search Endpoints
    x-displayName: search-v1
  - name: search-v2
    description: Search for Categories, Attributes & more
    x-displayName: search-v2
  - name: filters
    description: Get filters
    x-displayName: filters
  - name: baskets
    description: Manage baskets
    x-displayName: baskets
  - name: wishlists
    description: Manage wishlists
    x-displayName: wishlists
  - name: shop-configuration
    description: Manage the shop configuration
    x-displayName: shop-configuration
  - name: navigation-v1
    description: Navigation v1 endpoints for managing navigation trees
    x-displayName: navigation-v1
  - name: navigation-v2
    description: Navigation v2 endpoints with wrapped type structure for navigation items
    x-displayName: navigation-v2
  - name: brands
    description: Get brands
    x-displayName: brands
  - name: redirects
    description: Manage redirects
    x-displayName: redirects
  - name: promotions
    description: Get promotions
    x-displayName: promotions
  - name: pages
    description: Get pages
    x-displayName: pages
  - name: orders
    description: Create orders
    x-displayName: orders
paths:
  /v1/baskets/{basketId}:
    get:
      tags:
        - baskets
      summary: Get a basket
      description: >
        Fetch the content of an existing basket.


        Baskets are created on demand when the first variant is added to it.

        Fetching a non existent basket will not return an error but instead just
        return an empty basket.


        Using the `with` parameter, it is possible to retrieve extra information
        in the response (see parameters below).
      operationId: fetch-basket-by-key
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/OrderCustomData'
        - $ref: '#/components/parameters/CustomerToken'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/basketId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/includeItemsWithoutProductData'
        - $ref: '#/components/parameters/basketPricePromotionKey'
        - $ref: '#/components/parameters/skipAvailabilityCheck'
        - $ref: '#/components/parameters/basketWith'
        - $ref: '#/components/parameters/shopId'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/baskets/{{basketId}}?shopId={{shopId}}'
            \

            --header 'X-Access-Token: {{ACCESSTOKEN}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.basket.get("myshop_customer_1234");

            console.log(response.basket)
  /v1/baskets/{basketId}/items:
    post:
      tags:
        - baskets
      summary: Add a variant
      description: >
        Adds a new variant to a given basket, so the user can purchase it in the
        checkout process.


        Baskets are created on demand when the first variant is added to the
        basket.


        Only one variant can be added to the basket with each request. Use
        multiple requests to add more variants.


        The variant and quantity to be added is specified in the POST request
        body (see below).

        The only strictly required parameters are `variantId` and `quantity`.


        The response will return the updated content of the basket.
      operationId: add-basket-item
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/OrderCustomData'
        - $ref: '#/components/parameters/CustomerToken'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/basketId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/includeItemsWithoutProductData'
        - $ref: '#/components/parameters/basketPricePromotionKey'
        - $ref: '#/components/parameters/skipAvailabilityCheck'
        - $ref: '#/components/parameters/basketWith'
        - $ref: '#/components/parameters/shopId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBasketItemBody'
            examples:
              BasketBasic:
                value:
                  variantId: 338316
                  quantity: 1
              WithPromotionId:
                value:
                  variantId: 338316
                  quantity: 1
                  promotionId: 672b7cf8cc574c81c1a24936
              WithPromotionCode:
                value:
                  variantId: 338316
                  quantity: 14
                  promotionId: 66f13a90ca8bf0b06ecd67e3
                  promotionCode: DISCOUNT3EUR
              WithPricePromotionKey:
                value:
                  variantId: 338316
                  quantity: 1
                  customData:
                    pricePromotionKey: ppk12
              WithCombinedPromotionIdAndPPK:
                value:
                  variantId: 338316
                  quantity: 1
                  promotionId: 672b8324cc574c81c1a24938
                  customData:
                    pricePromotionKey: ppk12
              WithPromotions:
                value:
                  variantId: 790
                  quantity: 1
                  promotions:
                    - id: 66eae24efd917b03a912fec6
                    - id: 692ff9ee203730c9fbc4b12b
      responses:
        '201':
          description: >-
            The variant was added to the Basket with all of the request
            quantity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              examples:
                BasketBasic:
                  description: Add items to the basket
                  value:
                    key: add-to-variant
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 9678
                        customData: {}
                        lowestPriorPrice:
                          withTax: null
                          relativeDifferenceToPrice: null
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0
                            appliedReductions: []
                          unit:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0
                            appliedReductions: []
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9678
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-16T15:38:15+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: null
                        promotionCode: null
                        promotion: null
                        promotions: []
                    packages:
                      - id: 1
                        carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-20'
                          min: '2025-01-17'
                    cost:
                      currencyCode: EUR
                      withTax: 99900
                      withoutTax: 83950
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 15950
                          rate: 0
                      appliedReductions: []
                    basketOutdated: false
                WithPromotionId:
                  description: Add items to the basket with promotionId
                  value:
                    key: add-item-with-promotion-id
                    items:
                      key: 37105a2d2576d072b38f426e7b443a2c
                      packageId: 1
                      quantity: 1
                      status: available
                      displayData: {}
                      availableQuantity: 9678
                      customData: {}
                      lowestPriorPrice:
                        withTax: null
                        relativeDifferenceToPrice: null
                      price:
                        total:
                          currencyCode: EUR
                          withTax: 96200
                          withoutTax: 80840
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 15360
                              rate: 0
                          appliedReductions:
                            - category: promotion
                              type: relative
                              amount:
                                relative: 0.03
                                absoluteWithTax: 3700
                                absoluteTax: 590
                                absoluteWithoutTax: 3110
                        unit:
                          currencyCode: EUR
                          withTax: 96200
                          withoutTax: 80840
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 15360
                              rate: 0
                          appliedReductions:
                            - category: promotion
                              type: relative
                              amount:
                                relative: 0.03
                                absoluteWithTax: 3700
                                absoluteTax: 590
                                absoluteWithoutTax: 3110
                      variant:
                        id: 338316
                        referenceKey: varRKDF0
                        firstLiveAt: '2024-10-14T13:02:49+00:00'
                        createdAt: '2024-10-14T13:02:20+00:00'
                        updatedAt: '2024-10-28T09:53:49+00:00'
                        stock:
                          supplierId: 1
                          warehouseId: 1
                          quantity: 9678
                          isSellableWithoutStock: false
                          expectedAvailabilityAt: null
                        price:
                          currencyCode: EUR
                          withTax: 99900
                          withoutTax: 83950
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 15950
                              rate: 0.19
                          appliedReductions: []
                        customData: {}
                      product:
                        id: 208143
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2024-10-14T13:02:20+00:00'
                        updatedAt: '2025-01-14T08:44:14+00:00'
                        indexedAt: '2025-01-16T15:38:15+00:00'
                        firstLiveAt: '2024-10-14T13:02:49+00:00'
                        masterKey: productMasterKey
                        referenceKey: external-reference
                        images:
                          - hash: images/52d08cac15a71b5c02428c7989f634b9
                        customData: {}
                      itemGroup: null
                      promotionId: 672b7cf8cc574c81c1a24936
                      promotionCode: null
                      promotion:
                        id: 672b7cf8cc574c81c1a24936
                        name: PPK and AD
                        schedule:
                          from: '2024-11-05T23:00:00Z'
                          to: '2026-03-26T23:00:00Z'
                        isActive: true
                        effect:
                          type: automatic_discount
                          additionalData:
                            type: absolute
                            value: 3700
                        conditions:
                          - level: global
                            key: >-
                              panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                            condition: size(payload.items) >= 1
                          - level: global
                            key: >-
                              panels_automatic-discount_minimum_order_amount_50000
                            condition: payload.totals.withTax >= 50000
                          - level: item
                            key: >-
                              panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                            condition: true
                        customData:
                          corePanel:
                            viewType: automatic-discount
                        priority: 1
                        tiers: []
                        isValid: true
                        failedConditions: []
                      promotions:
                        - id: 672b7cf8cc574c81c1a24936
                          name: PPK and AD
                          schedule:
                            from: '2024-11-05T23:00:00Z'
                            to: '2026-03-26T23:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: absolute
                              value: 3700
                          conditions:
                            - level: global
                              key: >-
                                panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                              condition: size(payload.items) >= 1
                            - level: global
                              key: >-
                                panels_automatic-discount_minimum_order_amount_50000
                              condition: payload.totals.withTax >= 50000
                            - level: item
                              key: >-
                                panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                              condition: true
                          customData:
                            corePanel:
                              viewType: automatic-discount
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                    packages:
                      - id: 1
                        carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-20'
                          min: '2025-01-17'
                    cost:
                      currencyCode: EUR
                      withTax: 96200
                      withoutTax: 80840
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 15360
                          rate: 0
                      appliedReductions:
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0.03
                            absoluteWithTax: 3700
                            absoluteTax: 590
                            absoluteWithoutTax: 3110
                    basketOutdated: false
                WithPromotionCode:
                  description: >-
                    Add items to the basket with combined promotionId and
                    promotionCode
                  value:
                    key: add-item-with-promotion-code
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 14
                        status: available
                        displayData: {}
                        availableQuantity: 9676
                        customData:
                          corePanel:
                            viewType: with-code
                        lowestPriorPrice:
                          withTax: null
                          relativeDifferenceToPrice: null
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 1394400
                            withoutTax: 1171758
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 222642
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0
                                  absoluteWithTax: 4200
                                  absoluteTax: 658
                                  absoluteWithoutTax: 3542
                          unit:
                            currencyCode: EUR
                            withTax: 99600
                            withoutTax: 83697
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15903
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0
                                  absoluteWithTax: 300
                                  absoluteTax: 47
                                  absoluteWithoutTax: 253
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9676
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-17T08:38:59+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: 66f13a90ca8bf0b06ecd67e3
                        promotionCode: DISCOUNT3EUR
                        promotion:
                          id: 66f13a90ca8bf0b06ecd67e3
                          code: DISCOUNT3EUR
                          name: DISCOUNT-NQ-3
                          displayName: DISCOUNT-NQ-3
                          schedule:
                            from: '2024-09-22T22:00:00Z'
                            to: '2026-09-24T22:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: absolute
                              value: 300
                          conditions:
                            - level: global
                              key: panels_with-code_minimum_order_amount_8
                              condition: payload.totals.withTax >= 8
                          customData:
                            corePanel:
                              viewType: with-code
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                        promotions:
                          - id: 66f13a90ca8bf0b06ecd67e3
                            code: DISCOUNT3EUR
                            name: DISCOUNT-NQ-3
                            displayName: DISCOUNT-NQ-3
                            schedule:
                              from: '2024-09-22T22:00:00Z'
                              to: '2026-09-24T22:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: absolute
                                value: 300
                            conditions:
                              - level: global
                                key: panels_with-code_minimum_order_amount_8
                                condition: payload.totals.withTax >= 8
                            customData:
                              corePanel:
                                viewType: with-code
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                    packages:
                      - carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-21'
                          min: '2025-01-20'
                        id: 1
                    cost:
                      currencyCode: EUR
                      withTax: 1394400
                      withoutTax: 1171758
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 222642
                          rate: 0
                      appliedReductions:
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0
                            absoluteWithTax: 4200
                            absoluteTax: 658
                            absoluteWithoutTax: 3542
                    basketOutdated: false
                WithPricePromotionKey:
                  description: Add items to the basket with PPK
                  value:
                    key: add-to-variant-with-ppk
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 9676
                        customData:
                          pricePromotionKey: ppk12
                        lowestPriorPrice:
                          withTax: 77795
                          relativeDifferenceToPrice: -0.01
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 77700
                            withoutTax: 65294
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 12406
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                          unit:
                            currencyCode: EUR
                            withTax: 77700
                            withoutTax: 65294
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 12406
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9676
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-17T11:45:00+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: null
                        promotionCode: null
                        promotion: null
                        promotions: []
                    packages:
                      - carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-21'
                          min: '2025-01-18'
                        id: 1
                    cost:
                      currencyCode: EUR
                      withTax: 77700
                      withoutTax: 65294
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 12406
                          rate: 0
                      appliedReductions:
                        - category: sale
                          type: relative
                          amount:
                            relative: 0.12
                            absoluteWithTax: 11100
                    basketOutdated: false
                WithCombinedPromotionIdAndPPK:
                  description: Add items to the basket with combined promotionId and PPK
                  value:
                    key: ppk-and-promotion
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 9676
                        customData:
                          pricePromotionKey: ppk12
                        lowestPriorPrice:
                          withTax: 77795
                          relativeDifferenceToPrice: -0.01
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 64491
                            withoutTax: 54194
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 10297
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0.17
                                  absoluteWithTax: 13209
                                  absoluteTax: 2109
                                  absoluteWithoutTax: 11100
                          unit:
                            currencyCode: EUR
                            withTax: 64491
                            withoutTax: 54194
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 10297
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0.17
                                  absoluteWithTax: 13209
                                  absoluteTax: 2109
                                  absoluteWithoutTax: 11100
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9676
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-17T11:45:00+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: 672b8324cc574c81c1a24938
                        promotionCode: null
                        promotion:
                          id: 672b8324cc574c81c1a24938
                          name: PPK and AD percentage
                          displayName: PPK and AD percentage
                          schedule:
                            from: '2024-11-05T23:00:00Z'
                            to: '2026-11-13T23:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: relative
                              value: 17
                          conditions:
                            - level: global
                              key: >-
                                panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                              condition: size(payload.items) >= 1
                            - level: global
                              key: >-
                                panels_automatic-discount_minimum_order_amount_50000
                              condition: payload.totals.withTax >= 50000
                            - level: item
                              key: >-
                                panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                              condition: true
                          customData:
                            corePanel:
                              viewType: automatic-discount
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                        promotions:
                          - id: 672b8324cc574c81c1a24938
                            name: PPK and AD percentage
                            displayName: PPK and AD percentage
                            schedule:
                              from: '2024-11-05T23:00:00Z'
                              to: '2026-11-13T23:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: relative
                                value: 17
                            conditions:
                              - level: global
                                key: >-
                                  panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                                condition: size(payload.items) >= 1
                              - level: global
                                key: >-
                                  panels_automatic-discount_minimum_order_amount_50000
                                condition: payload.totals.withTax >= 50000
                              - level: item
                                key: >-
                                  panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                                condition: true
                            customData:
                              corePanel:
                                viewType: automatic-discount
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                    packages:
                      - carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-21'
                          min: '2025-01-18'
                        id: 1
                    cost:
                      currencyCode: EUR
                      withTax: 64491
                      withoutTax: 54194
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 10297
                          rate: 0
                      appliedReductions:
                        - category: sale
                          type: relative
                          amount:
                            relative: 0.12
                            absoluteWithTax: 11100
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0.17
                            absoluteWithTax: 13209
                            absoluteTax: 2109
                            absoluteWithoutTax: 11100
                    basketOutdated: false
                WithPromotions:
                  description: Add items to the basket with promotions
                  value:
                    key: basket_10001
                    items:
                      - key: 2dace78f80bc92e6d7493423d729448e
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 7
                        customData: {}
                        lowestPriorPrice:
                          withTax: null
                          relativeDifferenceToPrice: null
                        price:
                          total:
                            currencyCode: GBP
                            withTax: 5652
                            withoutTax: 5652
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 0
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                promotionId: 66eae24efd917b03a912fec6
                                amount:
                                  relative: 0.5
                                  absoluteWithTax: 5950
                              - category: promotion
                                type: relative
                                promotionId: 692ff9ee203730c9fbc4b12b
                                amount:
                                  relative: 0.05
                                  absoluteWithTax: 298
                          unit:
                            currencyCode: GBP
                            withTax: 5652
                            withoutTax: 5652
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 0
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                promotionId: 66eae24efd917b03a912fec6
                                amount:
                                  relative: 0.5
                                  absoluteWithTax: 5950
                              - category: promotion
                                type: relative
                                promotionId: 692ff9ee203730c9fbc4b12b
                                amount:
                                  relative: 0.05
                                  absoluteWithTax: 298
                        variant:
                          id: 790
                          referenceKey: '000000000007550569'
                          firstLiveAt: '2024-10-19T07:55:05+00:00'
                          createdAt: '2024-09-02T14:30:41+00:00'
                          updatedAt: '2025-04-11T08:40:40+00:00'
                          stock:
                            supplierId: 66835
                            warehouseId: 3
                            quantity: 7
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: GBP
                            withTax: 11900
                            withoutTax: 11900
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 0
                                rate: 0
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 267
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-09-02T14:30:41+00:00'
                          updatedAt: '2025-04-11T08:40:38+00:00'
                          indexedAt: '2025-12-16T09:09:37+00:00'
                          firstLiveAt: '2024-10-19T07:55:05+00:00'
                          masterKey: '000000000007550569'
                          referenceKey: '000000000007550569'
                          images:
                            - hash: images/46e4d5c2105a9f1ecd6591a3d37ff637.jpg
                            - hash: images/ded9489774bbddc09fea3e8a6cd97378.jpg
                          customData: {}
                        itemGroup: null
                        promotionId: 66eae24efd917b03a912fec6
                        promotionCode: null
                        promotion:
                          id: 66eae24efd917b03a912fec6
                          name: Include 1 Master Category AND exclude 1 brand
                          displayName: null
                          schedule:
                            from: '2024-09-17T22:00:00Z'
                            to: '2025-12-31T23:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: relative
                              value: 50
                          conditions:
                            - level: item
                              key: >-
                                Include Master Category "Storefront|Beauty|Bath
                                & Body"
                              condition: >-
                                has(item.product.attributes.category) && (124 in
                                item.product.attributes.category)
                            - level: item
                              key: Exclude Brand "Sol de Janeiro"
                              condition: >-
                                has(item.product.attributes.brand) && !(6961 in
                                item.product.attributes.brand)
                          customData:
                            corePanel:
                              viewType: advanced
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                        promotions:
                          - id: 66eae24efd917b03a912fec6
                            name: Include 1 Master Category AND exclude 1 brand
                            displayName: null
                            schedule:
                              from: '2024-09-17T22:00:00Z'
                              to: '2025-12-31T23:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: relative
                                value: 50
                            conditions:
                              - level: item
                                key: >-
                                  Include Master Category
                                  "Storefront|Beauty|Bath & Body"
                                condition: >-
                                  has(item.product.attributes.category) && (124
                                  in item.product.attributes.category)
                              - level: item
                                key: Exclude Brand "Sol de Janeiro"
                                condition: >-
                                  has(item.product.attributes.brand) && !(6961
                                  in item.product.attributes.brand)
                            customData:
                              corePanel:
                                viewType: advanced
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                          - id: 692ff9ee203730c9fbc4b12b
                            name: >-
                              5% off all products - combinables with all
                              promotions
                            displayName: null
                            schedule:
                              from: '2025-12-03T00:00:00Z'
                              to: '2025-12-24T00:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: relative
                                value: 5
                            conditions:
                              - level: global
                                key: >-
                                  panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                                condition: size(payload.items) >= 1
                              - level: global
                                key: >-
                                  panels_automatic-discount_minimum_order_amount_5000
                                condition: payload.totals.withTax >= 5000
                              - level: item
                                key: >-
                                  panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                                condition: 'true'
                            customData:
                              corePanel:
                                viewType: automatic-discount
                              minimumOrderValue: 5000
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                        deliveryForecast: null
                    packages:
                      - carrierKey: NO CARRIER
                        deliveryDate:
                          max: '2025-12-19'
                          min: '2025-12-17'
                        id: 1
                    cost:
                      currencyCode: GBP
                      withTax: 5652
                      withoutTax: 5652
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 0
                          rate: 0
                      appliedReductions:
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0.52
                            absoluteWithTax: 6248
        '206':
          description: The variant was added to the Basket however with a reduced quantity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Basket item for the given variant already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '412':
          description: The variant is out of stock.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '413':
          description: >-
            Attempt to place an item in a basket with quantity value that is
            larger than maximum allowed value per item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location --request POST
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/baskets/{{basketId}}/items?shopId={{shopId}}'
            \
              --header 'X-Access-Token: {{ACCESSTOKEN}}'
              --data '{
               "quantity": 2,
               "variantId": 1
              }'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.basket.addItem(
             "myshop_customer_1234",
             1, // variantId
             2, // quantity
            );

            const item = response.basket.items[0];
            console.log(item);
  /v1/baskets/{basketId}/items/{itemKey}:
    patch:
      tags:
        - baskets
      summary: Update an item
      description: >
        Updates the quantity of a basket item or other properties such as the
        custom data or the promotion id.

        To update the item you will need to use the item key which can be found
        when fetching the Basket.


        You can't update the variant id of a given basket item, for this
        operation you would need to do a delete and then an add operation.


        The response will show the updated content of the basket.
      operationId: update-basket-item
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/OrderCustomData'
        - $ref: '#/components/parameters/CustomerToken'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/basketId'
        - $ref: '#/components/parameters/basketItemKey'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/basketPricePromotionKey'
        - $ref: '#/components/parameters/includeItemsWithoutProductData'
        - $ref: '#/components/parameters/skipAvailabilityCheck'
        - $ref: '#/components/parameters/basketWith'
        - $ref: '#/components/parameters/shopId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBasketItemBody'
            examples:
              BasketBasic:
                value:
                  quantity: 1
              WithPromotionId:
                value:
                  quantity: 1
                  promotionId: 672b7cf8cc574c81c1a24936
              WithPromotionCode:
                value:
                  quantity: 14
                  promotionId: 66f13a90ca8bf0b06ecd67e3
                  promotionCode: DISCOUNT3EUR
              WithPricePromotionKey:
                value:
                  quantity: 1
                  customData:
                    pricePromotionKey: ppk12
              WithCombinedPromotionIdAndPPK:
                value:
                  quantity: 1
                  promotionId: 672b8324cc574c81c1a24938
                  customData:
                    pricePromotionKey: ppk12
              WithPromotions:
                value:
                  quantity: 1
                  promotions:
                    - id: 66eae24efd917b03a912fec6
                    - id: 692ff9ee203730c9fbc4b12b
      responses:
        '200':
          description: The Basket Item was successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              examples:
                BasketBasic:
                  description: Update items in the basket
                  value:
                    key: add-to-variant
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 9678
                        customData: {}
                        lowestPriorPrice:
                          withTax: null
                          relativeDifferenceToPrice: null
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0
                            appliedReductions: []
                          unit:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0
                            appliedReductions: []
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9678
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-16T15:38:15+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: null
                        promotionCode: null
                        promotion: null
                        promotions: []
                    packages:
                      - id: 1
                        carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-20'
                          min: '2025-01-17'
                    cost:
                      currencyCode: EUR
                      withTax: 99900
                      withoutTax: 83950
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 15950
                          rate: 0
                      appliedReductions: []
                    basketOutdated: false
                WithPromotionId:
                  description: Update items in the basket with promotionId
                  value:
                    key: add-item-with-promotion-id
                    items:
                      key: 37105a2d2576d072b38f426e7b443a2c
                      packageId: 1
                      quantity: 1
                      status: available
                      displayData: {}
                      availableQuantity: 9678
                      customData: {}
                      lowestPriorPrice:
                        withTax: null
                        relativeDifferenceToPrice: null
                      price:
                        total:
                          currencyCode: EUR
                          withTax: 96200
                          withoutTax: 80840
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 15360
                              rate: 0
                          appliedReductions:
                            - category: promotion
                              type: relative
                              amount:
                                relative: 0.03
                                absoluteWithTax: 3700
                                absoluteTax: 590
                                absoluteWithoutTax: 3110
                        unit:
                          currencyCode: EUR
                          withTax: 96200
                          withoutTax: 80840
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 15360
                              rate: 0
                          appliedReductions:
                            - category: promotion
                              type: relative
                              amount:
                                relative: 0.03
                                absoluteWithTax: 3700
                                absoluteTax: 590
                                absoluteWithoutTax: 3110
                      variant:
                        id: 338316
                        referenceKey: varRKDF0
                        firstLiveAt: '2024-10-14T13:02:49+00:00'
                        createdAt: '2024-10-14T13:02:20+00:00'
                        updatedAt: '2024-10-28T09:53:49+00:00'
                        stock:
                          supplierId: 1
                          warehouseId: 1
                          quantity: 9678
                          isSellableWithoutStock: false
                          expectedAvailabilityAt: null
                        price:
                          currencyCode: EUR
                          withTax: 99900
                          withoutTax: 83950
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 15950
                              rate: 0.19
                          appliedReductions: []
                        customData: {}
                      product:
                        id: 208143
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2024-10-14T13:02:20+00:00'
                        updatedAt: '2025-01-14T08:44:14+00:00'
                        indexedAt: '2025-01-16T15:38:15+00:00'
                        firstLiveAt: '2024-10-14T13:02:49+00:00'
                        masterKey: productMasterKey
                        referenceKey: external-reference
                        images:
                          - hash: images/52d08cac15a71b5c02428c7989f634b9
                        customData: {}
                      itemGroup: null
                      promotionId: 672b7cf8cc574c81c1a24936
                      promotionCode: null
                      promotion:
                        id: 672b7cf8cc574c81c1a24936
                        name: PPK and AD
                        schedule:
                          from: '2024-11-05T23:00:00Z'
                          to: '2026-03-26T23:00:00Z'
                        isActive: true
                        effect:
                          type: automatic_discount
                          additionalData:
                            type: absolute
                            value: 3700
                        conditions:
                          - level: global
                            key: >-
                              panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                            condition: size(payload.items) >= 1
                          - level: global
                            key: >-
                              panels_automatic-discount_minimum_order_amount_50000
                            condition: payload.totals.withTax >= 50000
                          - level: item
                            key: >-
                              panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                            condition: true
                        customData:
                          corePanel:
                            viewType: automatic-discount
                        priority: 1
                        tiers: []
                        isValid: true
                        failedConditions: []
                      promotions:
                        - id: 672b7cf8cc574c81c1a24936
                          name: PPK and AD
                          schedule:
                            from: '2024-11-05T23:00:00Z'
                            to: '2026-03-26T23:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: absolute
                              value: 3700
                          conditions:
                            - level: global
                              key: >-
                                panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                              condition: size(payload.items) >= 1
                            - level: global
                              key: >-
                                panels_automatic-discount_minimum_order_amount_50000
                              condition: payload.totals.withTax >= 50000
                            - level: item
                              key: >-
                                panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                              condition: true
                          customData:
                            corePanel:
                              viewType: automatic-discount
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                    packages:
                      - id: 1
                        carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-20'
                          min: '2025-01-17'
                    cost:
                      currencyCode: EUR
                      withTax: 96200
                      withoutTax: 80840
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 15360
                          rate: 0
                      appliedReductions:
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0.03
                            absoluteWithTax: 3700
                            absoluteTax: 590
                            absoluteWithoutTax: 3110
                    basketOutdated: false
                WithPromotionCode:
                  description: >-
                    Update items in the basket with combined promotionId and
                    promotionCode
                  value:
                    key: add-item-with-promotion-code
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 14
                        status: available
                        displayData: {}
                        availableQuantity: 9676
                        customData:
                          corePanel:
                            viewType: with-code
                        lowestPriorPrice:
                          withTax: null
                          relativeDifferenceToPrice: null
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 1394400
                            withoutTax: 1171758
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 222642
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0
                                  absoluteWithTax: 4200
                                  absoluteTax: 658
                                  absoluteWithoutTax: 3542
                          unit:
                            currencyCode: EUR
                            withTax: 99600
                            withoutTax: 83697
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15903
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0
                                  absoluteWithTax: 300
                                  absoluteTax: 47
                                  absoluteWithoutTax: 253
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9676
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-17T08:38:59+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: 66f13a90ca8bf0b06ecd67e3
                        promotionCode: DISCOUNT3EUR
                        promotion:
                          id: 66f13a90ca8bf0b06ecd67e3
                          code: DISCOUNT3EUR
                          name: DISCOUNT-NQ-3
                          displayName: DISCOUNT-NQ-3
                          schedule:
                            from: '2024-09-22T22:00:00Z'
                            to: '2026-09-24T22:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: absolute
                              value: 300
                          conditions:
                            - level: global
                              key: panels_with-code_minimum_order_amount_8
                              condition: payload.totals.withTax >= 8
                          customData:
                            corePanel:
                              viewType: with-code
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                        promotions:
                          - id: 66f13a90ca8bf0b06ecd67e3
                            code: DISCOUNT3EUR
                            name: DISCOUNT-NQ-3
                            displayName: DISCOUNT-NQ-3
                            schedule:
                              from: '2024-09-22T22:00:00Z'
                              to: '2026-09-24T22:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: absolute
                                value: 300
                            conditions:
                              - level: global
                                key: panels_with-code_minimum_order_amount_8
                                condition: payload.totals.withTax >= 8
                            customData:
                              corePanel:
                                viewType: with-code
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                    packages:
                      - carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-21'
                          min: '2025-01-20'
                        id: 1
                    cost:
                      currencyCode: EUR
                      withTax: 1394400
                      withoutTax: 1171758
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 222642
                          rate: 0
                      appliedReductions:
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0
                            absoluteWithTax: 4200
                            absoluteTax: 658
                            absoluteWithoutTax: 3542
                    basketOutdated: false
                WithPricePromotionKey:
                  description: Update items in the basket with PPK
                  value:
                    key: add-to-variant-with-ppk
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 9676
                        customData:
                          pricePromotionKey: ppk12
                        lowestPriorPrice:
                          withTax: 77795
                          relativeDifferenceToPrice: -0.01
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 77700
                            withoutTax: 65294
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 12406
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                          unit:
                            currencyCode: EUR
                            withTax: 77700
                            withoutTax: 65294
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 12406
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9676
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-17T11:45:00+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: null
                        promotionCode: null
                        promotion: null
                        promotions: []
                    packages:
                      - carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-21'
                          min: '2025-01-18'
                        id: 1
                    cost:
                      currencyCode: EUR
                      withTax: 77700
                      withoutTax: 65294
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 12406
                          rate: 0
                      appliedReductions:
                        - category: sale
                          type: relative
                          amount:
                            relative: 0.12
                            absoluteWithTax: 11100
                    basketOutdated: false
                WithCombinedPromotionIdAndPPK:
                  description: Update items in the basket with combined promotionId and PPK
                  value:
                    key: ppk-and-promotion
                    items:
                      - key: 37105a2d2576d072b38f426e7b443a2c
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 9676
                        customData:
                          pricePromotionKey: ppk12
                        lowestPriorPrice:
                          withTax: 77795
                          relativeDifferenceToPrice: -0.01
                        price:
                          total:
                            currencyCode: EUR
                            withTax: 64491
                            withoutTax: 54194
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 10297
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0.17
                                  absoluteWithTax: 13209
                                  absoluteTax: 2109
                                  absoluteWithoutTax: 11100
                          unit:
                            currencyCode: EUR
                            withTax: 64491
                            withoutTax: 54194
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 10297
                                rate: 0
                            appliedReductions:
                              - category: sale
                                type: relative
                                amount:
                                  relative: 0.12
                                  absoluteWithTax: 11100
                              - category: promotion
                                type: relative
                                amount:
                                  relative: 0.17
                                  absoluteWithTax: 13209
                                  absoluteTax: 2109
                                  absoluteWithoutTax: 11100
                        variant:
                          id: 338316
                          referenceKey: varRKDF0
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2024-10-28T09:53:49+00:00'
                          stock:
                            supplierId: 1
                            warehouseId: 1
                            quantity: 9676
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: EUR
                            withTax: 99900
                            withoutTax: 83950
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 15950
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 208143
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-10-14T13:02:20+00:00'
                          updatedAt: '2025-01-14T08:44:14+00:00'
                          indexedAt: '2025-01-17T11:45:00+00:00'
                          firstLiveAt: '2024-10-14T13:02:49+00:00'
                          masterKey: productMasterKey
                          referenceKey: external-reference
                          images:
                            - hash: images/52d08cac15a71b5c02428c7989f634b9
                          customData: {}
                        itemGroup: null
                        promotionId: 672b8324cc574c81c1a24938
                        promotionCode: null
                        promotion:
                          id: 672b8324cc574c81c1a24938
                          name: PPK and AD percentage
                          displayName: PPK and AD percentage
                          schedule:
                            from: '2024-11-05T23:00:00Z'
                            to: '2026-11-13T23:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: relative
                              value: 17
                          conditions:
                            - level: global
                              key: >-
                                panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                              condition: size(payload.items) >= 1
                            - level: global
                              key: >-
                                panels_automatic-discount_minimum_order_amount_50000
                              condition: payload.totals.withTax >= 50000
                            - level: item
                              key: >-
                                panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                              condition: true
                          customData:
                            corePanel:
                              viewType: automatic-discount
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                        promotions:
                          - id: 672b8324cc574c81c1a24938
                            name: PPK and AD percentage
                            displayName: PPK and AD percentage
                            schedule:
                              from: '2024-11-05T23:00:00Z'
                              to: '2026-11-13T23:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: relative
                                value: 17
                            conditions:
                              - level: global
                                key: >-
                                  panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                                condition: size(payload.items) >= 1
                              - level: global
                                key: >-
                                  panels_automatic-discount_minimum_order_amount_50000
                                condition: payload.totals.withTax >= 50000
                              - level: item
                                key: >-
                                  panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                                condition: true
                            customData:
                              corePanel:
                                viewType: automatic-discount
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                    packages:
                      - carrierKey: ZASIL_CZ
                        deliveryDate:
                          max: '2025-01-21'
                          min: '2025-01-18'
                        id: 1
                    cost:
                      currencyCode: EUR
                      withTax: 64491
                      withoutTax: 54194
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 10297
                          rate: 0
                      appliedReductions:
                        - category: sale
                          type: relative
                          amount:
                            relative: 0.12
                            absoluteWithTax: 11100
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0.17
                            absoluteWithTax: 13209
                            absoluteTax: 2109
                            absoluteWithoutTax: 11100
                    basketOutdated: false
                WithPromotions:
                  description: Update items in the basket with promotions
                  value:
                    key: basket_10001
                    items:
                      - key: 2dace78f80bc92e6d7493423d729448e
                        packageId: 1
                        quantity: 1
                        status: available
                        displayData: {}
                        availableQuantity: 7
                        customData: {}
                        lowestPriorPrice:
                          withTax: null
                          relativeDifferenceToPrice: null
                        price:
                          total:
                            currencyCode: GBP
                            withTax: 5652
                            withoutTax: 5652
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 0
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                promotionId: 66eae24efd917b03a912fec6
                                amount:
                                  relative: 0.5
                                  absoluteWithTax: 5950
                              - category: promotion
                                type: relative
                                promotionId: 692ff9ee203730c9fbc4b12b
                                amount:
                                  relative: 0.05
                                  absoluteWithTax: 298
                          unit:
                            currencyCode: GBP
                            withTax: 5652
                            withoutTax: 5652
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 0
                                rate: 0
                            appliedReductions:
                              - category: promotion
                                type: relative
                                promotionId: 66eae24efd917b03a912fec6
                                amount:
                                  relative: 0.5
                                  absoluteWithTax: 5950
                              - category: promotion
                                type: relative
                                promotionId: 692ff9ee203730c9fbc4b12b
                                amount:
                                  relative: 0.05
                                  absoluteWithTax: 298
                        variant:
                          id: 790
                          referenceKey: '000000000007550569'
                          firstLiveAt: '2024-10-19T07:55:05+00:00'
                          createdAt: '2024-09-02T14:30:41+00:00'
                          updatedAt: '2025-04-11T08:40:40+00:00'
                          stock:
                            supplierId: 66835
                            warehouseId: 3
                            quantity: 7
                            isSellableWithoutStock: false
                            expectedAvailabilityAt: null
                          price:
                            currencyCode: GBP
                            withTax: 11900
                            withoutTax: 11900
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 0
                                rate: 0
                            appliedReductions: []
                          customData: {}
                        product:
                          id: 267
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2024-09-02T14:30:41+00:00'
                          updatedAt: '2025-04-11T08:40:38+00:00'
                          indexedAt: '2025-12-16T09:09:37+00:00'
                          firstLiveAt: '2024-10-19T07:55:05+00:00'
                          masterKey: '000000000007550569'
                          referenceKey: '000000000007550569'
                          images:
                            - hash: images/46e4d5c2105a9f1ecd6591a3d37ff637.jpg
                            - hash: images/ded9489774bbddc09fea3e8a6cd97378.jpg
                          customData: {}
                        itemGroup: null
                        promotionId: 66eae24efd917b03a912fec6
                        promotionCode: null
                        promotion:
                          id: 66eae24efd917b03a912fec6
                          name: Include 1 Master Category AND exclude 1 brand
                          displayName: null
                          schedule:
                            from: '2024-09-17T22:00:00Z'
                            to: '2025-12-31T23:00:00Z'
                          isActive: true
                          effect:
                            type: automatic_discount
                            additionalData:
                              type: relative
                              value: 50
                          conditions:
                            - level: item
                              key: >-
                                Include Master Category "Storefront|Beauty|Bath
                                & Body"
                              condition: >-
                                has(item.product.attributes.category) && (124 in
                                item.product.attributes.category)
                            - level: item
                              key: Exclude Brand "Sol de Janeiro"
                              condition: >-
                                has(item.product.attributes.brand) && !(6961 in
                                item.product.attributes.brand)
                          customData:
                            corePanel:
                              viewType: advanced
                          priority: 1
                          tiers: []
                          isValid: true
                          failedConditions: []
                        promotions:
                          - id: 66eae24efd917b03a912fec6
                            name: Include 1 Master Category AND exclude 1 brand
                            displayName: null
                            schedule:
                              from: '2024-09-17T22:00:00Z'
                              to: '2025-12-31T23:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: relative
                                value: 50
                            conditions:
                              - level: item
                                key: >-
                                  Include Master Category
                                  "Storefront|Beauty|Bath & Body"
                                condition: >-
                                  has(item.product.attributes.category) && (124
                                  in item.product.attributes.category)
                              - level: item
                                key: Exclude Brand "Sol de Janeiro"
                                condition: >-
                                  has(item.product.attributes.brand) && !(6961
                                  in item.product.attributes.brand)
                            customData:
                              corePanel:
                                viewType: advanced
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                          - id: 692ff9ee203730c9fbc4b12b
                            name: >-
                              5% off all products - combinables with all
                              promotions
                            displayName: null
                            schedule:
                              from: '2025-12-03T00:00:00Z'
                              to: '2025-12-24T00:00:00Z'
                            isActive: true
                            effect:
                              type: automatic_discount
                              additionalData:
                                type: relative
                                value: 5
                            conditions:
                              - level: global
                                key: >-
                                  panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                                condition: size(payload.items) >= 1
                              - level: global
                                key: >-
                                  panels_automatic-discount_minimum_order_amount_5000
                                condition: payload.totals.withTax >= 5000
                              - level: item
                                key: >-
                                  panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                                condition: 'true'
                            customData:
                              corePanel:
                                viewType: automatic-discount
                              minimumOrderValue: 5000
                            priority: 1
                            tiers: []
                            isValid: true
                            failedConditions: []
                        deliveryForecast: null
                    packages:
                      - carrierKey: NO CARRIER
                        deliveryDate:
                          max: '2025-12-19'
                          min: '2025-12-17'
                        id: 1
                    cost:
                      currencyCode: GBP
                      withTax: 5652
                      withoutTax: 5652
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 0
                          rate: 0
                      appliedReductions:
                        - category: promotion
                          type: relative
                          amount:
                            relative: 0.52
                            absoluteWithTax: 6248
        '206':
          description: The Basket Item was updated however with a reduced quantity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '412':
          description: The variant is out of stock.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '413':
          description: >-
            Attempt to place an item in a basket with quantity value that is
            larger than maximum allowed value per item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location --request PATCH
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/baskets/{{basketId}}/items/{{itemKey}}?shopId={{shopId}}'
            \
              --header 'X-Access-Token: {{ACCESSTOKEN}}'
              --data '{
               "quantity": 4
              }'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.basket.updateItem(
              "myshop_customer_1234",
              "aec0f393f63d0e70f0418d10cc1acb2e", //item key
              3 // quantity
            );

            console.log(response.basket);
    delete:
      tags:
        - baskets
      summary: Delete an item
      description: |
        Removes a specific item from a given basket using the item's key.
        The item key can be found when fetching the Basket.

        The response will return the updated content of the basket.
      operationId: remove-basket-item
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/OrderCustomData'
        - $ref: '#/components/parameters/CustomerToken'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/basketId'
        - $ref: '#/components/parameters/basketItemKey'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/basketPricePromotionKey'
        - $ref: '#/components/parameters/includeItemsWithoutProductData'
        - $ref: '#/components/parameters/basketWith'
        - $ref: '#/components/parameters/shopId'
      responses:
        '200':
          description: The basket item was successfully deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                basketOutdated: false
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location --request DELETE
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/baskets/{{basketId}}/items/{{itemKey}}?shopId={{shopId}}'
            \

            --header 'X-Access-Token: {{ACCESSTOKEN}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.basket.deleteItem(
            "myshop_customer_1234",
            "d3467d079a1cc261b2b818be9fce0212" // item key
            );

            console.log(response.items);
  /v1/baskets/{basketId}/promotion-code:
    post:
      tags:
        - baskets
      summary: Get applicable promotions by code
      description: >
        Send the promotion code and receive the applicable promotions for the
        given basket
      operationId: basket-promotion-code
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/OrderCustomData'
        - $ref: '#/components/parameters/CustomerToken'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/basketId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/basketPricePromotionKey'
        - $ref: '#/components/parameters/includeItemsWithoutProductData'
        - $ref: '#/components/parameters/basketWith'
        - $ref: '#/components/parameters/shopId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasketPromotionCodeBody'
            examples:
              Basic:
                value:
                  promotionCode: promocode123
      responses:
        '200':
          description: >-
            The Basket Item was returned successfully with applicable
            promotions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-to-variant
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 1
                    status: available
                    displayData: {}
                    availableQuantity: 9678
                    customData: {}
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                      unit:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0
                        appliedReductions: []
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9678
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-16T15:38:15+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: null
                    promotionCode: null
                    promotion: null
                    promotions: []
                packages:
                  - id: 1
                    carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-20'
                      min: '2025-01-17'
                cost:
                  currencyCode: EUR
                  withTax: 99900
                  withoutTax: 83950
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 15950
                      rate: 0
                  appliedReductions: []
                applicablePromotions:
                  - promotion:
                      id: 66ed1013f667a8ddf4c44fbb
                      code: promocode123
                      name: PRCODE-NQ-1
                      displayName: Promo Name
                      schedule:
                        from: '2024-09-19T22:00:00Z'
                        to: '2026-09-25T22:00:00Z'
                      isActive: true
                      effect:
                        type: automatic_discount
                        additionalData:
                          type: absolute
                          value: 500
                      conditions":
                        - level: global
                          key: panels_with-code_minimum_order_amount_10
                          condition: payload.totals.withTax >= 10
                        - level: item
                          key: >-
                            panels_with-code_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                          condition: true
                      customData:
                        corePanel:
                          viewType: with-code
                      priority: 1
                      tiers: []
                    itemId: 37105a2d2576d072b38f426e7b443a2c
                basketOutdated: false
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location --request POST
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/baskets/{{basketId}}/promotion-code?shopId={{shopId}}'
            \
              --header 'X-Access-Token: {{ACCESSTOKEN}}'
              --data '{
               "promotionCode": "promocode123"
              }'
  /v1/baskets/{basketId}/promotions:
    put:
      tags:
        - baskets
      summary: Bulk promotion update
      description: >
        Updates the promotions applied to items in a basket in bulk. The
        submitted list is treated as the complete

        set of promotions for each item, and any promotion not included will be
        removed. To avoid unintended removals,

        always submit the full list of active promotions per item. If no
        promotions are submitted for a specific item,

        its existing promotions remain unchanged.
      operationId: bulk-update-basket-promotions
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/OrderCustomData'
        - $ref: '#/components/parameters/CustomerToken'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/basketId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/includeItemsWithoutProductData'
        - $ref: '#/components/parameters/basketPricePromotionKey'
        - $ref: '#/components/parameters/skipAvailabilityCheck'
        - $ref: '#/components/parameters/basketWith'
        - $ref: '#/components/parameters/shopId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateBasketPromotionsBody'
            examples:
              default:
                value:
                  - itemId: 37105a2d2576d072b38f426e7b443a2c
                    promotions:
                      - id: 66f13a90ca8bf0b06ecd67e3
                        code: DISCOUNT3EUR
      responses:
        '200':
          description: Operation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Basket'
              example:
                key: add-item-with-promotion-code
                items:
                  - key: 37105a2d2576d072b38f426e7b443a2c
                    packageId: 1
                    quantity: 14
                    status: available
                    displayData: {}
                    availableQuantity: 9676
                    customData:
                      corePanel:
                        viewType: with-code
                    lowestPriorPrice:
                      withTax: null
                      relativeDifferenceToPrice: null
                    price:
                      total:
                        currencyCode: EUR
                        withTax: 1394400
                        withoutTax: 1171758
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 222642
                            rate: 0
                        appliedReductions:
                          - category: promotion
                            type: relative
                            amount:
                              relative: 0
                              absoluteWithTax: 4200
                              absoluteTax: 658
                              absoluteWithoutTax: 3542
                      unit:
                        currencyCode: EUR
                        withTax: 99600
                        withoutTax: 83697
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15903
                            rate: 0
                        appliedReductions:
                          - category: promotion
                            type: relative
                            amount:
                              relative: 0
                              absoluteWithTax: 300
                              absoluteTax: 47
                              absoluteWithoutTax: 253
                    variant:
                      id: 338316
                      referenceKey: varRKDF0
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2024-10-28T09:53:49+00:00'
                      stock:
                        supplierId: 1
                        warehouseId: 1
                        quantity: 9676
                        isSellableWithoutStock: false
                        expectedAvailabilityAt: null
                      price:
                        currencyCode: EUR
                        withTax: 99900
                        withoutTax: 83950
                        recommendedRetailPrice: null
                        tax:
                          vat:
                            amount: 15950
                            rate: 0.19
                        appliedReductions: []
                      customData: {}
                    product:
                      id: 208143
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2024-10-14T13:02:20+00:00'
                      updatedAt: '2025-01-14T08:44:14+00:00'
                      indexedAt: '2025-01-17T08:38:59+00:00'
                      firstLiveAt: '2024-10-14T13:02:49+00:00'
                      masterKey: productMasterKey
                      referenceKey: external-reference
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                      customData: {}
                    itemGroup: null
                    promotionId: 66f13a90ca8bf0b06ecd67e3
                    promotionCode: DISCOUNT3EUR
                    promotion:
                      id: 66f13a90ca8bf0b06ecd67e3
                      code: DISCOUNT3EUR
                      name: DISCOUNT-NQ-3
                      displayName: DISCOUNT-NQ-3
                      schedule:
                        from: '2024-09-22T22:00:00Z'
                        to: '2026-09-24T22:00:00Z'
                      isActive: true
                      effect:
                        type: automatic_discount
                        additionalData:
                          type: absolute
                          value: 300
                      conditions:
                        - level: global
                          key: panels_with-code_minimum_order_amount_8
                          condition: payload.totals.withTax >= 8
                      customData:
                        corePanel:
                          viewType: with-code
                      priority: 1
                      tiers: []
                      isValid: true
                      failedConditions: []
                    promotions:
                      - id: 66f13a90ca8bf0b06ecd67e3
                        code: DISCOUNT3EUR
                        name: DISCOUNT-NQ-3
                        displayName: DISCOUNT-NQ-3
                        schedule:
                          from: '2024-09-22T22:00:00Z'
                          to: '2026-09-24T22:00:00Z'
                        isActive: true
                        effect:
                          type: automatic_discount
                          additionalData:
                            type: absolute
                            value: 300
                        conditions:
                          - level: global
                            key: panels_with-code_minimum_order_amount_8
                            condition: payload.totals.withTax >= 8
                        customData:
                          corePanel:
                            viewType: with-code
                        priority: 1
                        tiers: []
                        isValid: true
                        failedConditions: []
                packages:
                  - carrierKey: ZASIL_CZ
                    deliveryDate:
                      max: '2025-01-21'
                      min: '2025-01-20'
                    id: 1
                cost:
                  currencyCode: EUR
                  withTax: 1394400
                  withoutTax: 1171758
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 222642
                      rate: 0
                  appliedReductions:
                    - category: promotion
                      type: relative
                      amount:
                        relative: 0
                        absoluteWithTax: 4200
                        absoluteTax: 658
                        absoluteWithoutTax: 3542
                basketOutdated: false
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location --request PATCH
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/baskets/{{basketId}}/promotions?shopId={{shopId}}'
            \
              --header 'X-Access-Token: {{ACCESSTOKEN}}'
              --data '[
                {
                  "itemId": "e981fbd1dc77ac082329812e87bf64a2",
                  "promotions": [
                    {
                      "id": "4115dca480b1a326cfa743c8",
                      "code": "DISCOUNT3EUR"
                    }
                  ]
                }
              ]'
  /v1/variants:
    get:
      tags:
        - variants
      summary: List variants
      description: >
        Get multiple variants by specifying variant IDs.


        __Fetching variants by variant ID__


        To fetch a list of known variants, simply specify them by variant ID
        using the `ids` parameter, for example, `/v1/variants?ids=1,2,3`.


        ***


        __Selecting included variant data__


        By default, only basic variant data is included in the response. Use the
        `with` parameters (see below) to include more variant data.


        To see all available variant data, for example, for debugging, you might
        use unrestricted `with` parameters:
        `?with=attributes,advancedAttributes,lowestPriorPrice`.


        Beware of using unrestricted `with` parameters in production
        applications. It will result in slow performance, as download sizes for
        full variant data lists can be quite big. Including only exactly what is
        needed will be best for performance when downloading and parsing the
        result.


        A typical request for a variant list optimized for maximum performance
        is, for example,
        `?with=attributes:key(ean|shopSize),advancedAttributes:key(modelHeight),lowestPriorPrice`.
      operationId: fetch-variants
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/variantIds'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/pricePromotionKey'
        - $ref: '#/components/parameters/variantsWith'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VariantsResponse'
              example:
                pagination:
                  current: 2
                  total: 2
                  perPage: 2
                  page: 1
                  first: 1
                  prev: 1
                  next: 1
                  last: 1
                entities:
                  - id: 1
                    referenceKey: external-reference
                    firstLiveAt: '2023-09-22T14:36:42+00:00'
                    createdAt: '2023-09-22T14:34:45+00:00'
                    updatedAt: '2024-04-23T09:32:13+00:00'
                    stock:
                      supplierId: 3
                      warehouseId: 1
                      quantity: 21
                      isSellableWithoutStock: false
                      expectedAvailabilityAt: null
                    price:
                      currencyCode: EUR
                      withTax: 4999
                      withoutTax: 4201
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 798
                          rate: 0.19
                      appliedReductions: []
                    productId: 208428
                    customData: {}
                  - id: 5
                    referenceKey: external-reference
                    attributes:
                      size:
                        id: 2
                        key: size
                        label: Size
                        type: ''
                        multiSelect: false
                        values:
                          id: 18
                          label: M
                          value: m
                    firstLiveAt: '2023-09-22T14:35:29+00:00'
                    createdAt: '2023-09-22T14:34:45+00:00'
                    updatedAt: '2024-04-23T03:17:39+00:00'
                    stock:
                      supplierId: 3
                      warehouseId: 1
                      quantity: 7
                      isSellableWithoutStock: false
                    price:
                      currencyCode: EUR
                      withTax: 4999
                      withoutTax: 4201
                      recommendedRetailPrice: null
                      tax:
                        vat:
                          amount: 798
                          rate: 0.19
                      appliedReductions: []
                    customData: {}
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/variants?ids={{variantIds}}&shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const variants = await client.variants.getByIds([123, 456]);

            console.log(variants);
  /v1/variants/{variantId}:
    get:
      tags:
        - variants
      summary: Get a variant
      description: Get one variant by variantId.
      operationId: fetch-variant-by-id
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/variantId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/pricePromotionKey'
        - $ref: '#/components/parameters/variantsWith'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Variant'
              example:
                id: 5
                referenceKey: external-reference
                firstLiveAt: '2023-09-22T14:35:29+00:00'
                createdAt: '2023-09-22T14:34:45+00:00'
                updatedAt: '2024-04-23T03:17:39+00:00'
                stock:
                  supplierId: 3
                  warehouseId: 1
                  quantity: 7
                  isSellableWithoutStock: false
                  expectedAvailabilityAt: null
                price:
                  currencyCode: EUR
                  withTax: 4999
                  withoutTax: 4201
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 798
                      rate: 0.19
                  appliedReductions: []
                customData: {}
                productId: 208428
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/variants/{{variantId}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const variants = await client.variants.getByIds([123]);

            console.log(variants);
  /v1/products:
    get:
      tags:
        - products
      summary: List products
      description: >
        Requesting this API endpoint is the main way to retrieve your product
        data to display in any context. A product is basically any individual
        item in the shop.

         There are basically two ways to use this endpoint:
         * Search for products by specifying search/filter parameters

         * Directly fetch known products by their product IDs

         ***

         __Searching for products__

         The various `filter` parameters can be used to restrict the list of products included in the response (see available parameters below).

         You can also use the `/v1/filters` endpoint to determine which filters are available in the current context. This way, you can, for example, enable users to narrow down general product lists to very specific results by incrementally adding more and more filter parameters.

         The `minProductId`, and `includeSoldOut` parameters can further restrict or expand the search results (see below).

         **Note**: Filters only affect which products are returned. They do not affect any other product data. For example, using `?filters[merchantId]` will not change the variants returned in the response.

         ***

         __Fetching products by product ID__

         To fetch a list of known products, simply specify them by product ID using the `ids` parameter, for example, `/v1/products?ids=1,2,3`. This offers a notable performance advantage since it eliminates the need for a search step.

         If you specify the `ids` parameter, all other search/filter parameters will be ignored.

         ***

         __Running a script that iterates over all products__

         To iterate over all products, you must use `?minProductId={id}` in combination with `sortDir=asc` and `sort=id`. This is far more performant than using offset or pagination and bypasses the 500000 maximum result limitation.

         **Implementation note**: The script should start with an initial request using `?minProductId=0`. For each subsequent request, use the ID of the last product from the previous response + 1 as the new `minProductId`. The process is complete when a request returns an empty list of products.

         ***

         __Selecting included product data__

         By default, only basic product data is included in the response. Use the `with` parameters (see below) to include more product data.

         To see all available product data, for example, for debugging, you might use unrestricted `with` parameters: `?with=attributes,advancedAttributes,categories,images.attributes,priceRange,reductionRange,siblings,variants.attributes,variants.advancedAttributes`.

         Beware of using these unrestricted `with` parameters in production applications. It will result in slow performance, as download sizes for full product data lists can be quite big. Including only exactly what is needed will be best for performance when downloading and parsing the result.

         A typical request for a product list optimized for maximum performance is, for example, `?with=attributes:key(brand|color),advancedAttributes:key(description),variants.attributes:key(vendorSize),images,priceRange,reductionRange`.

         ***

         __Filtering Out Excluded Products__

         By default, all products are included in search results. However, you can apply a filter to exclude them using the following query parameter:

         `?filters:not[isExcludedFromSearch]={attributeId}`

         Replace `{attributeId}` with the ID of the value associated to the product's attribute `isExcludedFromSearch=true`.
         ***

         __Sorting__

         You can order the results using different sorting strategies, based on the provided `sort`, `sortingKey`, and `sortDir` parameters.

         * __Default sorting__: If no sorting parameter is specified, the products will be sorted by product ID. To specify the order, use the `sortDir` parameter (default `desc`, highest product ID first).

         * __Price sorting__: `sort=price` will sort the results by price. To specify the order, use the `sortDir` parameter (default `desc`, highest price first).

         * __Reduction sorting__: `sort=reduction` will sort the results by price reduction. This sorting is based on the available `appliedReductions` for each product's variants. When a `campaignKey` is also provided, the sorting will also consider the campaign reduction. To specify the order, use the `sortDir` parameter (default `desc`, highest reduction first).

         * __Date sorting__: `sort=new` will order the products by `firstLiveAt` field. If `firstLiveAt` is not set the products will be ordered by creation date. To specify the order, use the `sortDir` parameter (default `desc`, most recent date first).

         * __Key sorting__: `sortingKey` will order the results based on your custom sorting keys, for example, `sortingKey=wcc-default`. Multiple sorting keys are also allowed for example, `sortingKey=wcc-default,wcc-custom`, which allow to segment the products into bigger chunks and then sort these chunks using the subsequent sorting keys. If the `sortingKey` parameter has been provided, the `sort` parameter will be ignored. To specify the order, use the `sortDir` parameter (default `desc`, highest value first).
      operationId: fetch-products
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/productIds'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/includeSoldOut'
        - $ref: '#/components/parameters/referenceKey'
        - $ref: '#/components/parameters/pricePromotionKey'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/sortDir'
        - $ref: '#/components/parameters/sortingKey'
        - $ref: '#/components/parameters/filterAttributeKey'
        - $ref: '#/components/parameters/negativeFilterAttributeKey'
        - $ref: '#/components/parameters/negativeFilterIds'
        - $ref: '#/components/parameters/orFiltersOperator'
        - $ref: '#/components/parameters/filterCategory'
        - $ref: '#/components/parameters/filterEan'
        - $ref: '#/components/parameters/filterIsnew'
        - $ref: '#/components/parameters/filterMaxPrice'
        - $ref: '#/components/parameters/filterMaxReduction'
        - $ref: '#/components/parameters/filterMinPrice'
        - $ref: '#/components/parameters/filterMinReduction'
        - $ref: '#/components/parameters/filterReferenceKey'
        - $ref: '#/components/parameters/filterVariantReferenceKey'
        - $ref: '#/components/parameters/filterVariantAttributeKey'
        - $ref: '#/components/parameters/filterSale'
        - $ref: '#/components/parameters/filterMasterKey'
        - $ref: '#/components/parameters/filterTerm'
        - $ref: '#/components/parameters/filterMinFirstLiveAt'
        - $ref: '#/components/parameters/filterMerchantId'
        - $ref: '#/components/parameters/filterHasCampaignReduction'
        - $ref: '#/components/parameters/filterSellableAt'
        - $ref: '#/components/parameters/productsWith'
        - $ref: '#/components/parameters/minProductId'
        - $ref: '#/components/parameters/disableFuzziness'
        - $ref: '#/components/parameters/trackSearchAnalyticsEvent'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/perPage'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductsResponse'
              examples:
                ProductsWithDefault:
                  summary: List products
                  value:
                    pagination:
                      current: 10
                      total: 95
                      perPage: 10
                      page: 1
                      first: 1
                      prev: 1
                      next: 2
                      last: 10
                    entities:
                      - id: 7
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2023-09-22T14:34:44+00:00'
                        updatedAt: '2024-04-10T10:30:08+00:00'
                        indexedAt: '2024-04-23T17:22:14+00:00'
                        firstLiveAt: '2023-09-22T14:35:29+00:00'
                        masterKey: master-key
                        referenceKey: external-reference
                        images:
                          - hash: images/52d08cac15a71b5c02428c7989f634b9
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66484
                                  label: Product
                                  value: product
                          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66483
                                  label: Detail
                                  value: detail
                        customData: {}
                ProductsWithSellableTimeframe:
                  summary: List products with Sellable Timeframe
                  value:
                    pagination:
                      current: 10
                      total: 95
                      perPage: 10
                      page: 1
                      first: 1
                      prev: 1
                      next: 2
                      last: 10
                    entities:
                      - id: 7
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2023-09-22T14:34:44+00:00'
                        updatedAt: '2024-04-10T10:30:08+00:00'
                        indexedAt: '2024-04-23T17:22:14+00:00'
                        firstLiveAt: '2023-09-22T14:35:29+00:00'
                        masterKey: master-key
                        referenceKey: external-reference
                        images:
                          - hash: images/52d08cac15a71b5c02428c7989f634b9
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66484
                                  label: Product
                                  value: product
                          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66483
                                  label: Detail
                                  value: detail
                        customData: {}
                        sellableTimeFrame:
                          sellableFrom: '2023-09-22T14:34:44+00:00'
                          sellableTo: '2023-09-28T14:34:44+00:00'
                ProductsWithVariants:
                  summary: List products with Variants
                  value:
                    pagination:
                      current: 10
                      total: 95
                      perPage: 10
                      page: 1
                      first: 1
                      prev: 1
                      next: 2
                      last: 10
                    entities:
                      - id: 7
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2023-09-22T14:34:44+00:00'
                        updatedAt: '2024-04-10T10:30:08+00:00'
                        indexedAt: '2024-04-23T17:22:14+00:00'
                        firstLiveAt: '2023-09-22T14:35:29+00:00'
                        masterKey: master-key
                        referenceKey: external-reference
                        images:
                          - hash: images/52d08cac15a71b5c02428c7989f634b9
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66484
                                  label: Product
                                  value: product
                          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66483
                                  label: Detail
                                  value: detail
                        variants:
                          - id: 1
                            referenceKey: external-reference
                            attributes:
                              size:
                                id: 2
                                key: size
                                label: Size
                                type: ''
                                multiSelect: false
                                values:
                                  id: 15
                                  label: S
                                  value: s
                            firstLiveAt: '2023-09-22T14:36:42+00:00'
                            createdAt: '2023-09-22T14:34:45+00:00'
                            updatedAt: '2024-04-23T09:32:13+00:00'
                            stock:
                              supplierId: 3
                              warehouseId: 1
                              quantity: 21
                              isSellableWithoutStock: false
                            price:
                              currencyCode: EUR
                              withTax: 4999
                              withoutTax: 4201
                              recommendedRetailPrice: null
                              tax:
                                vat:
                                  amount: 798
                                  rate: 0.19
                              appliedReductions: []
                            customData: {}
                          - id: 5
                            referenceKey: external-reference
                            attributes:
                              size:
                                id: 2
                                key: size
                                label: Size
                                type: ''
                                multiSelect: false
                                values:
                                  id: 18
                                  label: M
                                  value: m
                            firstLiveAt: '2023-09-22T14:35:29+00:00'
                            createdAt: '2023-09-22T14:34:45+00:00'
                            updatedAt: '2024-04-23T03:17:39+00:00'
                            stock:
                              supplierId: 3
                              warehouseId: 1
                              quantity: 7
                              isSellableWithoutStock: false
                            price:
                              currencyCode: EUR
                              withTax: 4999
                              withoutTax: 4201
                              recommendedRetailPrice: null
                              tax:
                                vat:
                                  amount: 798
                                  rate: 0.19
                              appliedReductions: []
                            customData: {}
                        customData: {}
                ProductsWithAttributes:
                  summary: List products with Attributes
                  value:
                    pagination:
                      current: 10
                      total: 95
                      perPage: 10
                      page: 1
                      first: 1
                      prev: 1
                      next: 2
                      last: 10
                    entities:
                      - id: 7
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2023-09-22T14:34:44+00:00'
                        updatedAt: '2024-04-10T10:30:08+00:00'
                        indexedAt: '2024-04-23T17:22:14+00:00'
                        firstLiveAt: '2023-09-22T14:35:29+00:00'
                        masterKey: master-key
                        referenceKey: external-reference
                        attributes:
                          name:
                            id: 20005
                            key: name
                            label: Name
                            type: ''
                            multiSelect: false
                            values:
                              id: 20005
                              label: Women dress
                              value: name
                          color:
                            id: 1
                            key: color
                            label: Color
                            type: ''
                            multiSelect: true
                            values:
                              - id: 38932
                                label: Black
                                value: black
                          brand:
                            id: 3
                            key: brand
                            label: Brand
                            type: ''
                            multiSelect: false
                            values:
                              id: 232
                              label: SCAYLE
                              value: scayle
                        images:
                          - hash: images/52d08cac15a71b5c02428c7989f634b9
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66484
                                  label: Product
                                  value: product
                          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66483
                                  label: Detail
                                  value: detail
                        customData: {}
                ProductsWithAdvancedAttributes:
                  summary: List products with Advanced Attributes
                  value:
                    pagination:
                      current: 10
                      total: 95
                      perPage: 10
                      page: 1
                      first: 1
                      prev: 1
                      next: 2
                      last: 10
                    entities:
                      - id: 7
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2023-09-22T14:34:44+00:00'
                        updatedAt: '2024-04-10T10:30:08+00:00'
                        indexedAt: '2024-04-23T17:22:14+00:00'
                        firstLiveAt: '2023-09-22T14:35:29+00:00'
                        masterKey: master-key
                        referenceKey: external-reference
                        advancedAttributes:
                          combineWith:
                            id: 1223
                            key: combineWith
                            label: Combine with Products
                            type: ''
                            values:
                              - fieldSet:
                                  - - value: '51'
                                    - value: '63'
                                    - value: '27'
                                groupSet: []
                        images:
                          - hash: images/52d08cac15a71b5c02428c7989f634b9
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66484
                                  label: Product
                                  value: product
                          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                            attributes:
                              imageFocus:
                                id: 1253
                                key: imageFocus
                                label: Image Focus
                                type: ''
                                multiSelect: false
                                values:
                                  id: 66483
                                  label: Detail
                                  value: detail
                        customData: {}
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/products?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.products.query({});

            console.log(response.entities)
  /v1/products/{productId}:
    get:
      tags:
        - products
      summary: Get a product
      description: Get one product by productId.
      operationId: fetch-product-by-id
      parameters:
        - name: productId
          in: path
          description: Get product with specified `productId`.
          required: true
          explode: false
          schema:
            type: integer
            example: 123456
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/productsWith'
        - $ref: '#/components/parameters/pricePromotionKey'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
              examples:
                ProductWithDefault:
                  summary: Get a product
                  value:
                    id: 7
                    isActive: true
                    isSoldOut: false
                    isNew: false
                    createdAt: '2023-09-22T14:34:44+00:00'
                    updatedAt: '2024-04-10T10:30:08+00:00'
                    indexedAt: '2024-04-23T17:22:14+00:00'
                    firstLiveAt: '2023-09-22T14:35:29+00:00'
                    masterKey: master-key
                    referenceKey: external-reference
                    images:
                      - hash: images/52d08cac15a71b5c02428c7989f634b9
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66484
                              label: Product
                              value: product
                      - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66483
                              label: Detail
                              value: detail
                    customData: {}
                ProductWithSellableTimeframe:
                  summary: Get a product with sellable timeframe
                  value:
                    id: 7
                    isActive: true
                    isSoldOut: false
                    isNew: false
                    createdAt: '2023-09-22T14:34:44+00:00'
                    updatedAt: '2024-04-10T10:30:08+00:00'
                    indexedAt: '2024-04-23T17:22:14+00:00'
                    firstLiveAt: '2023-09-22T14:35:29+00:00'
                    masterKey: master-key
                    referenceKey: external-reference
                    images:
                      - hash: images/52d08cac15a71b5c02428c7989f634b9
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66484
                              label: Product
                              value: product
                      - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66483
                              label: Detail
                              value: detail
                    customData: {}
                    sellableTimeFrame:
                      sellableFrom: '2023-09-22T14:34:44+00:00'
                      sellableTo: '2023-09-28T14:34:44+00:00'
                productWithAttributes:
                  summary: Get a product with attributes
                  value:
                    id: 7
                    isActive: true
                    isSoldOut: false
                    isNew: false
                    createdAt: '2023-09-22T14:34:44+00:00'
                    updatedAt: '2024-04-10T10:30:08+00:00'
                    indexedAt: '2024-04-23T17:22:14+00:00'
                    firstLiveAt: '2023-09-22T14:35:29+00:00'
                    masterKey: master-key
                    referenceKey: external-reference
                    attributes:
                      name:
                        id: 20005
                        key: name
                        label: Name
                        type: ''
                        multiSelect: false
                        values:
                          id: 20005
                          label: Women dress
                          value: name
                      color:
                        id: 1
                        key: color
                        label: Color
                        type: ''
                        multiSelect: true
                        values:
                          - id: 38932
                            label: Black
                            value: black
                      brand:
                        id: 3
                        key: brand
                        label: Brand
                        type: ''
                        multiSelect: false
                        values:
                          id: 232
                          label: SCAYLE
                          value: scayle
                    images:
                      - hash: images/52d08cac15a71b5c02428c7989f634b9
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66484
                              label: Product
                              value: product
                      - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66483
                              label: Detail
                              value: detail
                    customData: {}
                productWithVariants:
                  summary: Get a product with variants
                  value:
                    id: 7
                    isActive: true
                    isSoldOut: false
                    isNew: false
                    createdAt: '2023-09-22T14:34:44+00:00'
                    updatedAt: '2024-04-10T10:30:08+00:00'
                    indexedAt: '2024-04-23T17:22:14+00:00'
                    firstLiveAt: '2023-09-22T14:35:29+00:00'
                    masterKey: master-key
                    referenceKey: external-reference
                    images:
                      - hash: images/52d08cac15a71b5c02428c7989f634b9
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66484
                              label: Product
                              value: product
                      - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66483
                              label: Detail
                              value: detail
                    variants:
                      - id: 1
                        referenceKey: external-reference
                        attributes:
                          size:
                            id: 2
                            key: size
                            label: Size
                            type: ''
                            multiSelect: false
                            values:
                              id: 15
                              label: S
                              value: s
                        firstLiveAt: '2023-09-22T14:36:42+00:00'
                        createdAt: '2023-09-22T14:34:45+00:00'
                        updatedAt: '2024-04-23T09:32:13+00:00'
                        stock:
                          supplierId: 3
                          warehouseId: 1
                          quantity: 21
                          isSellableWithoutStock: false
                        price:
                          currencyCode: EUR
                          withTax: 4999
                          withoutTax: 4201
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 798
                              rate: 0.19
                          appliedReductions: []
                        customData: {}
                      - id: 5
                        referenceKey: external-reference
                        attributes:
                          size:
                            id: 2
                            key: size
                            label: Size
                            type: ''
                            multiSelect: false
                            values:
                              id: 18
                              label: M
                              value: m
                        firstLiveAt: '2023-09-22T14:35:29+00:00'
                        createdAt: '2023-09-22T14:34:45+00:00'
                        updatedAt: '2024-04-23T03:17:39+00:00'
                        stock:
                          supplierId: 3
                          warehouseId: 1
                          quantity: 7
                          isSellableWithoutStock: false
                        price:
                          currencyCode: EUR
                          withTax: 4999
                          withoutTax: 4201
                          recommendedRetailPrice: null
                          tax:
                            vat:
                              amount: 798
                              rate: 0.19
                          appliedReductions: []
                        customData: {}
                    customData: {}
                productWithAdvancedAttributes:
                  summary: Get a product with advanced attributes
                  value:
                    id: 7
                    isActive: true
                    isSoldOut: false
                    isNew: false
                    createdAt: '2023-09-22T14:34:44+00:00'
                    updatedAt: '2024-04-10T10:30:08+00:00'
                    indexedAt: '2024-04-23T17:22:14+00:00'
                    firstLiveAt: '2023-09-22T14:35:29+00:00'
                    masterKey: master-key
                    referenceKey: external-reference
                    advancedAttributes:
                      combineWith:
                        id: 1223
                        key: combineWith
                        label: Combine with Products
                        type: ''
                        values:
                          - fieldSet:
                              - - value: '51'
                                - value: '63'
                                - value: '27'
                            groupSet: []
                    images:
                      - hash: images/52d08cac15a71b5c02428c7989f634b9
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66484
                              label: Product
                              value: product
                      - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                        attributes:
                          imageFocus:
                            id: 1253
                            key: imageFocus
                            label: Image Focus
                            type: ''
                            multiSelect: false
                            values:
                              id: 66483
                              label: Detail
                              value: detail
                    customData: {}
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/products/{{productId}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const product = await client.products.getById(1);

            console.log(product.referenceKey)
  /v1/recommendations/similar/{productId}:
    get:
      summary: Get similar product recommendations
      description: >
        Retrieve product recommendations that are similar to a given product.
        This endpoint returns a list of products ranked by their similarity
        score, which is calculated based on attribute matching and image
        similarity.


        The similar products feature enables identifying products with matching
        characteristics.


        ***


        __How it works__


        Products are ranked by similarity score, calculated from:

        * Attribute matching (e.g., category, brand, color)

        * Image similarity analysis (when available)


        Products with low variant availability are automatically ranked lower in
        the results. Pre-defined similar products (configured in SCAYLE Panel)
        always appear first in results.


        ***


        __Response data__


        Each product recommendation includes:
         * `imageConfidenceScore`: A score from 0-100 indicating image similarity confidence (0 = not similar, 100 = identical), or `null` if image similarity was not calculated
        * `product`: Full product data (same structure as the products endpoint)


        ***


        __Filtering recommendations__


        You can filter the returned recommendations using the same filter
        parameters available on the products endpoint. Common use cases include:

        * Filter by category to show similar products within the same category

        * Filter by brand to show similar products from the same brand

        * Exclude sold-out products


        ***


        __Selecting included product data__


        Use the `with` parameter to include additional product data in the
        response. This follows the same pattern as the products endpoint.
      operationId: fetch-similar-products
      tags:
        - recommendations
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/similarProductId'
        - $ref: '#/components/parameters/similarProductsLimit'
        - $ref: '#/components/parameters/ignoreSameMasterKey'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/pricePromotionKey'
        - $ref: '#/components/parameters/similarProductsWith'
        - $ref: '#/components/parameters/filterCategory'
        - $ref: '#/components/parameters/filterBrand'
        - $ref: '#/components/parameters/filterSale'
        - $ref: '#/components/parameters/filterSellableAt'
        - $ref: '#/components/parameters/filterMinPrice'
        - $ref: '#/components/parameters/filterMaxPrice'
        - $ref: '#/components/parameters/negativeFilterCategory'
        - $ref: '#/components/parameters/negativeFilterBrand'
      responses:
        '200':
          description: Operation successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimilarProductsResponse'
              examples:
                SimilarProducts:
                  summary: Get similar products
                  value:
                    recommendations:
                      - imageConfidenceScore: 92
                        product:
                          id: 78901
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2023-06-15T10:30:00+00:00'
                          updatedAt: '2024-01-20T14:45:00+00:00'
                          indexedAt: '2024-04-22T00:07:01+00:00'
                          firstLiveAt: '2023-06-15T12:00:00+00:00'
                          masterKey: SHIRT-BLUE-001
                          referenceKey: SKU-78901
                          images: []
                          customData: {}
                      - imageConfidenceScore: 78
                        product:
                          id: 78902
                          isActive: true
                          isSoldOut: false
                          isNew: true
                          createdAt: '2024-01-10T09:00:00+00:00'
                          updatedAt: '2024-02-15T11:30:00+00:00'
                          indexedAt: '2024-04-22T00:07:01+00:00'
                          firstLiveAt: '2024-01-10T10:00:00+00:00'
                          masterKey: SHIRT-GREEN-002
                          referenceKey: SKU-78902
                          images: []
                          customData: {}
                      - imageConfidenceScore: null
                        product:
                          id: 78903
                          isActive: true
                          isSoldOut: false
                          isNew: false
                          createdAt: '2022-11-05T08:15:00+00:00'
                          updatedAt: '2024-03-01T16:20:00+00:00'
                          indexedAt: '2024-04-22T00:07:01+00:00'
                          firstLiveAt: '2022-11-05T09:00:00+00:00'
                          masterKey: PANTS-BLACK-001
                          referenceKey: SKU-78903
                          images: []
                          customData: {}
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/recommendations/similar/12345?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.recommendations.getSimilar(12345);

            console.log(response.recommendations)
  /v1/search/resolve:
    get:
      tags:
        - search-v1
      summary: Resolve v1
      description: >
        This endpoint is intended to provide one best match.


        The request needs to match at least one category and one attribute.

        For example, searching for `pants black denim useless` would return
        category `pants`

        that have two attributes: `black` and `denim`. The `useless` will be
        discarded. If the best match was found, it will return the relevant
        result; otherwise, it will return nothing.


        A detailed explanation of the functionality can be found in [SCAYLE
        Panel developer guide](/en/developer-guide/products/search#resolve)
      operationId: fetch-search-resolve
      parameters:
        - $ref: '#/components/parameters/searchTerm'
        - $ref: '#/components/parameters/categoryId'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResolveResponse'
        '400':
          description: term not provided
        '401':
          description: authentication failed
        '422':
          description: formal validation failure (see schema)
  /v1/typeahead:
    post:
      tags:
        - search-v1
      summary: Typeahead v1
      description: >
        The endpoint searches and returns:

        - brands by their name

        - categories by their name or their synonyms

        - products by their name, brand, and attributes (or attribute synonyms)


        When there is an exact one-to-one match present in the results, it is
        placed under the `topMatch` property. The rest of the results are sorted
        by relevancy and placed under the `suggestions` property. Sorting gives
        more weight to categories and brands, so products are generally placed
        below categories and brands.


        The suggestions array has two types of objects:

        - `BrandOrCategory` object, which is either a brand or category. Whether
        it is a brand or category can be identified by the property
        `primaryMatch`. The brand suggestions will also include the most
        relevant category under the `category` property.

        - product object


        When the search term finds a matching attribute, the attribute is then
        applied as a filter to the brand and category searches, adjusting the
        product count. Applied filters can be found under the `attributeFilters`
        property.


        **Please use the `?fullAttributeValue=true` parameter for all
        searches**. The old response that returns only attribute IDs is
        deprecated. The response will default to full attribute values in the
        future.
      operationId: fetch-typeahead-suggestions-post
      parameters:
        - $ref: '#/components/parameters/typeaheadTerm'
        - $ref: '#/components/parameters/fullAttributeValue'
        - $ref: '#/components/parameters/typeaheadLimit'
        - $ref: '#/components/parameters/typeaheadWith'
        - $ref: '#/components/parameters/typeaheadDepth'
        - $ref: '#/components/parameters/categoryId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TypeaheadRequestBody'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TypeaheadResponse'
        '400':
          description: required query parameter missing / query parameter invalid
        '401':
          description: authentication failed
  /v2/search/suggestions:
    get:
      tags:
        - search-v2
      summary: Suggestions v2
      description: >
        The primary use case is to show a list of potential options to the user
        before they have finished their query.


        The endpoint searches and returns:

        - categories by their name with filters to be applied if identified
            - hidden categories and categories without active products will not be returned
        - navigation items by their name

        - products by their unique ids (reference keys, EANs or internal ids)


        The response of the endpoint can be tuned using the following settings
        in the SCAYLE panel.


        __Word synonyms__ enable configuration of mapping a word or a phrase
        into a different word or phrase. For example, "babyleggings" can be set
        as a synonym for "baby leggings". This will ensure that a search with
        keyword "babyleggings" finds items that have "baby leggings" in the
        name.


        __Category synonyms__ allow mapping of certain words to categories.
        Example the word "office" can be mapped to a category
        /women/clothing/blazers. Setting this configuration will ensure that
        search with the keyword "office" returns the category
        /women/clothing/blazers.


        __Navigation synonyms__ allow mapping of certain words to navigation
        items. Example the word "opening" can be mapped to a navigation item
        "Office hours". Setting this configuration will ensure that search with
        the keyword "opening" returns the navigation item "Office hours".


        __Excluded products or categories__ are products or categories marked as
        "ExcludedFromSearch" - these will not be included in the search results
        by default.


        __Include in search__ is a setting specific to navigation items.
        Navigation items are by default **not** found through search, unless
        explicitly marked as "include in search".


        A detailed explanation of the functionality can be found in [SCAYLE
        Panel developer guide](/en/developer-guide/products/search#suggestions)
      operationId: fetch-search-v2-suggestions-get
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/searchV2Term'
        - $ref: '#/components/parameters/searchV2With'
        - $ref: '#/components/parameters/searchV2CategoryDepth'
        - $ref: '#/components/parameters/searchV2ShowHiddenCategories'
        - $ref: '#/components/parameters/categoryId'
        - $ref: '#/components/parameters/shopId'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchV2SuggestionsResponse'
              example:
                suggestions:
                  - type: category
                    categorySuggestion:
                      category:
                        id: 1
                        path: /women
                        name: Women
                        slug: women
                        parentId: 0
                        rootlineIds:
                          - 1
                        childrenIds:
                          - 2
                          - 3
                        isHidden: false
                        depth: 1
                        supportedFilter:
                          - size
                          - material
                        shopLevelCustomData: {}
                        countryLevelCustomData: {}
                        children: []
                        properties: []
                      filters:
                        - type: attribute
                          attributeFilter:
                            group:
                              id: 1
                              key: color
                              label: Color
                              type: ''
                              multiSelect: true
                            values:
                              - name: Blue
                                id: 27
                                value: blue
                        - type: boolean
                          booleanFilter:
                            slug: sale
                            value: true
                            label: sale
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v2/search/suggestions?term={{term}}&shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.searchv2.suggestions("blue jeans");

            console.log(response);
  /v2/search/resolve:
    get:
      tags:
        - search-v2
      summary: Resolve v2
      description: >
        The primary use case is to redirect the user to the best matching result
        based on their complete query.


        The endpoint searches and returns:

        - categories by their name with filters to be applied if identified
            - hidden categories and categories without active products will not be returned
        - navigation items by their name

        - products by their unique ids (reference keys, EANs or internal ids)


        The response of the endpoint can be tuned using the following settings
        in the SCAYLE panel.


        __Word synonyms__ enable configuration of mapping a word or a phrase
        into a different word or phrase. For example, "babyleggings" can be set
        as a synonym for "baby leggings". This will ensure that a search with
        keyword "babyleggings" finds items that have "baby leggings" in the
        name.


        __Navigation synonyms__ allow mapping of certain words to navigation
        items. Example the word "opening" can be mapped to a navigation item
        "Office hours". Setting this configuration will ensure that search with
        the keyword "opening" returns the navigation item "Office hours".


        __Excluded products or categories__ are products or categories marked as
        "ExcludedFromSearch" - these will not be included in the search results
        by default.


        __Include in search__ is a setting specific to navigation items.
        Navigation items are by default **not** found through search, unless
        explicitly marked as "include in search".


        A detailed explanation of the functionality can be found in [SCAYLE
        Panel developer guide](/en/developer-guide/products/search#suggestions)
      operationId: fetch-search-v2-resolve-get
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/searchV2Term'
        - $ref: '#/components/parameters/searchV2With'
        - $ref: '#/components/parameters/searchV2CategoryDepth'
        - $ref: '#/components/parameters/searchV2ShowHiddenCategories'
        - $ref: '#/components/parameters/categoryId'
        - $ref: '#/components/parameters/shopId'
      responses:
        '200':
          description: Found a matching entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchV2ResolveResponse'
              examples:
                ProductSuggestion:
                  value:
                    type: product
                    productSuggestion:
                      product:
                        id: 7
                        isActive: true
                        isSoldOut: false
                        isNew: false
                        createdAt: '2023-09-22T14:34:44+00:00'
                        updatedAt: '2024-04-10T10:30:08+00:00'
                        indexedAt: '2024-04-23T17:22:14+00:00'
                        firstLiveAt: '2023-09-22T14:35:29+00:00'
                        masterKey: master-key
                        referenceKey: external-reference
                        customData: {}
                        images:
                          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                categorySuggestion:
                  value:
                    type: category
                    categorySuggestion:
                      category:
                        id: 1
                        path: /women
                        name: Women
                        slug: women
                        parentId: 0
                        rootlineIds:
                          - 1
                        childrenIds:
                          - 2
                          - 3
                        isHidden: false
                        depth: 1
                        supportedFilter:
                          - size
                          - material
                        shopLevelCustomData: {}
                        countryLevelCustomData: {}
                        properties: []
                        children: []
                      filters:
                        - type: attribute
                          attributeFilter:
                            group:
                              id: 1
                              key: color
                              label: Color
                              type: null
                              multiSelect: true
                            values:
                              - name: Blue
                                id: 27
                                value: blue
                        - type: boolean
                          booleanFilter:
                            slug: sale
                            value: true
                            label: sale
                navigationSuggestion:
                  value:
                    type: navigationItem
                    navigationItemSuggestion:
                      navigationItem:
                        id: 1
                        assets: {}
                        name: Chocolate Lovers Gifting
                        visibleFrom: null
                        visibleTo: null
                        children: []
                        customData: {}
                        type: individual-link
                        options:
                          url: >-
                            /en-gb/c/stories/gifts/best-gifts-for-serious-chocolate-lovers
                          isOpenInNewWindow: false
        '204':
          description: Unable to match an entity
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v2/search/resolve?term={{term}}&shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.searchv2.resolve("blue jeans");

            console.log(response);
  /v1/filters:
    get:
      tags:
        - filters
      summary: List filters
      description: >
        Filters endpoint should be used to display a list of available filters
        based on specific criteria. Often, it is the same criteria, as it was
        sent to show products.

        Multiple filter criteria can and should be combined in the single
        request.


        As an example, the following request:
        `/v1/filters?filters[category]=235870&filters[sale]=true&with=values`

        will restrict the response to include only the available filter values
        for a specific *category* for products on *sale*.

        When adding the `with=values` parameter, the response will include
        values and their product counts for the combination of the filters used.


        In the next section, all the available filters will be described in
        detail.


        __Note__: Inactive products (sold out) are always automatically filtered
        out from the filter's response, and they are not taken into account for
        any of the described filters below.


        ***

        ### Prices & Savings Aggregates

        The minimum and maximum values for `prices` and `max_saving_percentage`
        are calculated across all products in the catalog.

        These ranges represent the lowest and highest variant prices as well as
        the minimum and maximum discount percentages, providing a clear basis
        for filtering products.


        * **prices.min** – The lowest variant price across all products.
          * **Logic:** Identify the cheapest variant of each product, then return the lowest price.
          * **Example:** ProductA variants = [`299`, `499`], ProductB variants = [`149`, `399`], ProductC variants = [`199`, `599`] → prices.min = `149`

        * **prices.max** – The highest starting price among all products
        cheapest variants.
          * **Logic:** Identify each product's cheapest variant, then return the highest price.
          * **Example:** ProductA variants = [`299`, `499`], ProductB variants = [`149`, `399`], ProductC variants = [`199`, `599`] → prices.max = `299`

        * **max_savings_percentage.min** – The lowest discount percentage across
        all variants.
          * **Logic:** Evaluate every variant's savings percentage and return the smallest value.
          * **Example:** ProductA variants = [`5%`, `20%`], ProductB variants = [`0%`, `15%`], ProductC variants = [`10%`, `25%`] → max_savings_percentage.min = `0%`

        * **max_savings_percentage.max** – The highest discount percentage
        across all variants.
          * **Logic:** Evaluate every variant's savings percentage and return the largest value.
          * **Example:** ProductA variants = [`5%`, `20%`], ProductB variants = [`0%`, `15%`], ProductC variants = [`10%`, `25%`] → max_savings_percentage.max = `25%`
      operationId: fetch-filters
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/filterCategory'
        - $ref: '#/components/parameters/filterEan'
        - $ref: '#/components/parameters/filterTerm'
        - $ref: '#/components/parameters/disableFuzziness'
        - $ref: '#/components/parameters/filterIsnew'
        - $ref: '#/components/parameters/filterMaxPrice'
        - $ref: '#/components/parameters/filterMinPrice'
        - $ref: '#/components/parameters/filterSale'
        - $ref: '#/components/parameters/filterAttributeKey'
        - $ref: '#/components/parameters/negativeFilterAttributeKey'
        - $ref: '#/components/parameters/orFiltersOperator'
        - $ref: '#/components/parameters/filterMasterKey'
        - $ref: '#/components/parameters/filterSellableAt'
        - $ref: '#/components/parameters/filterReferenceKey'
        - $ref: '#/components/parameters/filterVariantReferenceKey'
        - $ref: '#/components/parameters/filterMerchantId'
        - $ref: '#/components/parameters/filterHasCampaignReduction'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/includeSoldOut'
        - name: with
          in: query
          description: >
            The `with` parameter can also include related resources of a filter
            in the response.

            * By calling `with=values`, the parameter will include the available
            filter values and product counts for each filter.
          required: false
          explode: false
          schema:
            default: []
            type: array
            example:
              - values
            items:
              type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiltersResponse'
              example:
                - id: null
                  slug: prices
                  name: Prices
                  attributeGroupType: computed_attribute
                  type: range
                  values:
                    - min: 490
                  max: 2990
                  productCount: 42
                - id: null
                  slug: sale
                  name: Sale
                  attributeGroupType: computed_attribute
                  type: boolean
                  values:
                    - name: false
                      productCount: 12
                    - name: true
                      productCount: 30
                - id: null
                  slug: max_savings_percentage
                  name: Savings
                  attributeGroupType: computed_attribute
                  type: range
                  values:
                    - min: 0
                      max: 20
                      productCount: 42
                - id: 2
                  slug: size
                  name: Size
                  attributeGroupType: ''
                  type: attributes
                  values:
                    - name: S
                      productCount: 11
                      id: 15
                      value: s
                    - name: M
                      productCount: 23
                      id: 18
                      value: m
                    - name: L
                      productCount: 8
                      id: 23
                      value: l
                - id: 1
                  slug: color
                  name: Color
                  attributeGroupType: ''
                  type: attributes
                  values:
                    - name: Black
                      productCount: 9
                      id: 21
                      value: black
                    - name: Blue
                      productCount: 15
                      id: 27
                      value: blue
                    - name: Green
                      productCount: 18
                      id: 31
                      value: green
                - id: 3
                  slug: brand
                  name: Brand
                  attributeGroupType: ''
                  type: attributes
                  values:
                    - name: SCAYLE
                      productCount: 36
                      id: 37
                      value: scayle
                    - name: About You
                      productCount: 6
                      id: 62
                      value: about_you
                - id: 318
                  slug: materialStyle
                  name: Material
                  attributeGroupType: design
                  type: attributes
                  values:
                    - name: Cotton
                      productCount: 32
                      id: 87
                      value: cotton
                    - name: Jersey
                      productCount: 10
                      id: 91
                      value: jersey
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/filters?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const filters = await client.filters.get();

            console.log(filters);
  /v1/filters/{groupName}/values:
    get:
      tags:
        - filters
      summary: List values
      description: >
        Retrieve the filter values and product counts for a specific
        `groupName`, for example:
        `/v1/filters/sale/values?filters[category]=20201`

        will show how many products in the category "20201" are on sale and how
        many of them are not on sale.


        Any valid attribute group can be used. Additionally, these special
        filters are supported: `sale`, `categoryids`, `savings`, `prices`,
        `brands`, and `isnew`.
      operationId: fetch-filter-by-group
      parameters:
        - name: groupName
          in: path
          description: Group Name
          required: true
          explode: false
          schema:
            type: string
            example: sale
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/filterCategory'
        - $ref: '#/components/parameters/filterTerm'
        - $ref: '#/components/parameters/disableFuzziness'
        - $ref: '#/components/parameters/filterIsnew'
        - $ref: '#/components/parameters/filterSellableAt'
        - $ref: '#/components/parameters/filterAttributeKey'
        - $ref: '#/components/parameters/negativeFilterAttributeKey'
        - $ref: '#/components/parameters/campaignKey'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterValues'
              example:
                - name: S
                  productCount: 11
                  id: 15
                  value: s
                - name: M
                  productCount: 23
                  id: 18
                  value: m
                - name: L
                  productCount: 8
                  id: 23
                  value: l
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/filters/{{groupName}}/values?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const values = await client.filters.getValues("sale");

            console.log(values)
  /v1/wishlists/{wishlistId}:
    get:
      tags:
        - wishlists
      summary: Get a wishlist
      description: >
        This endpoint allows you to retrieve items previously placed in a
        customer's wishlist.


        * The wishlist key is created on demand when an item is added to the
        wishlist.

        * Using the `with=` parameter, it is possible to retrieve extra
        information in the response. Please check the next section for all
        options.
      operationId: fetch-wishlist-by-key
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/wishlistId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/pricePromotionKey'
        - $ref: '#/components/parameters/wishlistWith'
      responses:
        '200':
          description: request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wishlist'
              example:
                key: wishlist-id
                items:
                  - key: 043c2ec6c6390dd0ac5519190a57c88c
                    packageId: 1
                    quantity: 1
                    status: available
                    customData: {}
                    variantId: null
                    productId: 7
                    itemGroup: null
                    product:
                      id: 7
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2023-09-22T14:34:44+00:00'
                      updatedAt: '2024-04-10T10:30:08+00:00'
                      indexedAt: '2024-04-23T17:22:14+00:00'
                      firstLiveAt: '2023-09-22T14:35:29+00:00'
                      masterKey: master-key
                      referenceKey: external-reference
                      attributes:
                        name:
                          id: 20005
                          key: name
                          label: Name
                          type: ''
                          multiSelect: false
                          values:
                            id: 20005
                            label: Women dress
                            value: name
                        color:
                          id: 1
                          key: color
                          label: Color
                          type: ''
                          multiSelect: true
                          values:
                            - id: 38932
                              label: Black
                              value: black
                        brand:
                          id: 3
                          key: brand
                          label: Brand
                          type: ''
                          multiSelect: false
                          values:
                            id: 232
                            label: SCAYLE
                            value: scayle
                      advancedAttributes:
                        combineWith:
                          id: 1223
                          key: combineWith
                          label: Combine with Products
                          type: ''
                          values:
                            - fieldSet:
                                - - value: '51'
                                  - value: '63'
                                  - value: '27'
                              groupSet: []
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66484
                                label: Product
                                value: product
                        - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66483
                                label: Detail
                                value: detail
                      variants:
                        - id: 1
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 15
                                label: S
                                value: s
                          firstLiveAt: '2023-09-22T14:36:42+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T09:32:13+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 21
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        - id: 5
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 18
                                label: M
                                value: m
                          firstLiveAt: '2023-09-22T14:35:29+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T03:17:39+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 7
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                      customData: {}
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/wishlists/{{wishlistId}}?shopId={{shopId}}'
            \
              --header 'X-Access-Token: {{ACCESSTOKEN}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.wishlist.get("myshop_customer_1234");

            console.log(response.items);
  /v1/wishlists/{wishlistId}/items:
    post:
      tags:
        - wishlists
      summary: Add an item
      description: >
        Through this endpoint, you are able to add items to a customer's
        wishlist. Some important points should be taken into consideration:


        * Items can be added using either its product ID or the variant ID.


        * There is a limit regarding the maximum amount of items that might be
        added to the wishlist. The current limit is **200 items**.
      operationId: add-wishlist-item
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/wishlistId'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/pricePromotionKey'
        - $ref: '#/components/parameters/wishlistWith'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWishlistItemBody'
            examples:
              WithProductId:
                value:
                  productId: 7
              WithVariantId:
                value:
                  variantId: 5
      responses:
        '201':
          description: request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wishlist'
              example:
                key: wishlist-id
                items:
                  - key: 043c2ec6c6390dd0ac5519190a57c88c
                    packageId: 1
                    quantity: 1
                    status: available
                    customData: {}
                    variantId: null
                    productId: 7
                    itemGroup: null
                    product:
                      id: 7
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2023-09-22T14:34:44+00:00'
                      updatedAt: '2024-04-10T10:30:08+00:00'
                      indexedAt: '2024-04-23T17:22:14+00:00'
                      firstLiveAt: '2023-09-22T14:35:29+00:00'
                      masterKey: master-key
                      referenceKey: external-reference
                      attributes:
                        name:
                          id: 20005
                          key: name
                          label: Name
                          type: ''
                          multiSelect: false
                          values:
                            id: 20005
                            label: Women dress
                            value: name
                        color:
                          id: 1
                          key: color
                          label: Color
                          type: ''
                          multiSelect: true
                          values:
                            - id: 38932
                              label: Black
                              value: black
                        brand:
                          id: 3
                          key: brand
                          label: Brand
                          type: ''
                          multiSelect: false
                          values:
                            id: 232
                            label: SCAYLE
                            value: scayle
                      advancedAttributes:
                        combineWith:
                          id: 1223
                          key: combineWith
                          label: Combine with Products
                          type: ''
                          values:
                            - fieldSet:
                                - - value: '51'
                                  - value: '63'
                                  - value: '27'
                              groupSet: []
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66484
                                label: Product
                                value: product
                        - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66483
                                label: Detail
                                value: detail
                      variants:
                        - id: 1
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 15
                                label: S
                                value: s
                          firstLiveAt: '2023-09-22T14:36:42+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T09:32:13+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 21
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        - id: 5
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 18
                                label: M
                                value: m
                          firstLiveAt: '2023-09-22T14:35:29+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T03:17:39+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 7
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                      customData: {}
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Conflict - wishlist item for given variant already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wishlist'
              example:
                key: wishlist-id
                items:
                  - key: 043c2ec6c6390dd0ac5519190a57c88c
                    packageId: 1
                    quantity: 1
                    status: available
                    customData: {}
                    variantId: null
                    productId: 7
                    itemGroup: null
                    product:
                      id: 7
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2023-09-22T14:34:44+00:00'
                      updatedAt: '2024-04-10T10:30:08+00:00'
                      indexedAt: '2024-04-23T17:22:14+00:00'
                      firstLiveAt: '2023-09-22T14:35:29+00:00'
                      masterKey: master-key
                      referenceKey: external-reference
                      attributes:
                        name:
                          id: 20005
                          key: name
                          label: Name
                          type: ''
                          multiSelect: false
                          values:
                            id: 20005
                            label: Women dress
                            value: name
                        color:
                          id: 1
                          key: color
                          label: Color
                          type: ''
                          multiSelect: true
                          values:
                            - id: 38932
                              label: Black
                              value: black
                        brand:
                          id: 3
                          key: brand
                          label: Brand
                          type: ''
                          multiSelect: false
                          values:
                            id: 232
                            label: SCAYLE
                            value: scayle
                      advancedAttributes:
                        combineWith:
                          id: 1223
                          key: combineWith
                          label: Combine with Products
                          type: ''
                          values:
                            - fieldSet:
                                - - value: '51'
                                  - value: '63'
                                  - value: '27'
                              groupSet: []
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66484
                                label: Product
                                value: product
                        - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66483
                                label: Detail
                                value: detail
                      variants:
                        - id: 1
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 15
                                label: S
                                value: s
                          firstLiveAt: '2023-09-22T14:36:42+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T09:32:13+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 21
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        - id: 5
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 18
                                label: M
                                value: m
                          firstLiveAt: '2023-09-22T14:35:29+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T03:17:39+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 7
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                      customData: {}
        '412':
          description: product currently unavailable / no variant for product id found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wishlist'
              example:
                key: wishlist-id
                items:
                  - key: 043c2ec6c6390dd0ac5519190a57c88c
                    packageId: 1
                    quantity: 1
                    status: available
                    customData: {}
                    variantId: null
                    productId: 7
                    itemGroup: null
                    product:
                      id: 7
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2023-09-22T14:34:44+00:00'
                      updatedAt: '2024-04-10T10:30:08+00:00'
                      indexedAt: '2024-04-23T17:22:14+00:00'
                      firstLiveAt: '2023-09-22T14:35:29+00:00'
                      masterKey: master-key
                      referenceKey: external-reference
                      attributes:
                        name:
                          id: 20005
                          key: name
                          label: Name
                          type: ''
                          multiSelect: false
                          values:
                            id: 20005
                            label: Women dress
                            value: name
                        color:
                          id: 1
                          key: color
                          label: Color
                          type: ''
                          multiSelect: true
                          values:
                            - id: 38932
                              label: Black
                              value: black
                        brand:
                          id: 3
                          key: brand
                          label: Brand
                          type: ''
                          multiSelect: false
                          values:
                            id: 232
                            label: SCAYLE
                            value: scayle
                      advancedAttributes:
                        combineWith:
                          id: 1223
                          key: combineWith
                          label: Combine with Products
                          type: ''
                          values:
                            - fieldSet:
                                - - value: '51'
                                  - value: '63'
                                  - value: '27'
                              groupSet: []
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66484
                                label: Product
                                value: product
                        - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66483
                                label: Detail
                                value: detail
                      variants:
                        - id: 1
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 15
                                label: S
                                value: s
                          firstLiveAt: '2023-09-22T14:36:42+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T09:32:13+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 21
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        - id: 5
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 18
                                label: M
                                value: m
                          firstLiveAt: '2023-09-22T14:35:29+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T03:17:39+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 7
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                      customData: {}
        '413':
          description: wishlist exceeds maximum items size limitation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wishlist'
              example:
                key: wishlist-id
                items:
                  - key: 043c2ec6c6390dd0ac5519190a57c88c
                    packageId: 1
                    quantity: 1
                    status: available
                    customData: {}
                    variantId: null
                    productId: 7
                    itemGroup: null
                    product:
                      id: 7
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2023-09-22T14:34:44+00:00'
                      updatedAt: '2024-04-10T10:30:08+00:00'
                      indexedAt: '2024-04-23T17:22:14+00:00'
                      firstLiveAt: '2023-09-22T14:35:29+00:00'
                      masterKey: master-key
                      referenceKey: external-reference
                      attributes:
                        name:
                          id: 20005
                          key: name
                          label: Name
                          type: ''
                          multiSelect: false
                          values:
                            id: 20005
                            label: Women dress
                            value: name
                        color:
                          id: 1
                          key: color
                          label: Color
                          type: ''
                          multiSelect: true
                          values:
                            - id: 38932
                              label: Black
                              value: black
                        brand:
                          id: 3
                          key: brand
                          label: Brand
                          type: ''
                          multiSelect: false
                          values:
                            id: 232
                            label: SCAYLE
                            value: scayle
                      advancedAttributes:
                        combineWith:
                          id: 1223
                          key: combineWith
                          label: Combine with Products
                          type: ''
                          values:
                            - fieldSet:
                                - - value: '51'
                                  - value: '63'
                                  - value: '27'
                              groupSet: []
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66484
                                label: Product
                                value: product
                        - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66483
                                label: Detail
                                value: detail
                      variants:
                        - id: 1
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 15
                                label: S
                                value: s
                          firstLiveAt: '2023-09-22T14:36:42+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T09:32:13+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 21
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        - id: 5
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 18
                                label: M
                                value: m
                          firstLiveAt: '2023-09-22T14:35:29+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T03:17:39+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 7
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                      customData: {}
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location --request POST
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/wishlists/{{wishlistId}}/items?shopId={{shopId}}'
            \
              --header 'X-Access-Token: {{ACCESSTOKEN}}' \
              --data '{
                "variantId": 1
              }'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.wishlist.addItem(
              "myshop_customer_1234",
              {
                variantId: 1
              }
            );

            console.log(response.wishlist);
  /v1/wishlists/{wishlistId}/items/{itemKey}:
    delete:
      tags:
        - wishlists
      summary: Remove a  item
      description: >
        This endpoint allows you to remove an item previously added to any given
        wishlist.



        __Note__: It will remove single items from the wishlist, not the entire
        wishlist.
      operationId: remove-wishlist-item
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/AccessToken'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/wishlistId'
        - $ref: '#/components/parameters/wishlistItemKey'
        - $ref: '#/components/parameters/campaignKey'
        - $ref: '#/components/parameters/pricePromotionKey'
        - $ref: '#/components/parameters/wishlistWith'
      responses:
        '200':
          description: request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wishlist'
              example:
                key: wishlist-id
                items:
                  - key: 043c2ec6c6390dd0ac5519190a57c88c
                    packageId: 1
                    quantity: 1
                    status: available
                    customData: {}
                    variantId: null
                    productId: 7
                    itemGroup: null
                    product:
                      id: 7
                      isActive: true
                      isSoldOut: false
                      isNew: false
                      createdAt: '2023-09-22T14:34:44+00:00'
                      updatedAt: '2024-04-10T10:30:08+00:00'
                      indexedAt: '2024-04-23T17:22:14+00:00'
                      firstLiveAt: '2023-09-22T14:35:29+00:00'
                      masterKey: master-key
                      referenceKey: external-reference
                      attributes:
                        name:
                          id: 20005
                          key: name
                          label: Name
                          type: ''
                          multiSelect: false
                          values:
                            id: 20005
                            label: Women dress
                            value: name
                        color:
                          id: 1
                          key: color
                          label: Color
                          type: ''
                          multiSelect: true
                          values:
                            - id: 38932
                              label: Black
                              value: black
                        brand:
                          id: 3
                          key: brand
                          label: Brand
                          type: ''
                          multiSelect: false
                          values:
                            id: 232
                            label: SCAYLE
                            value: scayle
                      advancedAttributes:
                        combineWith:
                          id: 1223
                          key: combineWith
                          label: Combine with Products
                          type: ''
                          values:
                            - fieldSet:
                                - - value: '51'
                                  - value: '63'
                                  - value: '27'
                              groupSet: []
                      images:
                        - hash: images/52d08cac15a71b5c02428c7989f634b9
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66484
                                label: Product
                                value: product
                        - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                          attributes:
                            imageFocus:
                              id: 1253
                              key: imageFocus
                              label: Image Focus
                              type: ''
                              multiSelect: false
                              values:
                                id: 66483
                                label: Detail
                                value: detail
                      variants:
                        - id: 1
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 15
                                label: S
                                value: s
                          firstLiveAt: '2023-09-22T14:36:42+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T09:32:13+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 21
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                        - id: 5
                          referenceKey: external-reference
                          attributes:
                            size:
                              id: 2
                              key: size
                              label: Size
                              type: ''
                              multiSelect: false
                              values:
                                id: 18
                                label: M
                                value: m
                          firstLiveAt: '2023-09-22T14:35:29+00:00'
                          createdAt: '2023-09-22T14:34:45+00:00'
                          updatedAt: '2024-04-23T03:17:39+00:00'
                          stock:
                            supplierId: 3
                            warehouseId: 1
                            quantity: 7
                            isSellableWithoutStock: false
                          price:
                            currencyCode: EUR
                            withTax: 4999
                            withoutTax: 4201
                            recommendedRetailPrice: null
                            tax:
                              vat:
                                amount: 798
                                rate: 0.19
                            appliedReductions: []
                          customData: {}
                      customData: {}
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/DependencyLocked'
        '424':
          $ref: '#/components/responses/DependencyFailed'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location --request DELETE
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/wishlists/{{wishlistId}}/items/{{itemKey}}?shopId={{shopId}}'
            \
              --header 'X-Access-Token: {{ACCESSTOKEN}}'
        - lang: ts
          label: Typescript
          source: |
            const response = await client.wishlist.deleteItem(
              "myshop_customer_1234",
              "c4ca4238a0b923820dcc509a6f75849b" // item key
            );

            console.log(response.items);
  /v1/navigation/trees:
    get:
      tags:
        - navigation-v1
      summary: List navigation trees
      description: List navigation trees assigned to the given shop.
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/filterVisibleAt'
        - $ref: '#/components/parameters/navigationWith'
      operationId: fetch-navigation-trees
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavigationTreeResponse'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/navigation/trees?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const navigations = await client.navigation.getAll();

            console.log(navigations[0].name);
  /v1/navigation/trees/{id}:
    get:
      tags:
        - navigation-v1
      summary: Get a navigation tree
      description: Gets a specific navigation tree by its unique identifier.
      operationId: fetch-navigation-tree-by-id
      parameters:
        - name: id
          in: path
          description: The numeric unique ID.
          required: true
          explode: false
          schema:
            type: integer
            example: 123
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/filterVisibleAt'
        - $ref: '#/components/parameters/navigationWith'
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavigationTree'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/navigation/trees/{{navigationId}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            const navigationTree = await client.navigation.getById(1);

            console.log(navigationTree)
  /v2/navigations:
    get:
      tags:
        - navigation-v2
      summary: List navigation trees v2
      description: >
        List navigation trees assigned to the given shop.


        **Polymorphic Navigation Items**


        This v2 endpoint returns navigation items using a polymorphic `oneOf`
        structure based on the `target` discriminator:


        - Each navigation item has common fields at the top level: `id`, `name`,
        `target`, `assets`, `visibleFrom`, `visibleTo`, `children`, `customData`

        - The `target` field indicates the type of navigation item and
        determines which target-specific data is present:
          - `target: category` → Response includes `categoryTarget` with category-specific data
          - `target: page` → Response includes `pageTarget` with page-specific data
          - `target: individual-link` → Response includes `linkTarget` with hyperlink data
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/filterVisibleAt'
        - $ref: '#/components/parameters/navigationWith'
      operationId: fetch-navigation-trees-v2
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavigationTreeV2Response'
              example:
                - id: 1
                  referenceKey: main-navigation
                  name: Main Navigation
                  items:
                    - id: 101
                      name: Women
                      target: category
                      assets: {}
                      visibleFrom: null
                      visibleTo: null
                      children: []
                      customData: {}
                      categoryTarget:
                        categoryId: 123
                        category:
                          id: 123
                          path: /women
                          name: Women
                          slug: women
                          parentId: 0
                          rootlineIds:
                            - 123
                          childrenIds: []
                          properties: []
                          isHidden: false
                          depth: 1
                          supportedFilter:
                            - size
                            - color
                          shopLevelCustomData: {}
                          countryLevelCustomData: {}
                          children: []
                        filters:
                          - type: attribute
                            attributeFilter:
                              group:
                                id: 1
                                key: color
                                label: Color
                                type: design
                                multiSelect: true
                              values:
                                - id: 27
                                  value: blue
                                  label: Blue
                          - type: boolean
                            booleanFilter:
                              slug: sale
                              value: true
                              label: Sale
                    - id: 102
                      name: About Us
                      target: page
                      assets: {}
                      visibleFrom: null
                      visibleTo: null
                      children: []
                      customData: {}
                      pageTarget:
                        page: /about
                    - id: 103
                      name: External Link
                      target: individual-link
                      assets: {}
                      visibleFrom: null
                      visibleTo: null
                      children: []
                      customData: {}
                      linkTarget:
                        url: https://example.com
                        openInNewWindow: true
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v2/navigations?shopId={{shopId}}'
  /v2/navigations/{referenceKey}:
    get:
      tags:
        - navigation-v2
      summary: Get a navigation tree v2
      description: >
        Gets a specific navigation tree by its reference key.


        **Polymorphic Navigation Items**


        This v2 endpoint returns navigation items using a polymorphic `oneOf`
        structure based on the `target` discriminator:


        - Each navigation item has common fields at the top level: `id`, `name`,
        `target`, `assets`, `visibleFrom`, `visibleTo`, `children`, `customData`

        - The `target` field indicates the type of navigation item and
        determines which target-specific data is present:
          - `target: category` → Response includes `categoryTarget` with category-specific data
          - `target: page` → Response includes `pageTarget` with page-specific data
          - `target: individual-link` → Response includes `linkTarget` with hyperlink data
      operationId: fetch-navigation-tree-by-reference-key-v2
      parameters:
        - name: referenceKey
          in: path
          description: The reference key of the navigation tree.
          required: true
          explode: false
          schema:
            type: string
            example: main-navigation
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
        - $ref: '#/components/parameters/filterVisibleAt'
        - $ref: '#/components/parameters/navigationWith'
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavigationTreeV2'
              example:
                id: 1
                referenceKey: main-navigation
                name: Main Navigation
                items:
                  - id: 101
                    name: Women
                    target: category
                    assets: {}
                    visibleFrom: null
                    visibleTo: null
                    customData: {}
                    categoryTarget:
                      categoryId: 123
                      category:
                        id: 123
                        path: /women
                        name: Women
                        slug: women
                        parentId: 0
                        rootlineIds:
                          - 123
                        childrenIds:
                          - 456
                        properties: []
                        isHidden: false
                        depth: 1
                        supportedFilter:
                          - size
                          - color
                        shopLevelCustomData: {}
                        countryLevelCustomData: {}
                        children: []
                      filters: []
                    children:
                      - id: 104
                        name: Dresses
                        target: category
                        assets: {}
                        visibleFrom: null
                        visibleTo: null
                        customData: {}
                        categoryTarget:
                          categoryId: 456
                          category:
                            id: 456
                            path: /women/dresses
                            name: Dresses
                            slug: dresses
                            parentId: 123
                            rootlineIds:
                              - 123
                              - 456
                            childrenIds: []
                            properties: []
                            isHidden: false
                            depth: 2
                            supportedFilter:
                              - size
                              - color
                              - length
                            shopLevelCustomData: {}
                            countryLevelCustomData: {}
                            children: []
                          filters: []
                        children: []
                  - id: 102
                    name: About Us
                    target: page
                    assets: {}
                    visibleFrom: null
                    visibleTo: null
                    children: []
                    customData: {}
                    pageTarget:
                      page: /about
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v2/navigations/{{referenceKey}}?shopId={{shopId}}'
  /v1/orders:
    post:
      tags:
        - orders
      summary: Create an Order
      description: >
        You can use `/v1/orders` to create orders in the SCAYLE Panel.


        By default, orders will be created with the variant price assigned in
        the SCAYLE Panel, taking into account promotions and vouchers provided
        in the request

        **Note:** The Order endpoint requires authentication and is accessible
        only with valid credentials or a properly scoped token.
      operationId: create-order
      parameters:
        - $ref: '#/components/parameters/XShopId'
        - $ref: '#/components/parameters/shopId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderRequest'
            example:
              additionalMetaData: {}
              referenceKey: >-
                InGidcPDmL8fGkv02a3sSAgAr7ySMBfa66iw4MriYgUNI3Boq369rBOZW3stlKLWSqIjB2dXCGNbCxoM5Xww4cI8cULUoGBFJHH0
              channel:
                id: 101
              application:
                id: 139
              voucher:
                code: TEST
              customer:
                id: 123456
                referenceKey: '124357'
                birthDate: '1981-02-02'
                customData:
                  score:
                    generatedOn: '2018-05-20T19:45:15+00:00'
                    result: green
                email: anna.fohlmeister@scayle.com
                firstName: Anna
                lastName: Fohlmeister
                gender: f
                groups:
                  - employee
                identities:
                  - idpCode: keycloak
                  - externalUserId: '123'
                    idpCode: okta
                phone: 0049/1234567890
                publicKey: '666'
                status:
                  isActive: true
                  isGuestCustomer: false
                title: Prof.
                type: personal
                createdAt: '2025-07-18T16:28:44+02:00'
              address:
                billing:
                  additional: c/o Something
                  city: Hamburg
                  countryCode: DEU
                  firstName: Anna
                  gender: f
                  houseNumber: '12'
                  lastName: Fohlmeister
                  state: Sachsen
                  street: Wolfgangsweg
                  title: Prof.
                  zipCode: '20459'
                shipping:
                  additional: c/o Something
                  city: Hamburg
                  countryCode: DEU
                  firstName: Anna
                  gender: f
                  houseNumber: '12'
                  lastName: Fohlmeister
                  state: Sachsen
                  street: Wolfgangsweg
                  title: Prof.
                  zipCode: '20459'
                  collectionPoint:
                    key: 1003-123456
                    type: dhl_packstation
                    customerKey: '8612121212'
                    description: Packstation 123
              carrier:
                carrierKey: dhl
                deliveryDates:
                  maximum: '2025-12-17'
                  minimum: '2025-12-17'
                shippingPolicyKey: standard_delivery
              paymentTypes:
                - type: paypal
                  authorizedValue: 3325
                  confirmationData:
                    subscriptionPaymentReference: I-1TJ3GAGG82Y9
              cost:
                withTax: 12000
                withTaxWithoutServiceCosts: 11500
                withoutTax: 10084
                tax:
                  vat:
                    amount: 1916
                itemGroups:
                  groupA:
                    brutto: 6000
                    netto: 5042
                    tax: 958
                  groupB:
                    brutto: 5500
                    netto: 4620
                    tax: 880
                appliedFees:
                  - amount:
                      withTax: 500
                      withoutTax: 420
                    tax:
                      vat:
                        amount: 80
                        rate: 0.19
                    category: shipping
                    key: express_delivery
                  - amount:
                      withTax: 300
                      withoutTax: 252
                    tax:
                      vat:
                        amount: 48
                        rate: 0.19
                    category: payment
                    key: credit_card_fee
              items:
                - variantId: 123456780
                  customData:
                    pricePromotionKey: someValue
                    isCorrectionalGlass: true
                  price:
                    withTax: 9000
                    tax:
                      vat:
                        rate: 0.19
                - variantId: 123456781
                  initial:
                    quantity: 3
                  promotion:
                    id: 65a7926b17a8fb4e64ae62c6
                - customData:
                    isCorrectionalGlass: true
                - variantId: 123456782
                  itemGroup:
                    id: '123456'
                    isMainItem: true
                    isRequired: true
                  initial:
                    quantity: 1
                - variantId: 123456783
                  itemGroup:
                    id: '123456'
                    isMainItem: false
                    isRequired: true
                  initial:
                    quantity: 2
              customData:
                campaignKey: subscription-campaign-key
      responses:
        '201':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
              example:
                address:
                  billing:
                    additional: c/o Something
                    city: Hamburg
                    countryCode: DEU
                    firstName: Anna
                    gender: f
                    houseNumber: 12
                    lastName: Fohlmeister
                    state: Sachsen
                    street: Wolfgangsweg
                    title: Prof.
                    zipCode: 20459
                  shipping:
                    additional: c/o Something
                    city: Hamburg
                    countryCode: DEU
                    firstName: Anna
                    gender: f
                    houseNumber: 12
                    lastName: Fohlmeister
                    state: Sachsen
                    street: Wolfgangsweg
                    title: Prof.
                    zipCode: 20459
                    collectionPoint:
                      key: 1003-123456
                      type: dhl_packstation
                      customerKey: '8612121212'
                      description: Packstation 123
                basketKey: external_order_534f51c5c9d5
                channel:
                  id: 101
                  key: de_online
                  name: Germany Online Store
                  type: marketplace
                confirmedAt: '2025-05-22T09:49:35+02:00'
                contacts:
                  - type: carrier
                cost:
                  appliedFees:
                    - amount:
                        withoutTax: 500
                        withTax: 600
                      category: delivery
                      key: standard-shipping
                      option: DHL
                      tax:
                        vat:
                          amount: 100
                          rate: 0.2
                  appliedReductions:
                    - amount:
                        absoluteWithTax: 200
                        relative: 0.1
                      category: voucher
                      code: SUMMER10
                      displayName: 10% Summer Discount
                      type: absolute
                  costCapture: 1500
                  tax:
                    vat:
                      amount: 250
                  withoutTax: 1250
                  withoutTaxWithMembershipDiscount: 1200
                  withTax: 1500
                  withTaxWithMembershipDiscountWithoutServiceCosts: 1400
                  hasExternalPrices: false
                  itemGroups:
                    group-123:
                      brutto: 1000
                      bruttoDiscount: 200
                      bruttoDiscountWithoutMainProduct: 50
                      bruttoWithoutMainProduct: 800
                      netto: 800
                      nettoWithoutMainProduct: 650
                      tax: 200
                      taxWithoutMainProduct: 150
                    group-456:
                      brutto: 500
                      bruttoDiscount: 100
                      bruttoWithoutMainProduct: 400
                      netto: 400
                      tax: 100
                createdAt: '2025-05-22T09:49:34+02:00'
                currencyCode: EUR
                customData:
                  campaignKey: subscription-campaign-key
                  originDevice: desktop
                  priceCalculation: old
                customer:
                  createdAt: '2025-07-18T16:28:44+02:00'
                  email: anna.fohlmeister@scayle.com
                  firstName: Anna
                  lastName: Fohlmeister
                  gender: f
                  id: 123456
                  ipAddress: 172.18.0.3
                  referenceKey: '124357'
                  status:
                    isActive: true
                    isAnonymous: false
                    isGuestCustomer: false
                    isTestCustomer: false
                  type: personal
                  updatedAt: '2025-07-25T16:28:44+02:00'
                  birthDate: '1981-02-02'
                  customData:
                    score:
                      generatedOn: '2018-05-20T19:45:15+00:00'
                      result: green
                  groups:
                    - employee
                  identities:
                    - idpCode: keycloak
                    - externalUserId: '123'
                      idpCode: okta
                  phone: 0049/1234567890
                  publicKey: '666'
                detailedStatus:
                  billing:
                    code: billing_payment_pending
                    name: Zahlung reserviert
                  order:
                    code: order_confirmed
                    name: Confirmed
                  shipping:
                    code: shipping_open
                    name: Neu
                id: 423
                items:
                  - createdAt: '2025-05-22T09:49:34+02:00'
                    currency: EUR
                    customData:
                      pricePromotionKey: someValue
                    id: 786
                    isManuallyReturnedByCci: false
                    key: 61b4a64be663682e8cb037d9719ad8cd
                    merchant:
                      id: 1
                    packageId: 1
                    price:
                      overrideWithTax: 0
                      overrideWithoutTax: 0
                      tax:
                        vat:
                          amount: 559
                          rate: 0.19
                      undiscountedWithOutTax: 2941
                      undiscountedWithTax: 3500
                      withTax: 3500
                      withoutTax: 2941
                    product:
                      createdAt: '2025-05-22T09:49:35+02:00'
                      id: 6620672
                      name: Esprit Röhrenhose
                      updatedAt: '2025-05-22T09:49:35+02:00'
                    status: available
                    updatedAt: '2025-05-22T09:49:35+02:00'
                    variant:
                      createdAt: '2025-05-22T09:49:35+02:00'
                      id: 45484840
                      referenceKey: '1150354368'
                      stock:
                        supplierId: 1
                      updatedAt: '2025-05-22T09:49:35+02:00'
                    warehouseId: 1
                packages:
                  - carrierKey: HERMES_KLV
                    deliveryDate:
                      maximum: '2025-05-27'
                      minimum: '2025-05-24'
                    deliveryStatus: delegation_pending
                    hasExpectedAvailabilityAt: false
                    id: 1
                payment:
                  - amount: 1334
                    data:
                      success: true
                    isGiftCard: false
                    key: accounting
                    transactionKey: DG0452755Z4
                referenceKey: qqqwwwwee1149
                shipping:
                  policy: earliest_shipping
                shop:
                  country: DEU
                  id: 139
                  language: de
                status: payment_reserved
                updatedAt: '2025-05-22T09:49:35+02:00'
        '400':
          description: Bad request
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Order is in unexpected state
        '406':
          description: >
            Order creation was not successful: no items available. Or order
            changed between Pending and Confirmation
        '408':
          description: Canceled Request
        '409':
          description: Order is already in state Pended or Confirmed
        '410':
          description: Order cannot be pended due to missing information
        '412':
          description: Validation failure (content validation failed)
        '417':
          description: Consumer does not exists (or anonymous)
        '420':
          description: >
            GiftCard Capture on Confirmation failed due to insufficient funds.
            Or the payment method is not enabled
        '422':
          description: Validation failure (schema validation failed)
        '424':
          description: Failed dependency
        '429':
          $ref: '#/components/responses/RequestLimitExceeded'
        '451':
          description: Order has customer or item denials
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/orders?shopId={{shopId}}'

            --header 'Content-Type: application/json'

            --header 'Authorization: Basic dGVzdDp0ZXN0'

            --data '{
                "additionalMetaData": {},
                "referenceKey": "InGidcPDmL8fGkv02a3sSAgAr7ySMBfa66iw4MriYgUNI3Boq369rBOZW3stlKLWSqIjB2dXCGNbCxoM5Xww4cI8cULUoGBFJHH0",
                "channel": {
                  "id": 101
                },
                "application": {
                  "id": 139
                },
                "voucher": {
                  "code": "TEST"
                },
                "customer": {
                  "id": 123456,
                  "referenceKey": "124357",
                  "birthDate": "1981-02-02",
                  "customData": {
                    "score": {
                      "generatedOn": "2018-05-20T19:45:15+00:00",
                      "result": "green"
                    }
                  },
                  "email": "anna.fohlmeister@scayle.com",
                  "firstName": "Anna",
                  "lastName": "Fohlmeister",
                  "gender": "f",
                  "groups": [
                    "employee"
                  ],
                  "identities": [
                    {
                      "idpCode": "keycloak"
                    },
                    {
                      "externalUserId": "123",
                      "idpCode": "okta"
                    }
                  ],
                  "phone": "0049/1234567890",
                  "publicKey": "666",
                  "status": {
                    "isActive": true,
                    "isGuestCustomer": false
                  },
                  "title": "Prof.",
                  "type": "personal",
                  "createdAt": "2025-07-18T16:28:44+02:00"
                },
                "address": {
                  "billing": {
                    "additional": "c/o Something",
                    "city": "Hamburg",
                    "countryCode": "DEU",
                    "firstName": "Anna",
                    "gender": "f",
                    "houseNumber": "12",
                    "lastName": "Fohlmeister",
                    "state": "Sachsen",
                    "street": "Wolfgangsweg",
                    "title": "Prof.",
                    "zipCode": "20459"
                  },
                  "shipping": {
                    "additional": "c/o Something",
                    "city": "Hamburg",
                    "countryCode": "DEU",
                    "firstName": "Anna",
                    "gender": "f",
                    "houseNumber": "12",
                    "lastName": "Fohlmeister",
                    "state": "Sachsen",
                    "street": "Wolfgangsweg",
                    "title": "Prof.",
                    "zipCode": "20459"
                    "collectionPoint": {
                      "key": "1003-123456",
                      "type": "dhl_packstation",
                      "customerKey": "8612121212",
                      "description": "Packstation 123"
                    }
                  }
                },
                "carrier": {
                  "carrierKey": "dhl",
                  "deliveryDates": {
                    "maximum": "2025-12-17",
                    "minimum": "2025-12-17"
                  },
                  "shippingPolicyKey": "standard_delivery"
                },
                "paymentTypes": [
                  {
                    "type": "paypal",
                    "authorizedValue": 3325,
                    "confirmationData": {
                      "subscriptionPaymentReference": "I-1TJ3GAGG82Y9"
                    }
                  }
                ],
                "cost": {
                  "withTax": 12000,
                  "withTaxWithoutServiceCosts": 11500,
                  "withoutTax": 10084,
                  "tax": {
                    "vat": {
                      "amount": 1916
                    }
                  },
                  "itemGroups": {
                    "groupA": {
                      "brutto": 6000,
                      "netto": 5042,
                      "tax": 958
                    },
                    "groupB": {
                      "brutto": 5500,
                      "netto": 4620,
                      "tax": 880
                    }
                  },
                  "appliedFees": [
                    {
                      "amount": {
                        "withTax": 500,
                        "withoutTax": 420
                      },
                      "tax": {
                        "vat": {
                          "amount": 80,
                          "rate": 0.19
                        }
                      },
                      "category": "shipping",
                      "key": "express_delivery"
                    },
                    {
                      "amount": {
                        "withTax": 300,
                        "withoutTax": 252
                      },
                      "tax": {
                        "vat": {
                          "amount": 48,
                          "rate": 0.19
                        }
                      },
                      "category": "payment",
                      "key": "credit_card_fee"
                    }
                  ]
                },
                "items": [
                  {
                    "variantId": 123456780,
                    "customData": {
                      "pricePromotionKey": "someValue",
                      "isCorrectionalGlass": true
                    },
                    "price": {
                      "withTax": 9000,
                      "tax": {
                        "vat": {
                          "rate": 0.19
                        }
                      }
                    }
                  },
                  {
                    "variantId": 123456781,
                    "initial": {
                      "quantity": 3
                    },
                    "promotion": {
                      "id": "65a7926b17a8fb4e64ae62c6"
                    }
                  },
                  {
                    "customData": {
                      "isCorrectionalGlass": true
                    }
                  },
                  {
                    "variantId": 123456782,
                    "itemGroup": {
                      "id": "123456",
                      "isMainItem": true,
                      "isRequired": true
                    },
                    "initial": {
                      "quantity": 1
                    }
                  },
                  {
                    "variantId": 123456783,
                    "itemGroup": {
                      "id": "123456",
                      "isMainItem": false,
                      "isRequired": true
                    },
                    "initial": {
                      "quantity": 2
                    }
                  }
                ],
                "customData": {
                  "campaignKey": "subscription-campaign-key"
                }
            }'
  /v1/attributes:
    get:
      summary: List the attribute groups
      operationId: fetch-attribute-groups
      description: >
        Retrieve the list of attribute groups. In casual conversations, the term
        "attributes" might be used to describe

        either attribute groups or individual attribute values. Although this
        endpoint is labeled as returning attributes,

        it actually provides attribute groups, and optionally, the associated
        attribute values for each group.
      tags:
        - attributes
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/attributes.get_all.query.ids'
        - $ref: '#/components/parameters/attributes.get_all.query.names'
        - $ref: '#/components/parameters/attributes.get_all.query.with'
      responses:
        '200':
          $ref: '#/components/responses/attributes.get_all.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/attributes?shopId={{shopId}}'
  /v1/attributes/{key}:
    get:
      summary: Get an attribute group
      description: >-
        Gets an attribute group and its associated values by its globally-unique
        ID, known as the `key`.
      operationId: fetch-attribute-by-key
      tags:
        - attributes
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/attributes.get_single.path.key'
      responses:
        '200':
          $ref: '#/components/responses/attributes.get_single.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/attributes/{{key}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.attributes.getByKey('apparelFit')
  /v1/brands:
    get:
      summary: List the brands
      description: Retrieve the list of product brands.
      operationId: fetch-brands
      tags:
        - brands
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/common.query.page'
        - $ref: '#/components/parameters/common.query.perPage'
        - $ref: '#/components/parameters/common.query.offset'
        - $ref: '#/components/parameters/common.query.limit'
        - $ref: '#/components/parameters/brands.get_all.query.ids'
        - $ref: '#/components/parameters/brands.get_all.query.slugs'
        - $ref: '#/components/parameters/brands.query.withIncludes'
      responses:
        '200':
          $ref: '#/components/responses/brands.get_all.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/brands?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.brands.get()
  /v1/brands/{brand}:
    get:
      summary: Get a brand
      description: Get a brand by its ID or slug.
      operationId: fetch-brand-by-id
      tags:
        - brands
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/brands.get_single.path.brand'
        - $ref: '#/components/parameters/brands.get_single.path.forceSlug'
        - $ref: '#/components/parameters/brands.query.withIncludes'
      responses:
        '200':
          $ref: '#/components/responses/brands.get_single.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/brands/{{brand}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.brands.getById(44)
  /v1/campaigns:
    get:
      operationId: fetch-campaigns
      summary: List campaigns
      description: >
        Retrieve the list of campaigns that allow temporary discounts on
        products.

        Once the indexing process is completed, all campaigns are instantly made

        available, irrespective of their start and end dates. Therefore, it is

        essential to verify the corresponding fields, as failing to do so could

        result in campaigns being displayed ahead of schedule or after their

        intended duration.
      tags:
        - campaigns
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/common.query.page'
        - $ref: '#/components/parameters/common.query.perPage'
        - $ref: '#/components/parameters/common.query.offset'
        - $ref: '#/components/parameters/common.query.limit'
        - $ref: '#/components/parameters/common.query.sortDir'
        - $ref: '#/components/parameters/campaigns.get_all.query.sort'
        - $ref: '#/components/parameters/campaigns.query.withIncludes'
      responses:
        '200':
          $ref: '#/components/responses/campaigns.get_all.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/campaigns?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.campaigns.get()
  /v1/campaigns/{id}:
    get:
      operationId: fetch-campaign-by-id
      summary: Get a campaign
      description: Get a campaign by its unique numeric ID.
      tags:
        - campaigns
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/campaigns.get_single.path.id'
        - $ref: '#/components/parameters/campaigns.query.withIncludes'
      responses:
        '200':
          $ref: '#/components/responses/campaigns.get_single.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/campaigns/{{campaignId}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.campaigns.getById(1)
  /v1/categories:
    get:
      operationId: fetch-categories
      summary: List categories
      description: Retrieve the list of categories.
      tags:
        - categories
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/categories.get_all.query.ids'
        - $ref: '#/components/parameters/categories.get_all.query.format'
        - $ref: '#/components/parameters/categories.get_all.query.show_hidden'
        - $ref: '#/components/parameters/categories.get_all.query.depth'
        - $ref: '#/components/parameters/categories.get_all.query.with'
      responses:
        '200':
          $ref: '#/components/responses/categories.get_all.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/categories?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.categories.getRoots()
  /v1/categories/{key}:
    get:
      operationId: fetch-category-by-key
      summary: Get a category
      description: >-
        Get a category by its ID or by the path formed by joining all ancestor
        slugs from the root to the category.
      tags:
        - categories
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/categories.get_single.path.key'
        - $ref: '#/components/parameters/categories.get_single.query.depth'
        - $ref: '#/components/parameters/categories.get_single.query.with'
      responses:
        '200':
          $ref: '#/components/responses/categories.get_single.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/categories/{{key}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: |
            // Get a category by ID
            await client.categories.getById(3265);

            // Get a category by path
            await client.categories.getByPath(["women", "dresses"]);
  /v1/pages:
    get:
      summary: List the pages
      description: Retrieve the list of pages.
      operationId: fetch-pages
      tags:
        - pages
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/common.query.page'
        - $ref: '#/components/parameters/common.query.perPage'
        - $ref: '#/components/parameters/common.query.offset'
        - $ref: '#/components/parameters/common.query.limit'
        - $ref: '#/components/parameters/pages.get_all.query.filters.id'
        - $ref: '#/components/parameters/pages.get_all.query.filters.slug'
      responses:
        '200':
          $ref: '#/components/responses/pages.get_all.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/pages?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.pages.get()
  /v1/pages/{id}:
    get:
      summary: Get a page
      description: Get a page by its ID.
      operationId: fetch-page-by-id
      tags:
        - pages
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/pages.get_single.path.id'
      responses:
        '200':
          $ref: '#/components/responses/pages.get_single.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/pages/{{id}}?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.page.getById(44)
  /v1/promotions:
    get:
      summary: List the promotions
      description: |
        Retrieve the list of promotions designed to offer discounts and special
        deals to customers according to predefined conditions.
      operationId: fetch-promotions
      tags:
        - promotions
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/common.query.page'
        - $ref: '#/components/parameters/common.query.perPage'
        - $ref: '#/components/parameters/promotions.get_all.query.ids'
        - $ref: '#/components/parameters/promotions.get_all.query.activeAt'
        - $ref: '#/components/parameters/promotions.query.withIncludes'
      responses:
        '200':
          $ref: '#/components/responses/promotions.get_all.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/promotions?shopId={{shopId}}'
        - lang: ts
          label: Typescript - Fetch all
          source: await client.promotions.get()
        - lang: ts
          label: Typescript - Fetch by IDs
          source: |
            await client.promotions.getByIds({
              ids: ['4115dca480b1a326cfa743c8', '6ca6d701d5648432945b33b6']
            });
  /v1/redirects:
    get:
      operationId: fetch-redirects
      summary: List the redirects
      description: Retrieve the list of redirects.
      tags:
        - redirects
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/common.query.page'
        - $ref: '#/components/parameters/common.query.perPage'
        - $ref: '#/components/parameters/common.query.offset'
        - $ref: '#/components/parameters/common.query.limit'
      responses:
        '200':
          $ref: '#/components/responses/redirects.get_all.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/redirects?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.redirects.get()
    post:
      operationId: match-redirects
      summary: Match redirect
      description: >
        Match one or more redirects against a specified URL. The matching
        process is

        recursive: when a redirect's source pattern matches the current URL, its
        target

        becomes the new URL, and the process repeats. Redirects are evaluated in
        order

        of their priority until no further matches are found.
      tags:
        - redirects
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
      requestBody:
        $ref: '#/components/requestBodies/redirects.match'
      responses:
        '200':
          $ref: '#/components/responses/redirects.match.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: |
            curl --location \
              --request POST \
              --header 'Content-Type: application/json' \
              'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/redirects?shopId={{shopId}}' \
              --data '{
                "url": "scayle.com"
              }'
        - lang: ts
          label: Typescript
          source: await client.redirects.post('scayle.com')
  /v1/shop-configuration:
    get:
      summary: Get the shop configuration
      description: Retrieve the shop configuration for a country.
      operationId: fetch-shop-configuration
      tags:
        - shop-configuration
      parameters:
        - $ref: '#/components/parameters/common.header.xShopId'
        - $ref: '#/components/parameters/common.query.shopId'
        - $ref: '#/components/parameters/shop-configuration.query.withIncludes'
      responses:
        '200':
          $ref: '#/components/responses/shop-configuration.get_single.200'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/request_limit_exceeded'
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            curl --location
            'https://{{tenant-space}}.storefront.api.scayle.cloud/v1/shop-configuration?shopId={{shopId}}'
        - lang: ts
          label: Typescript
          source: await client.shopConfiguration.get()
components:
  schemas:
    Basket:
      type: object
      required:
        - key
        - items
        - cost
        - packages
      properties:
        key:
          description: A unique key identifying the basket.
          type: string
        items:
          type: array
          description: List of products in the basket
          items:
            $ref: '#/components/schemas/BasketItem'
        cost:
          $ref: '#/components/schemas/Price'
        packages:
          type: array
          description: List of packages in the basket
          items:
            $ref: '#/components/schemas/Package'
        applicablePromotions:
          type: array
          description: List of applicable promotions
          items:
            $ref: '#/components/schemas/ApplicablePromotion'
    Package:
      type: object
      required:
        - id
        - carrierKey
        - deliveryDate
      description: >
        A group of items which will be sent together as a single logistical
        package.


        The items for the package can be found by iterating through the basket
        items and comparing the `packageId`.
      properties:
        id:
          type: integer
        carrierKey:
          type: string
          description: The carrier key which will deliver the package
        deliveryDate:
          $ref: '#/components/schemas/DeliveryDate'
    DeliveryDate:
      type: object
      description: The estimated delivery date for the package
      required:
        - min
        - max
      properties:
        min:
          type: string
          example: '2018-02-02'
        max:
          type: string
          example: '2018-02-05'
    ApplicablePromotion:
      type: object
      description: A promotion that would be valid if it's applied to the current basket.
      required:
        - itemId
        - promotion
      properties:
        itemId:
          type: string
          nullable: true
          description: >-
            The Basket Item ID to which the promotion should be applied. This
            can be null in case of a `bux_x_get_y` effect where the free item is
            not in the basket yet.
        promotion:
          $ref: '#/components/schemas/Promotion'
    BasketItem:
      type: object
      description: Describes a specific variant in a Basket with a given quantity.
      required:
        - key
        - packageId
        - quantity
        - availableQuantity
        - status
        - variant
        - product
        - price
        - lowestPriorPrice
        - customData
        - displayData
        - itemGroup
        - promotionId
        - promotionCode
        - promotions
      properties:
        key:
          type: string
          description: >-
            A unique key for the basket item which can be used for updating or
            deleting it.
        packageId:
          type: integer
          description: |
            The package in which the basket item will be send.

            Corresponds to a package id in the `packages` list of a `Basket`.
        quantity:
          type: integer
          description: The quantity of the item.
        availableQuantity:
          type: integer
          description: >-
            The total available quantity for the variant which can be added to
            the basket.
        status:
          type: string
          description: >
            The status of the basket item, either it is 'available' which means
            in stock

            or it's unavailable meaning it's out of stock.
          enum:
            - available
            - unavailable
        variant:
          $ref: '#/components/schemas/Variant'
        product:
          $ref: '#/components/schemas/Product'
        price:
          $ref: '#/components/schemas/BasketItemPrice'
        lowestPriorPrice:
          $ref: '#/components/schemas/LowestPriorPrice'
        promotionId:
          type: string
          nullable: true
          deprecated: true
          description: The promotion which will be applied to the item.
        promotionCode:
          type: string
          nullable: true
          deprecated: true
          description: The promotion code applied to the item
        itemGroup:
          $ref: '#/components/schemas/ItemGroup'
        customData:
          $ref: '#/components/schemas/BasketItemCustomData'
        displayData:
          $ref: '#/components/schemas/BasketItemDisplayData'
        deliveryForecast:
          $ref: '#/components/schemas/DeliveryForecast'
        promotion:
          $ref: '#/components/schemas/BasketItemPromotion'
        promotions:
          type: array
          description: >-
            List of time-limited promotions that offers discounts or benefits
            based on specific eligibility criteria.
          items:
            $ref: '#/components/schemas/BasketItemPromotion'
    BasketItemPrice:
      type: object
      required:
        - total
        - unit
      properties:
        total:
          $ref: '#/components/schemas/Price'
        unit:
          $ref: '#/components/schemas/Price'
    ItemGroup:
      nullable: true
      type: object
      description: An item group allows to define multiple basket items into a unit.
      required:
        - id
        - isMainItem
        - isRequired
      properties:
        id:
          type: string
          maxLength: 8
          description: >
            A unique identifier for the item group which should be used for all
            basket items of the item group.


            Any string based identifier can be chosen and it only has to be
            unique within the current basket.
        isMainItem:
          type: boolean
          description: >
            Whether or not the current item is the main item within the item
            group.

            This property can be used for display purposes to only show the main
            item within the Checkout.
        isRequired:
          type: boolean
          description: >
            Whether or not the item is required to be present for the item
            group.

            When you delete an item from your basket which is required for the
            item group, all other items assigned to the item group will also be
            deleted.
    DeliveryForecast:
      type: object
      properties:
        deliverable:
          $ref: '#/components/schemas/Deliverable'
        subsequentDelivery:
          $ref: '#/components/schemas/SubsequentDelivery'
    Deliverable:
      type: object
      properties:
        key:
          type: string
        quantity:
          type: integer
    SubsequentDelivery:
      type: object
      properties:
        key:
          type: string
        quantity:
          type: integer
    BasketItemDisplayData:
      description: >
        Display Data allows to show additional information next to each item
        during the SCAYLE Checkout process.

        The properties will remain attached to the basket item during the
        checkout and order process.
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/DisplayDataValue'
        name:
          $ref: '#/components/schemas/DisplayDataValue'
        identifier:
          $ref: '#/components/schemas/DisplayDataValue'
        attribute-1:
          $ref: '#/components/schemas/DisplayDataValue'
        attribute-2:
          $ref: '#/components/schemas/DisplayDataValue'
        attribute-3:
          $ref: '#/components/schemas/DisplayDataValue'
    DisplayDataValue:
      type: object
      required:
        - key
        - label
        - value
      properties:
        key:
          type: string
          description: |
            A key identifying which data is displayed here.
            The value is not shown in the SCAYLE Checkout.
          example: size
        label:
          type: string
          description: >-
            The label explaining the value which will be displayed in the SCAYLE
            Checkout for the Basket Item.
          example: Size
        value:
          type: string
          description: >-
            The value which will be displayed in the SCAYLE Checkout for the
            Basket Item.
          example: M
    BasketItemCustomData:
      type: object
      description: >
        Custom Data allows to store additional data on each basket item.

        The information is persisted during the order flow and will be
        accessible after SCAYLE's Checkout process on each order item.
      properties:
        pricePromotionKey:
          description: >-
            A price promotion key which will be used for this item during the
            Checkout process
          type: string
      additionalProperties: true
    CreateBasketItemBody:
      type: object
      required:
        - variantId
        - quantity
      properties:
        quantity:
          type: integer
          description: The quantity for the variant.
        variantId:
          type: integer
          description: The variant to be added to the basket.
        promotionId:
          type: string
          deprecated: true
          description: An optional promotion ID which should be applied to this item.
        promotionCode:
          type: string
          deprecated: true
          description: >-
            An optional promotion Code which should be applied to this item.
            'promotionId' is required to use the 'promotionCode'.
        promotions:
          type: array
          description: >
            An optional list of promotions to be applied to the item.


            _Note: This field is mutually exclusive with `promotionId` and
            `promotionCode`._
          items:
            type: object
            required:
              - id
            properties:
              id:
                type: string
                description: The unique identifier of the promotion.
              code:
                type:
                  - string
                  - 'null'
                description: >-
                  The code that activates the promotion, just like a voucher or
                  a coupon code.
        customData:
          $ref: '#/components/schemas/BasketItemCustomData'
        displayData:
          $ref: '#/components/schemas/BasketItemDisplayData'
        itemGroup:
          $ref: '#/components/schemas/ItemGroup'
    UpdateBasketItemBody:
      type: object
      required:
        - quantity
      properties:
        quantity:
          type: integer
          description: The updated quantity for the basket item.
        promotionId:
          type: string
          nullable: true
          deprecated: true
          description: >
            Updates the promotion id of the item.


            If the 'promotionId' property is not sent in the request no update
            is performed on the field.

            if the value is null then any previous applied promotion will be
            removed from the item.
        promotionCode:
          type: string
          nullable: true
          deprecated: true
          description: >
            Updates the promotion code of the item.


            If the 'promotionCode' property is not sent in the request no update
            is performed on the field.

            if the value is null then any previous applied promotion will be
            removed from the item.

            'promotionId' is required to use the 'promotionCode'
        promotions:
          type: array
          description: >
            An optional list of promotions to be applied to the item. Any
            promotion currently applied but not included

            in the request will be removed. To prevent unintended removal,
            ensure to always send the complete list of

            active promotions for the item.


            _Note: This field is mutually exclusive with `promotionId` and
            `promotionCode`._
          items:
            type: object
            required:
              - id
            properties:
              id:
                type: string
                description: The unique identifier of the promotion.
              code:
                type:
                  - string
                  - 'null'
                description: >-
                  The code that activates the promotion, just like a voucher or
                  a coupon code.
        customData:
          $ref: '#/components/schemas/BasketItemCustomData'
        displayData:
          $ref: '#/components/schemas/BasketItemDisplayData'
        itemGroup:
          $ref: '#/components/schemas/ItemGroup'
    BulkUpdateBasketPromotionsBody:
      type: array
      items:
        type: object
        description: >-
          A list of basket items along with the promotions to be applied to each
          one.
        required:
          - itemId
          - promotions
        properties:
          itemId:
            type: string
            description: The identifier of the basket item the promotions are applied to.
          promotions:
            type: array
            items:
              type: object
              required:
                - id
              properties:
                id:
                  type: string
                  description: The unique identifier of the promotion.
                code:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The code that activates the promotion, just like a voucher
                    or a coupon code.
    BasketPromotionCodeBody:
      type: object
      required:
        - promotionCode
      properties:
        promotionCode:
          type: string
          description: The promotion code.
    BasketItemPromotion:
      allOf:
        - $ref: '#/components/schemas/Promotion'
        - type: object
          nullable: true
          properties:
            isValid:
              type: boolean
              example: false
            failedConditions:
              type: array
              items:
                type: object
                properties:
                  key:
                    type: string
                    example: MOV_100
                  level:
                    type: string
                    example: global
    AdvancedAttribute:
      type: object
      required:
        - id
        - key
        - label
        - type
        - values
      properties:
        id:
          type: integer
        key:
          type: string
        label:
          type: string
        type:
          type: string
          nullable: true
        values:
          type: array
          items:
            $ref: '#/components/schemas/AdvancedAttributeGroupSet'
    AdvancedAttributeGroupSet:
      type: object
      required:
        - fieldSet
        - groupSet
      properties:
        fieldSet:
          type: array
          items:
            type: array
            items:
              type: object
              additionalProperties: true
        groupSet:
          type: array
          items:
            $ref: '#/components/schemas/AdvancedAttributeGroupSet'
    VariantAttribute:
      type: array
      items:
        $ref: '#/components/schemas/AttributeItem'
    ProductAttribute:
      type: array
      items:
        $ref: '#/components/schemas/AttributeItem'
    AttributeItem:
      description: An attribute group consisting of attribute values.
      allOf:
        - $ref: '#/components/schemas/AttributeGroup'
        - type: object
          properties:
            values:
              description: A collection of attributes belonging to an attribute group.
              oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/AttributeValue'
                - $ref: '#/components/schemas/MultiSelectAttributeValue'
    MultiSelectAttributeValue:
      type: array
      description: A collection of attributes from the attribute group.
      items:
        $ref: '#/components/schemas/AttributeValue'
    FiltersResponse:
      type: array
      items:
        $ref: '#/components/schemas/Filter'
    Filter:
      type: object
      required:
        - slug
        - name
        - attributeGroupType
        - type
      properties:
        id:
          type: integer
          description: The ID of the filter.
          nullable: true
          example: null
        name:
          type: string
          description: The name of the filter.
          example: Savings
        slug:
          type: string
          description: >-
            short text to describe the current category (usable, for example, in
            URLs as `fashion`).
          example: max_savings_percentage
        attributeGroupType:
          type: string
          description: The type of the attribute group.
          example: computed_attribute
        type:
          type: string
          description: The type of the filter.
          example: range
        values:
          $ref: '#/components/schemas/FilterValues'
    FilterValues:
      type: array
      items:
        oneOf:
          - $ref: '#/components/schemas/AttributeFilterValue'
          - $ref: '#/components/schemas/BooleanFilterValue'
          - $ref: '#/components/schemas/RangeFilterValue'
    AttributeFilterValue:
      type: object
      required:
        - id
        - productCount
      properties:
        name:
          type: string
          description: The name of the filter value.
          example: '42'
        productCount:
          type: integer
          description: The count of products returned for the specified filter value.
          example: 1231
        id:
          type: integer
          description: The ID of the filter value.
          example: 55
        value:
          type: string
          description: The value of the filter value.
          example: '42'
    BooleanFilterValue:
      type: object
      required:
        - name
        - productCount
      properties:
        name:
          type: boolean
          description: The name of the filter value.
          example: true
        productCount:
          type: integer
          description: The count of products returned for the specified filter value.
          example: 1231
    RangeFilterValue:
      type: object
      required:
        - min
        - max
        - productCount
      properties:
        max:
          type: integer
          description: The maximum value of the filter value.
          example: 3255
        min:
          type: integer
          description: The minimum value of the filter value.
          example: 735
        productCount:
          type: integer
          description: The count of products returned for the specified filter value.
          example: 1231
    SearchResolveResponse:
      type: object
      properties:
        matches:
          items:
            $ref: '#/components/schemas/ResolveMatch'
    ResolveMatch:
      type: object
      properties:
        count:
          type: integer
          example: 20201
        match:
          type: string
          example: pants Unifarben
        category:
          type: object
          properties:
            match:
              type: string
              example: pants
            id:
              type: integer
              example: 20201
            name:
              type: string
              example: pants
        attributes:
          type: array
          items:
            type: object
            properties:
              match:
                type: string
                example: Unifarben
              name:
                type: string
                example: pattern
              attributeGroup:
                type: integer
                example: 123
              attributeId:
                type: integer
                example: 223344
    TypeaheadResponse:
      type: object
      required:
        - suggestions
        - topMatch
      properties:
        suggestions:
          oneOf:
            - $ref: '#/components/schemas/TypeaheadBrandOrCategorySuggestion'
            - $ref: '#/components/schemas/TypeaheadProductSuggestion'
        topMatch:
          type: object
          nullable: true
          properties:
            brandOrCategorySuggestion:
              $ref: '#/components/schemas/BrandOrCategorySuggestion'
            score:
              type: number
              example: 66.48743
            type:
              type: string
              example: brandOrCategory
    TypeaheadRequestBody:
      type: object
      properties:
        fuzziness:
          description: >-
            The fuzziness parameter can enable some typo tolerance. Available
            values are 0, 1, 2, and auto. Defaults to auto. Note: The value set
            in the SCAYLE Panel will not impact this search.
          type: integer
          enum:
            - 0
            - 1
            - 2
        categoryId:
          type: integer
          description: The `categoryId` parameter can filter by category ID.
          example: 20201
        limit:
          type: integer
          description: >-
            The `limit` parameter allows limiting the number of suggested
            products returned.
          example: 10
        term:
          type: string
          description: >-
            The `term` parameter allows you to query for any entity with a full
            or partial match with the given term.
    Typeahead:
      type: object
      properties:
        suggestions:
          oneOf:
            - $ref: '#/components/schemas/BrandOrCategorySuggestion'
            - $ref: '#/components/schemas/ProductSuggestion'
        topMatch:
          $ref: '#/components/schemas/BrandOrCategorySuggestion'
    TypeaheadBody:
      type: object
      properties:
        fuzziness:
          description: >-
            The fuzziness parameter can enable some typo tolerance. Available
            values are 0, 1, 2, and auto. Defaults to auto. Note: The value set
            in the SCAYLE Panel will not impact this search.
          type: string
          enum:
            - 0
            - 1
            - 2
            - auto
        likedBrands:
          type: array
          description: >-
            The `likedBrands` parameter can boost and adjust results by matching
            the given brand IDs.
          items:
            type: integer
        categoryId:
          type: integer
          description: The `categoryId` parameter can filter by category ID.
          example: 20201
        limit:
          type: integer
          description: >-
            The `limit` parameter allows limiting the number of suggested
            products returned.
          example: 10
        term:
          type: string
          description: >-
            The `term` parameter allows you to query for any entity with a full
            or partial match with the given term.
    TypeaheadBrandOrCategorySuggestion:
      type: object
      properties:
        brandOrCategorySuggestion:
          $ref: '#/components/schemas/BrandOrCategorySuggestion'
        score:
          type: number
          example: 52.762222
        type:
          type: string
          example: brandOrCategory
    TypeaheadProductSuggestion:
      type: object
      properties:
        productSuggestion:
          $ref: '#/components/schemas/ProductSuggestion'
        score:
          type: number
          example: 52.762222
        type:
          type: string
          example: product
    ProductSuggestion:
      type: object
      properties:
        suggestion:
          type: string
          example: jeans
        product:
          $ref: '#/components/schemas/Product'
    Match:
      type: object
      properties:
        type:
          type: string
          example: category
          enum:
            - attribute
            - category
        id:
          type: integer
          example: 282
          nullable: true
        name:
          type: string
          example: pullover
          nullable: true
        match:
          type: string
          example: Langarmshirts
          nullable: true
        attributeGroup:
          type: object
          nullable: true
          properties:
            id:
              type: integer
              example: 97
            slug:
              type: string
              description: >-
                short text to describe the current category (usable, for
                example, in URLs as `fashion`).
              example: searchColor
        attributeIds:
          type: array
          items:
            type: integer
          example:
            - 895
    BrandOrCategorySuggestion:
      type: object
      required:
        - attributeFilters
        - brand
        - category
        - primaryMatch
        - productCount
        - suggestion
      properties:
        attributeFilters:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                example: 550
              name:
                type: string
                example: brand
              slug:
                type: string
                description: >-
                  short text to describe the current category (usable, for
                  example, in URLs as `fashion`).
                example: brand
              values:
                type: array
                items:
                  type: integer
                example:
                  - 53709
        brand:
          type: object
          nullable: true
          properties:
            id:
              type: integer
              example: 53709
            name:
              type: string
              example: Nike Sportswear
        category:
          $ref: '#/components/schemas/Category'
        primaryMatch:
          type: string
          enum:
            - brand
            - category
        productCount:
          type: integer
          example: 140
        suggestion:
          type: string
          example: Nike Sportswear
    SearchV2ResolveResponse:
      oneOf:
        - $ref: '#/components/schemas/SearchV2CategoryResponse'
        - $ref: '#/components/schemas/SearchV2ProductResponse'
        - $ref: '#/components/schemas/SearchV2NavigationItemResponse'
    SearchV2SuggestionsResponse:
      type: object
      required:
        - suggestions
      properties:
        suggestions:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/SearchV2CategoryResponse'
              - $ref: '#/components/schemas/SearchV2ProductResponse'
              - $ref: '#/components/schemas/SearchV2NavigationItemResponse'
    SearchV2CategoryResponse:
      type: object
      required:
        - type
        - categorySuggestion
      properties:
        type:
          type: string
          example: category
        categorySuggestion:
          $ref: '#/components/schemas/SearchV2CategorySuggestion'
    SearchV2CategorySuggestion:
      type: object
      required:
        - category
        - filters
      properties:
        category:
          $ref: '#/components/schemas/Category'
        filters:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/CategoryAttributeFilter'
              - $ref: '#/components/schemas/CategoryBooleanFilter'
    CategoryAttributeFilter:
      type: object
      required:
        - type
        - attributeFilter
      properties:
        type:
          type: string
          example: attribute
        attributeFilter:
          type: object
          properties:
            group:
              type: object
              properties:
                id:
                  type: number
                  description: The ID of the attribute group
                  example: 123
                key:
                  type: string
                  description: Also known as slug
                  example: color
                label:
                  type: string
                  description: The label which can be shown in the FE
                  example: Color
                type:
                  type: string
                  description: The type of the attribute group
                  example: design
                multiSelect:
                  type: boolean
                  example: true
            values:
              type: array
              items:
                $ref: '#/components/schemas/AttributeValue'
    CategoryBooleanFilter:
      type: object
      required:
        - type
        - booleanFilter
      properties:
        type:
          type: string
          example: boolean
        booleanFilter:
          type: object
          properties:
            slug:
              type: string
              example: sale
            value:
              type: boolean
              example: true
            label:
              type: string
              example: sale
    SearchV2ProductResponse:
      type: object
      required:
        - type
        - productSuggestion
      properties:
        type:
          type: string
          example: product
        productSuggestion:
          $ref: '#/components/schemas/SearchV2ProductSuggestion'
    SearchV2ProductSuggestion:
      type: object
      required:
        - product
      properties:
        product:
          $ref: '#/components/schemas/Product'
    SearchV2NavigationItemResponse:
      type: object
      required:
        - type
        - navigationItemSuggestion
      properties:
        type:
          type: string
          example: navigationItem
        navigationItemSuggestion:
          $ref: '#/components/schemas/SearchV2NavigationItemSuggestion'
    SearchV2NavigationItemSuggestion:
      type: object
      required:
        - navigationItem
      properties:
        navigationItem:
          $ref: '#/components/schemas/NavigationItem'
    NavigationTree:
      description: >-
        A navigation tree representing a hierarchical set of items that map to a
        frontend menu. Each tree can be assigned to multiple shops.
      type: object
      required:
        - id
        - key
        - name
        - items
      properties:
        id:
          description: A unique numeric ID.
          type: integer
        key:
          description: A globally-unique ID.
          type: string
        name:
          description: The name of the navigation tree.
          type: string
        items:
          description: The child items of the navigation tree.
          type: array
          items:
            $ref: '#/components/schemas/NavigationItem'
    NavigationItemExtraFilter:
      type: object
      properties:
        master_categories:
          description: >-
            A filter that can include or exclude the specified master
            categories.
          type: object
          properties:
            include:
              description: The list of master category IDs to filter by.
              type: array
              items:
                type: integer
        merchants:
          description: A filter that can include or exclude the specified merchants.
          type: object
          properties:
            include:
              description: The list of merchant IDs to filter by.
              type: array
              items:
                type: integer
        product_ids:
          description: A filter that can include or exclude the specified products.
          type: object
          properties:
            include:
              description: The list of product IDs to filter by.
              type: array
              items:
                type: string
        new:
          description: A filter that can include or exclude the new products.
          type: object
          properties:
            include:
              description: >-
                A flag indicating whether the new products must be included or
                not.
              type: boolean
        attributes:
          description: >-
            The list of attribute groups that are used as filter criteria for
            the category items.
          type: array
          items:
            type: object
            required:
              - attribute
              - include
            properties:
              attribute:
                description: The attribute group information.
                type: object
                required:
                  - id
                  - key
                  - label
                  - type
                  - multiSelect
                properties:
                  id:
                    description: A unique numeric ID.
                    type: integer
                  key:
                    description: The unique identifier of the attribute group.
                    type: string
                  label:
                    description: The name of the attribute group shown in the frontend.
                    type: string
                  type:
                    description: A type that be used to aggregate similar attributes.
                    type: string
                  multiSelect:
                    description: >-
                      A flag indicating whether the attribute group allows
                      selecting multiple attributes.
                    type: boolean
              include:
                description: The list of attribute IDs to filter by.
                type: array
                items:
                  type: integer
    NavigationCategoryFilter:
      type: array
      description: >-
        Array of navigation category filters supporting both attribute-based and
        boolean filtering options.
      items:
        oneOf:
          - $ref: '#/components/schemas/CategoryAttributeFilter'
          - $ref: '#/components/schemas/CategoryBooleanFilter'
    NavigationItem:
      description: An item within a parent navigation tree.
      type: object
      required:
        - id
        - assets
        - name
        - type
        - visibleFrom
        - visibleTo
        - children
        - customData
        - filters
      properties:
        id:
          description: A unique numeric ID.
          type: integer
        assets:
          description: The list of assets that have been uploaded for the navigation item.
          type: object
        name:
          description: The name of the navigation item.
          type: string
        type:
          description: The type of the navigation item.
          type: string
          enum:
            - category
            - individual-link
            - page
        visibleFrom:
          description: >-
            The date from which the navigation item is visible, formatted as RFC
            3339. If not set, the item will be visible immediately.
          type: string
          nullable: true
        visibleTo:
          description: >-
            The date until which the navigation item is visible, formatted as
            RFC 3339. If not set, the item will be visible indefinitely.
          type: string
          nullable: true
        page:
          description: >-
            The target URL of the navigation item. It is set only if the item
            type is `page`.
          type: string
        options:
          description: >-
            The list of options of the navigation item. It is set only if the
            item type is `individual-link` (hyperlink).
          type: object
          properties:
            url:
              description: The target URL of the navigation item.
              type: string
            isOpenInNewWindow:
              description: >-
                A flag indicating whether the link should open a new browser
                window.
              type: boolean
        extraFilters:
          $ref: '#/components/schemas/NavigationItemExtraFilter'
        filters:
          $ref: '#/components/schemas/NavigationCategoryFilter'
        categoryId:
          description: >-
            The ID of the category to which the navigation item links. Only set
            if the item type is `category`.
          type: integer
        category:
          $ref: '#/components/schemas/Category'
        children:
          description: The child items of the navigation item.
          type: array
          items:
            $ref: '#/components/schemas/NavigationItem'
        customData:
          $ref: '#/components/schemas/CustomData'
    NavigationTreeResponse:
      type: array
      items:
        $ref: '#/components/schemas/NavigationTree'
    NavigationTreeV2:
      description: >-
        A navigation tree v2 representing a hierarchical set of items that map
        to a frontend menu. Each tree can be assigned to multiple shops.
      type: object
      required:
        - id
        - referenceKey
        - name
        - items
      properties:
        id:
          description: A unique numeric ID.
          type: integer
        referenceKey:
          description: The reference key of the navigation tree.
          type: string
        name:
          description: The name of the navigation tree.
          type: string
        items:
          description: The child items of the navigation tree.
          type: array
          items:
            $ref: '#/components/schemas/NavigationItemV2'
    NavigationItemV2:
      description: >
        A navigation item with a flattened structure using polymorphic types
        based on the `target` discriminator.


        All navigation items share common fields (`id`, `name`, `assets`,
        `visibleFrom`, `visibleTo`, `children`, `customData`) at the top level.


        The response will be one of the following types based on the `target`
        field:

        - `NavigationItemV2Category` when `target` is `category`

        - `NavigationItemV2Page` when `target` is `page`

        - `NavigationItemV2Link` when `target` is `individual-link`
      oneOf:
        - $ref: '#/components/schemas/NavigationItemV2Category'
        - $ref: '#/components/schemas/NavigationItemV2Page'
        - $ref: '#/components/schemas/NavigationItemV2Link'
      discriminator:
        propertyName: target
        mapping:
          category: '#/components/schemas/NavigationItemV2Category'
          page: '#/components/schemas/NavigationItemV2Page'
          individual-link: '#/components/schemas/NavigationItemV2Link'
    NavigationItemV2Base:
      description: Common fields shared by all navigation item types.
      type: object
      required:
        - id
        - name
        - target
        - assets
        - visibleFrom
        - visibleTo
        - children
        - customData
      properties:
        id:
          description: A unique numeric ID.
          type: integer
        name:
          description: The name of the navigation item.
          type: string
        target:
          description: >-
            The type of the navigation item. Determines which type-specific data
            is present.
          type: string
          enum:
            - category
            - individual-link
            - page
        assets:
          description: The list of assets that have been uploaded for the navigation item.
          type: object
        visibleFrom:
          description: >-
            The date from which the navigation item is visible, formatted as RFC
            3339. If not set, the item will be visible immediately.
          type: string
          nullable: true
        visibleTo:
          description: >-
            The date until which the navigation item is visible, formatted as
            RFC 3339. If not set, the item will be visible indefinitely.
          type: string
          nullable: true
        children:
          description: The child items of the navigation item.
          type: array
          items:
            $ref: '#/components/schemas/NavigationItemV2'
        customData:
          $ref: '#/components/schemas/CustomData'
    NavigationItemV2Category:
      description: A navigation item that links to a category.
      allOf:
        - $ref: '#/components/schemas/NavigationItemV2Base'
        - type: object
          required:
            - target
            - categoryTarget
          properties:
            target:
              type: string
              enum:
                - category
              example: category
            categoryTarget:
              $ref: '#/components/schemas/NavigationCategoryTarget'
    NavigationItemV2Page:
      description: A navigation item that links to an internal page.
      allOf:
        - $ref: '#/components/schemas/NavigationItemV2Base'
        - type: object
          required:
            - target
            - pageTarget
          properties:
            target:
              type: string
              enum:
                - page
              example: page
            pageTarget:
              $ref: '#/components/schemas/NavigationPageTarget'
    NavigationItemV2Link:
      description: A navigation item that links to an external URL (hyperlink).
      allOf:
        - $ref: '#/components/schemas/NavigationItemV2Base'
        - type: object
          required:
            - target
            - linkTarget
          properties:
            target:
              type: string
              enum:
                - individual-link
              example: individual-link
            linkTarget:
              $ref: '#/components/schemas/NavigationLinkTarget'
    NavigationCategoryTarget:
      description: Category-specific navigation data for category-type items.
      type: object
      required:
        - categoryId
      properties:
        categoryId:
          description: The ID of the category to which the navigation item links.
          type: integer
        category:
          description: >-
            The full category object, included when requested via the `with`
            parameter.
          $ref: '#/components/schemas/Category'
        filters:
          description: Filters to apply when navigating to the category.
          $ref: '#/components/schemas/NavigationCategoryFilter'
    NavigationPageTarget:
      description: Page-specific navigation data for page-type items.
      type: object
      required:
        - page
      properties:
        page:
          description: The target page path or identifier.
          type: string
    NavigationLinkTarget:
      description: >-
        Hyperlink-specific navigation data for items with type
        'individual-link'.
      type: object
      required:
        - url
        - openInNewWindow
      properties:
        url:
          description: The target URL of the navigation item.
          type: string
        openInNewWindow:
          description: A flag indicating whether the link should open a new browser window.
          type: boolean
    NavigationTreeV2Response:
      type: array
      items:
        $ref: '#/components/schemas/NavigationTreeV2'
    Price:
      type: object
      required:
        - currencyCode
        - withTax
        - withoutTax
        - recommendedRetailPrice
        - tax
        - appliedReductions
      properties:
        appliedReductions:
          type: array
          items:
            $ref: '#/components/schemas/AppliedReduction'
        currencyCode:
          type: string
          description: The currency of the price.
        reference:
          $ref: '#/components/schemas/ReferencePrice'
        tax:
          $ref: '#/components/schemas/Tax'
        withoutTax:
          type: integer
        withTax:
          type: integer
        recommendedRetailPrice:
          type: integer
          nullable: true
    ReferencePrice:
      type: object
      properties:
        size:
          type: integer
          description: >-
            Size of the reference (100m, 100ml), but in this field fill in only
            the value without the unit of measurement.
        unit:
          type: string
          description: The size of reference unit (KG, ml, L, etc.) without the value
        withoutTax:
          type: integer
          description: Reference price excluding the taxes.
        withTax:
          type: integer
          description: >-
            Item price including taxes. The price is calculated including taxes
            and all applicable reductions such as discounts for sale and
            campaigns (should a campaign key be provided on the request).
    PriceRange:
      type: object
      required:
        - min
        - max
      properties:
        max:
          $ref: '#/components/schemas/Price'
        min:
          $ref: '#/components/schemas/Price'
    ReductionRange:
      type: object
      properties:
        max:
          $ref: '#/components/schemas/Price'
        min:
          $ref: '#/components/schemas/Price'
    Tax:
      type: object
      properties:
        vat:
          $ref: '#/components/schemas/Vat'
    Vat:
      type: object
      properties:
        amount:
          type: number
        rate:
          type: number
    AppliedReduction:
      type: object
      required:
        - category
        - type
        - amount
      properties:
        amount:
          $ref: '#/components/schemas/AppliedReductionAmount'
        category:
          type: string
          enum:
            - sale
            - campaign
            - promotion
          example: campaign
        type:
          type: string
          example: relative
    AppliedReductionAmount:
      type: object
      properties:
        absoluteWithTax:
          type: integer
        relative:
          type: number
    LowestPriorPrice:
      type: object
      description: Information about the lowest price in the past 30 days.
      required:
        - withTax
        - relativeDifferenceToPrice
      properties:
        withTax:
          type: integer
          description: The lowest price including tax.
          nullable: true
        relativeDifferenceToPrice:
          type: number
          format: float
          nullable: true
          description: >
            The relative difference from the lowest prior price to the current
            price.


            If the value is positive, it means that the current price is higher
            than the lowest prior price.

            If the value is negative, it means that the current price is lower
            than the lowest prior price.
    ProductsResponse:
      type: object
      required:
        - entities
        - pagination
      properties:
        entities:
          type: array
          items:
            $ref: '#/components/schemas/Product'
        pagination:
          oneOf:
            - $ref: '#/components/schemas/PagePagination'
            - $ref: '#/components/schemas/OffsetPagination'
    SimilarProductsResponse:
      type: object
      description: Response containing similar product recommendations.
      required:
        - recommendations
      properties:
        recommendations:
          type: array
          description: >-
            List of similar product recommendations, ordered by similarity score
            (highest first).
          items:
            $ref: '#/components/schemas/SimilarProductRecommendation'
    SimilarProductRecommendation:
      type: object
      description: A single similar product recommendation with its confidence score.
      required:
        - imageConfidenceScore
        - product
      properties:
        imageConfidenceScore:
          type:
            - integer
            - 'null'
          description: >
            A score from 0 to 100 indicating the confidence of image similarity
            between the source product and this recommendation.


            A higher score indicates greater visual similarity. The value is
            `null` if image similarity was not calculated for this
            recommendation.
          minimum: 0
          maximum: 100
          example: 85
        product:
          description: >-
            The recommended product data. The structure follows the standard
            product response format.
          $ref: '#/components/schemas/Product'
    Product:
      type: object
      required:
        - id
        - isActive
        - isSoldOut
        - isNew
        - createdAt
        - updatedAt
        - indexedAt
        - firstLiveAt
        - masterKey
        - referenceKey
        - images
        - customData
      properties:
        id:
          type: integer
          description: The ID of the product.
        advancedAttributes:
          type: object
          description: The advanced attributes of the product.
          additionalProperties:
            $ref: '#/components/schemas/AdvancedAttribute'
        attributes:
          type: object
          description: The attributes of the product.
          additionalProperties:
            $ref: '#/components/schemas/ProductAttribute'
        baseCategories:
          type: array
          description: The base categories of the product.
          deprecated: true
          items:
            $ref: '#/components/schemas/MasterCategory'
        masterCategories:
          type: array
          description: The master categories of the product.
          items:
            $ref: '#/components/schemas/MasterCategory'
        categories:
          type: array
          description: The categories of the product.
          items:
            type: array
            items:
              $ref: '#/components/schemas/ProductCategory'
        definingAttributes:
          type: array
          description: The defining attributes of the product.
          items:
            $ref: '#/components/schemas/DefiningAttribute'
        images:
          type: array
          description: The images of the product.
          items:
            $ref: '#/components/schemas/Image'
        customData:
          $ref: '#/components/schemas/CustomData'
        isActive:
          type: boolean
          description: Identifies whether a product is active or not.
        isNew:
          type: boolean
          description: Identifies whether a product is new or not.
        isSoldOut:
          type: boolean
          description: Identifies if a product is still available to sell.
        masterKey:
          type: string
          description: Identifies the master product which this product belongs.
          example: 480306626-1
        firstLiveAt:
          $ref: '#/components/schemas/Timestamp'
        priceRange:
          $ref: '#/components/schemas/PriceRange'
        reductionRange:
          $ref: '#/components/schemas/ReductionRange'
        lowestPriorPrice:
          $ref: '#/components/schemas/LowestPriorPrice'
        referenceKey:
          type: string
          description: The reference key of the product.
          example: abc123
        searchCategoryIds:
          type: array
          description: The search category IDs of the product.
          items:
            type: integer
          example:
            - 123456
            - 234567
            - 345678
        siblings:
          type: array
          items:
            $ref: '#/components/schemas/Product'
          description: The siblings of the product.
        variants:
          type: array
          items:
            $ref: '#/components/schemas/ProductVariant'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        updatedAt:
          $ref: '#/components/schemas/Timestamp'
        indexedAt:
          $ref: '#/components/schemas/Timestamp'
        SellableTimeframe:
          type: object
          description: A Sellable Timeframe of the product
          required:
            - sellableFrom
            - sellableTo
          properties:
            sellableFrom:
              $ref: '#/components/schemas/Timestamp'
            sellableTo:
              $ref: '#/components/schemas/Timestamp'
    ProductCategory:
      type: object
      properties:
        categoryId:
          type: integer
        categoryHidden:
          type: boolean
        categoryName:
          type: string
        categoryProperties:
          type: array
          items:
            $ref: '#/components/schemas/CategoryProperty'
        shopLevelCustomData:
          $ref: '#/components/schemas/CustomData'
        countryLevelCustomData:
          $ref: '#/components/schemas/CustomData'
        categoryUrl:
          type: string
        categorySlug:
          type: string
    Image:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AttributeGroup'
        customData:
          $ref: '#/components/schemas/CustomData'
        hash:
          type: string
    DefiningAttribute:
      type: object
      required:
        - id
        - key
        - label
      properties:
        id:
          type: string
          deprecated: true
        key:
          type: string
        label:
          type: string
    MasterCategory:
      description: Array of the `masterCategories` attached to the product.
      type: object
      required:
        - categoryId
        - categoryName
        - categoryParentId
        - categoryPath
      properties:
        categoryId:
          type: integer
          description: Unique identifier of the category
          example: 1866
        categoryName:
          type: string
          description: Name of the category
          example: Top
        categoryParentId:
          type: integer
          description: Parent ID of the category
          example: Top
        categoryPath:
          type: string
          description: Category path as text
          example: New|Fashion|Women|Top
    ProductVariant:
      type: object
      required:
        - id
        - referenceKey
        - firstLiveAt
        - createdAt
        - updatedAt
        - stock
        - price
        - customData
      properties:
        id:
          type: integer
          description: The variant ID.
          example: 987654
        advancedAttributes:
          type: object
          description: The variant advanced attributes.
          additionalProperties:
            $ref: '#/components/schemas/AdvancedAttribute'
        appliedPricePromotionKey:
          type: string
          description: The applied price promotion key.
          example: promotion_key_123
        attributes:
          type: object
          description: The variant attributes.
          additionalProperties:
            $ref: '#/components/schemas/VariantAttribute'
        lowestPriorPrice:
          $ref: '#/components/schemas/LowestPriorPrice'
        price:
          $ref: '#/components/schemas/Price'
        referenceKey:
          type: string
          description: The variant reference key.
          example: 563843898
        firstLiveAt:
          $ref: '#/components/schemas/Timestamp'
        stock:
          $ref: '#/components/schemas/Stock'
        customData:
          $ref: '#/components/schemas/CustomData'
        merchant:
          $ref: '#/components/schemas/Merchant'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        updatedAt:
          $ref: '#/components/schemas/Timestamp'
    Variant:
      allOf:
        - $ref: '#/components/schemas/ProductVariant'
        - type: object
          required:
            - productId
          properties:
            productId:
              type: integer
              description: The variant product ID.
              example: 123456
    VariantsResponse:
      type: object
      required:
        - pagination
        - entities
      properties:
        entities:
          type: array
          items:
            $ref: '#/components/schemas/Variant'
        pagination:
          $ref: '#/components/schemas/PagePagination'
    Merchant:
      type: object
      description: The merchant information.
      required:
        - id
        - key
        - name
      properties:
        id:
          type: integer
        key:
          type: string
        name:
          type: string
        customData:
          $ref: '#/components/schemas/CustomData'
        legal:
          type: object
          properties:
            legalName:
              type: string
            parentCompanyLegalName:
              type: string
            streetWithNumber:
              type: string
            zip:
              type: string
            city:
              type: string
            country:
              type: string
            telephone:
              type: string
            email:
              type: string
            registryCourtCity:
              type: string
            registerNumber:
              type: string
            parentCompanyRegistryCourtCity:
              type: string
            parentCompanyRegisterNumber:
              type: string
            managingDirectors:
              type: string
            representative:
              type: string
            shippingMerchantName:
              type: string
            registryCourtType:
              type: string
            parentCompanyRegistryCourtType:
              type: string
            vatId:
              type: string
    Stock:
      type: object
      description: The stock information.
      required:
        - supplierId
        - warehouseId
        - quantity
        - isSellableWithoutStock
        - expectedAvailabilityAt
      properties:
        supplierId:
          type: integer
        warehouseId:
          nullable: true
          type: integer
        quantity:
          type: integer
        isSellableWithoutStock:
          type: boolean
        expectedAvailabilityAt:
          type: string
          nullable: true
          example: '2023-01-26'
    Wishlist:
      type: object
      required:
        - key
        - items
      properties:
        key:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/WishlistItem'
    WishlistItem:
      type: object
      required:
        - key
        - packageId
        - quantity
        - status
        - product
        - variantId
        - productId
        - customData
        - itemGroup
      properties:
        key:
          type: string
          example: cafb0e089cb74691e66ca33a0c9954d9
        packageId:
          type: integer
          example: 1
          deprecated: true
        quantity:
          type: integer
          example: 2
          deprecated: true
        status:
          type: string
          deprecated: true
          enum:
            - available
            - unavailable
        product:
          $ref: '#/components/schemas/Product'
        variant:
          $ref: '#/components/schemas/ProductVariant'
        productId:
          type: integer
          example: 4468167
        variantId:
          type: integer
          nullable: true
          example: 38513903
        customData:
          $ref: '#/components/schemas/CustomData'
        itemGroup:
          $ref: '#/components/schemas/ItemGroup'
    CreateWishlistItemBody:
      type: object
      description: Either variantId or productId must be provided.
      properties:
        variantId:
          type: integer
          nullable: true
          description: >-
            Variant ID to add to the wishlist. Either `variantId` or `productId`
            must be present in the request.
          example: 1
        productId:
          type: integer
          nullable: true
          description: >-
            Product ID to add to the wishlist. When provided, the first variant
            of the product will be added. Either `variantId` or `productId` must
            be present in the request.
          example: 123456
        customData:
          $ref: '#/components/schemas/CustomData'
        itemGroup:
          $ref: '#/components/schemas/ItemGroup'
    CustomData:
      type: object
      additionalProperties: true
    CreateOrderRequest:
      type: object
      additionalProperties: false
      required:
        - address
        - application
        - items
        - paymentTypes
        - cost
        - channel
      properties:
        address:
          $ref: '#/components/schemas/OrderAddress'
        application:
          $ref: '#/components/schemas/ApplicationInfo'
        items:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/OrderItemRequest'
        channel:
          $ref: '#/components/schemas/Channel'
        customer:
          type: object
          description: Customer information for the individual placing the order.
          required:
            - lastName
          properties:
            id:
              type: integer
              minimum: 1
              description: Unique numeric ID of the customer.
            referenceKey:
              type: string
              minLength: 1
              maxLength: 100
              pattern: ^[0-9a-zA-Z\-\\_\.\@]*$
              description: >
                External reference key for the customer (alphanumeric, dashes,
                underscores, dots, and @ allowed).
            firstName:
              type: string
              pattern: '[!-ɏ0-9 ]'
              description: >-
                First name of the customer. Supports letters, numbers, and basic
                symbols.
            lastName:
              type: string
              pattern: '[!-ɏ0-9 ]'
              description: Last name of the customer. Required field.
            gender:
              type: string
              enum:
                - f
                - m
                - d
                - 'n'
              description: Gender code of the customer.
            birthDate:
              type: string
              format: date
              pattern: ^((19|20)[0-9]{2}\-[0-9]{2}\-[0-9]{2})$
              description: >
                Customer's birth date in `YYYY-MM-DD` format. Valid years:
                1900–2099.
            email:
              type: string
              maxLength: 254
              format: email
              pattern: >-
                (([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([^<>()\[\]\.,;:\s@"]+\.)+[a-zA-Z]{2,}))$
              description: Customer's email address. Must be a valid email format.
            phone:
              type: string
              pattern: 00[0-9]{1,3}/[0-9]{1,20}
              description: >
                International phone number starting with '00' followed by
                country code and slash (e.g., 0049/12345678).
            publicKey:
              type: string
              minLength: 1
              maxLength: 100
              pattern: ^[0-9a-zA-Z\-\\_]*$
              description: Public identifier or reference for secure communication.
            title:
              type: string
              maxLength: 30
              description: Customer's title (e.g., "Mr", "Dr", "Prof").
            type:
              type: string
              enum:
                - personal
                - retail
                - organization
                - family
              description: Type of customer profile.
            groups:
              type: array
              description: >
                Optional list of group identifiers. Each group must be an
                alphanumeric slug (with dashes or underscores).
              items:
                type: string
                maxLength: 60
                pattern: ^[0-9a-zA-Z\-\\_]*$
            identities:
              type: array
              description: External identity references for the customer.
              items:
                type: object
                required:
                  - idCode
                properties:
                  externalUserId:
                    type: string
                    maxLength: 255
                  idCode:
                    type: string
                    maxLength: 255
            status:
              type: object
              description: Customer status indicators.
              properties:
                isActive:
                  type: boolean
                  default: true
                  description: Whether the customer account is active.
                isGuestCustomer:
                  type: boolean
                  default: false
                  description: Whether the customer is a guest (no registered account).
            customData:
              type: object
              description: Arbitrary custom fields for the customer. Flexible structure.
              additionalProperties: true
            createdAt:
              type: string
              format: date-time
              description: Timestamp of when the customer was created (ISO 8601 format).
        paymentTypes:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/PaymentTypeRequest'
        cost:
          $ref: '#/components/schemas/OrderRequestCost'
        additionalMetaData:
          type: object
          description: Additional metadata related to the order.
        carrier:
          $ref: '#/components/schemas/CarrierInfo'
        customData:
          type: object
          description: Custom data attached to the order.
        ipAddress:
          type: string
          format: ipv4
          description: IP address of the customer at the time of order creation.
        membershipCard:
          $ref: '#/components/schemas/MembershipCard'
        referenceKey:
          type: string
          minLength: 1
          maxLength: 100
          description: >-
            External reference set by the client to integrate a 3rd party
            system.
        subscriptionId:
          type: string
          description: Identifier for a subscription if the order is part of one.
        userAgent:
          type: string
          description: User agent string of the client.
        voucher:
          $ref: '#/components/schemas/VoucherRequest'
    OrderRequestCost:
      type: object
      required:
        - withTax
      properties:
        withTax:
          type: integer
          minimum: 1
          description: Total order amount with tax (gross) including all applied costs.
        withTaxWithoutServiceCosts:
          type: integer
          minimum: 1
          description: >-
            Total order amount with tax (gross) excluding service costs and
            order-level fees.
        withoutTax:
          type: integer
          minimum: 1
          description: Total order amount without tax (net) including all applied costs.
        tax:
          type: object
          properties:
            vat:
              type: object
              properties:
                amount:
                  type: integer
                  minimum: 0
                  description: Total VAT amount for the order.
        itemGroups:
          type: object
          additionalProperties:
            type: object
            properties:
              brutto:
                type: integer
                minimum: 1
                description: Item group total of all gross prices.
              netto:
                type: integer
                minimum: 1
                description: Item group total of all net prices.
              tax:
                type: integer
                minimum: 1
                description: Item group total of all tax amounts.
        appliedFees:
          type: array
          description: >
            Additional order-level fees (e.g., shipping or payment). These are
            external costs applied to the whole order, not to individual items.

            These values will be persisted in the order as external applied
            fees.
          items:
            type: object
            properties:
              amount:
                type: object
                properties:
                  withTax:
                    type: integer
                    minimum: 1
                    description: Service cost amount with tax (gross).
                  withoutTax:
                    type: integer
                    minimum: 1
                    description: Service cost amount without tax (net).
              tax:
                type: object
                properties:
                  vat:
                    type: object
                    properties:
                      amount:
                        type: integer
                        minimum: 0
                        description: VAT amount for this service cost.
                      rate:
                        type: number
                        format: float
                        minimum: 0
                        maximum: 1
                        description: VAT rate as a fraction (e.g., 0.19 for 19%).
              category:
                type: string
                description: Category used to classify the service cost line.
              key:
                type: string
                description: Key used to identify the service cost line.
    ItemUnitPrice:
      type: object
      properties:
        withTax:
          type: integer
          minimum: 1
          description: >
            Optional unit gross price (in cents) **after all discounts and
            fees**. This field represents the final per-unit cost charged to the
            customer.


            **Note:** If this field is provided for any item, it becomes
            mandatory for all items in the order.
        tax:
          type: object
          properties:
            vat:
              type: object
              properties:
                rate:
                  type: number
                  format: float
                  minimum: 0
                  maximum: 1
                  description: >
                    Optional item-specific VAT rate expressed as a fraction
                    (e.g., `0.19` for 19%). Can only be provided if `withTax` is
                    set on the same item. If omitted, the system will fallback
                    to the default application-level VAT rate.
    OrderAddress:
      type: object
      additionalProperties: false
      required:
        - shipping
      properties:
        billing:
          $ref: '#/components/schemas/DetailedAddress'
        shipping:
          $ref: '#/components/schemas/ShippingAddress'
    DetailedAddress:
      type: object
      additionalProperties: false
      required:
        - city
        - countryCode
        - firstName
        - gender
        - houseNumber
        - lastName
        - street
      properties:
        additional:
          type: string
          maxLength: 60
          description: Additional data pertaining to the address, such as `c/o AboutYou`.
        city:
          type: string
          minLength: 1
          maxLength: 40
          description: City of the address.
        countryCode:
          type: string
          pattern: ^[A-Z]{3}$
          description: Three-letter ISO 3166-1 alpha-3 country code.
        firstName:
          type: string
          minLength: 1
          maxLength: 30
          description: First name of the recipient.
        forwardToCollectionPoint:
          type: boolean
          description: Indicates if the shipment should be forwarded to a collection point.
        gender:
          type: string
          enum:
            - m
            - f
            - d
            - 'n'
          description: >-
            Gender of the recipient ('m' for male, 'f' for female, 'd' for
            diverse, 'n' for not specified).
        houseNumber:
          type: string
          maxLength: 30
          description: House number of the address.
        lastName:
          type: string
          minLength: 1
          maxLength: 50
          description: Last name of the recipient.
        parcelShop:
          $ref: '#/components/schemas/ParcelShopInfo'
        phone:
          type: string
          minLength: 1
          maxLength: 40
          pattern: ^[0-9()+-/ ]*$
          description: Phone number of the recipient.
        state:
          type: string
          minLength: 1
          maxLength: 60
          description: State or region of the address.
        street:
          type: string
          minLength: 1
          maxLength: 60
          description: Street name of the address.
        title:
          type: string
          maxLength: 30
          description: Title of the recipient (e.g., Mr., Ms., Dr.).
        zipCode:
          type:
            - string
            - integer
          description: Zip or postal code of the address.
    ShippingAddress:
      allOf:
        - $ref: '#/components/schemas/DetailedAddress'
        - type: object
          properties:
            collectionPoint:
              $ref: '#/components/schemas/CollectionPoint'
    ParcelShopInfo:
      type: object
      additionalProperties: false
      required:
        - id
        - description
        - type
      properties:
        id:
          type: string
          description: Unique identifier of the parcel shop.
        customerId:
          type: string
          description: Customer ID associated with the parcel shop.
        delegationId:
          type: string
          description: Delegation ID for the parcel shop.
        description:
          type: string
          description: Descriptive name of the parcel shop.
        type:
          type: string
          description: Type of parcel shop (e.g., 'DHL', 'Hermes').
    ApplicationInfo:
      type: object
      additionalProperties: false
      required:
        - id
      properties:
        id:
          type: integer
          minimum: 1
          description: Unique identifier of the application making the request.
        checkout:
          type: string
          description: Identifier for the checkout process used.
        device:
          type: string
          enum:
            - mobile
            - desktop
            - app
            - tablet
          description: Type of device used to place the order.
    CarrierInfo:
      type: object
      required:
        - shippingPolicyKey
        - carrierKey
      properties:
        carrierKey:
          type: string
          description: Unique key for the shipping carrier.
        deliveryDates:
          $ref: '#/components/schemas/DeliveryDateRange'
        shippingPolicyKey:
          type: string
          description: Key for the applied shipping policy.
    DeliveryDateRange:
      type: object
      required:
        - maximum
        - minimum
      properties:
        maximum:
          type: string
          format: date
          description: Latest expected delivery date (YYYY-MM-DD).
        minimum:
          type: string
          format: date
          description: Earliest expected delivery date (YYYY-MM-DD).
    OrderItemRequest:
      type: object
      additionalProperties: false
      required:
        - variantId
      properties:
        variantId:
          type: integer
          minimum: 1
          description: Unique identifier of the product variant.
        categoryName:
          type: string
          description: Name of the product category.
        customData:
          type: object
          additionalProperties: true
          description: Custom data attached to the order item.
        initial:
          $ref: '#/components/schemas/ItemInitialData'
        itemGroup:
          $ref: '#/components/schemas/ItemGroupInfo'
        promotion:
          $ref: '#/components/schemas/ItemPromotion'
        price:
          $ref: '#/components/schemas/ItemUnitPrice'
    ItemInitialData:
      type: object
      additionalProperties: false
      properties:
        merchantId:
          type: integer
          minimum: 1
          description: ID of the merchant selling this item.
        merchantVariantId:
          type: string
          minLength: 1
          description: Merchant-specific identifier for the variant.
        quantity:
          type: integer
          minimum: 1
          description: Quantity of the item.
        size:
          type: string
          description: Size of the item.
        unitCost:
          type: integer
          minimum: 1
          description: Unit cost of the item.
    ItemGroupInfo:
      type: object
      additionalProperties: false
      required:
        - id
        - isMainItem
        - isRequired
      properties:
        id:
          type: string
          minLength: 1
          description: Item group ID.
        isMainItem:
          type: boolean
          description: Specifies if this is the main item in a configurable group.
        isRequired:
          type: boolean
          description: Specifies if the item is mandatory or optional within its group.
    ItemPromotion:
      type: object
      additionalProperties: false
      required:
        - id
      properties:
        id:
          type: string
          description: Unique identifier of the promotion applied to the item.
        code:
          type: string
          description: Promotion code if applicable.
    channelById:
      type: object
      required:
        - id
      properties:
        id:
          type: integer
          description: Unique channel ID numeric identifier.
    channelByKey:
      type: object
      required:
        - key
      properties:
        key:
          type: string
          description: Unique channel key string.
    Channel:
      oneOf:
        - $ref: '#/components/schemas/channelById'
        - $ref: '#/components/schemas/channelByKey'
      description: |
        Channel reference is required. Either `id` or `key` must be provided.
        If no channel can be found, the API responds with HTTP 404.
    MembershipCard:
      type: object
      additionalProperties: false
      required:
        - type
        - number
      properties:
        number:
          type: string
          description: The membership card number.
        type:
          type: string
          description: The type of membership card.
    PaymentTypeRequest:
      type: object
      additionalProperties: false
      required:
        - authorizedValue
        - type
        - transactionId
      properties:
        authorizedValue:
          type: integer
          description: The value authorized for this payment type.
        confirmationData:
          $ref: '#/components/schemas/PaymentConfirmationData'
        primaryPaymentMerchantKey:
          type: string
          description: Key for the primary payment merchant.
        transactionId:
          type: string
          minLength: 1
          description: Unique transaction ID for this payment.
        type:
          type: string
          description: Type of payment (e.g., 'credit_card', 'paypal', 'invoice').
    PaymentConfirmationData:
      type: object
      additionalProperties: false
      description: >
        The `confirmationData` attribute will contain the data pushed to the
        Checkout by the Payment Provider in use

        (or internally generated, should the payment not be provided by an
        external PSP). This object's structure

        depends on the PSP itself, however, it will contain the minimum dataset
        necessary for further processing of the Order.
      properties:
        amount:
          type:
            - number
            - object
          description: The amount confirmed by the payment provider.
        api_version:
          type: string
          minLength: 1
          description: API version used for the payment.
        authorization_id:
          type: string
          minLength: 1
          description: Authorization ID from the payment provider.
        authorized_date:
          type: string
          minLength: 1
          description: Date of authorization from the payment provider.
        charge_permission_id:
          type: string
          minLength: 1
          description: Charge permission ID from the payment provider.
        checkoutId:
          type: string
          minLength: 1
          description: Checkout ID related to the payment.
        creditCardBrand:
          type: string
          description: Brand of the credit card used.
        descriptor:
          type: string
          minLength: 1
          description: Descriptor for the payment.
        expirationDate:
          type: string
          minLength: 1
          description: Expiration date of the payment instrument.
        giftCardCode:
          type: string
          minLength: 1
          description: Code of the gift card used.
        giftCardPin:
          type: string
          description: PIN of the gift card used.
        isRegularCustomer:
          type: boolean
          description: Indicates if the customer is a regular customer.
        merchantAccount:
          type: string
          minLength: 1
          description: Merchant account used for the payment.
        order_id:
          type: string
          minLength: 1
          description: Order ID from the payment provider.
        orderNumber:
          type: string
          minLength: 1
          description: Order number from the payment provider.
        PayID:
          type: string
          minLength: 1
          description: PayID from the payment provider.
        paymentMeans:
          type: object
          additionalProperties: true
          description: Specific payment means details, structure depends on PSP.
        paymentPurpose:
          type: string
          description: Purpose of the payment.
        paymentSubType:
          type: string
          minLength: 1
          description: Sub-type of the payment.
        profile_id:
          type: string
          minLength: 1
          description: Profile ID from the payment provider.
        pspReference:
          type: string
          minLength: 1
          description: Payment Service Provider (PSP) reference.
        serial:
          type: integer
          minLength: 1
          description: Serial number of the payment.
        subscriptionPaymentReference:
          type: string
          description: Reference for subscription payments.
        success:
          type: boolean
          description: Indicates if the payment confirmation was successful.
        transaction_id:
          type: string
          minLength: 1
          description: Transaction ID from the payment provider.
        type:
          type: string
          description: Type of confirmation data.
        UserData:
          type: object
          additionalProperties: true
          description: User-specific data from the payment provider.
        XID:
          type: array
          minItems: 1
          items:
            type: string
            minLength: 1
          description: Extended Identifier for the payment.
    VoucherRequest:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          description: The voucher code to be applied.
    OrderResponse:
      type: object
      additionalProperties: false
      required:
        - basketKey
        - createdAt
        - cost
        - currencyCode
        - id
        - status
        - detailedStatus
        - updatedAt
      properties:
        id:
          type: integer
          description: >-
            This `id` can be applied as a parameter on the url to retrieve an
            individual order in the [Fetch Order by ID](#fetch-order-by-id)
            endpoint.
        address:
          $ref: '#/components/schemas/OrderAddressesResponse'
        basketKey:
          type: string
          description: Reference to the basket attached to this order.
        campaignKey:
          type: string
          description: Reference to the campaign applied to this order.
        channel:
          $ref: '#/components/schemas/OrderChannel'
        confirmedAt:
          type: string
          format: date-time
          title: Timestamp of order confirmation
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
        cost:
          $ref: '#/components/schemas/OrderCost'
        currencyCode:
          type: string
          pattern: ^([A-Z]{3})$
          title: 3-character currency code
          description: >-
            The three character
            [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes)
            currency code that identifies the currency.
        customData:
          type: object
          additionalProperties: true
          properties:
            score:
              type:
                - object
                - string
                - integer
                - number
                - array
                - boolean
        customer:
          $ref: '#/components/schemas/OrderCustomer'
        detailedStatus:
          $ref: '#/components/schemas/DetailedOrderStatus'
        invoicedAt:
          type: string
          format: date-time
          title: Timestamp of order invoice
        items:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/OrderItemResponse'
        loyaltyCard:
          $ref: '#/components/schemas/LoyaltyCard'
        membershipDiscount:
          $ref: '#/components/schemas/MembershipDiscount'
        packages:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/OrderPackage'
          title: List of packages
          description: >-
            The distribution of items across packages is calculated based on the
            supplierId.
        payment:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/OrderPayment'
        promotions:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/OrderPromotionResponse'
        publicKey:
          type: string
          minLength: 1
          maxLength: 100
          description: >-
            Public reference set by the client to display to customers in
            account areas and transactional emails.
        referenceKey:
          type: string
          minLength: 1
          maxLength: 100
          description: >-
            External reference set by the client to integrate a 3rd party
            system.
        shipping:
          $ref: '#/components/schemas/OrderShipping'
        shop:
          $ref: '#/components/schemas/ShopInfo'
        status:
          type: string
          enum:
            - order_open
            - payment_pending
            - payment_reserved
            - invoice_completed
            - cancellation_pending
            - cancellation_completed
            - invoice_partially_completed
        vouchers:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/OrderVoucher'
        createdAt:
          type: string
          format: date-time
          title: Timestamp of order creation
        updatedAt:
          type: string
          format: date-time
          title: Timestamp of last order update.
    OrderAddressesResponse:
      type: object
      additionalProperties: false
      required:
        - billing
        - shipping
      properties:
        billing:
          $ref: '#/components/schemas/AddressDetailsResponse'
        forward:
          $ref: '#/components/schemas/AddressDetailsResponse'
        shipping:
          $ref: '#/components/schemas/AddressDetailsResponse'
    AddressDetailsResponse:
      type: object
      additionalProperties: false
      required:
        - city
        - street
        - countryCode
        - zipCode
        - recipient
        - id
        - isDefault
        - createdAt
        - updatedAt
      properties:
        id:
          type: integer
          description: Unique identifier for the address.
        additional:
          type: string
          pattern: '[!-ɏ0-9 ]'
          description: Additional data pertaining to the address, such as `c/o AboutYou`.
        appId:
          type: integer
        city:
          type: string
          pattern: '[!-ɏ0-9 ]'
        collectionPoint:
          $ref: '#/components/schemas/CollectionPoint'
        countryCode:
          type: string
          maxLength: 3
          minLength: 3
        houseNumber:
          type: string
          pattern: '[!-ɏ0-9 ]'
        isBillingAddress:
          type: boolean
        isDefault:
          $ref: '#/components/schemas/IsDefaultAddress'
        isShippingAddress:
          type: boolean
        phone:
          type: string
        recipient:
          $ref: '#/components/schemas/RecipientResponse'
        referenceKey:
          type: string
          maxLength: 100
          minLength: 1
          description: >-
            External reference set by the client to integrate a 3rd party
            system.
        state:
          type: string
          pattern: '[!-ɏ0-9 ]'
        street:
          type: string
          pattern: '[!-ɏ0-9 ]'
        zipCode:
          type: string
          minLength: 1
          maxLength: 12
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    CollectionPoint:
      type: object
      additionalProperties: false
      description: >-
        A collection point is an alternate shipping address, which will hold the
        customer's packages until pickup.
      required:
        - key
        - type
      properties:
        key:
          type: string
          pattern: '[A-z0-9]'
          description: >-
            Unique identifier of the collection point provided by an external
            system.
        type:
          description: The type of the collection point as defined by the platform.
          anyOf:
            - type: string
              enum:
                - hermes_parcelshop
                - dhl_packstation
                - dhl_postoffice
                - postsk_postoffice
                - postsk_parcelbox
                - gls_postoffice
                - gls_packstation
                - gls_parcelshop
                - post_office
                - postsi_postoffice
                - postsi_packstation
                - omniva_parcel_shop
                - omniva_packstation
                - offline-store
                - fastwayie_packstation
                - fastwayie_parcelshop
                - generic
                - packstation
                - parcel_shop
                - posteitaliane_packstation
                - posteitaliane_parcelshop
                - postifi_packstation
                - postifi_parcelshop
                - zasilcz_parcelshop
                - zasilcz_packstation
                - reba_packstation
                - reba_parcel_shop
            - type: string
              maxLength: 64
              minLength: 2
              pattern: ^[0-9a-z_]+$
        customerKey:
          type: string
          pattern: '[A-z0-9]'
          description: Identifier of the customer at the collection point provider.
        description:
          type: string
          pattern: '[!-ɏ0-9 ]'
          description: Description of the collection point.
    IsDefaultAddress:
      type: object
      additionalProperties: false
      required:
        - billing
        - shipping
      properties:
        billing:
          type: boolean
        shipping:
          type: boolean
    RecipientResponse:
      type: object
      additionalProperties: false
      required:
        - type
        - lastName
      properties:
        firstName:
          type: string
          pattern: '[!-ɏ0-9 ]'
        gender:
          type: string
          enum:
            - m
            - f
            - d
            - 'n'
        lastName:
          type: string
          pattern: '[!-ɏ0-9 ]'
        title:
          type: string
          maxLength: 30
        type:
          type: string
          enum:
            - personal
            - retail
            - organization
            - family
    Contact:
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
        value:
          type: string
    OrderCost:
      type: object
      description: >-
        Order-level cost details including totals, taxes, fees, reductions, and
        item group breakdowns.
      required:
        - tax
        - withoutTax
        - withTax
        - withTaxWithMembershipDiscountWithoutServiceCosts
        - hasExternalPrices
      properties:
        appliedFees:
          type: array
          description: Order-level applied fees such as payment or delivery costs.
          items:
            type: object
            required:
              - amount
              - category
              - key
            properties:
              amount:
                type: object
                required: []
                properties:
                  withoutTax:
                    type: integer
                    description: Fee amount without tax (net).
                  withTax:
                    type: integer
                    description: Fee amount with tax (gross).
              category:
                type: string
                enum:
                  - payment
                  - delivery
                  - percentage_payment
                  - return
                description: Category of the fee (e.g., payment, delivery, etc.).
              key:
                type: string
                description: Unique identifier for the fee line.
              option:
                type: string
                description: Optional extra information about the fee.
              tax:
                type: object
                properties:
                  vat:
                    type: object
                    required:
                      - amount
                      - rate
                    properties:
                      amount:
                        type: number
                        description: VAT amount for this fee.
                      rate:
                        type: number
                        format: float
                        minimum: 0
                        maximum: 1
                        description: VAT rate applied to this fee (fraction of 1).
        appliedReductions:
          type: array
          description: Order-level applied reductions such as vouchers or promotions.
          items:
            type: object
            required:
              - amount
              - category
              - type
            properties:
              amount:
                type: object
                required:
                  - absoluteWithTax
                  - relative
                properties:
                  absoluteWithTax:
                    type: integer
                    description: Absolute reduction amount including tax.
                  relative:
                    type: number
                    format: float
                    minimum: 0
                    maximum: 1
                    description: Relative reduction factor (e.g., 0.1 for 10%).
              category:
                type: string
                enum:
                  - voucher
                  - promotion
                description: Reduction type (voucher or promotion).
              code:
                type: string
                description: Optional voucher or promotion code.
              displayName:
                type: string
                description: Optional human-readable name for the reduction.
              type:
                type: string
                enum:
                  - absolute
                description: Type of reduction (currently only absolute).
        costCapture:
          type: integer
          description: Captured cost amount if applicable.
        tax:
          type: object
          required:
            - vat
          properties:
            vat:
              type: object
              properties:
                amount:
                  type: number
                  description: Total VAT amount applied to the order.
        withoutTax:
          type: integer
          description: Total order amount excluding taxes (net).
        withoutTaxWithMembershipDiscount:
          type: integer
          description: Order net amount after membership discounts.
        withTax:
          type: integer
          description: Total order amount including all taxes and applied costs (gross).
        withTaxWithMembershipDiscountWithoutServiceCosts:
          type: integer
          description: >-
            Order gross amount after membership discounts, excluding service
            costs.
        hasExternalPrices:
          type: boolean
          description: Indicates if external prices were provided for this order.
        itemGroups:
          type: object
          description: Order-level item group totals keyed by item group id.
          additionalProperties:
            type: object
            properties:
              brutto:
                type: integer
                description: Total gross amount of items in the group.
              bruttoDiscount:
                type: integer
                description: Gross discount applied to the item group.
              bruttoDiscountWithoutMainProduct:
                type: integer
                description: Gross discount excluding main product.
              bruttoWithoutMainProduct:
                type: integer
                description: Total gross amount excluding main product.
              netto:
                type: integer
                description: Total net amount of items in the group.
              nettoWithoutMainProduct:
                type: integer
                description: Net amount excluding main product.
              tax:
                type: integer
                description: Total tax amount for the item group.
              taxWithoutMainProduct:
                type: integer
                description: Tax amount excluding main product.
    OrderChannel:
      type: object
      description: Channel information if the order is associated with a channel.
      required:
        - id
        - key
        - name
        - type
      properties:
        id:
          type: integer
          description: Internal channel unique identifier.
        key:
          type: string
          description: Unique channel key.
        name:
          type: string
          description: Name of the channel.
        type:
          type: string
          description: Type of the channel.
          enum:
            - marketplace
            - in_store
    OrderCustomer:
      type: object
      additionalProperties: false
      required:
        - createdAt
        - lastName
        - id
        - updatedAt
        - status
        - type
      properties:
        id:
          type: integer
        anonymisation:
          type: object
          additionalProperties: false
          required:
            - status
          properties:
            status:
              type: string
              enum:
                - initiated
                - pending
                - executed
                - cancelled
        authentication:
          type: object
          additionalProperties: false
          required:
            - type
          properties:
            data:
              type: object
              additionalProperties: false
              properties:
                accessToken:
                  type: string
                userId:
                  type: string
            type:
              type: string
              enum:
                - facebook
                - password
                - apple
                - keycloak
        birthDate:
          type: string
        customData:
          type: object
          additionalProperties: true
          description: Additional data attached by the client to enhance the customer.
          properties:
            score:
              type:
                - object
                - string
                - integer
                - number
                - array
                - boolean
        email:
          type: string
          format: email
          maxLength: 60
        firstName:
          type: string
          pattern: '[!-ɏ0-9 ]'
        gender:
          type: string
          enum:
            - m
            - f
            - d
            - 'n'
        groups:
          type: array
          uniqueItems: true
          items:
            type: string
            maxLength: 60
            minLength: 1
        identities:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - idpCode
            properties:
              externalUserId:
                type: string
                maxLength: 255
                minLength: 1
              idpCode:
                type: string
                maxLength: 255
                minLength: 1
        ipAddress:
          type: string
          format: ipv4
        lastName:
          type: string
          pattern: '[!-ɏ0-9 ]'
        phone:
          type: string
          pattern: ^[\d /+\-\(\)\.]{1,}$
        publicKey:
          type: string
          maxLength: 100
          minLength: 1
          description: Public reference set by the client to display to customers.
        referenceKey:
          type: string
          maxLength: 100
          minLength: 1
          description: >-
            External reference set by the client to integrate a 3rd party
            system.
        status:
          type: object
          additionalProperties: false
          required:
            - isActive
            - isAnonymous
            - isGuestCustomer
            - isTestCustomer
          properties:
            isActive:
              type: boolean
            isAnonymous:
              type: boolean
            isGuestCustomer:
              type: boolean
            isTestCustomer:
              type: boolean
        title:
          type: string
          maxLength: 30
        type:
          type: string
          enum:
            - personal
            - retail
            - organization
            - family
        userAgent:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    DetailedOrderStatus:
      type: object
      additionalProperties: true
      required:
        - order
        - shipping
        - billing
      properties:
        billing:
          $ref: '#/components/schemas/OrderStatusDetail'
        order:
          $ref: '#/components/schemas/OrderStatusDetail'
        shipping:
          $ref: '#/components/schemas/OrderStatusDetail'
    OrderStatusDetail:
      type: object
      additionalProperties: true
      required:
        - code
        - name
      properties:
        code:
          type: string
          title: Unique identifier of the state
        name:
          type: string
          title: Name of the state
    OrderItemResponse:
      type: object
      additionalProperties: false
      required:
        - createdAt
        - key
        - price
        - status
        - updatedAt
        - variant
        - product
      properties:
        id:
          type: integer
          title: Unique numeric identifier of the item
        availableQuantity:
          type: integer
          title: Available quantity in the warehouse
          description: The number of deliverable items available for immediate shipping.
        basketItemKey:
          type: string
          title: BAPI item identifier
        campaignKey:
          type: string
          description: Reference to the campaign applied to this order item.
        currency:
          type: string
          pattern: ^([A-Z]{3})$
          title: 3-character currency code
          description: >-
            The three character
            [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes)
            currency code.
        customData:
          type: object
          additionalProperties: true
          description: Custom data attached to an item.
        deliveryForecast:
          $ref: '#/components/schemas/ItemDeliveryForecast'
        isManuallyReturnedByCci:
          type: boolean
          title: the return shipment has been triggered by CCI
          description: Whether the return shipment got triggered manually.
        itemGroup:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemResponseGroupInfo'
          description: >-
            Item group information for configurable products (null for the
            others).
        key:
          type: string
          title: Unique identifier of the item
        lowestPriorPrice:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/OrderLowestPriorPrice'
          description: The lowest price in the last 30 days.
        merchant:
          type: object
          required:
            - id
          properties:
            id:
              type: integer
              minimum: 1
          description: The merchant ID to which the item belongs.
        packageId:
          type: integer
          title: Package reference
          description: Items are grouped by package.
        price:
          $ref: '#/components/schemas/ItemPrice'
        product:
          type: object
          additionalProperties: true
        promotion:
          $ref: '#/components/schemas/ItemPromotionResponse'
        reservationKey:
          type: string
          maxLength: 60
          minLength: 1
          pattern: ^[0-9a-zA-Z\-\\_]*$
          description: >-
            Reference set in the checkout when an item was reserved
            successfully.
        status:
          type: string
          enum:
            - available
            - cancelled
            - delivered
            - returned
            - unavailable
            - undeliverable
        variant:
          type: object
          additionalProperties: true
        warehouseId:
          type: integer
          title: Picking warehouse Id
          description: The warehouse ID where the item is being picked from.
        warehousePackageGroupId:
          type: integer
          title: warehouse package reference
          description: The package identification inside of the warehouse.
        createdAt:
          type: string
          format: date-time
          title: Timestamp of item creation
        updatedAt:
          type: string
          format: date-time
          title: Timestamp of last item update.
    ItemDeliveryForecast:
      type: object
      additionalProperties: false
      title: Delivery forecast from warehouse
      description: When an item cannot be shipped within the regular delivery timeframe.
      properties:
        deliverable:
          type: object
          properties:
            key:
              type: string
        subsequentDelivery:
          type: object
          properties:
            key:
              type: string
              enum:
                - endOfJanuary
                - endOfFebruary
                - endOfMarch
                - endOfApril
                - endOfMay
                - endOfJune
                - endOfJuly
                - endOfAugust
                - endOfSeptember
                - endOfOctober
                - endOfNovember
                - endOfDecember
                - midOfJanuary
                - midOfFebruary
                - midOfMarch
                - midOfApril
                - midOfMay
                - midOfJune
                - midOfJuly
                - midOfAugust
                - midOfSeptember
                - midOfOctober
                - midOfNovember
                - midOfDecember
                - easter
                - christmas
                - available
                - directShipping
                - outsold
    ItemResponseGroupInfo:
      type: object
      additionalProperties: false
      description: Item group information for configurable products.
      required:
        - id
        - isMainItem
        - isRequired
      properties:
        id:
          type: string
          description: Item group ID.
        isMainItem:
          type: boolean
          description: Specifies the main item in the group.
        isRequired:
          type: boolean
          description: Specifies if the item is mandatory or optional.
    OrderLowestPriorPrice:
      type: object
      additionalProperties: false
      description: The lowest price in the last 30 days.
      required:
        - relativeDifferenceToPrice
        - withTax
      properties:
        relativeDifferenceToPrice:
          type: number
          description: Difference to the current price.
        withTax:
          type: integer
          description: Lowest price including taxes.
    ItemPrice:
      type: object
      additionalProperties: false
      description: >-
        The price is provided in a currency's lowest denomination (e.g. cent for
        EUR).
      required:
        - withTax
        - withoutTax
        - tax
      properties:
        appliedReductions:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ItemPriceReduction'
          description: >-
            The discounts detail the reductions included in the final
            `price.withTax` and `price.withoutTax` calculation.
        overrideWithoutTax:
          type: integer
        overrideWithTax:
          type: integer
        reference:
          type: object
          additionalProperties: false
          properties:
            size:
              type: string
            unit:
              type: string
            withTax:
              type: integer
        tax:
          type: object
          additionalProperties:
            type: object
            additionalProperties: false
            required:
              - rate
              - amount
            properties:
              amount:
                type: number
                title: Absolute value of the applied tax
              rate:
                type: number
                maximum: 1
                minimum: 0
                title: Relative value of the applied tax
          description: List of all taxes applied in calculating the `price.withTax`.
        undiscountedWithOutTax:
          type: integer
          title: Undiscounted item price **excluding** taxes
        undiscountedWithTax:
          type: integer
          title: Undiscounted item price **including** taxes
        withoutTax:
          type: integer
          title: Item price **excluding** taxes
          description: >-
            This price excludes taxes, but also includes all applicable
            reductions.
        withTax:
          type: integer
          title: Item price **including** taxes
          description: >-
            The price is calculated including taxes and all applicable
            reductions.
    ItemPriceReduction:
      type: object
      additionalProperties: false
      required:
        - category
        - type
        - amount
      properties:
        amount:
          type: object
          additionalProperties: false
          required:
            - relative
            - absoluteWithTax
          properties:
            absoluteWithTax:
              type: integer
              title: This field represents the discount amount including the taxes.
            relative:
              type: number
              maximum: 1
              minimum: 0
              description: >-
                The `rate` is calculated on the basis of the reduction in
                relation to the `preDiscountPrice` price.
        category:
          type: string
          enum:
            - sale
            - campaign
            - voucher
            - promotion
        code:
          type: string
          description: Promotion or voucher code (for promotion / voucher reductions).
        displayName:
          type: string
          description: Display name (for promotion reduction).
        type:
          type: string
          enum:
            - relative
            - absolute
    ItemPromotionResponse:
      type: object
      additionalProperties: false
      description: Item promotion information
      required:
        - id
        - name
        - version
      properties:
        id:
          type: string
        code:
          type: string
        displayName:
          type: string
        name:
          type: string
        version:
          type: string
    LoyaltyCard:
      type: object
      additionalProperties: false
      required:
        - points
        - provider
      properties:
        cardNumber:
          type: string
        points:
          type: integer
          minimum: 0
        provider:
          type: string
          pattern: '[A-Za-z]'
    MembershipDiscount:
      type: object
      additionalProperties: false
      properties:
        membershipCardId:
          type: integer
        pointsUsed:
          type: integer
        reductionValue:
          type: integer
        tax:
          type: integer
    OrderPackage:
      type: object
      additionalProperties: false
      title: Package information
      required:
        - carrierKey
        - deliveryDate
        - deliveryStatus
        - id
      properties:
        id:
          type: integer
          title: Reference, by which the package is identified
          description: >-
            Basket and order items are matched to a package by cross-referencing
            the `item[].packageId`.
        carrierKey:
          type: string
          title: Carrier shipping the item
        deliveryDate:
          $ref: '#/components/schemas/DeliveryDateRange'
        deliveryStatus:
          type: string
          enum:
            - open
            - shipment_pending
            - delegation_pending
            - shipment_completed
            - cancellation_completed
        hasExpectedAvailabilityAt:
          type: boolean
        returnIdentCode:
          type: string
          title: ReturnIdentCode of the item
        shipmentKey:
          type: string
          title: ShipmentKey of the item
        tracking:
          $ref: '#/components/schemas/PackageTracking'
    PackageTracking:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          minLength: 1
        url:
          type: string
          format: uri
    OrderPayment:
      type: object
      additionalProperties: false
      properties:
        amount:
          type: integer
        data:
          type: object
          additionalProperties: true
          properties: {}
          description: >-
            The `data` attribute will contain the data pushed to the Checkout by
            the Payment Provider.
        installment:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/InstallmentDetail'
          description: Details about installments.
        isGiftCard:
          type: boolean
          title: Whether the payment method is a gift card
        key:
          type: string
        options:
          type: object
          additionalProperties: false
          properties:
            countOfInstallments:
              type: integer
              minimum: 1
              title: Number of installments chosen by the Customer for the Order
            hasPaybreak:
              type: boolean
              title: If true, the Customer elected to have a delay in payment capture
        transactionKey:
          type: string
    InstallmentDetail:
      type: object
      additionalProperties: false
      properties:
        amount:
          type: integer
        type:
          type: string
          enum:
            - annualInterest
            - firstInstallment
            - subsequentInstallments
    OrderPromotionResponse:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
        code:
          type: string
        displayName:
          type: string
        reduction:
          type: integer
        version:
          type: string
    OrderShipping:
      type: object
      additionalProperties: false
      required:
        - policy
      properties:
        deliveredOn:
          type: string
        deliveryCosts:
          type: integer
        expressDeliveryCosts:
          type: integer
        policy:
          type: string
          minLength: 3
    ShopInfo:
      type: object
      additionalProperties: false
      required:
        - id
        - country
        - language
      properties:
        id:
          type: integer
        country:
          type: string
          pattern: ^([A-Z]{3})$
          description: Three letter country code of the shop.
        language:
          type: string
          pattern: ^([a-z]{2})$
          description: Two letter language code of the shop.
    OrderVoucher:
      type: object
      additionalProperties: false
      required:
        - code
        - voucherId
        - id
        - type
        - value
      properties:
        id:
          type: integer
        applicableItems:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              isApplied:
                type: boolean
              key:
                type: string
        code:
          type: string
          pattern: '[A-z0-9]{0,12}'
        type:
          type: string
          enum:
            - absolute
            - relative
        value:
          type: number
        voucherId:
          type: integer
    AttributeValue:
      type: object
      description: An attribute within an attribute group.
      required:
        - id
        - label
        - value
      properties:
        id:
          type: integer
          description: A unique numeric identifier.
        label:
          type: string
          description: The frontend-facing name of the attribute value.
        value:
          type: string
          description: The value of the attribute.
    AttributeGroup:
      type: object
      description: A logical grouping of attributes used to structure and organize data.
      required:
        - id
        - key
        - label
        - type
        - multiSelect
      properties:
        id:
          type: integer
          description: A unique numeric identifier.
        key:
          type: string
          description: A unique identifier for the attribute group.
        label:
          type: string
          description: The frontend-facing name of the attribute group.
        type:
          type: string
          description: A value that can be used to aggregate similar attributes groups.
        multiSelect:
          type: boolean
          description: >-
            A flag which indicating whether an attribute group has a single
            value or possibly multiple ones.
        values:
          type: array
          description: The set of values defined under the attribute group.
          items:
            $ref: '#/components/schemas/AttributeValue'
    Timestamp:
      type: string
      description: A date string formatted as RFC 3339.
      example: '2023-01-26T09:30:15Z'
    CategoryProperty:
      type: object
      description: A key-value pair defining a specific property of the category.
      required:
        - name
        - value
      properties:
        name:
          type: string
          description: The name of the property.
        value:
          description: The value of the property.
          type:
            - string
            - number
            - 'null'
    PromotionEffectAutomaticDiscount:
      type: object
      description: >-
        A promotion effect that applies a relative or absolute discount on
        specific items in the basket.
      required:
        - type
        - additionalData
      properties:
        type:
          description: The type of the effect.
          const: automatic_discount
        additionalData:
          type: object
          description: The configuration of the effect.
          required:
            - type
            - value
          properties:
            type:
              description: >-
                The discount type to apply, which can be either a specific
                amount (e.g. 10€) or a percentage (e.g. 10%).
              type: string
              enum:
                - absolute
                - relative
            value:
              description: >-
                The discount amount, expressed as a percentage or as a value in
                cents.
              type: number
              format: float
    PromotionEffectBuyXGetY:
      type: object
      description: >-
        A promotion effect that grants customers a certain number of extra items
        at no cost.
      required:
        - type
        - additionalData
      properties:
        type:
          description: The type of the effect.
          const: buy_x_get_y
        additionalData:
          type: object
          description: The configuration of the effect.
          required:
            - discountType
            - discountValue
            - discountDistribution
            - eligibleItemsQuantity
            - maxCount
            - maxCountType
            - applicableItemSelectionType
          properties:
            eligibleItemsQuantity:
              type: integer
              description: >-
                The quantity of items that need to be considered for the count
                logic.
            maxCount:
              type: integer
              description: The maximum number of items the customer can redeem.
            maxCountType:
              type: string
              description: How often the promotion can be used per order.
              enum:
                - per_eligible_items_quantity
                - per_eligible_uniq_items
                - per_item_set
                - single_item
            variantIds:
              type: array
              description: >-
                An optional list of variant IDs that can be reedemed when
                promotional requirements are fulfilled.
              items:
                type: integer
            discountType:
              type: string
              description: >-
                The discount type to apply, which can be either a specific
                amount (e.g. 10€) or a percentage (e.g. 10%).
              enum:
                - absolute
                - relative
            discountValue:
              type: number
              description: The discount amount, expressed as cents or as a percentage.
              format: float
            discountDistribution:
              type: string
              description: The distribution method for the discount.
              enum:
                - none
                - pro_rata
            applicableItemSelectionType:
              type: string
              description: The method for identifying which items qualify for the discount.
              enum:
                - variant_ids
                - cheapest
                - random
    PromotionEffectComboDeal:
      type: object
      description: >-
        A promotion effect that allows customers to buy a bundle of several
        products for a fixed price.
      required:
        - type
        - additionalData
      properties:
        type:
          description: The type of the effect.
          const: combo_deal
        additionalData:
          type: object
          description: The configuration of the effect.
          required:
            - price
            - eligibleItemsQuantity
            - maxCountType
          properties:
            price:
              type: integer
              description: >-
                The final price that will be applied to the eligible items in
                the basket.
            eligibleItemsQuantity:
              type: integer
              description: >-
                The quantity of items that need to be considered for the count
                logic.
            maxCountType:
              type: string
              description: >-
                The frequency with which the promotion can be applied within a
                single order.
              enum:
                - per_eligible_items_quantity
                - per_item_set
                - single_item
    PromotionCondition:
      type: object
      description: >-
        A condition that must be met to apply a promotion to the customer's
        basket.
      required:
        - key
        - level
        - condition
      properties:
        key:
          type: string
          description: A unique identifier for the condition within the promotion.
        level:
          type: string
          description: >-
            Whether the condition is checked against the entire basket or
            individual items.
          enum:
            - global
            - item
        condition:
          type: string
          description: >-
            A code statement defined using the Google Common Expression
            Language.
    PromotionTier:
      type: object
      description: >-
        A tier in a promotional program that provides a discount once a
        specified spending threshold is met.
      properties:
        id:
          type: integer
          description: A unique numeric identifier for the tier within the promotion.
        name:
          type: string
          description: The name of the tier.
        mov:
          type: integer
          description: >-
            The minimum order value expressed in cents that must be reached for
            the tier to be applied.
        effect:
          type: object
          description: The effect to apply once all conditions are satisfied.
          properties:
            additionalData:
              type: object
              description: Additional data that define the configuration of the effect.
              properties:
                type:
                  type: string
                  description: >-
                    The discount type to apply, which can be either a specific
                    amount (e.g. 10€) or a percentage (e.g. 10%).
                  enum:
                    - absolute
                    - relative
                value:
                  type: number
                  description: The discount amount, expressed as cents or as a percentage.
                  format: float
    Promotion:
      type: object
      description: >-
        A time-limited promotion that offers discounts or benefits based on
        specific eligibility criteria.
      required:
        - id
        - name
        - displayName
        - isActive
        - priority
        - schedule
        - effect
        - conditions
        - customData
        - tiers
      properties:
        id:
          type: string
          description: A unique identifier for the promotion.
        name:
          type: string
          description: The name of the promotion.
        displayName:
          type:
            - string
            - 'null'
          description: The name of the promotion shown to the customer.
        isActive:
          type: boolean
          description: Flag indicating whether the promotion is active or not.
        priority:
          type: number
          description: >
            The priority of the promotion compared to other promotions.

            This can be used to decide which promotion to apply if there is a
            conflict between two.
        schedule:
          type: object
          description: Promotion's initial and end date.
          required:
            - from
            - to
          properties:
            from:
              description: The promotion start date, formatted as RFC 3339.
              $ref: '#/components/schemas/Timestamp'
            to:
              description: The promotion end date, formatted as RFC 3339.
              $ref: '#/components/schemas/Timestamp'
        effect:
          type: object
          description: The discount to be applied when all conditions are satisfied.
          oneOf:
            - $ref: '#/components/schemas/PromotionEffectAutomaticDiscount'
            - $ref: '#/components/schemas/PromotionEffectBuyXGetY'
            - $ref: '#/components/schemas/PromotionEffectComboDeal'
        conditions:
          type: array
          description: The conditions that must be met for the promotion to be applied.
          items:
            $ref: '#/components/schemas/PromotionCondition'
        tiers:
          type: array
          description: >-
            The tiers that provide a discount once a specified spending
            threshold is met (MOV).
          items:
            $ref: '#/components/schemas/PromotionTier'
        customData:
          type: object
          description: Additional data relevant for the promotion.
          additionalProperties: true
          properties:
            headline:
              type: string
              description: The main headline or title of the promotion, shown prominently.
            subline:
              type: string
              description: >-
                A short supporting description displayed below or next to the
                headline.
            link:
              type: string
              description: A URL linking to the full promotion landing page or details.
            hideCountDown:
              type: boolean
              description: >-
                Flag indicating whether to display a countdown for the
                promotion's end.
            condition:
              type: string
              description: >-
                Details about the promotion's terms, such as its duration or the
                products it applies to.
            color:
              type: object
              description: >-
                The color palette that customizes the visual style of the
                promotion.
              properties:
                background:
                  type: string
                  description: An optional background color for the promotion ribbon.
                text:
                  type: string
                  description: An optional text color for the promotion ribbon.
            product:
              type: object
              description: Customization options for product-level promotion badges.
              additionalProperties: true
              properties:
                badgeLabel:
                  type: string
                  description: >-
                    Short label (e.g., "10% OFF") shown directly on product
                    cards or listings.
                attributeId:
                  type: integer
                  description: >-
                    An Optional attribute ID used for additional filtering,
                    segmentation, or internal mapping.
    PagePagination:
      type: object
      description: Information to aid in pagination.
      additionalProperties: false
      required:
        - current
        - total
        - first
        - last
        - next
        - prev
        - page
        - perPage
      properties:
        current:
          type: integer
          description: The number of items on the current page.
        total:
          type: integer
          description: The total number of items available regardless of pagination.
        first:
          type: integer
          description: The number of the first available page.
        last:
          type: integer
          description: The number of the last available page.
        next:
          type: integer
          description: The number of the next available page.
        prev:
          type: integer
          description: The number of the previous available page.
        page:
          type: integer
          description: The number of the current page.
        perPage:
          type: integer
          description: The maximum number of items to return per page.
    OffsetPagination:
      type: object
      description: Information to aid in pagination.
      additionalProperties: false
      required:
        - total
      properties:
        total:
          type: integer
          description: The total number of items available regardless of pagination.
    Category:
      type: object
      description: Information defining the hierarchical structure of the shop assortment.
      required:
        - id
        - name
        - slug
        - path
        - parentId
        - rootlineIds
        - childrenIds
        - properties
        - isHidden
        - depth
        - supportedFilter
        - shopLevelCustomData
        - countryLevelCustomData
      properties:
        id:
          type: integer
          description: A unique numeric identifier.
        name:
          type: string
          description: The name of the category.
        slug:
          type: string
          description: >-
            A unique, human-readable identifier automatically generated based on
            the category name, typically used in URLs.
        path:
          type: string
          description: >-
            The breadcrumb from the root category to the current category, using
            slugs to form the URL structure.
        parentId:
          type: integer
          description: >-
            The unique numeric identifier of the parent category. Root‑level
            categories use a value of `0`.
        rootlineIds:
          type: array
          description: >-
            The ordered list of category IDs forming the hierarchical path from
            the root category to the current category.
          items:
            type: integer
        childrenIds:
          type: array
          description: The list of category IDs of the direct descendants in the hierarchy.
          items:
            type: integer
        properties:
          type: array
          description: >-
            A list of key-value pairs defining specific properties of the
            category.
          items:
            $ref: '#/components/schemas/CategoryProperty'
        isHidden:
          type: boolean
          description: >-
            Flag indicating whether the category should be displayed on the
            frontend.
        depth:
          type: integer
          minimum: 1
          description: >-
            The hierarchical depth of the category. The root has depth `1`, and
            each descendant increases the depth by one.
        supportedFilter:
          type: array
          description: >-
            A list of filters that can be used for filtering products in the
            category
          items:
            type: string
        shopLevelCustomData:
          type: object
          description: Additional data relevant for all shops.
        countryLevelCustomData:
          type: object
          description: Additional data relevant for the current shop.
        parent:
          $ref: '#/components/schemas/Category'
          description: >
            The immediate ancestor in the category hierarchy.


            _Note: This field is omitted when the node has no parent or when it
            appears as a child in the hierarchy to

            prevent recursive references. It is also omitted when categories are
            retrieved using the `list` format._
        children:
          type: array
          description: >
            The child categories at the next level of the hierarchy.


            _Note: This field is omitted when it appears within the `parent`
            field to avoid recursive nesting, when

            categories are retrieved using the `list` format, or when a single
            category is requested without including

            its children through the `with` parameter._
          items:
            $ref: '#/components/schemas/Category'
        productSorting:
          type: object
          description: >
            The configuration that defines how products are ordered within the
            category.


            _Note: When a category has both custom sorting and smart sorting
            enabled, products are ordered by the custom

            sorting key first. If several products share the same custom sorting
            value, the smart sorting key determines

            their order._
          required:
            - smartSortingKey
            - customSortingKey
          properties:
            smartSortingKey:
              type:
                - string
                - 'null'
              description: The smart sorting key used to order products.
            customSortingKey:
              type:
                - string
                - 'null'
              description: The custom sorting key used to order products.
    AttributeGroupList:
      type: array
      items:
        $ref: '#/components/schemas/AttributeGroup'
        description: List of attribute groups used to structure and organize data.
    GenericErrorResponse:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
          description: The HTTP status code as returned by the API.
        message:
          type: string
          description: A short description that explains the error and its cause.
    Brand:
      type: object
      description: Information about a brand.
      required:
        - id
        - slug
        - name
        - externalReference
        - group
        - isActive
        - logoHash
        - createdAt
        - updatedAt
        - indexedAt
        - customData
      properties:
        id:
          type: integer
          description: A unique numeric identifier for the brand.
        slug:
          type: string
          description: >-
            A unique, human-readable identifier automatically generated based on
            the brand name, typically used in URLs.
        name:
          type: string
          description: The name of the brand.
        externalReference:
          type: string
          description: >-
            A client-defined external reference to integrate the brand with
            third-party systems.
        group:
          type: string
          description: The group to which the brand belongs.
        isActive:
          type: boolean
          description: Flag indicating whether the brand is active or not.
        logoHash:
          type: string
          description: The hash used to generate the URL for the brand's logo.
        createdAt:
          description: The date the brand was created, formatted as RFC 3339.
          $ref: '#/components/schemas/Timestamp'
        updatedAt:
          description: The date the brand was last updated, formatted as RFC 3339.
          $ref: '#/components/schemas/Timestamp'
        indexedAt:
          description: The date the brand was last indexed, formatted as RFC 3339.
          $ref: '#/components/schemas/Timestamp'
        customData:
          type: object
          description: Additional data relevant for the brand.
    BrandPaginatedList:
      type: object
      required:
        - pagination
        - entities
      properties:
        pagination:
          oneOf:
            - $ref: '#/components/schemas/PagePagination'
            - $ref: '#/components/schemas/OffsetPagination'
        entities:
          type: array
          items:
            $ref: '#/components/schemas/Brand'
    Campaign:
      type: object
      required:
        - id
        - key
        - name
        - description
        - reduction
        - customData
        - startsAt
        - endsAt
      properties:
        id:
          type: integer
          description: A unique numeric identifier.
        key:
          type: string
          description: A globally-unique ID.
        name:
          type: string
          description: The name of the campaign.
        description:
          type: string
          description: An optional description of the campaign.
        reduction:
          type: integer
          description: >-
            Percentage discount applied to products that don't have a
            product-based discount within the campaign.
        start_at:
          description: The campaign start date, formatted as RFC 3339.
          deprecated: true
          $ref: '#/components/schemas/Timestamp'
        end_at:
          description: The campaign end date, formatted as RFC 3339.
          deprecated: true
          $ref: '#/components/schemas/Timestamp'
        startsAt:
          description: The campaign start date, formatted as RFC 3339.
          $ref: '#/components/schemas/Timestamp'
        endsAt:
          description: The campaign end date, formatted as RFC 3339.
          $ref: '#/components/schemas/Timestamp'
        customData:
          type: object
          description: Additional data relevant for the campaign.
        headline:
          type: string
          description: The main title of the campaign.
        subline:
          type: string
          description: >-
            A brief description of the campaign, displayed alongside the
            campaign's main title.
        link:
          type: string
          description: The link to the campaign page.
        hideCountDown:
          type: boolean
          description: >-
            Flag indicating whether to display a countdown for the campaign's
            end.
        condition:
          type: string
          description: >-
            Details about the campaign's terms, such as its duration or the
            products it applies to.
        color:
          type: object
          description: The color palette that customizes the visual style of the campaign.
          properties:
            background:
              type: string
              description: An optional background color for the campaign ribbon.
            text:
              type: string
              description: An optional text color for the campaign ribbon.
        product:
          type: object
          description: >-
            An optional set of customization options for the product badge's
            appearance.
          properties:
            badgeLabel:
              type: string
              description: A short label displayed on product cards.
    CampaignPaginatedList:
      type: object
      required:
        - pagination
        - entities
      properties:
        pagination:
          oneOf:
            - $ref: '#/components/schemas/PagePagination'
            - $ref: '#/components/schemas/OffsetPagination'
        entities:
          type: array
          items:
            $ref: '#/components/schemas/Campaign'
    CategoryList:
      type: array
      items:
        $ref: '#/components/schemas/Category'
    Page:
      type: object
      required:
        - id
        - name
        - slug
        - headline
        - isActive
        - text
        - meta
      properties:
        id:
          type: integer
          description: A unique numeric identifier.
        name:
          type: string
          description: The name of the page.
        slug:
          type: string
          description: >-
            A URL-friendly page name that boosts SEO by helping search engines
            index content effectively.
        headline:
          type: string
          description: The main heading or title displayed on the page.
        isActive:
          type: boolean
          description: Flag indicating whether the page is currently active or not.
        text:
          type: string
          description: The detailed content or description of the page.
        meta:
          type: object
          description: The metadata for SEO and crawler directives.
          required:
            - robots
            - title
            - description
          properties:
            robots:
              type: string
              description: >-
                The robots meta tag that tells search engines whether to index
                the page and follow its links.
              enum:
                - index, follow
                - index, nofollow
                - noindex, follow
                - noindex, nofollow
            title:
              type: string
              description: The page title displayed in the browser tab or window title bar.
            description:
              type: string
              description: >-
                The meta description that summarizes the page content for search
                engines.
    PagePaginatedList:
      type: object
      required:
        - pagination
        - entities
      properties:
        pagination:
          oneOf:
            - $ref: '#/components/schemas/PagePagination'
            - $ref: '#/components/schemas/OffsetPagination'
        entities:
          type: array
          description: List of pages.
          items:
            $ref: '#/components/schemas/Page'
    PromotionPaginatedList:
      type: object
      required:
        - pagination
        - entities
      properties:
        pagination:
          $ref: '#/components/schemas/PagePagination'
        entities:
          type: array
          description: List of promotions.
          items:
            $ref: '#/components/schemas/Promotion'
    Redirect:
      type: object
      description: >-
        A URL redirect that intercepts requests to a shop and redirects the user
        to another page.
      required:
        - id
        - source
        - target
        - statusCode
        - priority
        - isRegex
      properties:
        id:
          type: integer
          description: A unique numeric identifier.
        source:
          type: string
          description: >-
            The original location to redirect from. Can be a plain string or an
            RE2-compatible pattern.
        target:
          type: string
          description: The target location where the user will be redirected to.
        statusCode:
          type: integer
          description: The HTTP status code for the redirect.
          enum:
            - 301
            - 302
            - 303
            - 307
            - 308
        priority:
          type: integer
          description: >
            A priority that defines the order in which multiple matching
            redirects are applied. The lower

            the priority, the earlier the redirect is applied. If two redirects
            have the same priority,

            the one with the lowest ID takes precedence.
        isRegex:
          type: boolean
          description: >-
            A flag indicating whether the redirect source is a regular
            expression.
    RedirectPaginatedList:
      type: object
      required:
        - pagination
        - entities
      properties:
        pagination:
          oneOf:
            - $ref: '#/components/schemas/PagePagination'
            - $ref: '#/components/schemas/OffsetPagination'
        entities:
          type: array
          description: List of redirects.
          items:
            $ref: '#/components/schemas/Redirect'
    MatchRedirect:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          description: The URL to find a redirect for.
    RedirectMatch:
      type: object
      description: A matching URL redirect for a given source location.
      required:
        - id
        - source
        - target
        - statusCode
      properties:
        id:
          const: -1
          deprecated: true
          description: >
            A unique numeric identifier, fixed at `-1` due to the recursive
            nature of matching. Since each

            redirect is matched in sequence, there's no singular ID that
            represents the entire matching process.
        source:
          type: string
          description: The original location to redirect from.
        target:
          type: string
          description: The target location where the user will be redirected to.
        statusCode:
          type: integer
          description: The HTTP status code for the redirect.
          enum:
            - 301
            - 302
            - 303
            - 307
            - 308
    ShopConfiguration:
      type: object
      required:
        - shopId
        - name
        - country
        - customData
        - shopCustomData
        - properties
      properties:
        shopId:
          type: integer
          description: A unique numeric identifier for the country shop.
        name:
          type: string
          description: The name of the shop.
        country:
          type: string
          description: >-
            The ISO 3166-1 alpha-2 code of the country in which the shop
            operates.
        customData:
          type: object
          description: Additional data relevant for the current shop.
        shopCustomData:
          type: object
          description: Additional data relevant for all shops.
        properties:
          type: array
          description: Additional data relevant for the shop.
          deprecated: true
          items:
            type: object
            required:
              - key
              - value
            properties:
              key:
                type: string
                description: The unique identifier of the property.
              value:
                type: string
                description: The value of the property.
  parameters:
    OrderCustomData:
      name: X-Order-Custom-Data
      description: >-
        Base64-encoded data for custom order information. Should be a json
        object.
      in: header
      required: false
      schema:
        type: string
        example: YWJjMTIz
    CustomerToken:
      name: X-Customer-Token
      description: >-
        A JWT token containing the customer ID used to validate promotions in
        the promotion engine.
      in: header
      required: false
      schema:
        type: string
        example: yJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3O DkwIi
    AccessToken:
      name: X-Access-Token
      description: Access token for accessing protected endpoints
      in: header
      required: true
      schema:
        type: string
        example: f36POk6yJV_adQssw5c
    basketId:
      name: basketId
      in: path
      description: The ID of the Basket
      required: true
      explode: false
      schema:
        type: string
        example: fySXbTJxa9q_xu_t8edGOHYeJSpaxe7A
    basketItemKey:
      name: itemKey
      in: path
      description: The Key of the Item to be sent to the request
      required: true
      explode: false
      schema:
        type: string
        example: ga2iyonk4vgpifcdm1xeuj6ezsev8ke
    basketWith:
      name: with
      in: query
      description: >
        Include related resources, for example, the attributes of a product can
        be included using `with=items.product.attributes`.


        The following table describes all the possible parameters that can be
        used:


        Parameter | Description

        ------------ | -------------

        `applicablePromotions` | Include promotions that can be applied to the
        basket.

        `applicablePromotions.customData` | Include custom data of applicable
        promotions.

        `items.customData` | Include custom data of basket items.

        `items.product.attributes` | Include attributes of the product.

        `items.product.advancedAttributes` | Include advanced attributes of the
        product.

        `items.product.images.attributes` | Include attributes of each product
        image.

        `items.product.images.customData` | Include custom data of each product
        image.

        `items.product.definingAttributes` | Include defining attributes of the
        product.

        `items.product.categories` | Include categories of the product.

        `items.product.categories.countryLevelCustomData` | Include
        country-level custom data of the category.

        `items.product.categories.shopLevelCustomData` | Include shop-level
        custom data of the category.

        `items.product.customData` | Include custom data of the product.

        `items.product.siblings` | Include sibling products.

        `items.product.siblings.customData` | Include custom data of sibling
        products.

        `items.product.siblings.categories.countryLevelCustomData` | Include
        country-level custom data of sibling product categories.

        `items.product.siblings.categories.shopLevelCustomData` | Include
        shop-level custom data of sibling product categories.

        `items.product.siblings.variants.customData` | Include custom data of
        sibling product variants.

        `items.product.siblings.variants.merchant` | Include merchant of sibling
        product variants.

        `items.product.siblings.variants.merchant.customData` | Include merchant
        custom data of sibling product variants.

        `items.product.siblings.images.customData` | Include custom data of
        sibling product images.

        `items.product.searchCategoryIds` | Include the list of IDs of all
        categories associated with the product, both hidden and visible.

        `items.product.baseCategories` | Include base categories of the product.
        (deprecated)

        `items.product.masterCategories` | Include master categories of the
        product.

        `items.product.priceRange` | Include information about the price range
        of the product.

        `items.product.reductionRange` | Include information about the reduction
        range of the price.

        `items.product.pricePromotionInfo` | Include information about the price
        promotions of the product.

        `items.product.lowestPriorPrice` | Include the lower prior price of the
        product.

        `items.product.variants` | Include item product variants.

        `items.product.variants.attributes` | Include item product variants
        attributes.

        `items.product.variants.advancedAttributes` | Include item product
        variants advanced attributes

        `items.product.variants.customData` | Include custom data of item
        product variants.

        `items.product.variants.lowestPriorPrice` | Include item product
        variants lowestPriorPrice

        `items.product.variants.merchant` | Include the information about the
        merchant selling the product variant.

        `items.product.variants.merchant.customData` | Include custom data of
        the product variant

        `items.promotion.customData` | Include custom data of item promotions.

        `items.variant.lowestPriorPrice` | Include the lower prior price of the
        item variant.

        `items.variant.attributes` | Include attributes of the item variant.

        `items.variant.advancedAttributes` | Include advanced attributes of the
        item variant.

        `items.variant.customData` | Include custom data of the item variant.

        `items.variant.merchant` | Include the information about the merchant
        selling the item variant.

        `items.variant.merchant.customData` | Include custom data of the item
        variant merchant.


        It is also possible to filter some parameters. When supported, multiple
        filter values can be specified by separating them with a pipe.


        Filter | Description

        ------------ | -------------

        `applicablePromotions.customData:key()` | Include custom data of
        applicable promotions with empty object.

        `applicablePromotions.customData:key(keyA\|...)` | Include custom data
        of applicable promotions with only specified keys.

        `items.customData:key()` | Include custom data of basket items with
        empty object.

        `items.customData:key(keyA\|...)` | Include custom data of basket items
        with only specified keys.

        `items.product.attributes:key(keyA\|...)` | Return only the attributes
        matching the specified names, e.g.,
        `with=items.product.attributes:key(ean)`.

        `items.product.attributes:type(typeA\|...)` | Return only the attributes
        matching the specified types, e.g.,
        `with=items.product.attributes:type(fit_size)`.

        `items.product.advancedAttributes:key(keyA\|...)` | Return only the
        advanced attributes matching the specified names, e.g.,
        `with=items.product.advancedAttributes:key(productName)`.

        `items.product.advancedAttributes:type(typeA\|...)` | Return only the
        advanced attributes matching the specified types, e.g.,
        `with=items.product.advancedAttributes:type(material_care)`.

        `items.product.categories:hidden(true)` | Return also the hidden
        categories.

        `items.product.categories.categoryProperties:name(keyA\|...)` | Return
        only the category properties matching, e.g.,
        `with=items.product.categories.categoryProperties:name(gender_female)`.

        `items.product.categories.countryLevelCustomData:key()` | Include
        country-level custom data of the category with empty object.

        `items.product.categories.countryLevelCustomData:key(keyA\|...)` |
        Include country-level custom data of the category with only specified
        keys.

        `items.product.categories.shopLevelCustomData:key()` | Include
        shop-level custom data of the category with empty object.

        `items.product.categories.shopLevelCustomData:key(keyA\|...)` | Include
        shop-level custom data of the category with only specified keys.

        `items.product.customData:key()` | Include custom data of the product
        with empty object.

        `items.product.customData:key(keyA\|...)` | Include custom data of the
        product with only specified keys.

        `items.product.images.attributes:key(keyA\|...)` | Return only the image
        attributes matching the specified names, e.g.,
        `with=items.product.images.attributes:key(plusSize)`.

        `items.product.images.attributes:type(typeA\|...)` | Return only the
        image attributes matching the specified types, e.g.,
        `with=items.product.images.attributes:type(material_care)`.

        `items.product.images.customData` | Include custom data of each product
        image.

        `items.product.images.customData:key()` | Include custom data of each
        product image with empty object.

        `items.product.images.customData:key(keyA\|...)` | Include custom data
        of each product image with only specified keys.

        `items.product.siblings.customData:key()` | Include custom data of
        sibling products with empty object.

        `items.product.siblings.customData:key(keyA\|...)` | Include custom data
        of sibling products with only specified keys.

        `items.product.siblings.categories.countryLevelCustomData:key()` |
        Include country-level custom data of sibling product categories with
        empty object.

        `items.product.siblings.categories.countryLevelCustomData:key(keyA\|...)`
        | Include country-level custom data of sibling product categories with
        only specified keys.

        `items.product.siblings.categories.shopLevelCustomData:key()` | Include
        shop-level custom data of sibling product categories with empty object.

        `items.product.siblings.categories.shopLevelCustomData:key(keyA\|...)` |
        Include shop-level custom data of sibling product categories with only
        specified keys.

        `items.product.siblings.variants.customData:key()` | Include custom data
        of sibling product variants with empty object.

        `items.product.siblings.variants.customData:key(keyA\|...)` | Include
        custom data of sibling product variants with only specified keys.

        `items.product.siblings.variants.merchant.customData:key()` | Include
        merchant custom data of sibling product variants with empty object.

        `items.product.siblings.variants.merchant.customData:key(keyA\|...)` |
        Include merchant custom data of sibling product variants with only
        specified keys.

        `items.product.siblings.images.customData:key()` | Include custom data
        of sibling product images with empty object.

        `items.product.siblings.images.customData:key(keyA\|...)` | Include
        custom data of sibling product images with only specified keys.

        `items.product.variants.attributes:key(keyA\|...)` | Return only the
        attributes matching the specified names, e.g.,
        `with=items.product.variants.attributes:key(ean)`.

        `items.product.variants.attributes:type(typeA\|...)` | Return only the
        attributes matching the specified types, e.g.,
        `with=items.product.variants.attributes:type(fit_size)`.

        `items.product.variants.advancedAttributes:key(keyA\|...)` | Return only
        the advanced attributes matching the specified names, e.g.,
        `with=items.product.variants.advancedAttributes:key(productName)`.

        `items.product.variants.advancedAttributes:type(typeA\|...)` | Return
        only the advanced attributes matching the specified types, e.g.,
        `with=items.product.variants.advancedAttributes:type(material_care)`.

        `items.product.variants.customData:key()` | Include custom data of item
        product variants with empty object.

        `items.product.variants.customData:key(keyA\|...)` | Include custom data
        of item product variants with only specified keys.

        `items.product.variants.merchant.customData` | Include custom data of
        the variant merchant | `key`

        `items.product.variants.merchant.customData:key()` | Include the
        merchant custom data as an empty object |

        `items.product.variants.merchant.customData:key(keyA\|...)` | Include
        the merchant custom data, filtered by the provided key(s) |

        `items.promotion.customData:key()` | Include custom data of item
        promotions with empty object.

        `items.promotion.customData:key(keyA\|...)` | Include custom data of
        item promotions with only specified keys.

        `items.variant.attributes:key(keyA\|...)` | Return only the variant's
        attributes matching the specified names, e.g.,
        `with=items.variant.attributes:key(size)`.

        `items.variant.attributes:type(typeA\|...)` | Return only the variant's
        attributes matching the specified types, e.g.,
        `with=items.variant.attributes:type(size)`.

        `items.variant.advancedAttributes:key(keyA\|...)` | Return only the
        variant's advanced attributes matching the specified names, e.g.,
        `with=items.variant.advancedAttributes:key(productName)`.

        `items.variant.advancedAttributes:type(typeA\|...)` | Return only the
        variant's advanced attributes matching the specified types, e.g.,
        `with=items.variant.advancedAttributes:type(material_care)`.

        `items.variant.customData:key()` | Include custom data of the item
        variant with empty object.

        `items.variant.customData:key(keyA\|...)` | Include custom data of the
        item variant with only specified keys.

        `items.variant.merchant.customData:key()` | Include custom data of the
        item variant merchant with empty object.

        `items.variant.merchant.customData:key(keyA\|...)` | Include custom data
        of the item variant merchant with only specified keys.
      required: false
      explode: false
      schema:
        type: array
        items:
          type: string
          example:
            - items.product.attributes
    campaignKey:
      name: campaignKey
      in: query
      description: >
        Adjust prices based on the specified `campaignKey`. If provided campaign
        doesn't exist, the default price is returned.


        Please note, that campaign prices are stored in advance and available
        earlier than the campaign starts.
      required: false
      explode: false
      schema:
        default: null
        type: string
        example: e6413f96-b47c-4be1-be61-d2206adeae71
    displayHighestPpkPrice:
      name: displayHighestPpkPrice
      in: query
      description: Include Display highest PPK Price
      required: false
      explode: false
      example: false
      schema:
        default: null
        type: boolean
    navigationWith:
      name: with
      in: query
      description: >
        __Selecting included navigation item data__


        By default, only basic navigation item data is included in the response.
        Use the `with` parameters (see below) to include more navigation item
        data.


        To see all available navigation item data, for example, for debugging,
        you might use unrestricted `with` parameters:
        `?with=category,category.shopLevelCustomData,category.countryLevelCustomData,customData`.


        Beware of using these unrestricted `with` parameters in production
        applications. It can result in slower performance, as download sizes for
        full navigation item lists can be quite big. Including only exactly what
        is needed will be best for performance when downloading and parsing the
        result.


        A typical request for a navigation list optimized for maximum
        performance is, for example,
        `?with=category,customData:key(displayName|icon)`.


        See the table below for all available `with` parameter options and their
        effects.


        Include | includes

        ------------ | -------------

        `category` | includes category as an object into the navigation-item

        `category.shopLevelCustomData` | includes shop-level custom data of the
        category.

        `category.shopLevelCustomData:key()` | includes shop-level custom data
        of the category with empty object.

        `category.shopLevelCustomData:key(keyA\|...)` | includes shop-level
        custom data of the category with only specified keys.

        `category.countryLevelCustomData` | includes country-level custom data
        of the category.

        `category.countryLevelCustomData:key()` | includes country-level custom
        data of the category with empty object.

        `category.countryLevelCustomData:key(keyA\|...)` | includes
        country-level custom data of the category with only specified keys.

        `customData` | includes custom data of the navigation item.

        `customData:key()` | includes custom data of the navigation item with
        empty object.

        `customData:key(keyA\|...)` | includes custom data of the navigation
        item with only specified keys.
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: string
        example:
          - category
    filterVisibleAt:
      name: filters[visibleAt]
      in: query
      description: >
        Filters the navigation tree to include only items that are visible at
        the specified timestamp.


        An item is considered **visible** at the given `filters[visibleAt]` time
        if all of these rules apply:

          - If both `visibleFrom` and `visibleTo` are unset, the item is always included.
          - If only `visibleFrom` is set, the item is included if `visibleAt` is on or after `visibleFrom`.
          - If only `visibleTo` is set, the item is included if `visibleAt` is before `visibleTo`.
          - If both `visibleFrom` and `visibleTo` are set, the item is included if `visibleAt` is within the interval `[visibleFrom, visibleTo)`.

        The filtering is **strictly hierarchical**:

          - If a parent item is filtered out (i.e., not visible), none of its children will appear—even if those children would be visible on their own.
          - This ensures the returned tree only contains fully visible paths from the root.

        This filter supports half-open timeframes, meaning visibility intervals
        can be open-ended on either side.


        __Note__: The value of `filters[visibleAt]` must be an RFC3339 datetime
        string. For example: `"2020-10-13T00:00:00Z"`.
      required: false
      explode: false
      schema:
        default: null
        type: string
        example: '2020-10-13T00:00:00Z'
    includeSoldOut:
      name: includeSoldOut
      in: query
      description: Also include sold out results when `includeSoldOut` is set to `true`.
      required: false
      explode: false
      schema:
        type: boolean
        default: false
        example: true
    minProductId:
      name: minProductId
      in: query
      description: >-
        Only include results with a productId greater than or equal to
        `minProductId`.
      required: false
      explode: false
      schema:
        default: null
        type: integer
    disableFuzziness:
      name: disableFuzziness
      in: query
      description: >-
        It disables the typo tolerance value configured for this request. When
        the parameter is not provided, the typo tolerance is automatically
        applied according to the [typo tolerance
        configuration](/en/onboarding-guide/onboarding-frontend/search-in-panel#typo-tolerance)
        in SCAYLE panel.
      required: false
      explode: false
      schema:
        default: false
        type: boolean
        example: true
    trackSearchAnalyticsEvent:
      name: trackSearchAnalyticsEvent
      in: query
      description: Track a Search Analytics event.
      required: false
      explode: false
      schema:
        default: false
        type: boolean
    page:
      name: page
      in: query
      description: >
        Specify the page number to retrieve. Defaults to `1` if not provided.
        Valid values range from `1` to `500000`.


        **Note**: that the combined value of `page * perPage` must not exceed
        `500000`, the maximum number of results.
      required: false
      explode: false
      schema:
        type: integer
        example: 1
        default: 1
        minimum: 1
        maximum: 500000
    perPage:
      name: perPage
      in: query
      description: >
        Specify the number of results to return per page. Defaults to `100` if
        not provided. Valid values range from `1` to `1000`.


        **Note**: that the combined value of `page * perPage` must not exceed
        `500000`, the maximum number of results.
      required: false
      explode: false
      schema:
        type: integer
        example: 100
        default: 100
        minimum: 1
        maximum: 1000
    limit:
      name: limit
      in: query
      description: >
        Return `limit` results per page (for example, `limit=25`). Using this
        parameter is exclusive with both `page` and `perPage` and is meant to be
        used with `offset` parameter. It will transform the pagination response.


        **Note**: that the combined value of `offset + limit` must not exceed
        `500000`, the maximum number of results.
      required: false
      explode: false
      schema:
        default: null
        type: integer
        example: 100
        minimum: 1
        maximum: 1000
    offset:
      name: offset
      in: query
      description: >
        Skip first `offset` results. Using this parameter is exclusive with both
        `page` and `perPage` and is meant to be used with `limit` parameter. It
        will transform the pagination response.


        **Note**: that the combined value of `offset + limit` must not exceed
        `500000`, the maximum number of results.
      required: false
      explode: false
      schema:
        default: null
        type: integer
        example: 0
        minimum: 0
        maximum: 499999
    referenceKey:
      name: referenceKey
      in: query
      description: >
        Allow fetching products using its reference key, e.g.,
        `?referenceKey=014901100002-Blue`.
      required: false
      explode: false
      schema:
        default: null
        type: string
        example: ABC123
    pricePromotionKey:
      name: pricePromotionKey
      in: query
      description: >-
        Adjust variant price based on the specified `pricePromotionKey`. If the
        variant does not have a matching price promotion, the default price is
        returned.
      required: false
      explode: false
      schema:
        default: null
        type: string
        example: ppk-123
    basketPricePromotionKey:
      name: pricePromotionKey
      in: query
      description: >-
        Adjust product and variant price based on the specified
        `pricePromotionKey`. If the variant does not have a matching price
        promotion, the default price is returned. This does not apply to the
        returned basket price. It only applies to the product and variant
        information under each basket item.
      required: false
      explode: false
      schema:
        type: string
        example: promotion-key-123
    productIds:
      name: ids
      in: query
      description: >-
        Retrieve results with `productId` matching specified `ids`, for example,
        `ids=1,2,3`.
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          default: null
          type: integer
          example: 123456
    shopId:
      name: shopId
      in: query
      description: >
        In case you are operating multiple shops (for example, for different
        domain names or different languages), each shop is identified by its
        specific `shopId`

        The shop ID has to be provided either through this GET parameter or
        through header `X-Shop-Id`      required: true
      explode: false
      example: 10001
      schema:
        type: integer
        example: 10001
    XShopId:
      name: X-Shop-Id
      in: header
      description: >
        In case you are operating multiple shops (for example, for different
        domain names or different languages), each shop is identified by its
        specific `shopId`

        The shop ID has to be provided either through this header parameter or
        through GET parameter `shopId`
      explode: false
      example: 10001
      schema:
        default: null
        type: integer
        example: 10001
    productsWith:
      name: with
      in: query
      description: >
        Include related product resources, for example, the attributes of a
        product can be included using `with=attributes` or
        `with=attributes:key(plusSize)`. Nested includes can be included with
        `with=variants.attributes`. Multiple includes are separated by commas
        `with=siblings,variants`.


        with | includes

        ------------ | -------------

        attributes | see attributes filtering below

        advancedAttributes | see attributes filtering below

        images | images (included by default)

        images.attributes | see attributes filtering below

        images.customData | include custom data of images.

        categories | include the categories related to the current product,
        ordered randomly.

        categories:hidden(true) | also include hidden categories

        categories.countryLevelCustomData | include country custom data
        information

        categories.shopLevelCustomData | include shop custom data information

        categories.categoryProperties:name(property_name) | only return
        specified categoryProperties for included categories

        customData | include custom data of the product.

        definingAttributes | definingAttributes

        siblings | sibling products

        siblings.\<include> | partial sibling products (see available includes
        for products in /products endpoint)

        siblings.customData | include custom data of sibling products.

        siblings.images.customData | include custom data of sibling product
        images.

        siblings.categories.countryLevelCustomData | include country-level
        custom data of sibling product categories.

        siblings.categories.shopLevelCustomData | include shop-level custom data
        of sibling product categories.

        siblings.variants.customData | include custom data of sibling product
        variants.

        siblings.variants.merchant | include merchant of sibling product
        variants.

        siblings.variants.merchant.customData | include merchant custom data of
        sibling product variants.

        variants | full variants

        variants.\<include> | partial variants (see available includes for
        variants in /variants endpoint)

        variants.customData | include custom data of product variants.

        variants.merchant | include merchant information for product variants.

        variants.merchant.customData | include custom data of product variant
        merchants.

        priceRange | priceRange

        lowestPriorPrice | lowestPriorPrice

        reductionRange | reductionRange

        searchCategoryIds | searchCategoryIds

        baseCategories | baseCategories (deprecated)

        masterCategories | masterCategories

        sellableTimeframe | Include product sellable timeframe


        It is also possible to filter some parameters. When supported, multiple
        filter values can be specified by separating them with a pipe.


        Filter | Description

        ------------ | -------------

        attributes | all attributes

        attributes:key(keyA\|...) | only attributes with specified keys

        attributes:type(typeA\|...) | only attributes with specified types

        categories.countryLevelCustomData:key() | include country-level custom
        data of the category with empty object.

        categories.countryLevelCustomData:key(keyA\|...) | include country-level
        custom data of the category with only specified keys.

        categories.shopLevelCustomData:key() | include shop-level custom data of
        the category with empty object.

        categories.shopLevelCustomData:key(keyA\|...) | include shop-level
        custom data of the category with only specified keys.

        customData:key() | include custom data of the product with empty object.

        customData:key(keyA\|...) | include custom data of the product with only
        specified keys.

        images.customData:key() | include custom data of images with empty
        object.

        images.customData:key(keyA\|...) | include custom data of images with
        only specified keys.

        siblings.customData:key() | include custom data of sibling products with
        empty object.

        siblings.customData:key(keyA\|...) | include custom data of sibling
        products with only specified keys.

        siblings.images.customData:key() | include custom data of sibling
        product images with empty object.

        siblings.images.customData:key(keyA\|...) | include custom data of
        sibling product images with only specified keys.

        siblings.categories.countryLevelCustomData:key() | include country-level
        custom data of sibling product categories with empty object.

        siblings.categories.countryLevelCustomData:key(keyA\|...) | include
        country-level custom data of sibling product categories with only
        specified keys.

        siblings.categories.shopLevelCustomData:key() | include shop-level
        custom data of sibling product categories with empty object.

        siblings.categories.shopLevelCustomData:key(keyA\|...) | include
        shop-level custom data of sibling product categories with only specified
        keys.

        siblings.variants.customData:key() | include custom data of sibling
        product variants with empty object.

        siblings.variants.customData:key(keyA\|...) | include custom data of
        sibling product variants with only specified keys.

        siblings.variants.merchant.customData:key() | include merchant custom
        data of sibling product variants with empty object.

        siblings.variants.merchant.customData:key(keyA\|...) | include merchant
        custom data of sibling product variants with only specified keys.

        variants.customData:key() | include custom data of product variants with
        empty object.

        variants.customData:key(keyA\|...) | include custom data of product
        variants with only specified keys.

        variants.merchant.customData:key() | include custom data of product
        variant merchants with empty object.

        variants.merchant.customData:key(keyA\|...) | include custom data of
        product variant merchants with only specified keys.
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: string
          example: attributes
    skipAvailabilityCheck:
      name: skipAvailabilityCheck
      in: query
      description: >
        This parameter allows disabling the availability check when adding an
        item into the wishlist or basket. This is needed to make sure that sold
        out products can be reserved via Click & Reserve in retail stores. This
        feature is not enabled by default - refer to key account manager to
        enable it.
      required: false
      schema:
        type: boolean
        example: true
    sort:
      name: sort
      in: query
      description: >
        Sort results by specified `sort` type. When no sort is specified,
        results will be sorted by `productId`.


        `sort` | `sortDir=asc` | `sortDir=desc`

        ------------ | ------------- | -------------

        price | results with lowest price first | results with highest price
        first (default)

        reduction  | results with lowest reduction first | results with highest
        reduction first (default)

        new | results with oldest firstLiveAt date first | results with newest
        firstLiveAt date first (default)

        (none) | results with lowest productId first | results with highest
        productId first (default)
      required: false
      explode: false
      schema:
        default: id
        type: string
        enum:
          - id
          - new
          - price
          - reduction
        example: price
    sortDir:
      name: sortDir
      in: query
      description: >-
        Sort results in the specified direction (`asc` for ascending or `desc`
        for descending).
      required: false
      explode: false
      schema:
        default: asc
        type: string
        enum:
          - asc
          - desc
        example: asc
    sortingKey:
      name: sortingKey
      in: query
      description: >
        Ignore `sort` parameter and sort results by the specified `sortingKey`
        instead.

        Accepts a comma-separated list of values.

        Can include both predefined Smart Sorting Keys and custom sorting
        values.
      required: false
      style: form
      explode: false
      schema:
        type: array
        items:
          oneOf:
            - type: string
              enum:
                - scayle:v1:sales-push
                - scayle:v1:new-arrivals
                - scayle:v1:balanced-offerings
                - scayle:v1:inventory-optimization
                - scayle:v1:luxury-promotion
                - scayle:v1:revenue-max
                - scayle:v1:stock-coverage
                - scayle:v1:topseller
                - scayle:v1:recently-popular
                - scayle:v1:trending
            - type: string
              description: Custom sorting key not in the predefined list.
        example:
          - price
          - scayle:v1:sales-push
    variantIds:
      name: ids
      in: query
      description: >-
        Only include results with `variantId` matching one of the specified
        `ids`, for example `ids=123,456,789`.
      required: true
      explode: false
      schema:
        type: array
        items:
          type: integer
          example: 987654
    variantId:
      name: variantId
      in: path
      description: Get variant with specified `variantId`.
      required: true
      explode: false
      schema:
        type: integer
        example: 987654
    variantsWith:
      name: with
      in: query
      description: >
        Include related variant resources, for example, the attributes of a
        variant can be included using `with=attributes` or
        `with=attributes:key(plusSize)`. Multiple includes are separated by
        commas `with=attributes,advancedAttributes,lowestPriorPrice`.


        with | includes

        ------------ | -------------

        attributes | all attributes

        attributes:key(keyA\|...) | only attributes with specified keys

        attributes:type(typeA\|...) | only attributes with specified types

        advancedAttributes | all advancedAttributes

        advancedAttributes:key(keyA\|...) | only advancedAttributes with
        specified keys

        advancedAttributes:type(typeA\|...) | only advancedAttributes with
        specified types

        customData | include custom data of the variant.

        customData:key() | include custom data of the variant with empty object.

        customData:key(keyA\|...) | include custom data of the variant with only
        specified keys.

        lowestPriorPrice | include variant lowestPriorPrice

        merchant | include merchant information

        merchant.customData | include custom data of the variant merchant

        merchant.customData:key() | include custom data of the variant merchant
        with empty object

        merchant.customData:key(keyA\|...) | include custom data of the variant
        merchant with only specified keys
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: string
          example: attributes
    filterAttributeKey:
      name: filters
      in: query
      description: >
        Only include results with the specified attribute ID for the attribute
        parameter `attributeKey`, e.g., `filters[brand]=882`.

        * Any attribute available on the products via `with=attributes` might be
        used as a filter.
      required: false
      explode: true
      style: deepObject
      schema:
        default: {}
        type: object
        additionalProperties:
          type: array
          items:
            type: integer
        example:
          color: 123
    negativeFilterIds:
      name: filters:not[id]
      in: query
      description: >
        Exclude results with the specified id values, e.g.,
        `filters:not[id]=100,101`.
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: integer
          example: 999
    negativeFilterAttributeKey:
      name: filters:not
      in: query
      description: >
        Exclude results with the specified attribute value for the attribute
        parameter `attributeKey`, e.g.,
        `filters:not[brand]=882&filters:not[color]=549`.

        * Any attribute available on the products via `with=attributes` might be
        used as a filter exclusion.

        * You can provide multiple not filters (e.g., retrieve all products that
        are not red and not from brand Nike) in the query and multiple values
        for a single attribute, e.g., `filters:not[color]=545,345`
      required: false
      explode: true
      style: deepObject
      schema:
        default: {}
        type: object
        additionalProperties:
          type: array
          items:
            type: integer
        example:
          color: 123
    orFiltersOperator:
      name: orFiltersOperator
      in: query
      description: >
        By default, if multiple filters are given, each filter is working as
        `AND` filter. This parameter accepts comma separated attribute group
        names and enables `OR` logic for these fields.

        * Can be used together with attribute filters

        * Example:
        `?filters[attributeGroup1]=123&filters[attributeGroup2]=456,789&filters[attributeGroup3]=9&orFiltersOperator=attributeGroup2,attributeGroup3`

        is equivalent to `attributeGroup1 AND (attributeGroup2 OR
        attributeGroup3)`
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: string
          example: attributeGroup2
    filterCategory:
      name: filters[category]
      in: query
      description: |
        Filter the products which belong to a specific category.
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: integer
        example:
          - 20201
          - 20202
    filterEan:
      name: filters[ean]
      in: query
      description: >
        Retrieve a list of products matching the specified `ean` value, e.g.,
        `filters[ean]=121213213`.
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: string
          example: ABC123
    filterIsnew:
      name: filters[isNew]
      in: query
      description: >
        You can include only results for products with the specified `is_new`
        state.

        * The `filters[isNew]=true` parameter only retrieves products which are
        considered new.

        * The `filters[isNew]=false` parameter only retrieves products which are
        not considered new.


        __When is a product considered as `new`?__:


        Products are considered "new" when they were inserted into the shop
        within a period of 28 days. This value can be adjusted accordingly for
        each shop.
      required: false
      explode: false
      schema:
        default: null
        type: boolean
        example: true
    filterMaxPrice:
      name: filters[maxPrice]
      in: query
      description: >
        Only include results with a price less than or equal to `maxPrice`.


        __Note__: The value is passed in a currency's fractional monetary unit
        (for example, 990 cents for 9,90 EUR).
      required: false
      explode: false
      schema:
        default: null
        type: integer
        example: 99999
    filterMaxReduction:
      name: filters[maxReduction]
      in: query
      description: >
        Only include results with a reduction of less than or equal to
        `maxReduction` percent.

        E.g., `filters[maxReduction]=30`, for example, will include all products
        which have 30% or less reduction on the price.
      required: false
      explode: false
      schema:
        default: null
        type: integer
        example: 30
    filterMinPrice:
      name: filters[minPrice]
      in: query
      description: >
        Only include results with a price greater than or equal to `minPrice`.


        __Note__: The value is passed in a currency's fractional monetary unit
        (for example, 990 cents for 9,90 EUR).
      required: false
      explode: false
      schema:
        default: null
        type: integer
        example: 100
    filterMinReduction:
      name: filters[minReduction]
      in: query
      description: >
        Only include results with a reduction greater than or equal to
        `minReduction` percent.

        `filters[minReduction]=10`, for example, will include all products which
        have at least 10% reduction on the price.
      required: false
      explode: false
      schema:
        type: integer
        example: 10
    filterReferenceKey:
      name: filters[referenceKey]
      in: query
      description: |
        Only include results with the specified product's `referenceKey`.
        Multiple referenceKeys can be given with a comma as a separator.
      required: false
      explode: false
      examples:
        one reference key:
          value: ES0007001
        multiple reference keys:
          value: ES0007001,ES0007002
      schema:
        default: null
        type: string
    filterVariantReferenceKey:
      name: filters[variants.referenceKey]
      in: query
      description: |
        Only retrieve products with the specified variant's `referenceKey`.
        Multiple referenceKeys can be given with a comma as a separator.
      example: ESR0307001,2170-20-00449_36
      required: false
      explode: false
      schema:
        type: array
        items:
          type: string
        example:
          - ESR0307001,2170-20-00449_36
    filterVariantAttributeKey:
      name: filters[variants.color]
      in: query
      description: >
        Only retrieve products that have a variant which matches the provided
        attribute parameters.
      required: false
      example: 446&filters[variants.size]=886
      explode: false
      schema:
        default: []
        type: array
        items:
          type: integer
        example:
          - 446&filters[variants.size]=886
    filterSale:
      name: filters[sale]
      in: query
      description: >
        Only include results based on a products' `sale` state.

        Products are considered as `sale` when:

        * Any of its variants is on sale.

        * There is an active campaign and the `campaignKey={campaignKey}` is
        given.
      required: false
      explode: false
      examples:
        sale filter:
          value: true&campaignKey={campaignKey}
          description: will include results for both products with sale and campaign prices
      schema:
        default: null
        type: boolean
        example: true
    filterHasCampaignReduction:
      name: filters[hasCampaignReduction]
      in: query
      description: >
        Only include results that have a campaign reduction for the given
        campaignKey.

        This filter can only be used together with an active campaign key and
        will return results that have a campaign reductions in the campaign.
      required: false
      example: true&campaignKey={campaignKey}
      explode: false
      schema:
        default: null
        type: boolean
        example:
          - true&campaignKey={campaignKey}
    filterSellableAt:
      name: filters[sellableAt]
      in: query
      description: >
        Retrieve products sellable within a specific timeframe.


        __Note__: The provided value shall be datetime in the RFC3339 format:
        "2020-10-13T00:00:00Z"
      required: false
      explode: false
      schema:
        default: null
        type: string
        example: '2020-10-13T00:00:00Z'
    filterMasterKey:
      name: filters[masterKey]
      in: query
      description: >
        Only include results that are matching given `masterKeys` (also known as
        `styleKeys`).

        The `masterKey` define the `siblings` relation between products.


        Multiple masterKeys can be given with a comma as a separator.
      required: false
      explode: false
      examples:
        one master key:
          value: 502227553
        multiple master keys:
          value: 502227553,502227554
      schema:
        default: []
        type: array
        items:
          type: string
          example:
            - 502227553
    filterTerm:
      name: filters[term]
      in: query
      description: >
        Term-based search that returns products where the provided search term
        matches the name or attribute value within the products. E.g.,
        `filters[term]=blue shirts`


        __Note__: The attributes used for searching are
        [configured](/en/user-guide/shops/storefront/search#searchable-attributes)
        in the Panel.


        The API will split the searched term into multiple words.

        Then it will try to match each of these words against products' name and
        searchable attributes.

        The better the searched term matches against a product, the higher the
        product is returned.

        But it only requires a single word to match for a product to be
        returned.


        A detailed explanation of the functionality can be found in [SCAYLE
        Panel developer guide](/en/developer-guide/products/search#text-search)
      required: false
      explode: false
      schema:
        default: null
        type: string
        example: jeans
    filterMinFirstLiveAt:
      name: filters[minFirstLiveAt]
      in: query
      description: >
        Retrieve products which first appeared live after the provided value.


        __Note__: The provided value shall be datetime in the RFC3339 format:
        "2020-10-13T00:00:00Z"
      required: false
      explode: false
      schema:
        default: null
        type: string
        example: '2020-10-13T00:00:00Z'
    filterMerchantId:
      name: filters[merchantId]
      in: query
      description: |
        Only include results with merchantId equal to the given `merchantId`.
        Example: `filters[merchantId]=130`.
      required: false
      explode: false
      schema:
        default: null
        type: integer
        example: 130
    includeItemsWithoutProductData:
      name: includeItemsWithoutProductData
      in: query
      description: >-
        If `includeItemsWithoutProductData` is set to true, basket items will be
        included even if there is no product information available
        (`items.product` and `items.variant` might be empty).
      required: false
      explode: false
      schema:
        type: boolean
        example: true
    searchTerm:
      name: term
      in: query
      description: The search term to match attributes and categories.
      required: true
      explode: false
      schema:
        type: string
        example: pants black
    categoryId:
      name: categoryId
      in: query
      description: >-
        The categoryId parameter is used to filter the results and limit the
        returned data to items that belong to the specified category or its
        child categories.
      required: false
      explode: false
      schema:
        default: null
        type: integer
        example: 20201
    typeaheadWith:
      name: with
      in: query
      description: >
        The `with` parameter can be applied to include related resources, for
        example, the attributes of a product can be attached using
        `with=product.attributes`. It is also possible to filter product
        attributes by key `with=product.attributes:key(plusSize)` or by type
        `with=product.attributes:type(material_care)`. Nested includes can also
        be attached when available `with=product.variants.attributes` and
        multiple combinations are likewise accepted
        `with=product.siblings,product.variants,category.children`. When using
        `with=category.children`, you can provide `categoryDepth` parameter to
        increase child depth. In the following table, there is more information
        about possible includes.

        Include | includes | Available Filters

        ------------ | ------------- | -------------

        `category.parents` |  |

        `category.children` |  |

        `category.countryLevelCustomData` |  | `key`

        `category.shopLevelCustomData` |  | `key`

        `category.properties:name(property_name)` | |

        `product.attributes` | | `key`, `type`

        `product.advancedAttributes` | | `key`, `type`

        `product.images` (default) | `images.attributes` |

        `product.categories` |  | `hidden(true)`

        `product.categories.countryLevelCustomData`  |  | `key`

        `product.categories.shopLevelCustomData`  |  | `key`

        `product.customData` |  | `key`

        `product.definingAttributes` |  |

        `product.siblings` |  |

        `product.siblings.customData` |  | `key

        `product.siblings.categories.countryLevelCustomData` |  | `key`

        `product.siblings.categories.shopLevelCustomData` |  | `key`

        `product.siblings.variants.customData` |  | `key`

        `product.variants` | See available includes for variants at variants
        endpoint |

        `product.variants.customData` | | `key`

        `product.variants.merchant` | Include merchant data |

        `product.variants.merchant.customData` | Include custom data of the
        variant merchant | `key`

        `product.variants.merchant.customData:key()` | Include the merchant
        custom data as an empty object |

        `product.variants.merchant.customData:key(keyA\|...)` | Include the
        merchant custom data, filtered by the provided key(s) |

        `product.priceRange` |  |

        `product.reductionRange` |  |

        `product.lowestPriorPrice` |  |

        `product.searchCategoryIds` |  |

        `product.baseCategories` (deprecated) | |

        `product.masterCategories` |  |
      required: false
      explode: false
      schema:
        type: array
        items:
          type: string
    typeaheadTerm:
      name: term
      in: query
      description: The `term` parameter specifies the search term.
      required: true
      explode: false
      schema:
        type: string
    typeaheadDepth:
      name: categoryDepth
      in: query
      description: >-
        Defines the number of nested child categories to include in the
        response.
      required: false
      schema:
        type: integer
        example: 3
    typeaheadLimit:
      name: limit
      in: query
      description: >-
        The `limit` parameter allows limiting the number of suggested products
        returned.
      required: false
      schema:
        type: integer
    fullAttributeValue:
      name: fullAttributeValue
      in: query
      description: >
        Changes the values within the `attributeFilters` array to following
        format: `{"id": 1, "name": "black"}`
      required: false
      schema:
        type: boolean
        default: false
    searchV2Term:
      name: term
      in: query
      description: The `term` parameter specifies the search term.
      required: true
      explode: false
      schema:
        type: string
        example: jeans
    searchV2With:
      name: with
      in: query
      description: >
        The `with` parameter can be applied to include related resources, for
        example, the attributes of a product can be attached using
        `with=product.attributes`. It is also possible to filter product
        attributes by key `with=product.attributes:key(plusSize)` or by type
        `with=product.attributes:type(material_care)`. Nested includes can also
        be attached when available `with=product.variants.attributes` and
        multiple combinations are likewise accepted
        `with=product.siblings,product.variants,category.children`. When using
        `with=category.children`, you can provide `categoryDepth` parameter to
        increase child depth. In the following table, there is more information
        about possible includes.

        Include | includes | Available Filters

        ------------ | ------------- | -------------

        `category.parents` |  |

        `category.children` |  |

        `category.properties` | |  `name`

        `category.countryLevelCustomData` |  | `key`

        `category.shopLevelCustomData` |  | `key`

        `navigationItem.customData` |  | `key`

        `navigationItem.category` | |

        `navigationItem.category.properties` | |  `name`

        `navigationItem.category.countryLevelCustomData` |  | `key`

        `navigationItem.category.shopLevelCustomData` |  | `key`

        `product.attributes` | | `key`, `type`

        `product.advancedAttributes` | | `key`, `type`

        `product.images` (default) | `images.attributes` |

        `product.categories` |  | `hidden(true)`

        `product.categories.categoryProperties`  |  |  `name`

        `product.categories.countryLevelCustomData`  |  | `key`

        `product.categories.shopLevelCustomData`  |  | `key`

        `product.customData` |  | `key`

        `product.definingAttributes` |  |

        `product.siblings` | Include available siblings products and apply the
        same filters, and other properties such as `product.siblings.variants,
        ..., product.siblings.categories.shopLevelCustomData`. |

        `product.siblings.customData` |  | `key`

        `product.siblings.categories.countryLevelCustomData` |  | `key`

        `product.siblings.categories.shopLevelCustomData` |  | `key`

        `product.siblings.variants.customData` |  | `key`

        `product.variants` | See available includes for variants at variants
        endpoint |

        `product.variants.customData` | | `key`

        `product.variants.merchant` | Include merchant data |

        `product.variants.merchant.customData` | Include custom data of the
        variant merchant | `key`

        `product.variants.merchant.customData:key()` | Include the merchant
        custom data as an empty object |

        `product.variants.merchant.customData:key(keyA\|...)` | Include the
        merchant custom data, filtered by the provided key(s) |

        `product.priceRange` |  |

        `product.reductionRange` |  |

        `product.lowestPriorPrice` |  |

        `product.searchCategoryIds` |  |

        `product.baseCategories` (deprecated) |  |

        `product.masterCategories` |  |

        `product.pricePromotionInfo` |  |
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: string
          example: product.attributes
    searchV2CategoryDepth:
      name: category.depth
      in: query
      description: >-
        Defines the number of nested child categories to include in the
        response.
      required: false
      schema:
        type: integer
        default: null
        example: 3
    searchV2ShowHiddenCategories:
      name: category.showHidden
      in: query
      description: Include hidden categories in the children of returned categories.
      required: false
      explode: false
      schema:
        type: boolean
        default: false
        example: true
    wishlistId:
      name: wishlistId
      in: path
      description: Wishlist ID
      required: true
      explode: false
      schema:
        type: string
        example: your-wishlist-key
    wishlistWith:
      name: with
      in: query
      description: >
        The `with` parameter can be applied to include only product related
        resources, for example, the attributes of a product can be attached
        using `with=items.product.attributes`. It is also possible to filter
        attributes by key `with=items.product.attributes:key(plusSize)` or by
        type `with=items.product.attributes:type(material_care)`. In the
        following table, there is more information about possible includes.

        Include | Nested includes and Available Filters for products

        ----------------------------------------------------------- |
        -------------------------------------------------------------

        `items.customData`                                          | Include
        item custom data

        `items.customData:key()`                                    | Include
        item custom data with empty object

        `items.customData:key(keyA\|...)`                           | Include
        item custom data with only specified keys

        `items.product.priceRange`                                  | Include
        item product priceRange

        `items.product.reductionRange`                              | Include
        item product reductionRange

        `items.product.lowestPriorPrice`                            | Include
        item product lowestPriorPrice

        `items.product.searchCategoryIds`                           | Include
        item product searchCategoryIds

        `items.product.baseCategories`                              | Include
        item product baseCategories (deprecated)

        `items.product.masterCategories`                            | Include
        item product masterCategories

        `items.product.pricePromotionInfo`                          | Include
        item product pricePromotionInfo

        `items.product.definingAttributes`                          | Include
        item product definingAttributes

        `items.product.attributes`                                  | Include
        item product attributes

        `items.product.attributes:key(new)`                         | Include
        item product attributes filtered by key

        `items.product.attributes:type(localizedString)`            | Include
        item product attributes filtered by type

        `items.product.advancedAttributes:key(productName)`         | Include
        item product advancedAttributes filtered by key

        `items.product.advancedAttributes:type(type)`               | Include
        item product advancedAttributes filtered by type

        `items.product.images.attributes`                           | Include
        item product image attributes

        `items.product.images.attributes:key(key)`                  | Include
        item product image attributes filtered by key

        `items.product.images.attributes:type(type)`                | Include
        item product image attributes filtered by type

        `items.product.images.customData`                           | Include
        item product image custom data

        `items.product.images.customData:key()`                     | Include
        item product image custom data with empty object

        `items.product.images.customData:key(keyA\|...)`            | Include
        item product image custom data with only specified keys

        `items.product.categories`                                  | Include
        item product categories

        `items.product.categories:hidden(true)`                     | Include
        item product hidden categories

        `items.product.categories.categoryProperties:name`          | Include
        item product category properties only filtered by name

        `items.product.categories.countryLevelCustomData`           | Include
        item product category country level custom data

        `items.product.categories.countryLevelCustomData:key()` | Include item
        product category country level custom data with empty object

        `items.product.categories.countryLevelCustomData:key(keyA\|...)` |
        Include item product category country level custom data with only
        specified keys

        `items.product.categories.shopLevelCustomData`              | Include
        item product category shop level custom data

        `items.product.categories.shopLevelCustomData:key()`         | Include
        item product category shop level custom data with empty object

        `items.product.categories.shopLevelCustomData:key(keyA\|...)` | Include
        item product category shop level custom data with only specified keys

        `items.product.customData`                                  | Include
        item product custom data

        `items.product.customData:key()`                            | Include
        item product custom data with empty object

        `items.product.customData:key(keyA\|...)`                   | Include
        item product custom data with only specified keys

        `items.product.siblings`                                    | Include
        item product sibling products

        `items.product.siblings.customData`                         | Include
        item product siblings custom data

        `items.product.siblings.images.customData`                  | Include
        item product siblings image custom data

        `items.product.siblings.categories.countryLevelCustomData`  | Include
        item product siblings category country level custom data

        `items.product.siblings.categories.shopLevelCustomData`     | Include
        item product siblings category shop level custom data

        `items.product.siblings.variants.customData`                | Include
        item product siblings variants custom data

        `items.product.siblings.variants.merchant`                  | Include
        item product siblings variants merchant

        `items.product.siblings.variants.merchant.customData`       | Include
        item product siblings variants merchant custom data

        `items.product.variants`                                    | Include
        item product variants

        `items.product.variants.attributes`                         | Include
        item product variants with attributes

        `items.product.variants.attributes:key(ean)`                | Include
        item product variants with attributes filtered by key

        `items.product.variants.attributes:type(fit_size)`          | Include
        item product variants with attributes filtered by type

        `items.product.variants.advancedAttributes:key(productName)`| Include
        item product variants with advancedAttributes filtered by key

        `items.product.variants.advancedAttributes:type(type)`      | Include
        item product variants with advancedAttributes filtered by type

        `items.product.variants.customData`                         | Include
        item product variants custom data

        `items.product.variants.customData:key()`                   | Include
        item product variants custom data with empty object

        `items.product.variants.customData:key(keyA\|...)`          | Include
        item product variants custom data with only specified keys

        `items.product.variants.lowestPriorPrice`                   | Include
        item product variants lowestPriorPrice

        `items.variant.attributes`                                  | Include
        item variant attributes.

        `items.variant.attributes:key(ean)`                         | Include
        item variant attributes filtered by key

        `items.variant.attributes:type(fit_size)`                   | Include
        item variant attributes filtered by type

        `items.variant.advancedAttributes:key(productName)`         | Include
        item variant advancedAttributes filtered by key

        `items.variant.advancedAttributes:type(type)`               | Include
        item variant advancedAttributes filtered by type

        `items.variant.customData`                                  | Include
        item variant custom data

        `items.variant.customData:key()`                            | Include
        item variant custom data with empty object

        `items.variant.customData:key(keyA\|...)`                   | Include
        item variant custom data with only specified keys

        `items.variant.lowestPriorPrice`                            | Include
        item variant lowestPriorPrice
      required: false
      explode: false
      schema:
        default: []
        type: array
        items:
          type: string
          example: items.variant.attributes
    wishlistItemKey:
      name: itemKey
      in: path
      description: Item key
      required: true
      explode: false
      schema:
        type: string
        example: item-1234
    similarProductId:
      name: productId
      in: path
      required: true
      description: >-
        The numeric ID of the product for which to retrieve similar product
        recommendations.
      schema:
        type: integer
        example: 12345
    similarProductsLimit:
      name: limit
      in: query
      description: |
        The maximum number of similar products to return.

        _Note: The maximum allowed value is 20._
      schema:
        type: integer
        minimum: 1
        maximum: 20
        example: 10
    ignoreSameMasterKey:
      name: ignoreSameMasterKey
      in: query
      description: >
        When set to `true`, products with the same master key as the source
        product will be excluded from the recommendations.


        This is useful to avoid recommending color variants of the same product.
      schema:
        type: boolean
        default: false
    similarProductsWith:
      name: with
      in: query
      description: >
        Include additional data in the response for each recommended product.


        The following table describes all the possible parameters that can be
        used:


        Parameter | Description

        --- | ---

        attributes | Include product attributes.

        attributes:key(keyA\|...) | Include only specific product attributes.

        advancedAttributes | Include product advanced attributes.

        advancedAttributes:key(keyA\|...) | Include only specific product
        advanced attributes.

        variants | Include product variants.

        variants.attributes | Include variant attributes.

        variants.attributes:key(keyA\|...) | Include only specific variant
        attributes.

        variants.advancedAttributes | Include variant advanced attributes.

        variants.advancedAttributes:key(keyA\|...) | Include only specific
        variant advanced attributes.

        images | Include product images.

        images.attributes | Include image attributes.

        images.attributes:key(keyA\|...) | Include only specific image
        attributes.

        categories | Include product categories.

        siblings | Include product siblings.

        priceRange | Include product price range.

        reductionRange | Include product reduction range.

        customData | Include product custom data.

        customData:key(keyA\|...) | Include only specific custom data keys.

        sellableWithoutStock | Include sellable without stock information.
      schema:
        type: array
        items:
          type: string
        example:
          - attributes
          - images
          - priceRange
    filterBrand:
      name: filters[brand]
      in: query
      description: |
        Filter results to only include products from the specified brand.

        The value must be a valid brand ID.
      schema:
        type: integer
        example: 456
    negativeFilterCategory:
      name: filters:not[category]
      in: query
      description: |
        Exclude products in the specified category from results.

        The value must be a valid category ID or category path.
      schema:
        type: string
        example: '789'
    negativeFilterBrand:
      name: filters:not[brand]
      in: query
      description: |
        Exclude products from the specified brand from results.

        The value must be a valid brand ID.
      schema:
        type: integer
        example: 321
    attributes.get_all.query.names:
      name: names
      in: query
      required: false
      explode: false
      description: >-
        Restrict results to attribute groups that match the specified
        comma-separated list of globally-unique IDs.
      schema:
        type: array
        items:
          type: string
        example:
          - productName
          - apparelFit
    attributes.get_all.query.ids:
      name: ids
      in: query
      required: false
      explode: false
      description: >-
        Restrict results to attribute groups that match the specified
        comma-separated list of IDs.
      schema:
        type: array
        items:
          type: integer
        example:
          - 66122
          - 45390
    attributes.get_all.query.with:
      name: with
      in: query
      required: false
      explode: false
      description: >
        A list of optional fields that can be included in the response,
        typically omitted to improve efficiency and minimize response size.


        The table below provides a comprehensive list of all possible fields and
        their purpose:


        Field | Description

        --- | ---

        `values` | Include the attribute values associated to each attribute
        group.
      schema:
        type: array
        items:
          type: string
          enum:
            - values
    attributes.get_single.path.key:
      name: key
      in: path
      required: true
      explode: false
      description: The globally-unique ID of the attribute group, known as the `key`.
      schema:
        type: string
    common.header.xShopId:
      in: header
      name: X-Shop-Id
      description: >-
        The unique ID of the shop. It must be provided either through this
        header parameter or through the `shopId` URL query parameter.
      schema:
        type: integer
    common.query.shopId:
      in: query
      name: shopId
      description: >-
        The unique ID of the shop. It must be provided either through this URL
        query parameter or the `X-Shop-Id` header.
      schema:
        type: integer
    brands.get_all.query.ids:
      name: ids
      in: query
      explode: false
      description: >
        Restrict results to brands that match the specified comma-separated list
        of IDs.


        _Note: This parameter ignores any pagination option. Additionally, this
        filter always takes precedence over any other, meaning that when it is
        set then it's the only considered filter._
      schema:
        type: array
        items:
          type: integer
        example:
          - 66122
          - 45390
    brands.get_all.query.slugs:
      name: slugs
      in: query
      explode: false
      description: >
        Restrict results to brands that match the specified comma-separated list
        of slugs.


        _Note: This parameter ignores any pagination option._
      schema:
        type: array
        items:
          type: string
        example:
          - puma
          - nike
    brands.get_single.path.brand:
      name: brand
      in: path
      required: true
      description: The numeric ID or the slug of the brand to retrieve.
      schema:
        oneOf:
          - type: integer
          - type: string
    brands.get_single.path.forceSlug:
      name: forceSlug
      in: query
      description: Force the retrieval of the brand by its slug rather than the numeric ID.
      schema:
        type: boolean
        default: false
    brands.query.withIncludes:
      name: with
      in: query
      description: >
        Include additional data in the response.


        The following table describes all the possible parameters that can be
        used:


        Parameter | Description

        --- | ---

        customData | Include the custom data associated with the brand.

        customData:key() | Include custom data of brand with empty object.

        customData:key(keyA\|...) | Include custom data of brand with only the
        specified keys.
      schema:
        type: array
        items:
          type: string
        example:
          - customData
    common.query.page:
      in: query
      name: page
      description: >
        The number of the page to retrieve. The combined value of `page *
        perPage` must not exceed `500000`, which is the maximum number of items
        that can be returned.


        _Note: This parameter is mutually exclusive with `offset` and `limit`._
      schema:
        type: integer
        default: 1
        minimum: 1
    common.query.perPage:
      in: query
      name: perPage
      description: >
        The number of items to retrieve per page. The combined value of `page *
        perPage` must not exceed `500000`, which is the maximum number of items
        that can be returned.


        _Note: This parameter is mutually exclusive with `offset` and `limit`._
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 1000
    common.query.offset:
      in: query
      name: offset
      description: >
        The offset of the first item to return. The combined value of `offset +
        limit` must not exceed `500000`, which is the maximum number of items
        that can be returned.


        _Note: This parameter is mutually exclusive with `page` and `perPage`._
      schema:
        type: integer
        default: 0
        minimum: 0
        maximum: 499000
    common.query.limit:
      in: query
      name: limit
      description: >
        The combined value of `offset + limit` must not exceed `500000`, which
        is the maximum number of items that can be returned.


        _Note: This parameter is mutually exclusive with `page` and `perPage`._
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 1000
    campaigns.get_all.query.sort:
      name: sort
      in: query
      description: Sort the results by the given field.
      schema:
        type: string
        default: id
        enum:
          - id
          - reduction
          - startsAt
          - endsAt
    campaigns.get_single.path.id:
      name: id
      in: path
      required: true
      description: The numeric ID of the campaign.
      schema:
        type: integer
    campaigns.query.withIncludes:
      name: with
      in: query
      description: >
        Include additional data in the response.


        The following table describes all the possible parameters that can be
        used:


        Parameter | Description

        --- | ---

        customData | Include the custom data associated with the campaign.

        customData:key() | Include custom data of campaign with empty object.

        customData:key(keyA\|...) | Include custom data of campaign with only
        the specified keys.
      schema:
        type: array
        items:
          type: string
        example:
          - customData
    common.query.sortDir:
      name: sortDir
      in: query
      description: Order the results ascending or descending.
      schema:
        type: string
        default: asc
        enum:
          - asc
          - desc
    categories.get_all.query.ids:
      name: ids
      in: query
      required: false
      explode: false
      description: >-
        Restrict results to categories that match the specified comma-separated
        list of IDs.
      schema:
        type: array
        items:
          type: integer
        example:
          - 66122
          - 45390
    categories.get_all.query.format:
      name: format
      in: query
      required: false
      explode: false
      description: >
        The format in which the categories are returned, either as a
        hierarchical tree or as a flat list. In the flat

        list format, all categories are presented in a single sequence that
        follows the hierarchy's top‑to‑bottom order,

        without any nesting.


        _Note: This parameter is ignored when the `ids` parameter is used._
      schema:
        type: string
        default: tree
        enum:
          - tree
          - list
    categories.get_all.query.show_hidden:
      name: showHidden
      in: query
      required: false
      explode: false
      description: A flag which determines whether hidden categories should be returned.
      schema:
        type: boolean
        default: false
    categories.get_all.query.depth:
      name: depth
      in: query
      required: false
      explode: false
      description: >-
        The maximum depth of nested categories to retrieve. If not provided, all
        levels are returned.
      schema:
        type: integer
        minimum: 1
    categories.get_all.query.with:
      name: with
      in: query
      required: false
      explode: false
      description: >
        A list of optional fields that can be included in the response,
        typically omitted to improve efficiency and

        minimize response size. This parameter can also control how much data
        certain fields return. For example,

        custom data is included automatically, but it can be restricted to
        specific keys or omitted entirely.


        The table below provides a comprehensive list of all possible fields and
        their purpose:


        Field | Description

        --- | ---

        `parents` | Include all ancestor categories.<br><br>_Note: This option
        is supported only when retrieving a single category or when the request
        uses the `ids` parameter to fetch the category list._

        `children` | Include all descendant categories.<br><br>_Note: The number
        of levels returned can be adjusted using the `depth` parameter._

        `properties:name(keyA\|...)` | Include the properties, limited to the
        specified names.

        `productSorting` | Include the product sorting configuration, which
        defines how products are ordered within the category.

        `countryLevelCustomData` | Include the country-level custom data.

        `countryLevelCustomData:key()` | Include the country‑level custom data
        as an empty object.

        `countryLevelCustomData:key(keyA\|...)` | Include the country‑level
        custom data, limited to the specified keys.

        `shopLevelCustomData` | Include the shop-level custom data.

        `shopLevelCustomData:key()` | Include the shop‑level custom data as an
        empty object.

        `shopLevelCustomData:key(keyA\|...)` | Include the shop‑level custom
        data, limited to the specified keys.
      schema:
        type: array
        items:
          type: string
    categories.get_single.path.key:
      name: key
      in: path
      required: true
      explode: false
      description: >-
        The unique numeric identifier of the category or its slug‑based path
        from the root.
      schema:
        oneOf:
          - type: integer
            description: The unique numeric identifier of the category.
          - type: string
            description: The slug-based path of the category.
    categories.get_single.query.depth:
      $ref: '#/components/parameters/categories.get_all.query.depth'
    categories.get_single.query.with:
      $ref: '#/components/parameters/categories.get_all.query.with'
    pages.get_all.query.filters.id:
      name: filters[id]
      in: query
      explode: false
      description: >
        Restrict results to pages that match the specified comma-separated list
        of IDs.


        _Note: This parameter ignores any pagination option. Additionally, this
        filter always takes precedence over any other, meaning that when it is
        set then it's the only considered filter._
      schema:
        type: array
        items:
          type: integer
        example:
          - 66122
          - 45390
    pages.get_all.query.filters.slug:
      name: filters[slug]
      in: query
      explode: false
      description: >
        Restrict results to pages that match the specified comma-separated list
        of slugs.


        _Note: This parameter ignores any pagination option._
      schema:
        type: array
        items:
          type: string
        example:
          - faq
          - who-we-are
    pages.get_single.path.id:
      name: id
      in: path
      required: true
      description: The numeric ID of the page.
      schema:
        type: integer
    promotions.get_all.query.ids:
      name: ids
      in: query
      explode: false
      description: >
        Restrict results to promotions that match the specified comma-separated
        list of IDs.


        _Note: This filter is mutually exclusive with all others._
      schema:
        type: array
        items:
          type: string
        example:
          - 4115dca480b1a326cfa743c8
          - 6ca6d701d5648432945b33b6
    promotions.get_all.query.activeAt:
      name: activeAt
      in: query
      description: Restrict results to promotions that are active at the specified time.
      schema:
        $ref: '#/components/schemas/Timestamp'
    promotions.query.withIncludes:
      name: with
      in: query
      description: >
        Include additional data in the response.


        The following table describes all the possible parameters that can be
        used:


        Parameter | Description

        --- | ---

        entities.customData | Include the custom data associated with the
        promotions.

        entities.customData:key() | Include custom data of the promotions with
        empty object.

        entities.customData:key(keyA\|...) | Include custom data of the
        promotions with only the specified keys.
      schema:
        type: array
        items:
          type: string
        example:
          - entities.customData
    shop-configuration.query.withIncludes:
      name: with
      in: query
      description: >
        Include additional data in the response.


        The following table describes all the possible parameters that can be
        used:


        Parameter | Description

        --- | ---

        customData | Include the custom data associated with the shop
        configuration.

        customData:key() | Include custom data of shop configuration with empty
        object.

        customData:key(keyA\|...) | Include custom data of shop configuration
        with only the specified keys.

        shopLevelCustomData | Include the shop-level custom data associated with
        the shop configuration.

        shopLevelCustomData:key() | Include shop-level custom data of shop
        configuration with empty object.

        shopLevelCustomData:key(keyA\|...) | Include shop-level custom data of
        shop configuration with only the specified keys.
      schema:
        type: array
        items:
          type: string
        example:
          - customData,shopLevelCustomData
  responses:
    RequestError:
      description: Required query parameter missing / invalid
      content:
        application/json:
          schema:
            type: object
            required:
              - code
              - message
              - details
            properties:
              code:
                type: integer
                description: >-
                  Represents the HTTP status code returned by the API,
                  indicating the type of error. For example, `400` for bad
                  requests.
              message:
                type: string
                description: >-
                  A short description providing information that the request has
                  failed due to validation issues.
              details:
                type: array
                description: >-
                  Contains specific information about the validation error,
                  including the field that caused the issue and a detailed
                  explanation of the problem.
                items:
                  type: object
                  required:
                    - field
                    - description
                  properties:
                    field:
                      type: string
                      description: >-
                        The name of the field in the request body that failed
                        validation.
                    description:
                      type: string
                      description: >-
                        A detailed message explaining why the field failed
                        validation.
          example:
            code: 400
            message: Request Validation failed
            details:
              - field: shopId
                description: The shop id provided can't be parsed into a integer
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            type: object
            required:
              - code
              - message
            properties:
              code:
                type: integer
                description: >-
                  Represents the HTTP status code returned by the API. In this
                  case, the value will be `404`, which indicates that the
                  requested resource could not be found.
              message:
                type: string
                description: >-
                  A brief message explaining that the requested item or resource
                  was not found. This helps provide clarity to the client about
                  why the request failed.
          example:
            code: 404
            message: Item not found
    Unauthorized:
      description: Authentication information is missing or invalid
      content:
        application/json:
          schema:
            type: object
            required:
              - code
              - message
            properties:
              code:
                type: integer
                description: >-
                  Represents the HTTP status code returned by the API. In this
                  case, the value will be `401`, which indicates that
                  authentication information is either missing or invalid.
              message:
                type: string
                description: >-
                  A short description that provides details about the
                  authentication failure, explaining that authorization
                  credentials are missing or invalid.
          example:
            code: 401
            message: Missing or invalid authorisation
    DependencyFailed:
      description: The API Request failed due to an underlying dependency error.
      content:
        application/json:
          schema:
            type: object
            required:
              - code
              - message
            properties:
              code:
                type: integer
                description: >-
                  The HTTP status code returned by the API, which in this case
                  is `424`, indicating that an underlying dependency failed.
              message:
                type: string
                description: >-
                  A brief message explaining which dependency failed and with
                  what status code.
          example:
            code: 424
            message: 'Dependency Failed (basket-api): unknown response code 401'
    DependencyLocked:
      description: Dependency is currently locked due to another request, please retry.
      content:
        application/json:
          schema:
            type: object
            required:
              - code
              - message
            properties:
              code:
                type: integer
                description: >-
                  The HTTP status code returned by the API, which in this case
                  is `423`, indicating that an underlying dependency is
                  currently locked due to another request.
              message:
                type: string
                description: >-
                  A brief message explaining which dependency returned status
                  code `408` due to currently being locked.
          example:
            code: 423
            message: 'Locked (basket-api): delete wishlist item returned 408'
    RequestLimitExceeded:
      description: Triggered when a client exceeds the API request limit.
      content:
        application/json:
          schema:
            type: object
            required:
              - code
              - message
            properties:
              code:
                type: integer
                description: >-
                  The HTTP status code returned by the API, which in this case
                  is `429`, indicating that the client has made too many
                  requests.
              message:
                type: string
                description: >-
                  A brief message explaining that the client has exceeded the
                  allowed API request rate.
          example:
            code: 429
            message: API rate limit exceeded.
    attributes.get_all.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AttributeGroupList'
          examples:
            default:
              value:
                - id: 3265
                  key: apparelFit
                  label: Apparel Fit
                  type: Fit and Form
                  multiSelect: false
    bad_request:
      description: Required parameter is missing or invalid.
      content:
        application/json:
          schema:
            type: object
            required:
              - details
            allOf:
              - $ref: '#/components/schemas/GenericErrorResponse'
              - properties:
                  details:
                    type: array
                    description: Information about the validation error.
                    items:
                      type: object
                      required:
                        - field
                        - description
                      properties:
                        field:
                          type: string
                          description: The name of the field that failed validation.
                        description:
                          type: string
                          description: >-
                            A detailed message explaining the reason for the
                            validation failure.
          examples:
            default:
              value:
                code: 400
                message: Request Validation failed.
                details:
                  - field: shopId
                    description: The field is required.
    unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericErrorResponse'
          examples:
            default:
              value:
                code: 401
                message: Missing or invalid authorization.
    request_limit_exceeded:
      description: Rate limit was exceeded.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericErrorResponse'
          examples:
            default:
              value:
                code: 429
                message: API rate limit exceeded.
    attributes.get_single.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AttributeGroup'
          examples:
            default:
              value:
                id: 3265
                key: apparelFit
                label: Apparel Fit
                type: Fit and Form
                multiSelect: false
                values:
                  - id: 1425
                    label: Regular
                    value: regular
    not_found:
      description: Resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericErrorResponse'
          examples:
            default:
              value:
                code: 404
                message: Item not found.
    brands.get_all.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BrandPaginatedList'
          examples:
            default:
              value:
                pagination:
                  current: 1
                  total: 1
                  perPage: 1
                  page: 1
                  first: 1
                  prev: 1
                  next: 1
                  last: 1
                entities:
                  - id: 3265
                    slug: scayle
                    name: SCAYLE
                    externalReference: external-system-id
                    group: default
                    isActive: true
                    logoHash: images/f6047178e368a45d900248450b48b36c.png
                    createdAt: '2019-06-05T09:11:25+00:00'
                    updatedAt: '2019-06-05T09:11:25+00:00'
                    indexedAt: '2024-04-22T00:07:01+00:00'
                    customData: {}
    brands.get_single.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Brand'
          examples:
            default:
              value:
                id: 3265
                slug: scayle
                name: SCAYLE
                externalReference: external-system-id
                group: default
                isActive: true
                logoHash: images/f6047178e368a45d900248450b48b36c.png
                createdAt: '2019-06-05T09:11:25+00:00'
                updatedAt: '2019-06-05T09:11:25+00:00'
                indexedAt: '2024-04-22T00:07:01+00:00'
                customData: {}
    campaigns.get_all.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CampaignPaginatedList'
          examples:
            default:
              value:
                pagination:
                  current: 1
                  total: 1
                  perPage: 1
                  page: 1
                  first: 1
                  prev: 1
                  next: 1
                  last: 1
                entities:
                  - id: 3265
                    name: 10% discount
                    key: e92b9922-66fd-484c-a561-6b1d102bfe03
                    description: A 10% discount on all purchases
                    reduction: 10
                    start_at: '2024-05-01T11:00:00+00:00'
                    end_at: '2024-05-06T23:00:00+00:00'
                    startsAt: '2024-05-01T11:00:00+00:00'
                    endsAt: '2024-05-06T23:00:00+00:00'
                    customData: {}
                    headline: Summer Dresses Deal
                    subline: 10% off on all dresses
                    link: /c/women/dresses-234
                    hideCountDown: false
                    condition: The promotion applies to summer season dresses.
                    color:
                      background: '#0038FF'
                      text: '#FFFFFF'
                    product:
                      badgeLabel: Summer Deal
    campaigns.get_single.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Campaign'
          examples:
            default:
              value:
                id: 3265
                name: 10% discount
                key: e92b9922-66fd-484c-a561-6b1d102bfe03
                description: A 10% discount on all purchases
                reduction: 10
                start_at: '2024-05-01T11:00:00+00:00'
                end_at: '2024-05-06T23:00:00+00:00'
                startsAt: '2024-05-01T11:00:00+00:00'
                endsAt: '2024-05-06T23:00:00+00:00'
                customData: {}
                headline: Summer Dresses Deal
                subline: 10% off on all dresses
                link: /c/women/dresses-234
                hideCountDown: false
                condition: The promotion applies to summer season dresses.
                color:
                  background: '#0038FF'
                  text: '#FFFFFF'
                product:
                  badgeLabel: Summer Deal
    categories.get_all.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CategoryList'
          examples:
            Tree format:
              value:
                - id: 1425
                  name: Women
                  slug: women
                  path: /women
                  parentId: 0
                  isHidden: false
                  depth: 1
                  children:
                    - id: 3265
                      name: Women Dresses
                      slug: dresses
                      path: /women/dresses
                      parentId: 1425
                      isHidden: false
                      depth: 2
                      children: []
                      rootlineIds:
                        - 1425
                        - 3265
                      childrenIds: []
                      properties:
                        - name: shipping_class
                          value: standard
                      supportedFilter:
                        - apparelFit
                      shopLevelCustomData: {}
                      countryLevelCustomData: {}
                  rootlineIds:
                    - 1425
                  childrenIds:
                    - 3265
                  properties: []
                  supportedFilter: []
                  shopLevelCustomData: {}
                  countryLevelCustomData: {}
            Flat format:
              value:
                - id: 1425
                  name: Women
                  slug: women
                  path: women
                  parentId: 0
                  isHidden: false
                  depth: 1
                  rootlineIds:
                    - 1425
                  childrenIds:
                    - 3265
                  properties: []
                  supportedFilter: []
                  shopLevelCustomData: {}
                  countryLevelCustomData: {}
                - id: 3265
                  name: Women Dresses
                  slug: dresses
                  path: /women/dresses
                  parentId: 1425
                  isHidden: false
                  depth: 2
                  rootlineIds:
                    - 1425
                    - 3265
                  childrenIds: []
                  properties:
                    - name: shipping_class
                      value: standard
                  supportedFilter:
                    - apparelFit
                  shopLevelCustomData: {}
                  countryLevelCustomData: {}
    categories.get_single.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Category'
          examples:
            default:
              value:
                id: 3265
                name: Women Dresses
                slug: dresses
                path: /women/dresses
                parentId: 1425
                isHidden: false
                depth: 2
                rootlineIds:
                  - 1425
                  - 3265
                childrenIds:
                  - 1597
                properties:
                  - name: shipping_class
                    value: standard
                supportedFilter:
                  - apparelFit
                shopLevelCustomData: {}
                countryLevelCustomData: {}
    pages.get_all.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PagePaginatedList'
          examples:
            default:
              value:
                pagination:
                  current: 1
                  total: 1
                  perPage: 1
                  page: 1
                  first: 1
                  prev: 1
                  next: 1
                  last: 1
                entities:
                  - id: 3265
                    name: Men's cotton T-shirt
                    slug: cotton-tshirt-men
                    isActive: true
                    headline: All colors all sizes men's cotton T-shirt
                    text: >-
                      A comfortable and stylish cotton T-shirt for men,
                      available in all colors and sizes.
                    meta:
                      robots: index, nofollow
                      title: Men's cotton T-shirt
                      description: >-
                        Men's cotton T-shirt—stylish, comfy, all colors and
                        sizes.
    pages.get_single.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Page'
          examples:
            default:
              value:
                id: 3265
                name: Men's cotton T-shirt
                slug: cotton-tshirt-men
                isActive: true
                headline: All colors all sizes men's cotton T-shirt
                text: >-
                  A comfortable and stylish cotton T-shirt for men, available in
                  all colors and sizes.
                meta:
                  robots: index, nofollow
                  title: Men's cotton T-shirt
                  description: Men's cotton T-shirt—stylish, comfy, all colors and sizes.
    promotions.get_all.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PromotionPaginatedList'
          examples:
            default:
              value:
                pagination:
                  current: 1
                  total: 1
                  perPage: 1
                  page: 1
                  first: 1
                  prev: 1
                  next: 1
                  last: 1
                entities:
                  - id: 4115dca480b1a326cfa743c8
                    name: SUMMERSALE25
                    displayName: Summer Sale 2025
                    isActive: true
                    priority: 1
                    schedule:
                      from: '2025-05-01T23:00:00Z'
                      to: '2025-05-31T23:00:00Z'
                    effect:
                      type: automatic_discount
                      additionalData:
                        type: absolute
                        value: 1000
                    conditions:
                      - level: global
                        key: >-
                          panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                        condition: size(payload.items) >= 1
                      - level: item
                        key: >-
                          panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                        condition: 'true'
                    customData:
                      corePanel:
                        viewType: automatic-discount
                      headline: Summer Sale 2025
                      subline: 10 Absolute off
                      link: /c/women/dresses-234
                      hideCountDown: false
                      condition: The promotion applies to summer sale dresses.
                      color:
                        background: '#0038FF'
                        text: '#FFFFFF'
                      product:
                        badgeLabel: Summer Deal
                        attributeId: 442
                    tiers: []
    redirects.get_all.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RedirectPaginatedList'
          examples:
            default:
              value:
                pagination:
                  current: 1
                  total: 1
                  perPage: 1
                  page: 1
                  first: 1
                  prev: 1
                  next: 1
                  last: 1
                entities:
                  - id: 3265
                    source: (?i)^/product/([a-z0-9-]+)$
                    target: /catalog/item-$1
                    statusCode: 301
                    priority: 1
                    isRegex: true
    redirects.match.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RedirectMatch'
          examples:
            default:
              value:
                id: -1
                source: /product/sweater-7556441
                target: /catalog/item-sweater-7556441
                statusCode: 301
    shop-configuration.get_single.200:
      description: Operation successful
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-RateLimit-Scope:
          $ref: '#/components/headers/X-RateLimit-Scope'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ShopConfiguration'
          examples:
            default:
              value:
                shopId: 10001
                name: scayle
                country: DE
                customData: {}
                shopCustomData: {}
                properties: []
  examples:
    basketBasic:
      value:
        key: add-to-variant
        items:
          - key: 37105a2d2576d072b38f426e7b443a2c
            packageId: 1
            quantity: 1
            status: available
            displayData: {}
            availableQuantity: 9678
            customData: {}
            lowestPriorPrice:
              withTax: null
              relativeDifferenceToPrice: null
            price:
              total:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0
                appliedReductions: []
              unit:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0
                appliedReductions: []
            variant:
              id: 338316
              referenceKey: varRKDF0
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2024-10-28T09:53:49+00:00'
              stock:
                supplierId: 1
                warehouseId: 1
                quantity: 9678
                isSellableWithoutStock: false
                expectedAvailabilityAt: null
              price:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0.19
                appliedReductions: []
              customData: {}
            product:
              id: 208143
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2025-01-14T08:44:14+00:00'
              indexedAt: '2025-01-16T15:38:15+00:00'
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              masterKey: productMasterKey
              referenceKey: external-reference
              images:
                - hash: images/52d08cac15a71b5c02428c7989f634b9
              customData: {}
            itemGroup: null
            promotionId: null
            promotionCode: null
            promotion: null
            promotions: []
        packages:
          - id: 1
            carrierKey: ZASIL_CZ
            deliveryDate:
              max: '2025-01-20'
              min: '2025-01-17'
        cost:
          currencyCode: EUR
          withTax: 99900
          withoutTax: 83950
          recommendedRetailPrice: null
          tax:
            vat:
              amount: 15950
              rate: 0
          appliedReductions: []
        basketOutdated: false
    basketWithPromotions:
      value:
        key: basket_10001
        items:
          - key: 2dace78f80bc92e6d7493423d729448e
            packageId: 1
            quantity: 1
            status: available
            displayData: {}
            availableQuantity: 7
            customData: {}
            lowestPriorPrice:
              withTax: null
              relativeDifferenceToPrice: null
            price:
              total:
                currencyCode: GBP
                withTax: 5652
                withoutTax: 5652
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 0
                    rate: 0
                appliedReductions:
                  - category: promotion
                    type: relative
                    promotionId: 66eae24efd917b03a912fec6
                    amount:
                      relative: 0.5
                      absoluteWithTax: 5950
                  - category: promotion
                    type: relative
                    promotionId: 692ff9ee203730c9fbc4b12b
                    amount:
                      relative: 0.05
                      absoluteWithTax: 298
              unit:
                currencyCode: GBP
                withTax: 5652
                withoutTax: 5652
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 0
                    rate: 0
                appliedReductions:
                  - category: promotion
                    type: relative
                    promotionId: 66eae24efd917b03a912fec6
                    amount:
                      relative: 0.5
                      absoluteWithTax: 5950
                  - category: promotion
                    type: relative
                    promotionId: 692ff9ee203730c9fbc4b12b
                    amount:
                      relative: 0.05
                      absoluteWithTax: 298
            variant:
              id: 790
              referenceKey: '000000000007550569'
              firstLiveAt: '2024-10-19T07:55:05+00:00'
              createdAt: '2024-09-02T14:30:41+00:00'
              updatedAt: '2025-04-11T08:40:40+00:00'
              stock:
                supplierId: 66835
                warehouseId: 3
                quantity: 7
                isSellableWithoutStock: false
                expectedAvailabilityAt: null
              price:
                currencyCode: GBP
                withTax: 11900
                withoutTax: 11900
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 0
                    rate: 0
                appliedReductions: []
              customData: {}
            product:
              id: 267
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2024-09-02T14:30:41+00:00'
              updatedAt: '2025-04-11T08:40:38+00:00'
              indexedAt: '2025-12-16T09:09:37+00:00'
              firstLiveAt: '2024-10-19T07:55:05+00:00'
              masterKey: '000000000007550569'
              referenceKey: '000000000007550569'
              images:
                - hash: images/46e4d5c2105a9f1ecd6591a3d37ff637.jpg
                - hash: images/ded9489774bbddc09fea3e8a6cd97378.jpg
              customData: {}
            itemGroup: null
            promotionId: 66eae24efd917b03a912fec6
            promotionCode: null
            promotion:
              id: 66eae24efd917b03a912fec6
              name: Include 1 Master Category AND exclude 1 brand
              displayName: null
              schedule:
                from: '2024-09-17T22:00:00Z'
                to: '2025-12-31T23:00:00Z'
              isActive: true
              effect:
                type: automatic_discount
                additionalData:
                  type: relative
                  value: 50
              conditions:
                - level: item
                  key: Include Master Category "Storefront|Beauty|Bath & Body"
                  condition: >-
                    has(item.product.attributes.category) && (124 in
                    item.product.attributes.category)
                - level: item
                  key: Exclude Brand "Sol de Janeiro"
                  condition: >-
                    has(item.product.attributes.brand) && !(6961 in
                    item.product.attributes.brand)
              customData:
                corePanel:
                  viewType: advanced
              priority: 1
              tiers: []
              isValid: true
              failedConditions: []
            promotions:
              - id: 66eae24efd917b03a912fec6
                name: Include 1 Master Category AND exclude 1 brand
                displayName: null
                schedule:
                  from: '2024-09-17T22:00:00Z'
                  to: '2025-12-31T23:00:00Z'
                isActive: true
                effect:
                  type: automatic_discount
                  additionalData:
                    type: relative
                    value: 50
                conditions:
                  - level: item
                    key: Include Master Category "Storefront|Beauty|Bath & Body"
                    condition: >-
                      has(item.product.attributes.category) && (124 in
                      item.product.attributes.category)
                  - level: item
                    key: Exclude Brand "Sol de Janeiro"
                    condition: >-
                      has(item.product.attributes.brand) && !(6961 in
                      item.product.attributes.brand)
                customData:
                  corePanel:
                    viewType: advanced
                priority: 1
                tiers: []
                isValid: true
                failedConditions: []
              - id: 692ff9ee203730c9fbc4b12b
                name: 5% off all products - combinables with all promotions
                displayName: null
                schedule:
                  from: '2025-12-03T00:00:00Z'
                  to: '2025-12-24T00:00:00Z'
                isActive: true
                effect:
                  type: automatic_discount
                  additionalData:
                    type: relative
                    value: 5
                conditions:
                  - level: global
                    key: >-
                      panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                    condition: size(payload.items) >= 1
                  - level: global
                    key: panels_automatic-discount_minimum_order_amount_5000
                    condition: payload.totals.withTax >= 5000
                  - level: item
                    key: >-
                      panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                    condition: 'true'
                customData:
                  corePanel:
                    viewType: automatic-discount
                  minimumOrderValue: 5000
                priority: 1
                tiers: []
                isValid: true
                failedConditions: []
            deliveryForecast: null
        packages:
          - carrierKey: NO CARRIER
            deliveryDate:
              max: '2025-12-19'
              min: '2025-12-17'
            id: 1
        cost:
          currencyCode: GBP
          withTax: 5652
          withoutTax: 5652
          recommendedRetailPrice: null
          tax:
            vat:
              amount: 0
              rate: 0
          appliedReductions:
            - category: promotion
              type: relative
              amount:
                relative: 0.52
                absoluteWithTax: 6248
    basketWithPromotionId:
      value:
        key: add-item-with-promotion-id
        items:
          key: 37105a2d2576d072b38f426e7b443a2c
          packageId: 1
          quantity: 1
          status: available
          displayData: {}
          availableQuantity: 9678
          customData: {}
          lowestPriorPrice:
            withTax: null
            relativeDifferenceToPrice: null
          price:
            total:
              currencyCode: EUR
              withTax: 96200
              withoutTax: 80840
              recommendedRetailPrice: null
              tax:
                vat:
                  amount: 15360
                  rate: 0
              appliedReductions:
                - category: promotion
                  type: relative
                  amount:
                    relative: 0.03
                    absoluteWithTax: 3700
                    absoluteTax: 590
                    absoluteWithoutTax: 3110
            unit:
              currencyCode: EUR
              withTax: 96200
              withoutTax: 80840
              recommendedRetailPrice: null
              tax:
                vat:
                  amount: 15360
                  rate: 0
              appliedReductions:
                - category: promotion
                  type: relative
                  amount:
                    relative: 0.03
                    absoluteWithTax: 3700
                    absoluteTax: 590
                    absoluteWithoutTax: 3110
          variant:
            id: 338316
            referenceKey: varRKDF0
            firstLiveAt: '2024-10-14T13:02:49+00:00'
            createdAt: '2024-10-14T13:02:20+00:00'
            updatedAt: '2024-10-28T09:53:49+00:00'
            stock:
              supplierId: 1
              warehouseId: 1
              quantity: 9678
              isSellableWithoutStock: false
              expectedAvailabilityAt: null
            price:
              currencyCode: EUR
              withTax: 99900
              withoutTax: 83950
              recommendedRetailPrice: null
              tax:
                vat:
                  amount: 15950
                  rate: 0.19
              appliedReductions: []
            customData: {}
          product:
            id: 208143
            isActive: true
            isSoldOut: false
            isNew: false
            createdAt: '2024-10-14T13:02:20+00:00'
            updatedAt: '2025-01-14T08:44:14+00:00'
            indexedAt: '2025-01-16T15:38:15+00:00'
            firstLiveAt: '2024-10-14T13:02:49+00:00'
            masterKey: productMasterKey
            referenceKey: external-reference
            images:
              - hash: images/52d08cac15a71b5c02428c7989f634b9
            customData: {}
          itemGroup: null
          promotionId: 672b7cf8cc574c81c1a24936
          promotionCode: null
          promotion:
            id: 672b7cf8cc574c81c1a24936
            name: PPK and AD
            schedule:
              from: '2024-11-05T23:00:00Z'
              to: '2026-03-26T23:00:00Z'
            isActive: true
            effect:
              type: automatic_discount
              additionalData:
                type: absolute
                value: 3700
            conditions:
              - level: global
                key: >-
                  panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                condition: size(payload.items) >= 1
              - level: global
                key: panels_automatic-discount_minimum_order_amount_50000
                condition: payload.totals.withTax >= 50000
              - level: item
                key: >-
                  panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                condition: true
            customData:
              corePanel:
                viewType: automatic-discount
            priority: 1
            tiers: []
            isValid: true
            failedConditions: []
          promotions:
            - id: 672b7cf8cc574c81c1a24936
              name: PPK and AD
              schedule:
                from: '2024-11-05T23:00:00Z'
                to: '2026-03-26T23:00:00Z'
              isActive: true
              effect:
                type: automatic_discount
                additionalData:
                  type: absolute
                  value: 3700
              conditions:
                - level: global
                  key: >-
                    panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                  condition: size(payload.items) >= 1
                - level: global
                  key: panels_automatic-discount_minimum_order_amount_50000
                  condition: payload.totals.withTax >= 50000
                - level: item
                  key: >-
                    panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                  condition: true
              customData:
                corePanel:
                  viewType: automatic-discount
              priority: 1
              tiers: []
              isValid: true
              failedConditions: []
        packages:
          - id: 1
            carrierKey: ZASIL_CZ
            deliveryDate:
              max: '2025-01-20'
              min: '2025-01-17'
        cost:
          currencyCode: EUR
          withTax: 96200
          withoutTax: 80840
          recommendedRetailPrice: null
          tax:
            vat:
              amount: 15360
              rate: 0
          appliedReductions:
            - category: promotion
              type: relative
              amount:
                relative: 0.03
                absoluteWithTax: 3700
                absoluteTax: 590
                absoluteWithoutTax: 3110
        basketOutdated: false
    basketWithPromotionCode:
      value:
        key: add-item-with-promotion-code
        items:
          - key: 37105a2d2576d072b38f426e7b443a2c
            packageId: 1
            quantity: 14
            status: available
            displayData: {}
            availableQuantity: 9676
            customData:
              corePanel:
                viewType: with-code
            lowestPriorPrice:
              withTax: null
              relativeDifferenceToPrice: null
            price:
              total:
                currencyCode: EUR
                withTax: 1394400
                withoutTax: 1171758
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 222642
                    rate: 0
                appliedReductions:
                  - category: promotion
                    type: relative
                    amount:
                      relative: 0
                      absoluteWithTax: 4200
                      absoluteTax: 658
                      absoluteWithoutTax: 3542
              unit:
                currencyCode: EUR
                withTax: 99600
                withoutTax: 83697
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15903
                    rate: 0
                appliedReductions:
                  - category: promotion
                    type: relative
                    amount:
                      relative: 0
                      absoluteWithTax: 300
                      absoluteTax: 47
                      absoluteWithoutTax: 253
            variant:
              id: 338316
              referenceKey: varRKDF0
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2024-10-28T09:53:49+00:00'
              stock:
                supplierId: 1
                warehouseId: 1
                quantity: 9676
                isSellableWithoutStock: false
                expectedAvailabilityAt: null
              price:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0.19
                appliedReductions: []
              customData: {}
            product:
              id: 208143
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2025-01-14T08:44:14+00:00'
              indexedAt: '2025-01-17T08:38:59+00:00'
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              masterKey: productMasterKey
              referenceKey: external-reference
              images:
                - hash: images/52d08cac15a71b5c02428c7989f634b9
              customData: {}
            itemGroup: null
            promotionId: 66f13a90ca8bf0b06ecd67e3
            promotionCode: DISCOUNT3EUR
            promotion:
              id: 66f13a90ca8bf0b06ecd67e3
              code: DISCOUNT3EUR
              name: DISCOUNT-NQ-3
              displayName: DISCOUNT-NQ-3
              schedule:
                from: '2024-09-22T22:00:00Z'
                to: '2026-09-24T22:00:00Z'
              isActive: true
              effect:
                type: automatic_discount
                additionalData:
                  type: absolute
                  value: 300
              conditions:
                - level: global
                  key: panels_with-code_minimum_order_amount_8
                  condition: payload.totals.withTax >= 8
              customData:
                corePanel:
                  viewType: with-code
              priority: 1
              tiers: []
              isValid: true
              failedConditions: []
            promotions:
              - id: 66f13a90ca8bf0b06ecd67e3
                code: DISCOUNT3EUR
                name: DISCOUNT-NQ-3
                displayName: DISCOUNT-NQ-3
                schedule:
                  from: '2024-09-22T22:00:00Z'
                  to: '2026-09-24T22:00:00Z'
                isActive: true
                effect:
                  type: automatic_discount
                  additionalData:
                    type: absolute
                    value: 300
                conditions:
                  - level: global
                    key: panels_with-code_minimum_order_amount_8
                    condition: payload.totals.withTax >= 8
                customData:
                  corePanel:
                    viewType: with-code
                priority: 1
                tiers: []
                isValid: true
                failedConditions: []
        packages:
          - carrierKey: ZASIL_CZ
            deliveryDate:
              max: '2025-01-21'
              min: '2025-01-20'
            id: 1
        cost:
          currencyCode: EUR
          withTax: 1394400
          withoutTax: 1171758
          recommendedRetailPrice: null
          tax:
            vat:
              amount: 222642
              rate: 0
          appliedReductions:
            - category: promotion
              type: relative
              amount:
                relative: 0
                absoluteWithTax: 4200
                absoluteTax: 658
                absoluteWithoutTax: 3542
        basketOutdated: false
    basketWithPricePromotionKey:
      value:
        key: add-to-variant-with-ppk
        items:
          - key: 37105a2d2576d072b38f426e7b443a2c
            packageId: 1
            quantity: 1
            status: available
            displayData: {}
            availableQuantity: 9676
            customData:
              pricePromotionKey: ppk12
            lowestPriorPrice:
              withTax: 77795
              relativeDifferenceToPrice: -0.01
            price:
              total:
                currencyCode: EUR
                withTax: 77700
                withoutTax: 65294
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 12406
                    rate: 0
                appliedReductions:
                  - category: sale
                    type: relative
                    amount:
                      relative: 0.12
                      absoluteWithTax: 11100
              unit:
                currencyCode: EUR
                withTax: 77700
                withoutTax: 65294
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 12406
                    rate: 0
                appliedReductions:
                  - category: sale
                    type: relative
                    amount:
                      relative: 0.12
                      absoluteWithTax: 11100
            variant:
              id: 338316
              referenceKey: varRKDF0
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2024-10-28T09:53:49+00:00'
              stock:
                supplierId: 1
                warehouseId: 1
                quantity: 9676
                isSellableWithoutStock: false
                expectedAvailabilityAt: null
              price:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0.19
                appliedReductions: []
              customData: {}
            product:
              id: 208143
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2025-01-14T08:44:14+00:00'
              indexedAt: '2025-01-17T11:45:00+00:00'
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              masterKey: productMasterKey
              referenceKey: external-reference
              images:
                - hash: images/52d08cac15a71b5c02428c7989f634b9
              customData: {}
            itemGroup: null
            promotionId: null
            promotionCode: null
            promotion: null
            promotions: []
        packages:
          - carrierKey: ZASIL_CZ
            deliveryDate:
              max: '2025-01-21'
              min: '2025-01-18'
            id: 1
        cost:
          currencyCode: EUR
          withTax: 77700
          withoutTax: 65294
          recommendedRetailPrice: null
          tax:
            vat:
              amount: 12406
              rate: 0
          appliedReductions:
            - category: sale
              type: relative
              amount:
                relative: 0.12
                absoluteWithTax: 11100
        basketOutdated: false
    basketWithCombinedPromotionIdAndPPK:
      value:
        key: ppk-and-promotion
        items:
          - key: 37105a2d2576d072b38f426e7b443a2c
            packageId: 1
            quantity: 1
            status: available
            displayData: {}
            availableQuantity: 9676
            customData:
              pricePromotionKey: ppk12
            lowestPriorPrice:
              withTax: 77795
              relativeDifferenceToPrice: -0.01
            price:
              total:
                currencyCode: EUR
                withTax: 64491
                withoutTax: 54194
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 10297
                    rate: 0
                appliedReductions:
                  - category: sale
                    type: relative
                    amount:
                      relative: 0.12
                      absoluteWithTax: 11100
                  - category: promotion
                    type: relative
                    amount:
                      relative: 0.17
                      absoluteWithTax: 13209
                      absoluteTax: 2109
                      absoluteWithoutTax: 11100
              unit:
                currencyCode: EUR
                withTax: 64491
                withoutTax: 54194
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 10297
                    rate: 0
                appliedReductions:
                  - category: sale
                    type: relative
                    amount:
                      relative: 0.12
                      absoluteWithTax: 11100
                  - category: promotion
                    type: relative
                    amount:
                      relative: 0.17
                      absoluteWithTax: 13209
                      absoluteTax: 2109
                      absoluteWithoutTax: 11100
            variant:
              id: 338316
              referenceKey: varRKDF0
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2024-10-28T09:53:49+00:00'
              stock:
                supplierId: 1
                warehouseId: 1
                quantity: 9676
                isSellableWithoutStock: false
                expectedAvailabilityAt: null
              price:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0.19
                appliedReductions: []
              customData: {}
            product:
              id: 208143
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2025-01-14T08:44:14+00:00'
              indexedAt: '2025-01-17T11:45:00+00:00'
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              masterKey: productMasterKey
              referenceKey: external-reference
              images:
                - hash: images/52d08cac15a71b5c02428c7989f634b9
              customData: {}
            itemGroup: null
            promotionId: 672b8324cc574c81c1a24938
            promotionCode: null
            promotion:
              id: 672b8324cc574c81c1a24938
              name: PPK and AD percentage
              displayName: PPK and AD percentage
              schedule:
                from: '2024-11-05T23:00:00Z'
                to: '2026-11-13T23:00:00Z'
              isActive: true
              effect:
                type: automatic_discount
                additionalData:
                  type: relative
                  value: 17
              conditions:
                - level: global
                  key: >-
                    panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                  condition: size(payload.items) >= 1
                - level: global
                  key: panels_automatic-discount_minimum_order_amount_50000
                  condition: payload.totals.withTax >= 50000
                - level: item
                  key: >-
                    panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                  condition: true
              customData:
                corePanel:
                  viewType: automatic-discount
              priority: 1
              tiers: []
              isValid: true
              failedConditions: []
            promotions:
              - id: 672b8324cc574c81c1a24938
                name: PPK and AD percentage
                displayName: PPK and AD percentage
                schedule:
                  from: '2024-11-05T23:00:00Z'
                  to: '2026-11-13T23:00:00Z'
                isActive: true
                effect:
                  type: automatic_discount
                  additionalData:
                    type: relative
                    value: 17
                conditions:
                  - level: global
                    key: >-
                      panels_automatic-discount_any_products_condition_e5b66afa5eacabdb6bb855c6a9344db49cc372b4
                    condition: size(payload.items) >= 1
                  - level: global
                    key: panels_automatic-discount_minimum_order_amount_50000
                    condition: payload.totals.withTax >= 50000
                  - level: item
                    key: >-
                      panels_automatic-discount_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                    condition: true
                customData:
                  corePanel:
                    viewType: automatic-discount
                priority: 1
                tiers: []
                isValid: true
                failedConditions: []
        packages:
          - carrierKey: ZASIL_CZ
            deliveryDate:
              max: '2025-01-21'
              min: '2025-01-18'
            id: 1
        cost:
          currencyCode: EUR
          withTax: 64491
          withoutTax: 54194
          recommendedRetailPrice: null
          tax:
            vat:
              amount: 10297
              rate: 0
          appliedReductions:
            - category: sale
              type: relative
              amount:
                relative: 0.12
                absoluteWithTax: 11100
            - category: promotion
              type: relative
              amount:
                relative: 0.17
                absoluteWithTax: 13209
                absoluteTax: 2109
                absoluteWithoutTax: 11100
        basketOutdated: false
    basketGetByPromotionCode:
      value:
        key: add-to-variant
        items:
          - key: 37105a2d2576d072b38f426e7b443a2c
            packageId: 1
            quantity: 1
            status: available
            displayData: {}
            availableQuantity: 9678
            customData: {}
            lowestPriorPrice:
              withTax: null
              relativeDifferenceToPrice: null
            price:
              total:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0
                appliedReductions: []
              unit:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0
                appliedReductions: []
            variant:
              id: 338316
              referenceKey: varRKDF0
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2024-10-28T09:53:49+00:00'
              stock:
                supplierId: 1
                warehouseId: 1
                quantity: 9678
                isSellableWithoutStock: false
                expectedAvailabilityAt: null
              price:
                currencyCode: EUR
                withTax: 99900
                withoutTax: 83950
                recommendedRetailPrice: null
                tax:
                  vat:
                    amount: 15950
                    rate: 0.19
                appliedReductions: []
              customData: {}
            product:
              id: 208143
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2024-10-14T13:02:20+00:00'
              updatedAt: '2025-01-14T08:44:14+00:00'
              indexedAt: '2025-01-16T15:38:15+00:00'
              firstLiveAt: '2024-10-14T13:02:49+00:00'
              masterKey: productMasterKey
              referenceKey: external-reference
              images:
                - hash: images/52d08cac15a71b5c02428c7989f634b9
              customData: {}
            itemGroup: null
            promotionId: null
            promotionCode: null
            promotion: null
            promotions: []
        packages:
          - id: 1
            carrierKey: ZASIL_CZ
            deliveryDate:
              max: '2025-01-20'
              min: '2025-01-17'
        cost:
          currencyCode: EUR
          withTax: 99900
          withoutTax: 83950
          recommendedRetailPrice: null
          tax:
            vat:
              amount: 15950
              rate: 0
          appliedReductions: []
        applicablePromotions:
          - promotion:
              id: 66ed1013f667a8ddf4c44fbb
              code: promocode123
              name: PRCODE-NQ-1
              displayName: Promo Name
              schedule:
                from: '2024-09-19T22:00:00Z'
                to: '2026-09-25T22:00:00Z'
              isActive: true
              effect:
                type: automatic_discount
                additionalData:
                  type: absolute
                  value: 500
              conditions":
                - level: global
                  key: panels_with-code_minimum_order_amount_10
                  condition: payload.totals.withTax >= 10
                - level: item
                  key: >-
                    panels_with-code_any_products_condition_5ffe533b830f08a0326348a9160afafc8ada44db
                  condition: true
              customData:
                corePanel:
                  viewType: with-code
              priority: 1
              tiers: []
            itemId: 37105a2d2576d072b38f426e7b443a2c
        basketOutdated: false
    wishlist:
      value:
        key: wishlist-id
        items:
          - key: 043c2ec6c6390dd0ac5519190a57c88c
            packageId: 1
            quantity: 1
            status: available
            customData: {}
            variantId: null
            productId: 7
            itemGroup: null
            product:
              id: 7
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2023-09-22T14:34:44+00:00'
              updatedAt: '2024-04-10T10:30:08+00:00'
              indexedAt: '2024-04-23T17:22:14+00:00'
              firstLiveAt: '2023-09-22T14:35:29+00:00'
              masterKey: master-key
              referenceKey: external-reference
              attributes:
                name:
                  id: 20005
                  key: name
                  label: Name
                  type: ''
                  multiSelect: false
                  values:
                    id: 20005
                    label: Women dress
                    value: name
                color:
                  id: 1
                  key: color
                  label: Color
                  type: ''
                  multiSelect: true
                  values:
                    - id: 38932
                      label: Black
                      value: black
                brand:
                  id: 3
                  key: brand
                  label: Brand
                  type: ''
                  multiSelect: false
                  values:
                    id: 232
                    label: SCAYLE
                    value: scayle
              advancedAttributes:
                combineWith:
                  id: 1223
                  key: combineWith
                  label: Combine with Products
                  type: ''
                  values:
                    - fieldSet:
                        - - value: '51'
                          - value: '63'
                          - value: '27'
                      groupSet: []
              images:
                - hash: images/52d08cac15a71b5c02428c7989f634b9
                  attributes:
                    imageFocus:
                      id: 1253
                      key: imageFocus
                      label: Image Focus
                      type: ''
                      multiSelect: false
                      values:
                        id: 66484
                        label: Product
                        value: product
                - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                  attributes:
                    imageFocus:
                      id: 1253
                      key: imageFocus
                      label: Image Focus
                      type: ''
                      multiSelect: false
                      values:
                        id: 66483
                        label: Detail
                        value: detail
              variants:
                - id: 1
                  referenceKey: external-reference
                  attributes:
                    size:
                      id: 2
                      key: size
                      label: Size
                      type: ''
                      multiSelect: false
                      values:
                        id: 15
                        label: S
                        value: s
                  firstLiveAt: '2023-09-22T14:36:42+00:00'
                  createdAt: '2023-09-22T14:34:45+00:00'
                  updatedAt: '2024-04-23T09:32:13+00:00'
                  stock:
                    supplierId: 3
                    warehouseId: 1
                    quantity: 21
                    isSellableWithoutStock: false
                  price:
                    currencyCode: EUR
                    withTax: 4999
                    withoutTax: 4201
                    recommendedRetailPrice: null
                    tax:
                      vat:
                        amount: 798
                        rate: 0.19
                    appliedReductions: []
                  customData: {}
                - id: 5
                  referenceKey: external-reference
                  attributes:
                    size:
                      id: 2
                      key: size
                      label: Size
                      type: ''
                      multiSelect: false
                      values:
                        id: 18
                        label: M
                        value: m
                  firstLiveAt: '2023-09-22T14:35:29+00:00'
                  createdAt: '2023-09-22T14:34:45+00:00'
                  updatedAt: '2024-04-23T03:17:39+00:00'
                  stock:
                    supplierId: 3
                    warehouseId: 1
                    quantity: 7
                    isSellableWithoutStock: false
                  price:
                    currencyCode: EUR
                    withTax: 4999
                    withoutTax: 4201
                    recommendedRetailPrice: null
                    tax:
                      vat:
                        amount: 798
                        rate: 0.19
                    appliedReductions: []
                  customData: {}
              customData: {}
    productsWithDefault:
      value:
        pagination:
          current: 10
          total: 95
          perPage: 10
          page: 1
          first: 1
          prev: 1
          next: 2
          last: 10
        entities:
          - id: 7
            isActive: true
            isSoldOut: false
            isNew: false
            createdAt: '2023-09-22T14:34:44+00:00'
            updatedAt: '2024-04-10T10:30:08+00:00'
            indexedAt: '2024-04-23T17:22:14+00:00'
            firstLiveAt: '2023-09-22T14:35:29+00:00'
            masterKey: master-key
            referenceKey: external-reference
            images:
              - hash: images/52d08cac15a71b5c02428c7989f634b9
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66484
                      label: Product
                      value: product
              - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66483
                      label: Detail
                      value: detail
            customData: {}
    productsWithSellableTimeframe:
      value:
        pagination:
          current: 10
          total: 95
          perPage: 10
          page: 1
          first: 1
          prev: 1
          next: 2
          last: 10
        entities:
          - id: 7
            isActive: true
            isSoldOut: false
            isNew: false
            createdAt: '2023-09-22T14:34:44+00:00'
            updatedAt: '2024-04-10T10:30:08+00:00'
            indexedAt: '2024-04-23T17:22:14+00:00'
            firstLiveAt: '2023-09-22T14:35:29+00:00'
            masterKey: master-key
            referenceKey: external-reference
            images:
              - hash: images/52d08cac15a71b5c02428c7989f634b9
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66484
                      label: Product
                      value: product
              - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66483
                      label: Detail
                      value: detail
            customData: {}
            sellableTimeFrame:
              sellableFrom: '2023-09-22T14:34:44+00:00'
              sellableTo: '2023-09-28T14:34:44+00:00'
    productsWithVariants:
      value:
        pagination:
          current: 10
          total: 95
          perPage: 10
          page: 1
          first: 1
          prev: 1
          next: 2
          last: 10
        entities:
          - id: 7
            isActive: true
            isSoldOut: false
            isNew: false
            createdAt: '2023-09-22T14:34:44+00:00'
            updatedAt: '2024-04-10T10:30:08+00:00'
            indexedAt: '2024-04-23T17:22:14+00:00'
            firstLiveAt: '2023-09-22T14:35:29+00:00'
            masterKey: master-key
            referenceKey: external-reference
            images:
              - hash: images/52d08cac15a71b5c02428c7989f634b9
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66484
                      label: Product
                      value: product
              - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66483
                      label: Detail
                      value: detail
            variants:
              - id: 1
                referenceKey: external-reference
                attributes:
                  size:
                    id: 2
                    key: size
                    label: Size
                    type: ''
                    multiSelect: false
                    values:
                      id: 15
                      label: S
                      value: s
                firstLiveAt: '2023-09-22T14:36:42+00:00'
                createdAt: '2023-09-22T14:34:45+00:00'
                updatedAt: '2024-04-23T09:32:13+00:00'
                stock:
                  supplierId: 3
                  warehouseId: 1
                  quantity: 21
                  isSellableWithoutStock: false
                price:
                  currencyCode: EUR
                  withTax: 4999
                  withoutTax: 4201
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 798
                      rate: 0.19
                  appliedReductions: []
                customData: {}
              - id: 5
                referenceKey: external-reference
                attributes:
                  size:
                    id: 2
                    key: size
                    label: Size
                    type: ''
                    multiSelect: false
                    values:
                      id: 18
                      label: M
                      value: m
                firstLiveAt: '2023-09-22T14:35:29+00:00'
                createdAt: '2023-09-22T14:34:45+00:00'
                updatedAt: '2024-04-23T03:17:39+00:00'
                stock:
                  supplierId: 3
                  warehouseId: 1
                  quantity: 7
                  isSellableWithoutStock: false
                price:
                  currencyCode: EUR
                  withTax: 4999
                  withoutTax: 4201
                  recommendedRetailPrice: null
                  tax:
                    vat:
                      amount: 798
                      rate: 0.19
                  appliedReductions: []
                customData: {}
            customData: {}
    productsWithAttributes:
      value:
        pagination:
          current: 10
          total: 95
          perPage: 10
          page: 1
          first: 1
          prev: 1
          next: 2
          last: 10
        entities:
          - id: 7
            isActive: true
            isSoldOut: false
            isNew: false
            createdAt: '2023-09-22T14:34:44+00:00'
            updatedAt: '2024-04-10T10:30:08+00:00'
            indexedAt: '2024-04-23T17:22:14+00:00'
            firstLiveAt: '2023-09-22T14:35:29+00:00'
            masterKey: master-key
            referenceKey: external-reference
            attributes:
              name:
                id: 20005
                key: name
                label: Name
                type: ''
                multiSelect: false
                values:
                  id: 20005
                  label: Women dress
                  value: name
              color:
                id: 1
                key: color
                label: Color
                type: ''
                multiSelect: true
                values:
                  - id: 38932
                    label: Black
                    value: black
              brand:
                id: 3
                key: brand
                label: Brand
                type: ''
                multiSelect: false
                values:
                  id: 232
                  label: SCAYLE
                  value: scayle
            images:
              - hash: images/52d08cac15a71b5c02428c7989f634b9
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66484
                      label: Product
                      value: product
              - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66483
                      label: Detail
                      value: detail
            customData: {}
    productsWithAdvancedAttributes:
      value:
        pagination:
          current: 10
          total: 95
          perPage: 10
          page: 1
          first: 1
          prev: 1
          next: 2
          last: 10
        entities:
          - id: 7
            isActive: true
            isSoldOut: false
            isNew: false
            createdAt: '2023-09-22T14:34:44+00:00'
            updatedAt: '2024-04-10T10:30:08+00:00'
            indexedAt: '2024-04-23T17:22:14+00:00'
            firstLiveAt: '2023-09-22T14:35:29+00:00'
            masterKey: master-key
            referenceKey: external-reference
            advancedAttributes:
              combineWith:
                id: 1223
                key: combineWith
                label: Combine with Products
                type: ''
                values:
                  - fieldSet:
                      - - value: '51'
                        - value: '63'
                        - value: '27'
                    groupSet: []
            images:
              - hash: images/52d08cac15a71b5c02428c7989f634b9
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66484
                      label: Product
                      value: product
              - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
                attributes:
                  imageFocus:
                    id: 1253
                    key: imageFocus
                    label: Image Focus
                    type: ''
                    multiSelect: false
                    values:
                      id: 66483
                      label: Detail
                      value: detail
            customData: {}
    productWithDefault:
      value:
        id: 7
        isActive: true
        isSoldOut: false
        isNew: false
        createdAt: '2023-09-22T14:34:44+00:00'
        updatedAt: '2024-04-10T10:30:08+00:00'
        indexedAt: '2024-04-23T17:22:14+00:00'
        firstLiveAt: '2023-09-22T14:35:29+00:00'
        masterKey: master-key
        referenceKey: external-reference
        images:
          - hash: images/52d08cac15a71b5c02428c7989f634b9
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66484
                  label: Product
                  value: product
          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66483
                  label: Detail
                  value: detail
        customData: {}
    productWithSellableTimeframe:
      value:
        id: 7
        isActive: true
        isSoldOut: false
        isNew: false
        createdAt: '2023-09-22T14:34:44+00:00'
        updatedAt: '2024-04-10T10:30:08+00:00'
        indexedAt: '2024-04-23T17:22:14+00:00'
        firstLiveAt: '2023-09-22T14:35:29+00:00'
        masterKey: master-key
        referenceKey: external-reference
        images:
          - hash: images/52d08cac15a71b5c02428c7989f634b9
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66484
                  label: Product
                  value: product
          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66483
                  label: Detail
                  value: detail
        customData: {}
        sellableTimeFrame:
          sellableFrom: '2023-09-22T14:34:44+00:00'
          sellableTo: '2023-09-28T14:34:44+00:00'
    productWithVariants:
      value:
        id: 7
        isActive: true
        isSoldOut: false
        isNew: false
        createdAt: '2023-09-22T14:34:44+00:00'
        updatedAt: '2024-04-10T10:30:08+00:00'
        indexedAt: '2024-04-23T17:22:14+00:00'
        firstLiveAt: '2023-09-22T14:35:29+00:00'
        masterKey: master-key
        referenceKey: external-reference
        images:
          - hash: images/52d08cac15a71b5c02428c7989f634b9
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66484
                  label: Product
                  value: product
          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66483
                  label: Detail
                  value: detail
        variants:
          - id: 1
            referenceKey: external-reference
            attributes:
              size:
                id: 2
                key: size
                label: Size
                type: ''
                multiSelect: false
                values:
                  id: 15
                  label: S
                  value: s
            firstLiveAt: '2023-09-22T14:36:42+00:00'
            createdAt: '2023-09-22T14:34:45+00:00'
            updatedAt: '2024-04-23T09:32:13+00:00'
            stock:
              supplierId: 3
              warehouseId: 1
              quantity: 21
              isSellableWithoutStock: false
            price:
              currencyCode: EUR
              withTax: 4999
              withoutTax: 4201
              recommendedRetailPrice: null
              tax:
                vat:
                  amount: 798
                  rate: 0.19
              appliedReductions: []
            customData: {}
          - id: 5
            referenceKey: external-reference
            attributes:
              size:
                id: 2
                key: size
                label: Size
                type: ''
                multiSelect: false
                values:
                  id: 18
                  label: M
                  value: m
            firstLiveAt: '2023-09-22T14:35:29+00:00'
            createdAt: '2023-09-22T14:34:45+00:00'
            updatedAt: '2024-04-23T03:17:39+00:00'
            stock:
              supplierId: 3
              warehouseId: 1
              quantity: 7
              isSellableWithoutStock: false
            price:
              currencyCode: EUR
              withTax: 4999
              withoutTax: 4201
              recommendedRetailPrice: null
              tax:
                vat:
                  amount: 798
                  rate: 0.19
              appliedReductions: []
            customData: {}
        customData: {}
    productWithAttributes:
      value:
        id: 7
        isActive: true
        isSoldOut: false
        isNew: false
        createdAt: '2023-09-22T14:34:44+00:00'
        updatedAt: '2024-04-10T10:30:08+00:00'
        indexedAt: '2024-04-23T17:22:14+00:00'
        firstLiveAt: '2023-09-22T14:35:29+00:00'
        masterKey: master-key
        referenceKey: external-reference
        attributes:
          name:
            id: 20005
            key: name
            label: Name
            type: ''
            multiSelect: false
            values:
              id: 20005
              label: Women dress
              value: name
          color:
            id: 1
            key: color
            label: Color
            type: ''
            multiSelect: true
            values:
              - id: 38932
                label: Black
                value: black
          brand:
            id: 3
            key: brand
            label: Brand
            type: ''
            multiSelect: false
            values:
              id: 232
              label: SCAYLE
              value: scayle
        images:
          - hash: images/52d08cac15a71b5c02428c7989f634b9
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66484
                  label: Product
                  value: product
          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66483
                  label: Detail
                  value: detail
        customData: {}
    productWithAdvancedAttributes:
      value:
        id: 7
        isActive: true
        isSoldOut: false
        isNew: false
        createdAt: '2023-09-22T14:34:44+00:00'
        updatedAt: '2024-04-10T10:30:08+00:00'
        indexedAt: '2024-04-23T17:22:14+00:00'
        firstLiveAt: '2023-09-22T14:35:29+00:00'
        masterKey: master-key
        referenceKey: external-reference
        advancedAttributes:
          combineWith:
            id: 1223
            key: combineWith
            label: Combine with Products
            type: ''
            values:
              - fieldSet:
                  - - value: '51'
                    - value: '63'
                    - value: '27'
                groupSet: []
        images:
          - hash: images/52d08cac15a71b5c02428c7989f634b9
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66484
                  label: Product
                  value: product
          - hash: images/3e81768c43aab1d12b3c53956a64ff2d.jpg
            attributes:
              imageFocus:
                id: 1253
                key: imageFocus
                label: Image Focus
                type: ''
                multiSelect: false
                values:
                  id: 66483
                  label: Detail
                  value: detail
        customData: {}
    similarProducts:
      value:
        recommendations:
          - imageConfidenceScore: 92
            product:
              id: 78901
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2023-06-15T10:30:00+00:00'
              updatedAt: '2024-01-20T14:45:00+00:00'
              indexedAt: '2024-04-22T00:07:01+00:00'
              firstLiveAt: '2023-06-15T12:00:00+00:00'
              masterKey: SHIRT-BLUE-001
              referenceKey: SKU-78901
              images: []
              customData: {}
          - imageConfidenceScore: 78
            product:
              id: 78902
              isActive: true
              isSoldOut: false
              isNew: true
              createdAt: '2024-01-10T09:00:00+00:00'
              updatedAt: '2024-02-15T11:30:00+00:00'
              indexedAt: '2024-04-22T00:07:01+00:00'
              firstLiveAt: '2024-01-10T10:00:00+00:00'
              masterKey: SHIRT-GREEN-002
              referenceKey: SKU-78902
              images: []
              customData: {}
          - imageConfidenceScore: null
            product:
              id: 78903
              isActive: true
              isSoldOut: false
              isNew: false
              createdAt: '2022-11-05T08:15:00+00:00'
              updatedAt: '2024-03-01T16:20:00+00:00'
              indexedAt: '2024-04-22T00:07:01+00:00'
              firstLiveAt: '2022-11-05T09:00:00+00:00'
              masterKey: PANTS-BLACK-001
              referenceKey: SKU-78903
              images: []
              customData: {}
  headers:
    X-RateLimit-Limit:
      description: The maximum number of allowed requests in a given window of time.
      required: true
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: The number of remaining requests in the current window of time.
      required: true
      schema:
        type: integer
    X-RateLimit-Reset:
      description: The UTC epoch time at which the rate limit resets.
      required: true
      schema:
        type: integer
    X-RateLimit-Scope:
      description: The scope to which the rate limit applies to.
      required: true
      schema:
        type: string
  requestBodies:
    redirects.match:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MatchRedirect'
