{
  "info": {
    "title": "Heartwork Commerce API",
    "version": "v5"
  },
  "openapi": "3.1.0",
  "components": {
    "schemas": {
      "AccountCommerceSettings": {
        "required": [
          "locations"
        ],
        "type": "object",
        "properties": {
          "priceSettings": {
            "$ref": "#/components/schemas/PriceSettings"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationEntityReference"
            }
          }
        },
        "additionalProperties": false
      },
      "ActiveProductFilter": {
        "required": [
          "attributeId",
          "selectedOptionValues"
        ],
        "type": "object",
        "properties": {
          "attributeId": {
            "type": "string"
          },
          "selectedOptionValues": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "Address": {
        "type": "object",
        "properties": {
          "addressType": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CartLine": {
        "required": [
          "attributes",
          "productId",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "productId": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        },
        "additionalProperties": false
      },
      "CheckoutDeliveryStepSettings": {
        "required": [
          "messages",
          "showDeliveryLabel",
          "standardDeliveryAddressEnabled"
        ],
        "type": "object",
        "properties": {
          "deliveryInstructions": {
            "$ref": "#/components/schemas/CommerceCheckoutField"
          },
          "standardDeliveryAddressEnabled": {
            "type": "boolean"
          },
          "showDeliveryLabel": {
            "type": "boolean"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommerceMessage"
            }
          }
        },
        "additionalProperties": false
      },
      "CheckoutPickupStepSettings": {
        "required": [
          "messages"
        ],
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommerceMessage"
            }
          }
        },
        "additionalProperties": false
      },
      "CheckoutSettings": {
        "required": [
          "saveCustomAddress",
          "showDeliveryCost",
          "showPrices",
          "steps"
        ],
        "type": "object",
        "properties": {
          "showDeliveryCost": {
            "type": "boolean"
          },
          "showPrices": {
            "type": "boolean"
          },
          "saveCustomAddress": {
            "type": "boolean"
          },
          "steps": {
            "$ref": "#/components/schemas/CheckoutStepsSettings"
          }
        },
        "additionalProperties": false
      },
      "CheckoutStepsSettings": {
        "required": [
          "data",
          "delivery",
          "overview",
          "payment",
          "pickup"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CommerceCheckoutDataStepSettings"
          },
          "delivery": {
            "$ref": "#/components/schemas/CheckoutDeliveryStepSettings"
          },
          "payment": {
            "$ref": "#/components/schemas/CommerceCheckoutPaymentStepSettings"
          },
          "overview": {
            "$ref": "#/components/schemas/CommerceCheckoutOverviewSettings"
          },
          "pickup": {
            "$ref": "#/components/schemas/CheckoutPickupStepSettings"
          }
        },
        "additionalProperties": false
      },
      "ClientCatalogProfile": {
        "required": [
          "recentlyViewed",
          "recentSearches"
        ],
        "type": "object",
        "properties": {
          "recentSearches": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "recentlyViewed": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "ClientLoginEntityReference": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ClientOrderingProfile": {
        "required": [
          "shoppingCart"
        ],
        "type": "object",
        "properties": {
          "shoppingCart": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CartLine"
            }
          }
        },
        "additionalProperties": false
      },
      "ClientProfile": {
        "required": [
          "catalog",
          "ordering"
        ],
        "type": "object",
        "properties": {
          "cloudMessagingToken": {
            "type": "string",
            "nullable": true
          },
          "catalog": {
            "$ref": "#/components/schemas/ClientCatalogProfile"
          },
          "ordering": {
            "$ref": "#/components/schemas/ClientOrderingProfile"
          },
          "preferredLanguage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CommerceAccountPageSettings": {
        "required": [
          "showExternalReference"
        ],
        "type": "object",
        "properties": {
          "showExternalReference": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommerceAppHomeHeaderType": {
        "enum": [
          "CompanyName",
          "CompanyLogo",
          "CompanyLogoInverted",
          "CompanyIcon",
          "CompanyIconInverted"
        ],
        "type": "string"
      },
      "CommerceAppHomeSettings": {
        "required": [
          "headerType",
          "showUspBar"
        ],
        "type": "object",
        "properties": {
          "headerType": {
            "$ref": "#/components/schemas/CommerceAppHomeHeaderType"
          },
          "showUspBar": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommerceAppPlatform": {
        "enum": [
          "Ipad",
          "Iphone",
          "Ios",
          "Android",
          "Phablet",
          "Tablet",
          "Cordova",
          "Capacitor",
          "Electron",
          "Pwa",
          "Mobile",
          "Mobileweb",
          "Desktop",
          "Hybrid"
        ],
        "type": "string"
      },
      "CommerceAppSettings": {
        "required": [
          "allowInBrowserOnPlatforms",
          "appDescription",
          "appName",
          "appShortName",
          "fontStylesheets",
          "home",
          "themeColor",
          "themeCssVariables",
          "translations"
        ],
        "type": "object",
        "properties": {
          "appName": {
            "type": "string"
          },
          "appShortName": {
            "type": "string"
          },
          "appDescription": {
            "type": "string"
          },
          "themeColor": {
            "type": "string"
          },
          "themeCssVariables": {
            "type": "string"
          },
          "translations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranslationOverrides"
            }
          },
          "fontStylesheets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FontStylesheet"
            }
          },
          "home": {
            "$ref": "#/components/schemas/CommerceAppHomeSettings"
          },
          "allowInBrowserOnPlatforms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommerceAppPlatform"
            }
          }
        },
        "additionalProperties": false
      },
      "CommerceCartSettings": {
        "required": [
          "showDeliveryCost",
          "showPrices",
          "showUspBar"
        ],
        "type": "object",
        "properties": {
          "showDeliveryCost": {
            "type": "boolean"
          },
          "showPrices": {
            "type": "boolean"
          },
          "showUspBar": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommerceCategorySettings": {
        "required": [
          "defaultImage",
          "sorting",
          "thumbnailFit"
        ],
        "type": "object",
        "properties": {
          "defaultImage": {
            "type": "string"
          },
          "thumbnailFit": {
            "$ref": "#/components/schemas/ImageFit"
          },
          "sorting": {
            "$ref": "#/components/schemas/SortSettings"
          }
        },
        "additionalProperties": false
      },
      "CommerceCheckoutDataStepSettings": {
        "type": "object",
        "properties": {
          "destinationReference": {
            "$ref": "#/components/schemas/CommerceCheckoutField"
          },
          "customerReference": {
            "$ref": "#/components/schemas/CommerceCheckoutField"
          },
          "projectReference": {
            "$ref": "#/components/schemas/CommerceCheckoutField"
          },
          "comments": {
            "$ref": "#/components/schemas/CommerceCheckoutField"
          }
        },
        "additionalProperties": false
      },
      "CommerceCheckoutDeliveryStepSettings": {
        "required": [
          "showDeliveryLabel",
          "standardDeliveryAddressEnabled"
        ],
        "type": "object",
        "properties": {
          "deliveryInstructions": {
            "$ref": "#/components/schemas/CommerceCheckoutField"
          },
          "standardDeliveryAddressEnabled": {
            "type": "boolean"
          },
          "showDeliveryLabel": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommerceCheckoutField": {
        "required": [
          "displayName",
          "mandatory",
          "maxLength"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "mandatory": {
            "type": "boolean"
          },
          "maxLength": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CommerceCheckoutOverviewSettings": {
        "type": "object",
        "properties": {
          "termsAndConditionsUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CommerceCheckoutPaymentStepSettings": {
        "required": [
          "showInvoiceLabel"
        ],
        "type": "object",
        "properties": {
          "showInvoiceLabel": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommerceCheckoutStepsSettings": {
        "required": [
          "data",
          "delivery",
          "overview",
          "payment"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CommerceCheckoutDataStepSettings"
          },
          "delivery": {
            "$ref": "#/components/schemas/CommerceCheckoutDeliveryStepSettings"
          },
          "payment": {
            "$ref": "#/components/schemas/CommerceCheckoutPaymentStepSettings"
          },
          "overview": {
            "$ref": "#/components/schemas/CommerceCheckoutOverviewSettings"
          }
        },
        "additionalProperties": false
      },
      "CommerceCompanySettings": {
        "required": [
          "fullLogo",
          "iconOnlyLogo",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "fullLogo": {
            "$ref": "#/components/schemas/CommerceLogo"
          },
          "iconOnlyLogo": {
            "$ref": "#/components/schemas/CommerceLogo"
          }
        },
        "additionalProperties": false
      },
      "CommerceLogo": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "invertedUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CommerceMessage": {
        "required": [
          "severity"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "severity": {
            "$ref": "#/components/schemas/MessageSeverity"
          }
        },
        "additionalProperties": false
      },
      "CommerceOrderHistorySettings": {
        "required": [
          "allowRequestBackorderDeletion",
          "showDeliveryCost",
          "showOrderedAtChannel",
          "showOrderStatus",
          "showPrices",
          "showTotalsPerSalesOrderLine"
        ],
        "type": "object",
        "properties": {
          "showPrices": {
            "type": "boolean"
          },
          "showOrderedAtChannel": {
            "type": "boolean"
          },
          "showOrderStatus": {
            "type": "boolean"
          },
          "allowRequestBackorderDeletion": {
            "type": "boolean"
          },
          "showTotalsPerSalesOrderLine": {
            "type": "boolean"
          },
          "showDeliveryCost": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommercePrice": {
        "required": [
          "enabled",
          "vatType"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "vatType": {
            "$ref": "#/components/schemas/PriceVatType"
          }
        },
        "additionalProperties": false
      },
      "CommercePriceSettings": {
        "required": [
          "customerPrice",
          "salesPrice",
          "suggestedRetailPrice"
        ],
        "type": "object",
        "properties": {
          "salesPrice": {
            "$ref": "#/components/schemas/CommercePrice"
          },
          "suggestedRetailPrice": {
            "$ref": "#/components/schemas/CommercePrice"
          },
          "customerPrice": {
            "$ref": "#/components/schemas/CommercePrice"
          }
        },
        "additionalProperties": false
      },
      "CommerceProductPageSettings": {
        "required": [
          "showConfiguredProductName",
          "showGtin",
          "showSku"
        ],
        "type": "object",
        "properties": {
          "showGtin": {
            "type": "boolean"
          },
          "showSku": {
            "type": "boolean"
          },
          "showConfiguredProductName": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommerceProductSettings": {
        "required": [
          "defaultImage",
          "showPrices",
          "sorting",
          "thumbnailFit"
        ],
        "type": "object",
        "properties": {
          "showPrices": {
            "type": "boolean"
          },
          "defaultImage": {
            "type": "string"
          },
          "thumbnailFit": {
            "$ref": "#/components/schemas/ImageFit"
          },
          "sorting": {
            "$ref": "#/components/schemas/SortSettings"
          }
        },
        "additionalProperties": false
      },
      "CommerceWebSettings": {
        "required": [
          "fontStylesheets",
          "horizontalNavigationLimit",
          "limitHorizontalNavigationItems",
          "showHorizontalNavigation",
          "showUspBar",
          "themeCssVariables",
          "translations"
        ],
        "type": "object",
        "properties": {
          "themeCssVariables": {
            "type": "string"
          },
          "translations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranslationOverrides"
            }
          },
          "fontStylesheets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FontStylesheet"
            }
          },
          "showUspBar": {
            "type": "boolean"
          },
          "showHorizontalNavigation": {
            "type": "boolean"
          },
          "limitHorizontalNavigationItems": {
            "type": "boolean"
          },
          "horizontalNavigationLimit": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ContactCommerceSettings": {
        "type": "object",
        "properties": {
          "priceSettings": {
            "$ref": "#/components/schemas/PriceSettings"
          }
        },
        "additionalProperties": false
      },
      "ContactEntityReference": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ContentPageSorting": {
        "enum": [
          "DisplayName"
        ],
        "type": "string"
      },
      "CreateCommerceSalesOrderLineRequest": {
        "required": [
          "productId",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "productId": {
            "type": "string"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateCommerceSalesOrderRequest": {
        "required": [
          "channel",
          "deliveryMethod",
          "references"
        ],
        "type": "object",
        "properties": {
          "channel": {
            "type": "string"
          },
          "references": {
            "$ref": "#/components/schemas/SalesOrderReferences"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "delivery": {
            "$ref": "#/components/schemas/SalesOrderDelivery"
          },
          "pickup": {
            "$ref": "#/components/schemas/UpdateSalesOrderPickupRequest"
          }
        },
        "additionalProperties": false
      },
      "CreateCommerceSalesOrderResponse": {
        "required": [
          "id",
          "orderNumber"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "orderNumber": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomField": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DayOfWeek": {
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ],
        "type": "string"
      },
      "DeliveryMethod": {
        "enum": [
          "Delivery",
          "Pickup"
        ],
        "type": "string"
      },
      "DynamicObject": {
        "type": "object",
        "additionalProperties": false
      },
      "FavouriteOrigin": {
        "enum": [
          "Personal",
          "Suggested"
        ],
        "type": "string"
      },
      "FontStylesheet": {
        "required": [
          "integrity",
          "name",
          "url"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "integrity": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceBrandResponse": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetCommerceMessage": {
        "required": [
          "severity"
        ],
        "type": "object",
        "properties": {
          "shortMessage": {
            "type": "string",
            "nullable": true
          },
          "longMessage": {
            "type": "string",
            "nullable": true
          },
          "severity": {
            "$ref": "#/components/schemas/MessageSeverity"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductCategoriesHierarchyResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceProductCategoryHierarchyResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductCategoriesResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceProductCategoryResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductCategoryDisplayContentResponse": {
        "required": [
          "seoMeta"
        ],
        "type": "object",
        "properties": {
          "excerpt": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "seoMeta": {
            "$ref": "#/components/schemas/SeoMeta"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductCategoryHierarchyResponse": {
        "required": [
          "children",
          "displayOrder",
          "id",
          "name",
          "slug"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "nullable": true
          },
          "slug": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "image": {
            "type": "string",
            "nullable": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceProductCategoryHierarchyResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductCategoryResponse": {
        "required": [
          "active",
          "displayOrder",
          "id",
          "name",
          "slug"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "image": {
            "type": "string",
            "nullable": true
          },
          "slug": {
            "type": "string"
          },
          "parent": {
            "$ref": "#/components/schemas/ProductCategoryEntityReference"
          },
          "active": {
            "type": "boolean"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "$ref": "#/components/schemas/GetCommerceProductCategoryDisplayContentResponse"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductDisplayContentResponse": {
        "required": [
          "language",
          "seoMeta"
        ],
        "type": "object",
        "properties": {
          "seoMeta": {
            "$ref": "#/components/schemas/SeoMeta"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductPriceResponse": {
        "required": [
          "messages",
          "productId",
          "shouldRequestPrice"
        ],
        "type": "object",
        "properties": {
          "productId": {
            "type": "string"
          },
          "salesPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "suggestedRetailPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customerPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatCode": {
            "$ref": "#/components/schemas/VatCode"
          },
          "shouldRequestPrice": {
            "type": "boolean"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceMessage"
            },
            "description": "A list of messages to display to the user as additional information. Can only be set in Rules."
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductResponse": {
        "required": [
          "attributes",
          "categories",
          "customFields",
          "displayOrder",
          "hyperlinks",
          "id",
          "images",
          "links",
          "name",
          "packing",
          "productType",
          "showStock",
          "slug"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "productType": {
            "$ref": "#/components/schemas/ProductType"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetProductAttributeLinkResponse"
            }
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetProductLinkResponse"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategoryEntityReference"
            }
          },
          "packing": {
            "$ref": "#/components/schemas/ProductPacking"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "hyperlinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Hyperlink"
            }
          },
          "showStock": {
            "type": "boolean"
          },
          "salesSettings": {
            "$ref": "#/components/schemas/ProductSalesSettings"
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "gtin": {
            "type": "string",
            "nullable": true
          },
          "brand": {
            "$ref": "#/components/schemas/GetCommerceBrandResponse"
          },
          "content": {
            "$ref": "#/components/schemas/GetCommerceProductDisplayContentResponse"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductsRequest": {
        "required": [
          "skip",
          "take"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "For filtering data, filters on the exact value in the categories array",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/ProductType"
          },
          "productFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActiveProductFilter"
            },
            "nullable": true
          },
          "query": {
            "type": "string",
            "description": "For searching, the query used when searching",
            "nullable": true
          },
          "take": {
            "type": "integer",
            "description": "For paged querying, the amount of records to take (defaults to 100)",
            "format": "int32"
          },
          "skip": {
            "type": "integer",
            "description": "For paged querying, the amount of records to skip (defaults to 0)",
            "format": "int32"
          },
          "sortOrder": {
            "$ref": "#/components/schemas/SortDirection"
          },
          "sortBy": {
            "type": "string",
            "description": "For sorting data, the name of the property used to sort by",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetCommerceProductsResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceProductResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceSalesOrderLineResponse": {
        "required": [
          "attributes",
          "id",
          "product",
          "quantity",
          "status",
          "totals"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "product": {
            "$ref": "#/components/schemas/ProductEntityReference"
          },
          "status": {
            "type": "string"
          },
          "totals": {
            "$ref": "#/components/schemas/GetCommerceTotalPriceResponse"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceSalesOrderPickup": {
        "required": [
          "location",
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/SalesOrderPickupStatus"
          },
          "comments": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "$ref": "#/components/schemas/LocationEntityReference"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceSalesOrderResponse": {
        "required": [
          "channel",
          "deliveryMethod",
          "id",
          "orderedAt",
          "orderingStatus",
          "orderLineStatuses",
          "orderNumber",
          "processing",
          "references",
          "totals"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "orderNumber": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "orderedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "processing": {
            "$ref": "#/components/schemas/SalesOrderProcessing"
          },
          "orderingStatus": {
            "$ref": "#/components/schemas/SalesOrderOrderingStatus"
          },
          "references": {
            "$ref": "#/components/schemas/SalesOrderReferences"
          },
          "totals": {
            "$ref": "#/components/schemas/GetCommerceTotalPriceResponse"
          },
          "orderedBy": {
            "$ref": "#/components/schemas/ContactEntityReference"
          },
          "orderLineStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StringInt32KeyValuePair"
            }
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "delivery": {
            "$ref": "#/components/schemas/SalesOrderDelivery"
          },
          "pickup": {
            "$ref": "#/components/schemas/GetCommerceSalesOrderPickup"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceSalesOrderWithLinesResponse": {
        "required": [
          "channel",
          "deliveryMethod",
          "id",
          "orderedAt",
          "orderingStatus",
          "orderLines",
          "orderLineStatuses",
          "orderNumber",
          "processing",
          "references",
          "totals"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "orderNumber": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "orderedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "processing": {
            "$ref": "#/components/schemas/SalesOrderProcessing"
          },
          "orderingStatus": {
            "$ref": "#/components/schemas/SalesOrderOrderingStatus"
          },
          "references": {
            "$ref": "#/components/schemas/SalesOrderReferences"
          },
          "totals": {
            "$ref": "#/components/schemas/GetCommerceTotalPriceResponse"
          },
          "orderedBy": {
            "$ref": "#/components/schemas/ContactEntityReference"
          },
          "orderLineStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StringInt32KeyValuePair"
            }
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "delivery": {
            "$ref": "#/components/schemas/SalesOrderDelivery"
          },
          "pickup": {
            "$ref": "#/components/schemas/GetCommerceSalesOrderPickup"
          },
          "orderLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceSalesOrderLineResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "GetCommerceSalesOrdersResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceSalesOrderResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceSettingsResponse": {
        "required": [
          "accountPage",
          "cart",
          "categorySettings",
          "checkout",
          "company",
          "csp",
          "enableMultilingualism",
          "orderHistory",
          "organizationId",
          "priceSettings",
          "productPage",
          "productSettings",
          "publicShowPrices",
          "showVatToggle",
          "socialLinks",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "workspace": {
            "type": "string"
          },
          "company": {
            "$ref": "#/components/schemas/CommerceCompanySettings"
          },
          "organizationId": {
            "type": "string"
          },
          "productSettings": {
            "$ref": "#/components/schemas/CommerceProductSettings"
          },
          "categorySettings": {
            "$ref": "#/components/schemas/CommerceCategorySettings"
          },
          "webSettings": {
            "$ref": "#/components/schemas/CommerceWebSettings"
          },
          "app": {
            "$ref": "#/components/schemas/CommerceAppSettings"
          },
          "enableMultilingualism": {
            "type": "boolean"
          },
          "csp": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "socialLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SocialLink"
            }
          },
          "checkout": {
            "$ref": "#/components/schemas/CheckoutSettings"
          },
          "cart": {
            "$ref": "#/components/schemas/CommerceCartSettings"
          },
          "orderHistory": {
            "$ref": "#/components/schemas/CommerceOrderHistorySettings"
          },
          "productPage": {
            "$ref": "#/components/schemas/CommerceProductPageSettings"
          },
          "accountPage": {
            "$ref": "#/components/schemas/CommerceAccountPageSettings"
          },
          "showVatToggle": {
            "type": "boolean"
          },
          "stockSettings": {
            "$ref": "#/components/schemas/StockSettings"
          },
          "publicShowPrices": {
            "type": "boolean"
          },
          "priceSettings": {
            "$ref": "#/components/schemas/CommercePriceSettings"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceStockLocationResponse": {
        "required": [
          "location",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/GetStockLocationResponse"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceStockResponse": {
        "required": [
          "messages",
          "product"
        ],
        "type": "object",
        "properties": {
          "product": {
            "$ref": "#/components/schemas/ProductEntityReference"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceStockLocationResponse"
            },
            "nullable": true
          },
          "total": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isInStock": {
            "type": "boolean",
            "nullable": true
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceMessage"
            },
            "description": "A list of messages to override the default `In Stock` message(s). Can only be set in Rules."
          }
        },
        "additionalProperties": false
      },
      "GetCommerceStocksResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCommerceStockResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetCommerceTotalPriceResponse": {
        "type": "object",
        "properties": {
          "totalSalesPrice": {
            "$ref": "#/components/schemas/PriceTotal"
          },
          "totalSuggestedRetailPrice": {
            "$ref": "#/components/schemas/PriceTotal"
          },
          "totalCustomerPrice": {
            "$ref": "#/components/schemas/PriceTotal"
          }
        },
        "additionalProperties": false
      },
      "GetContentPageResponse": {
        "required": [
          "createdAt",
          "displayName",
          "displayOrder",
          "id",
          "modifiedAt",
          "showInFooter",
          "showInMenu",
          "url",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "workspace": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "groupName": {
            "type": "string",
            "nullable": true
          },
          "showInMenu": {
            "type": "boolean"
          },
          "showInFooter": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetContentPageWithBodyResponse": {
        "required": [
          "createdAt",
          "displayName",
          "displayOrder",
          "id",
          "modifiedAt",
          "showInFooter",
          "showInMenu",
          "url",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "workspace": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "groupName": {
            "type": "string",
            "nullable": true
          },
          "showInMenu": {
            "type": "boolean"
          },
          "showInFooter": {
            "type": "boolean"
          },
          "body": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetContentPagesResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetContentPageResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetCurrenciesResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCurrencyResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetCurrencyResponse": {
        "required": [
          "code",
          "conversionRate",
          "createdAt",
          "id",
          "isDefault",
          "modifiedAt",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "workspace": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "conversionRate": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "GetCurrentAccountResponse": {
        "required": [
          "displayName",
          "otherAddresses"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "otherAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            }
          },
          "commerceSettings": {
            "$ref": "#/components/schemas/AccountCommerceSettings"
          }
        },
        "additionalProperties": false
      },
      "GetCurrentClientLoginResponse": {
        "required": [
          "email",
          "profile",
          "username"
        ],
        "type": "object",
        "properties": {
          "profile": {
            "$ref": "#/components/schemas/ClientProfile"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GetCurrentContactResponse": {
        "required": [
          "displayName"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "commerceSettings": {
            "$ref": "#/components/schemas/ContactCommerceSettings"
          }
        },
        "additionalProperties": false
      },
      "GetFavouriteProductResponse": {
        "required": [
          "clientLogin",
          "createdAt",
          "id",
          "modifiedAt",
          "origin",
          "product",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "workspace": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "origin": {
            "$ref": "#/components/schemas/FavouriteOrigin"
          },
          "product": {
            "$ref": "#/components/schemas/ProductEntityReference"
          },
          "clientLogin": {
            "$ref": "#/components/schemas/ClientLoginEntityReference"
          }
        },
        "additionalProperties": false
      },
      "GetFavouriteProductsResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetFavouriteProductResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetLocationResponse": {
        "required": [
          "address",
          "createdAt",
          "customFields",
          "displayOrder",
          "id",
          "isPickupLocation",
          "isStockLocation",
          "isWarehouse",
          "modifiedAt",
          "name",
          "openingTimes",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "workspace": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "image": {
            "type": "string",
            "nullable": true
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "isWarehouse": {
            "type": "boolean"
          },
          "isPickupLocation": {
            "type": "boolean"
          },
          "isStockLocation": {
            "type": "boolean"
          },
          "openingTimes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OpeningTime"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        },
        "additionalProperties": false
      },
      "GetLocationsResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetLocationResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetProductAttributeLinkResponse": {
        "required": [
          "attribute",
          "configurable"
        ],
        "type": "object",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/ProductAttributeEntityReference"
          },
          "selectedOption": {
            "$ref": "#/components/schemas/ProductAttributeOption"
          },
          "configurable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetProductFilterOptionResponse": {
        "required": [
          "count",
          "displayOrder",
          "isActive",
          "label",
          "value"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetProductFilterResponse": {
        "required": [
          "attributeId",
          "attributeName",
          "categoryId",
          "displayOrder",
          "isActive",
          "options"
        ],
        "type": "object",
        "properties": {
          "attributeId": {
            "type": "string"
          },
          "attributeName": {
            "type": "string"
          },
          "categoryId": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "isActive": {
            "type": "boolean"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetProductFilterOptionResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "GetProductFiltersRequest": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "nullable": true
          },
          "catalogId": {
            "type": "string",
            "nullable": true
          },
          "categoryId": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "activeFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActiveProductFilter"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetProductFiltersResponse": {
        "required": [
          "filters"
        ],
        "type": "object",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetProductFilterResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "GetProductLinkResponse": {
        "required": [
          "displayOrder",
          "linkType",
          "product"
        ],
        "type": "object",
        "properties": {
          "linkType": {
            "$ref": "#/components/schemas/ProductLinkType"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "product": {
            "$ref": "#/components/schemas/ProductEntityReference"
          }
        },
        "additionalProperties": false
      },
      "GetSalesOrderFiltersResponse": {
        "required": [
          "orderedBys"
        ],
        "type": "object",
        "properties": {
          "orderedBys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactEntityReference"
            }
          }
        },
        "additionalProperties": false
      },
      "GetStockLocationResponse": {
        "required": [
          "externalReference",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetSupportedLanguageResponse": {
        "required": [
          "code",
          "isDefault"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetSupportedLanguagesResponse": {
        "required": [
          "data",
          "total"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetSupportedLanguageResponse"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Hyperlink": {
        "required": [
          "description",
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/HyperlinkType"
          }
        },
        "additionalProperties": false
      },
      "HyperlinkType": {
        "enum": [
          "Website",
          "Video",
          "Document"
        ],
        "type": "string"
      },
      "ImageFit": {
        "enum": [
          "Contain",
          "Cover",
          "ScaleDown"
        ],
        "type": "string"
      },
      "LocationEntityReference": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LocationSorting": {
        "enum": [
          "Name",
          "DisplayOrder"
        ],
        "type": "string"
      },
      "LoginRequest": {
        "required": [
          "password",
          "username"
        ],
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MessageSeverity": {
        "enum": [
          "Success",
          "Info",
          "Danger"
        ],
        "type": "string"
      },
      "OpeningTime": {
        "required": [
          "closesAt",
          "dayOfWeek",
          "opensAt"
        ],
        "type": "object",
        "properties": {
          "dayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "opensAt": {
            "type": "string",
            "format": "date-span"
          },
          "closesAt": {
            "type": "string",
            "format": "date-span"
          }
        },
        "additionalProperties": false
      },
      "PriceSettings": {
        "required": [
          "showCustomerPrice",
          "showSalesPrice",
          "showSuggestedRetailPrice"
        ],
        "type": "object",
        "properties": {
          "showSalesPrice": {
            "type": "boolean"
          },
          "showCustomerPrice": {
            "type": "boolean"
          },
          "showSuggestedRetailPrice": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PriceTotal": {
        "required": [
          "amount",
          "vatAmount",
          "vatTotals"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "format": "double"
          },
          "vatTotals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VatTotal"
            }
          }
        },
        "additionalProperties": false
      },
      "PriceVatType": {
        "enum": [
          "Default",
          "Excluding",
          "Including"
        ],
        "type": "string"
      },
      "ProductAttributeEntityReference": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ProductAttributeOption": {
        "required": [
          "label",
          "value"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryEntityReference": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ProductCategorySorting": {
        "enum": [
          "Name",
          "DisplayOrder"
        ],
        "type": "string"
      },
      "ProductEntityReference": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ProductIdentifierAndQuantity": {
        "required": [
          "identifier",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ProductImage": {
        "required": [
          "displayOrder",
          "filename"
        ],
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductLinkType": {
        "enum": [
          "Unspecified",
          "ConfiguredProduct",
          "ConfigurableProduct",
          "GroupedProduct",
          "BundledProduct",
          "RelatedProduct",
          "UpSellProduct",
          "CrossSellProduct"
        ],
        "type": "string"
      },
      "ProductPacking": {
        "type": "object",
        "properties": {
          "packingUnit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "packingContainer": {
            "type": "string",
            "nullable": true
          },
          "packingQuantity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductSalesSettings": {
        "required": [
          "minimumQuantity",
          "quantityStep"
        ],
        "type": "object",
        "properties": {
          "minimumQuantity": {
            "type": "number",
            "format": "double"
          },
          "quantityStep": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ProductType": {
        "enum": [
          "SimpleProduct",
          "ConfigurableProduct",
          "GroupedProduct",
          "BundledProduct"
        ],
        "type": "string"
      },
      "SalesOrderChannel": {
        "enum": [
          "Unknown",
          "App",
          "Web",
          "Store"
        ],
        "type": "string"
      },
      "SalesOrderDelivery": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/SalesOrderDeliveryStatus"
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "attendeeName": {
            "type": "string",
            "nullable": true
          },
          "comments": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SalesOrderDeliveryStatus": {
        "enum": [
          "Open",
          "Delivering",
          "Completed",
          "Canceled"
        ],
        "type": "string"
      },
      "SalesOrderLineStatus": {
        "enum": [
          "Open",
          "Completed",
          "Backorder",
          "Cancelled"
        ],
        "type": "string"
      },
      "SalesOrderOrderingStatus": {
        "enum": [
          "Draft",
          "Completed",
          "Canceled"
        ],
        "type": "string"
      },
      "SalesOrderPickupStatus": {
        "enum": [
          "Open",
          "Ready",
          "Completed",
          "Canceled"
        ],
        "type": "string"
      },
      "SalesOrderProcessing": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/SalesOrderProcessingStatus"
          }
        },
        "additionalProperties": false
      },
      "SalesOrderProcessingStatus": {
        "enum": [
          "Open",
          "InProgress",
          "Completed",
          "Canceled"
        ],
        "type": "string"
      },
      "SalesOrderReferences": {
        "type": "object",
        "properties": {
          "customer": {
            "type": "string",
            "nullable": true
          },
          "destination": {
            "type": "string",
            "nullable": true
          },
          "project": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SalesOrderSorting": {
        "enum": [
          "OrderNumber",
          "OrderedAt"
        ],
        "type": "string"
      },
      "SeoMeta": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "keywords": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SocialLink": {
        "required": [
          "icon",
          "label",
          "url"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SortDirection": {
        "enum": [
          "Asc",
          "Desc"
        ],
        "type": "string"
      },
      "SortSettings": {
        "required": [
          "sortBy",
          "sortDirection"
        ],
        "type": "object",
        "properties": {
          "sortBy": {
            "type": "string"
          },
          "sortDirection": {
            "$ref": "#/components/schemas/SortDirection"
          }
        },
        "additionalProperties": false
      },
      "StockDisplayType": {
        "enum": [
          "None",
          "Boolean",
          "Quantity",
          "QuantityByLocation",
          "QuantityByLocationInline"
        ],
        "type": "string"
      },
      "StockSettings": {
        "required": [
          "allowAnonymousStockAccess",
          "allowOutOfStockOrdering",
          "displayType"
        ],
        "type": "object",
        "properties": {
          "allowAnonymousStockAccess": {
            "type": "boolean"
          },
          "allowOutOfStockOrdering": {
            "type": "boolean"
          },
          "displayType": {
            "$ref": "#/components/schemas/StockDisplayType"
          }
        },
        "additionalProperties": false
      },
      "StringInt32KeyValuePair": {
        "required": [
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TranslationOverrides": {
        "required": [
          "language",
          "translations"
        ],
        "type": "object",
        "properties": {
          "language": {
            "type": "string"
          },
          "translations": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "UpdateCurrentClientLoginRequest": {
        "required": [
          "catalog",
          "ordering"
        ],
        "type": "object",
        "properties": {
          "catalog": {
            "$ref": "#/components/schemas/ClientCatalogProfile"
          },
          "ordering": {
            "$ref": "#/components/schemas/ClientOrderingProfile"
          },
          "preferredLanguage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateSalesOrderPickupRequest": {
        "required": [
          "locationId",
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/SalesOrderPickupStatus"
          },
          "comments": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VatCode": {
        "required": [
          "code",
          "createdAt",
          "id",
          "modifiedAt",
          "name",
          "percentage",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "workspace": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "percentage": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "VatCodeEntityReference": {
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VatTotal": {
        "required": [
          "amount",
          "vatCode"
        ],
        "type": "object",
        "properties": {
          "vatCode": {
            "$ref": "#/components/schemas/VatCodeEntityReference"
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Provide a Heartwork Commerce API key, as bearer token. Example: \"Authorization: Bearer {token}\". Important, do note the 'bearer' prefix before the token",
        "name": "Authorization",
        "in": "header"
      },
      "Workspace": {
        "type": "apiKey",
        "description": "Workspace ID (slug)",
        "name": "Workspace",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": []
    },
    {
      "Workspace": []
    }
  ],
  "paths": {
    "/commerce-api/accounts/current": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Fetches a single account, for the current logged in user.",
        "operationId": "Accounts_GetCurrent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentAccountResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentAccountResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentAccountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        },
        "description": ""
      }
    },
    "/commerce-api/accounts/current/addresses": {
      "post": {
        "tags": [
          "Accounts"
        ],
        "summary": "Adds an address to an account.",
        "description": "On success, returns the updated entity in the response.",
        "operationId": "Accounts_AddAddress",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/auth": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Authenticate against the API in order to receive an access token.",
        "description": "On successful authentication, returns a bearer token which can be used for all subsequent API calls.\nThe token should be provided as HEADER in the following format:\nauthentication: \"bearer [full-token-string]\"",
        "operationId": "Auth_Login",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicObject"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicObject"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicObject"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "label": "commerce-api-auth",
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/contacts/current": {
      "get": {
        "tags": [
          "Contacts"
        ],
        "summary": "Fetches a single contact, for the currently logged in user.",
        "operationId": "Contacts_GetCurrent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentContactResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentContactResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentContactResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/cms/contentpages": {
      "get": {
        "tags": [
          "ContentPages"
        ],
        "operationId": "ContentPages_List",
        "parameters": [
          {
            "name": "Take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SortOrder",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          },
          {
            "name": "SortBy",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ContentPageSorting"
            }
          },
          {
            "name": "ids",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "external_references",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "languages",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetContentPagesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetContentPagesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetContentPagesResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/cms/contentpages/{id}": {
      "get": {
        "tags": [
          "ContentPages"
        ],
        "operationId": "ContentPages_Get",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetContentPageWithBodyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetContentPageWithBodyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetContentPageWithBodyResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/internationalization/currencies": {
      "get": {
        "tags": [
          "Currencies"
        ],
        "operationId": "Currencies_List",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrenciesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrenciesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrenciesResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/favouriteproducts": {
      "get": {
        "tags": [
          "FavouriteProducts"
        ],
        "summary": "Fetches a collection of all product favourites, for the provided workspace",
        "operationId": "FavouriteProducts_List",
        "parameters": [
          {
            "name": "take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavouriteProductsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavouriteProductsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavouriteProductsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      },
      "post": {
        "tags": [
          "FavouriteProducts"
        ],
        "summary": "Creates a new product favourite",
        "operationId": "FavouriteProducts_Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            },
            "text/json": {
              "schema": {
                "type": "string"
              }
            },
            "application/*+json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavouriteProductResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavouriteProductResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavouriteProductResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/favouriteproducts/{id}": {
      "delete": {
        "tags": [
          "FavouriteProducts"
        ],
        "summary": "Deletes an existing product favourite",
        "operationId": "FavouriteProducts_Delete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/identities/current": {
      "get": {
        "tags": [
          "Identities"
        ],
        "summary": "Fetches the current client login.",
        "operationId": "Identities_GetCurrent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentClientLoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentClientLoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrentClientLoginResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      },
      "put": {
        "tags": [
          "Identities"
        ],
        "summary": "Update the current users client login",
        "operationId": "Identities_Update",
        "requestBody": {
          "description": "The client login body",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCurrentClientLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCurrentClientLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCurrentClientLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/info": {
      "get": {
        "tags": [
          "Info"
        ],
        "summary": "Returns the current API version.",
        "description": "This operation requires no authentication.",
        "operationId": "Info_Version",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/info/time": {
      "get": {
        "tags": [
          "Info"
        ],
        "summary": "Returns the current API version incl. the timestamp of the server,\non its current timezone settings.",
        "operationId": "Info_Time",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": []
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/localization/languages/supported": {
      "get": {
        "tags": [
          "Languages"
        ],
        "operationId": "Languages_GetSupportedLanguages",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetSupportedLanguagesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSupportedLanguagesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSupportedLanguagesResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/pickuplocations": {
      "get": {
        "tags": [
          "PickupLocations"
        ],
        "summary": "Fetches a collection of all PickupLocations, for the provided workspace",
        "operationId": "PickupLocations_List",
        "parameters": [
          {
            "name": "take",
            "in": "query",
            "description": "For paged querying, the amount of records to take (defaults to 100)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "For paged querying, the amount of records to skip (defaults to 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort_order",
            "in": "query",
            "description": "For sorting data, the direction to sort in (defaults to Ascending)",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "For sorting data, the name of the property used to sort by",
            "schema": {
              "$ref": "#/components/schemas/LocationSorting"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetLocationsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetLocationsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetLocationsResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/pickuplocations/{id}": {
      "get": {
        "tags": [
          "PickupLocations"
        ],
        "summary": "Fetches a single PickupLocation, by id.",
        "operationId": "PickupLocations_GetById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id of the PickupLocation to fetch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetLocationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetLocationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetLocationResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/productcategories/hierarchy": {
      "get": {
        "tags": [
          "ProductCategories"
        ],
        "summary": "Fetches a hierarchy of all product categories, for the provided workspace",
        "operationId": "ProductCategories_GetHierarchy",
        "parameters": [
          {
            "name": "sort_order",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoriesHierarchyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoriesHierarchyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoriesHierarchyResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/productcategories": {
      "get": {
        "tags": [
          "ProductCategories"
        ],
        "summary": "Fetches a collection of all product categories, for the provided workspace",
        "operationId": "ProductCategories_List",
        "parameters": [
          {
            "name": "take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort_order",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ProductCategorySorting"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parent_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "is_main_category",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoriesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoriesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoriesResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/productcategories/{id}": {
      "get": {
        "tags": [
          "ProductCategories"
        ],
        "summary": "Fetches a single product category, by id.",
        "operationId": "ProductCategories_GetById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id of the product category to fetch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoryResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoryResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoryResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/productcategories/slug/{slug}": {
      "get": {
        "tags": [
          "ProductCategories"
        ],
        "summary": "Fetches a single product category, by slug.",
        "operationId": "ProductCategories_GetBySlug",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "description": "Slug of the product category to fetch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoryResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoryResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductCategoryResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "get products based on the input criteria, this method uses a POST instead of GET because of https://github.com/heartwork/roadmap/issues/690",
        "operationId": "Products_List",
        "requestBody": {
          "description": "Criteria.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCommerceProductsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCommerceProductsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetCommerceProductsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductsResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products/{id}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Fetches a single product, by id.",
        "operationId": "Products_GetById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id of the product to fetch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products/barcode/{barcode}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Fetches a single product, by barcode.",
        "operationId": "Products_GetByBarcode",
        "parameters": [
          {
            "name": "barcode",
            "in": "path",
            "description": "Unique barcode of the product to fetch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products/slug/{slug}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Fetches a single product, by slug.",
        "operationId": "Products_GetBySlug",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "description": "Unique slug of the product to fetch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products/price/total": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "Gets the total price for multiple products",
        "operationId": "Products_GetTotalPrice",
        "requestBody": {
          "description": "The product ids and their quantities",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductIdentifierAndQuantity"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductIdentifierAndQuantity"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductIdentifierAndQuantity"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceTotalPriceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceTotalPriceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceTotalPriceResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products/filters/{categoryId}": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "Get product filters, this method uses a POST instead of GET because of https://github.com/heartwork/roadmap/issues/690",
        "operationId": "Products_GetFilters",
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "description": "The id of the category to get the filters from",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request with active filters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetProductFiltersRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetProductFiltersRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetProductFiltersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductFiltersResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductFiltersResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductFiltersResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products/price/{id}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Gets the price for a product, by id",
        "operationId": "Products_GetPrice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id of the product",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "quantity",
            "in": "query",
            "description": "The quantity of the product to calculate the price for",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductPriceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductPriceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceProductPriceResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/catalog/products/prices": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "Gets the prices for multiple products",
        "operationId": "Products_GetPrices",
        "requestBody": {
          "description": "The product ids and their quantities",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductIdentifierAndQuantity"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductIdentifierAndQuantity"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductIdentifierAndQuantity"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetCommerceProductPriceResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetCommerceProductPriceResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetCommerceProductPriceResponse"
                  }
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/salesorders/{id}": {
      "get": {
        "tags": [
          "SalesOrders"
        ],
        "summary": "Fetches a single sales order, by id.",
        "operationId": "SalesOrders_GetById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id of the sales order to fetch.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrderWithLinesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrderWithLinesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrderWithLinesResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/salesorders/order-number/{orderNumber}": {
      "get": {
        "tags": [
          "SalesOrders"
        ],
        "operationId": "SalesOrders_GetByOrderNumber",
        "parameters": [
          {
            "name": "orderNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrderWithLinesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrderWithLinesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrderWithLinesResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/salesorders": {
      "get": {
        "tags": [
          "SalesOrders"
        ],
        "summary": "Fetches a collection of all sales orders, filtered by the input",
        "operationId": "SalesOrders_List",
        "parameters": [
          {
            "name": "take",
            "in": "query",
            "description": "For paged querying, the amount of records to take (defaults to 100)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "For paged querying, the amount of records to skip (defaults to 0)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort_order",
            "in": "query",
            "description": "For sorting data, the direction to sort in (defaults to Ascending)",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "For sorting data, the name of the property used to sort by",
            "schema": {
              "$ref": "#/components/schemas/SalesOrderSorting"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ordered_by_ids",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrdersResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrdersResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSalesOrdersResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      },
      "post": {
        "tags": [
          "SalesOrders"
        ],
        "summary": "Creates and stores a new sales order.",
        "description": "On success, returns the newly created entity in the response.",
        "operationId": "SalesOrders_Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommerceSalesOrderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommerceSalesOrderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommerceSalesOrderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCommerceSalesOrderResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCommerceSalesOrderResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCommerceSalesOrderResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/salesorders/{id}/ordering-status": {
      "put": {
        "tags": [
          "SalesOrders"
        ],
        "summary": "Updates the status of an existing sales order",
        "description": "On success, returns the updated entity in the response.",
        "operationId": "SalesOrders_UpdateOrderingStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SalesOrderOrderingStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/salesorders/{id}/lines": {
      "post": {
        "tags": [
          "SalesOrders"
        ],
        "summary": "Adds new sales order lines to a sales order.",
        "operationId": "SalesOrders_AddLines",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateCommerceSalesOrderLineRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateCommerceSalesOrderLineRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateCommerceSalesOrderLineRequest"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/salesorders/filters": {
      "get": {
        "tags": [
          "SalesOrders"
        ],
        "operationId": "SalesOrders_GetFilters",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetSalesOrderFiltersResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSalesOrderFiltersResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSalesOrderFiltersResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [
              "RequireUser"
            ]
          }
        ],
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/inventory/stocks": {
      "get": {
        "tags": [
          "Stocks"
        ],
        "operationId": "Stocks_List",
        "parameters": [
          {
            "name": "ProductIds",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceStocksResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceStocksResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceStocksResponse"
                }
              }
            }
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    },
    "/commerce-api/workspaces/settings": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "Workspaces_GetSettings",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSettingsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSettingsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommerceSettingsResponse"
                }
              }
            }
          },
          "204": {
            "description": "No content"
          }
        },
        "x-zuplo-route": {
          "corsPolicy": "anything-goes",
          "handler": {
            "export": "urlForwardHandler",
            "module": "$import(@zuplo/runtime)",
            "options": {
              "baseUrl": "${env.COMMERCE_API_BASE_URL}"
            }
          },
          "policies": {
            "inbound": [
              "strip-base-path"
            ]
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "${env.COMMERCE_API_BASE_URL}",
      "x-base-path": "/commerce-api"
    }
  ]
}