From 548ec626ef2fe71272999135fb2401f458413004 Mon Sep 17 00:00:00 2001 From: shopwareBot Date: Thu, 12 Mar 2026 09:17:10 +0000 Subject: [PATCH] [create-pull-request] automated change --- SwagCommercial-storeapi.json | 5209 +++++++++++++++++----------------- 1 file changed, 2617 insertions(+), 2592 deletions(-) diff --git a/SwagCommercial-storeapi.json b/SwagCommercial-storeapi.json index 8fe710a..e8f46a5 100644 --- a/SwagCommercial-storeapi.json +++ b/SwagCommercial-storeapi.json @@ -2705,7 +2705,12 @@ }, "type": { "description": "Type of categories like `page`, `folder`, `link`.", - "type": "string" + "type": "string", + "enum": [ + "page", + "link", + "folder" + ] }, "productAssignmentType": { "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", @@ -2735,7 +2740,13 @@ "type": "object" }, "linkType": { - "type": "string" + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, "internalLink": { "type": "string", @@ -3061,7 +3072,8 @@ "type": "string", "enum": [ "page", - "link" + "link", + "folder" ] }, "productAssignmentType": { @@ -3092,7 +3104,13 @@ "type": "object" }, "linkType": { - "type": "string" + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, "internalLink": { "type": "string", @@ -3436,7 +3454,7 @@ "format": "int64" }, "type": { - "description": "Types of sections can be `sidebar` or `fullwidth`.", + "description": "Types of sections can be `default` or `sidebar`.", "type": "string", "enum": [ "default", @@ -8420,7 +8438,16 @@ }, "type": { "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", - "type": "string" + "type": "string", + "enum": [ + "product", + "credit", + "custom", + "promotion", + "container", + "discount", + "quantity" + ] }, "customFields": { "type": "object" @@ -9980,7 +10007,11 @@ }, "type": { "description": "The type of the product, e.g., physical or digital.", - "type": "string" + "type": "string", + "enum": [ + "physical", + "digital" + ] }, "states": { "type": "array", @@ -14397,7 +14428,12 @@ }, "routeName": { "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", - "type": "string" + "type": "string", + "enum": [ + "frontend.detail.page", + "frontend.navigation.page", + "frontend.landing.page" + ] }, "pathInfo": { "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", @@ -14479,9 +14515,9 @@ "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string", "enum": [ + "frontend.detail.page", "frontend.navigation.page", - "frontend.landing.page", - "frontend.detail.page" + "frontend.landing.page" ] }, "pathInfo": { @@ -14526,8 +14562,7 @@ "readOnly": true } }, - "type": "object", - "title": "SeoUrlEntity" + "type": "object" }, "SeoUrlTemplate": { "description": "Added since version: 6.0.0.0", @@ -16565,34 +16600,26 @@ }, "type": "object" }, - "EntitySearchResult": { + "ProductDetailResponse": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "entity": { - "type": "string" - }, - "total": { - "type": "integer", - "description": "The total number of found entities" + "product": { + "$ref": "#/components/schemas/Product" }, - "aggregations": { + "configurator": { "type": "array", - "description": "Contains aggregated data. A simple example is the determination of the average price from a product search query.", + "description": "List of property groups with their corresponding options and information on how to display them.", "items": { - "type": "object" + "$ref": "#/components/schemas/PropertyGroup" } - }, - "page": { - "type": "integer", - "description": "The actual page. This can be used for pagination." - }, - "limit": { - "type": "integer", - "description": "The actual limit. This is used for pagination and goes together with the page." } - } + }, + "required": [ + "product" + ] }, - "CartDelivery": { + "CartDeliveryPosition": { "type": "object", "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { @@ -16609,84 +16636,136 @@ } } }, - "location": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "state": { - "$ref": "#/components/schemas/CountryState" - } - } + "identifier": { + "type": "string" }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } + "lineItem": { + "$ref": "#/components/schemas/LineItem" }, - "shippingCosts": { + "price": { "$ref": "#/components/schemas/CalculatedPrice" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" } } }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" + "CartItems": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + } } }, - "OrderRouteResponse": { + "CookieGroup": { "type": "object", "properties": { - "orders": { - "type": "object", - "allOf": [ - { - "type": "object", - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - } - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } + "isRequired": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, + "entries": { + "$ref": "#/components/schemas/CookieEntryCollection" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cookie_group" + ] + } + }, + "not": { + "allOf": [ + { + "required": [ + "cookie" + ] + }, + { + "required": [ + "entries" + ] + } + ] + }, + "required": [ + "name", + "isRequired", + "apiAlias" + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" ] }, - "paymentChangeable": { - "type": "object", - "description": "The key-value pairs contain the uuid of the order as key and a boolean as value, indicating that the payment method can still be changed.", - "additionalProperties": { - "type": "boolean" + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" + }, + "price": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } } + }, + "type": { + "type": "string" } }, "required": [ - "orders" + "apiAlias" ] }, - "ReferencePrice": { + "CartPriceReference": { "type": "object", "properties": { "purchaseUnit": { @@ -16710,7 +16789,7 @@ "listPrice": { "oneOf": [ { - "$ref": "#/components/schemas/ListPrice" + "$ref": "#/components/schemas/CartListPrice" }, { "type": "null" @@ -16754,6 +16833,7 @@ } }, "required": [ + "apiAlias", "hasRange", "regulationPrice", "listPrice", @@ -16763,150 +16843,55 @@ "unitName" ] }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "Cart": { + "CartDelivery": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "name": { - "description": "Name of the cart - for example `guest-cart`", - "type": "string" - }, - "token": { - "description": "Context token identifying the cart and the user session", - "type": "string" - }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } } }, - "errors": { + "location": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] - } + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "state": { + "$ref": "#/components/schemas/CountryState" } - ] - }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" } }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", + "positions": { "type": "array", "items": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string" - }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } + "$ref": "#/components/schemas/CartDeliveryPosition" } }, - "modified": { - "type": "boolean" - }, - "customerComment": { - "description": "A comment that can be added to the cart.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } - }, - "required": [ - "price", - "apiAlias" - ] - }, - "CookieEntryCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieEntry" } }, "CrossSellingElement": { @@ -16943,362 +16928,45 @@ "apiAlias" ] }, - "CalculatedPrice": { - "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", - "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "taxStatus": { - "type": "string", - "enum": [ - "net", - "tax-free" - ] - }, - "calculatedTaxes": { - "type": "array", - "items": { + "ShippingMethodPageRouteResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "deliveryTimeId": { + "type": "string" + }, + "deliveryTime": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] + "name": { + "type": "string" }, - "tax": { - "type": "number" + "min": { + "type": "integer", + "format": "int32" }, - "taxRate": { - "type": "number" + "max": { + "type": "integer", + "format": "int32" }, - "price": { - "type": "number" + "unit": { + "type": "string" } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules", - "rawTotal", - "taxStatus" - ] - }, - "CartPriceReference": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] - }, - "CartDeliveryPosition": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } - }, - "identifier": { - "type": "string" - }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" - }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "ProductListingFlags": { - "type": "object", - "description": "Additional flags for product listings", - "properties": { - "no-aggregations": { - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "only-aggregations": { - "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - } - }, - "CartListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] - } - }, - "required": [ - "apiAlias" - ] - }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - }, - "ShippingMethodPageRouteResponse": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "deliveryTimeId": { - "type": "string" - }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer", - "format": "int32" - }, - "max": { - "type": "integer", - "format": "int32" - }, - "unit": { - "type": "string" - } - } - }, - "translations": { - "type": "array", - "items": { + }, + "translations": { + "type": "array", + "items": { "type": "object", "properties": { "shippingMethodId": { @@ -17588,19 +17256,112 @@ } } }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + } + } + } + } + }, + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" + ] + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + }, + "listPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] + }, + "regulationPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" } - } + }, + "required": [ + "gross", + "net" + ] } - } + }, + "required": [ + "currencyId", + "gross", + "net" + ] }, "Sitemap": { "type": "object", @@ -17696,145 +17457,443 @@ "description": "The field you want to aggregate over.", "type": "string" }, - "limit": { - "description": "The number of terms to return", - "type": "number" + "limit": { + "description": "The number of terms to return", + "type": "number" + }, + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationHistogram": { + "title": "AggregationHistogram", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "histogram" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "interval": { + "description": "The interval of the histogram", + "type": "number" + }, + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" + }, + "to": { + "type": "number", + "description": "The upper bound of the range" + } + }, + "required": [ + "from", + "to" + ] + }, + { + "type": "object", + "title": "From only", + "properties": { + "from": { + "type": "string", + "description": "The lower bound of the range" + } + }, + "required": [ + "from" + ] + }, + { + "type": "object", + "title": "To only", + "properties": { + "to": { + "type": "string", + "description": "The upper bound of the range" + } + }, + "required": [ + "to" + ] + } + ] + } + } + }, + "required": [ + "name", + "type", + "field", + "ranges" + ] + }, + "Breadcrumb": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "type": { + "$ref": "#/components/schemas/Category/properties/type" + }, + "translated": { + "type": "object", + "additionalProperties": true, + "properties": { + "customFields": { + "type": "object" + }, + "slotConfig": { + "type": "object" + }, + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" + }, + "internalLink": { + "type": "string" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + } + } + }, + "path": { + "type": "string" }, - "sort": { + "seoUrls": { "type": "array", - "description": "Sorting the aggregation result.", "items": { - "$ref": "#/components/schemas/Sort" + "$ref": "#/components/schemas/SeoUrl" } + }, + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] } }, "required": [ "name", + "categoryId", "type", - "field" + "translated", + "path", + "apiAlias" ] }, - "AggregationHistogram": { - "title": "AggregationHistogram", + "ReferencePrice": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { "type": "string" }, - "type": { - "description": "The type of aggregation", + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "histogram" + "cart_price_reference" ] }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "type": "null" + } + ] }, - "interval": { - "description": "The interval of the histogram", - "type": "number" + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "format": { - "description": "The format of the histogram", - "type": "string" + "hasRange": { + "type": "boolean" }, - "timeZone": { - "description": "The timezone of the histogram", - "type": "string" + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] } }, "required": [ - "name", - "type", - "field" + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" ] }, - "AggregationRange": { - "title": "AggregationRange", - "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "ProductListingResult": { + "allOf": [ + { + "$ref": "#/components/schemas/EntitySearchResult" }, - "ranges": { - "description": "The ranges of the aggregation", - "type": "array", - "items": { - "type": "object", - "anyOf": [ - { - "type": "object", - "title": "From and to", - "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" - }, - "to": { - "type": "number", - "description": "The upper bound of the range" + { + "type": "object", + "properties": { + "currentFilters": { + "type": "object", + "description": "Contains the state of the filters. These can be used to create listing filters.", + "properties": { + "navigationId": { + "type": "string" + }, + "manufacturer": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, - "required": [ - "from", - "to" - ] - }, - { - "type": "object", - "title": "From only", + "price": { + "type": "object", + "properties": { + "min": { + "type": "integer", + "default": 0 + }, + "max": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "min", + "max" + ] + }, + "rating": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "shipping-free": { + "type": "boolean", + "default": false + }, "properties": { - "from": { + "type": "array", + "items": { "type": "string", - "description": "The lower bound of the range" + "pattern": "^[0-9a-f]{32}$" } }, - "required": [ - "from" - ] + "search": { + "type": "string" + } }, - { + "required": [ + "manufacturer", + "navigationId", + "price", + "properties", + "rating", + "shipping-free" + ] + }, + "availableSortings": { + "type": "array", + "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", + "items": { "type": "object", - "title": "To only", "properties": { - "to": { + "label": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "label": { + "type": "string" + } + }, + "required": [ + "label" + ] + }, + "key": { + "type": "string" + }, + "priority": { + "type": "number" + }, + "apiAlias": { "type": "string", - "description": "The upper bound of the range" + "enum": [ + "product_sorting" + ] } }, "required": [ - "to" + "label", + "translated", + "key", + "priority", + "apiAlias" ] } - ] - } + }, + "sorting": { + "type": "string" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "entity": { + "type": "string", + "enum": [ + "product" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_listing" + ] + } + }, + "required": [ + "elements", + "availableSortings", + "currentFilters", + "apiAlias" + ] } - }, - "required": [ - "name", - "type", - "field", - "ranges" ] }, "LineItemType": { "type": "string", + "deprecated": true, "enum": [ "product", "credit", @@ -18040,7 +18099,7 @@ } }, "type": { - "$ref": "#/components/schemas/LineItemType" + "$ref": "#/components/schemas/OrderLineItem/properties/type" }, "uniqueIdentifier": { "type": "string" @@ -18055,215 +18114,291 @@ "states" ] }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - } - }, - "CartError": { + "SalesChannelContext": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "key": { + "token": { + "description": "Context the user session", "type": "string" }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" - }, - "message": { - "type": "string" + "currentCustomerGroup": { + "type": "object", + "description": "Customer group of the current user", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } + } }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "FindProductVariantRouteResponse": { - "type": "object", - "properties": { - "foundCombination": { + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", "type": "object", "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "options": { - "type": "array", - "items": { + "displayGross": { + "type": "boolean" + } + } + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { "type": "string" } } } - } - } - }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" }, - { + "customer": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Customer" + } + ] + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { "type": "object", - "description": "Additional search parameters for product listings", "properties": { - "order": { - "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", - "type": "string" + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - "limit": { - "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", - "type": "integer", - "minimum": 0 + "country": { + "$ref": "#/components/schemas/Country" }, - "p": { - "description": "Search result page", - "type": "integer", - "default": 1 + "address": { + "$ref": "#/components/schemas/CustomerAddress" + } + } + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "context": { + "description": "Core context with general configuration values and state", + "type": "object", + "properties": { + "versionId": { + "type": "string" }, - "manufacturer": { - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "currencyId": { "type": "string" }, - "min-price": { - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "type": "integer", - "minimum": 0, - "default": 0 + "currencyFactor": { + "type": "integer" }, - "max-price": { - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "currencyPrecision": { "type": "integer", - "minimum": 0, - "default": 0 - }, - "rating": { - "description": "Filter products with a minimum average rating.", - "type": "integer" + "format": "int32" }, - "shipping-free": { - "description": "Filters products that are marked as shipping-free.", - "type": "boolean", - "default": false + "languageIdChain": { + "type": "array", + "items": { + "type": "string" + } }, - "properties": { - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "scope": { "type": "string" }, - "manufacturer-filter": { - "description": "Enables/disabled filtering by manufacturer. If set to false, the `manufacturer` filter will be ignored. Also the `aggregations[manufacturer]` key will be removed from the response.", - "type": "boolean", - "default": true + "source": { + "type": "object", + "required": [ + "salesChannelId", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] + }, + "salesChannelId": { + "type": "string" + } + } }, - "price-filter": { - "description": "Enables/disabled filtering by price. If set to false, the `min-price` and `max-price` filter will be ignored. Also the `aggregations[price]` key will be removed from the response.", - "type": "boolean", - "default": true + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" + } + } + }, + "itemRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] }, - "rating-filter": { - "description": "Enables/disabled filtering by rating. If set to false, the `rating` filter will be ignored. Also the `aggregations[rating]` key will be removed from the response.", - "type": "boolean", - "default": true + "decimals": { + "type": "integer", + "format": "int32" }, - "shipping-free-filter": { - "description": "Enables/disabled filtering by shipping-free products. If set to false, the `shipping-free` filter will be ignored. Also the `aggregations[shipping-free]` key will be removed from the response.", - "type": "boolean", - "default": true + "interval": { + "type": "number", + "format": "float" }, - "property-filter": { - "description": "Enables/disabled filtering by properties products. If set to false, the `properties` filter will be ignored. Also the `aggregations[properties]` key will be removed from the response.", - "type": "boolean", - "default": true + "roundForNet": { + "type": "boolean" + } + } + }, + "totalRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] }, - "property-whitelist": { - "description": "A whitelist of property identifiers which can be used for filtering. List of property identifiers separated by a `|`. The `property-filter` must be `true`, otherwise the whitelist has no effect.", - "type": "string" + "decimals": { + "type": "integer", + "format": "int32" }, - "reduce-aggregations": { - "description": "By sending the parameter `reduce-aggregations` , the post-filters that were applied by the customer, are also applied to the aggregations. This has the consequence that only values are returned in the aggregations that would lead to further filter results. This parameter is a flag, the value has no effect.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" } } - } - ] - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" - ] - }, - "WishlistLoadRouteResponse": { - "type": "object", - "required": [ - "products" - ], - "properties": { - "wishlist": { + }, + "languageInfo": { "type": "object", + "required": [ + "localeCode", + "name" + ], "properties": { - "customerId": { + "name": { "type": "string" }, - "salesChannelId": { + "localeCode": { "type": "string" } } }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" + "apiAlias": { + "type": "string", + "enum": [ + "sales_channel_context" + ] } + }, + "required": [ + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" + ] + }, + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" } }, - "AggregationMetrics": { + "AccountNewsletterRecipient": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { + "status": { "type": "string", "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" + "undefined", + "notSet", + "direct", + "optIn", + "optOut" ] }, - "field": { - "type": "string" + "apiAlias": { + "type": "string", + "enum": [ + "account_newsletter_recipient" + ] } }, "required": [ - "name", - "type", - "field" + "status", + "apiAlias" ] }, + "FindProductVariantRouteResponse": { + "type": "object", + "properties": { + "foundCombination": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, "CartDeliveryInformation": { "type": "object", "properties": { @@ -18312,832 +18447,578 @@ "type": "integer" }, "weight": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "required": [ - "apiAlias" - ] - }, - "CartItems": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } - } - } - }, - "Breadcrumb": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "type": { - "type": "string", - "enum": [ - "page", - "link", - "folder" - ] - }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" - }, - "linkType": { - "type": "string", - "enum": [ - "external", - "category", - "product", - "landing_page" - ] - }, - "internalLink": { - "type": "string" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - } - } - }, - "path": { - "type": "string" - }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } + "type": "integer" }, - "apiAlias": { - "type": "string", - "enum": [ - "breadcrumb" - ] + "width": { + "type": "integer" } }, "required": [ - "name", - "categoryId", - "type", - "translated", - "path", "apiAlias" ] }, - "SalesChannelContext": { + "SuccessResponse": { "type": "object", "properties": { - "token": { - "description": "Context the user session", + "success": { + "type": "boolean" + } + } + }, + "Criteria": { + "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" + }, + "term": { + "description": "Search term", "type": "string" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "currency": { - "$ref": "#/components/schemas/Currency" + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" + "query": { + "type": "string", + "description": "The query string to search for" }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "taxRules": { + "post-filter": { "type": "array", - "description": "Currently active tax rules and/or rates", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "name": { - "type": "string" + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] } }, - "customer": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/Customer" - } - ] + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - } + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" } }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "context": { - "description": "Core context with general configuration values and state", - "type": "object", - "properties": { - "versionId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "currencyFactor": { - "type": "integer" - }, - "currencyPrecision": { - "type": "integer", - "format": "int32" - }, - "languageIdChain": { - "type": "array", - "items": { - "type": "string" + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" + } + } + }, + "NoneFieldsCriteria": { + "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" + }, + "term": { + "description": "Search term", + "type": "string" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - }, - "scope": { - "type": "string" - }, - "source": { - "type": "object", - "required": [ - "salesChannelId", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "sales-channel", - "shop-api" - ] - }, - "salesChannelId": { - "type": "string" - } + ] + } + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "query": { + "type": "string", + "description": "The query string to search for" + }, + "associations": { + "$ref": "#/components/schemas/Associations" + }, + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - }, - "taxState": { - "type": "string" - }, - "useCache": { - "type": "boolean" - } + ] } }, - "itemRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] - }, - "decimals": { - "type": "integer", - "format": "int32" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" } }, - "totalRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] - }, - "decimals": { - "type": "integer", - "format": "int32" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" } }, - "languageInfo": { - "type": "object", - "required": [ - "localeCode", - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "localeCode": { - "type": "string" - } + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" } }, - "apiAlias": { - "type": "string", - "enum": [ - "sales_channel_context" - ] + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } - }, - "required": [ - "salesChannel", - "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" - ] + } }, - "Association": { + "Associations": { + "type": "object", "additionalProperties": { - "$ref": "#/components/schemas/Association" + "$ref": "#/components/schemas/Criteria" } }, - "ContextMeasurementSystemInfo": { + "Includes": { "type": "object", - "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", - "properties": { - "system": { - "type": "string", - "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." - }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." - }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." - } - } + "additionalProperties": { + "type": "array", + "items": { + "type": "string" } } }, - "ListPrice": { + "Excludes": { "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "percentage": { - "type": "number" + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "price": { - "type": "number" + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } ] } - }, - "required": [ - "apiAlias" ] }, - "Price": { + "SubAggregations": { "type": "object", - "description": "Price object", "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" - }, - "net": { - "description": "", - "type": "number" - }, - "linked": { - "description": "", - "type": "boolean" - }, - "listPrice": { - "description": "", - "type": "object", - "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "net": { - "description": "", - "type": "number" + { + "$ref": "#/components/schemas/AggregationEntity" }, - "linked": { - "description": "", - "type": "boolean" - } - }, - "required": [ - "gross", - "net" - ] - }, - "regulationPrice": { - "description": "", - "type": "object", - "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + { + "$ref": "#/components/schemas/AggregationFilter" }, - "gross": { - "description": "", - "type": "number" + { + "$ref": "#/components/schemas/AggregationTerms" }, - "net": { - "description": "", - "type": "number" + { + "$ref": "#/components/schemas/AggregationHistogram" }, - "linked": { - "description": "", - "type": "boolean" + { + "$ref": "#/components/schemas/AggregationRange" } - }, - "required": [ - "gross", - "net" ] } - }, - "required": [ - "currencyId", - "gross", - "net" + } + }, + "TotalCountMode": { + "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", + "type": "string", + "default": "none", + "enum": [ + "none", + "exact", + "next-pages" ] }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" + "Query": { + "type": "object", + "properties": { + "score": { + "type": "number" }, - { - "type": "object", - "properties": { - "currentFilters": { - "type": "object", - "description": "Contains the state of the filters. These can be used to create listing filters.", - "properties": { - "navigationId": { - "type": "string" - }, - "manufacturer": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "price": { - "type": "object", - "properties": { - "min": { - "type": "integer", - "default": 0 - }, - "max": { - "type": "integer", - "default": 0 - } - }, - "required": [ - "min", - "max" - ] - }, - "rating": { - "oneOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "shipping-free": { - "type": "boolean", - "default": false - }, - "properties": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "search": { - "type": "string" - } - }, - "required": [ - "manufacturer", - "navigationId", - "price", - "properties", - "rating", - "shipping-free" - ] - }, - "availableSortings": { - "type": "array", - "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "label": { - "type": "string" - } - }, - "required": [ - "label" - ] - }, - "key": { - "type": "string" - }, - "priority": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_sorting" - ] - } - }, - "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" - ] - } - }, - "sorting": { - "type": "string" + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } + { + "$ref": "#/components/schemas/EqualsFilter" }, - "entity": { - "type": "string", - "enum": [ - "product" - ] + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "apiAlias": { - "type": "string", - "enum": [ - "product_listing" - ] + { + "$ref": "#/components/schemas/RangeFilter" } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" ] } - ] + }, + "additionalProperties": true }, - "CookieGroup": { + "Sort": { "type": "object", "properties": { - "isRequired": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "cookie": { - "type": "string" - }, - "value": { + "field": { "type": "string" }, - "expiration": { - "type": "integer" - }, - "entries": { - "$ref": "#/components/schemas/CookieEntryCollection" - }, - "apiAlias": { + "order": { "type": "string", "enum": [ - "cookie_group" + "ASC", + "DESC" ] + }, + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" } }, - "not": { - "allOf": [ + "required": [ + "field", + "order" + ] + }, + "Filters": { + "type": "array", + "items": { + "anyOf": [ { - "required": [ - "cookie" - ] + "$ref": "#/components/schemas/SimpleFilter" }, { - "required": [ - "entries" - ] + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } ] - }, - "required": [ - "name", - "isRequired", - "apiAlias" - ] + } }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", - "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], + "SimpleFilter": { + "type": "object", "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { + "type": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] }, - "phoneNumber": { + "field": { "type": "string" }, - "additionalAddressLine1": { + "value": { "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] }, - "additionalAddressLine2": { + "field": { "type": "string" }, - "customFields": { - "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] } }, - "type": "object" + "required": [ + "type", + "field", + "value" + ] }, - "ProductDetailResponse": { + "MultiNotFilter": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "type": { + "type": "string", + "enum": [ + "multi", + "not" + ] }, - "configurator": { - "type": "array", - "description": "List of property groups with their corresponding options and information on how to display them.", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" } }, "required": [ - "product" + "type", + "operator", + "queries" ] }, - "CartPriceQuantity": { + "RangeFilter": { "type": "object", "properties": { - "apiAlias": { + "type": { "type": "string", "enum": [ - "cart_price_quantity" + "range" ] }, - "isCalculated": { - "type": "boolean" - }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" - }, - "price": { - "type": "number" - }, - "quantity": { - "type": "number" + "field": { + "type": "string" }, - "regulationPrice": { + "parameters": { + "type": "object", "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "taxRules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } + "gte": { + "type": "number" + }, + "gt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "lt": { + "type": "number" } } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" }, "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] + }, + "field": { "type": "string" } }, "required": [ - "apiAlias" + "name", + "type", + "field" ] }, "MeasurementUnits": { @@ -19218,706 +19099,722 @@ "apiAlias" ] }, - "CookieRouteResponse": { + "ContextMeasurementSystemInfo": { "type": "object", - "description": "Response containing cookie groups and their configuration hash.", + "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "apiAlias": { + "system": { "type": "string", "enum": [ - "cookie_groups_hash" - ] - }, - "elements": { - "type": "array", - "description": "Collection of cookie groups", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } - }, - "hash": { - "type": "string", - "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", - "example": "f86b6a872cb83dbd22d838ceda1aa3d4" - }, - "languageId": { - "type": "string", - "format": "uuid", - "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", - "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" - } - }, - "required": [ - "elements", - "hash", - "languageId", - "apiAlias" - ], - "example": { - "apiAlias": "cookie_groups_hash", - "elements": [ - { - "isRequired": true, - "description": "Cookies required for this shop to function:", - "name": "Technically required", - "entries": [ - { - "name": "Session", - "hidden": false, - "cookie": "session-", - "apiAlias": "cookie_entry" - }, - { - "name": "Timezone", - "hidden": false, - "cookie": "timezone", - "apiAlias": "cookie_entry" - }, - { - "value": "1", - "expiration": 30, - "name": "Cookie preferences", - "hidden": true, - "cookie": "cookie-preference", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" - }, - { - "isRequired": false, - "description": "Cookies used for statistics and shop performance metrics.", - "name": "Statistics", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "Google Analytics", - "hidden": false, - "cookie": "google-analytics-enabled", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" - }, - { - "isRequired": false, - "description": "Allows Google to collect personal data for online advertising and marketing.", - "name": "Marketing", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "Google Advertising", - "hidden": false, - "cookie": "google-ads-enabled", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" - }, - { - "isRequired": false, - "name": "Comfort features", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "YouTube video", - "hidden": false, - "cookie": "youtube-video", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" - } - ], - "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", - "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" - } - }, - "Criteria": { - "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", - "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "term": { - "description": "Search term", - "type": "string" - }, - "limit": { - "description": "Number of items per result page", - "type": "integer" - }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } - }, - "query": { - "type": "string", - "description": "The query string to search for" - }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } - }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } } + } + } + }, + "ListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } + "percentage": { + "type": "number" }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "price": { + "type": "number" }, - "includes": { - "$ref": "#/components/schemas/Includes" + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] + }, + "ProductListingFlags": { + "type": "object", + "description": "Additional flags for product listings", + "properties": { + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "excludes": { - "$ref": "#/components/schemas/Excludes" + "only-aggregations": { + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } } }, - "NoneFieldsCriteria": { + "CartListPrice": { "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "description": "", "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "discount": { + "type": "number" }, - "term": { - "description": "Search term", - "type": "string" + "percentage": { + "type": "number" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "price": { + "type": "number" }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] + }, + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], + "properties": { + "countryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } + "countryStateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "query": { + "salutationId": { "type": "string", - "description": "The query string to search for" + "pattern": "^[0-9a-f]{32}$" }, - "associations": { - "$ref": "#/components/schemas/Associations" + "firstName": { + "type": "string" }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "lastName": { + "type": "string" }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } + "zipcode": { + "type": "string" }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } + "city": { + "type": "string" }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } + "company": { + "type": "string" }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "street": { + "type": "string" }, - "includes": { - "$ref": "#/components/schemas/Includes" + "department": { + "type": "string" }, - "excludes": { - "$ref": "#/components/schemas/Excludes" - } - } - }, - "Associations": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Includes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { + "title": { "type": "string" - } - } - }, - "Excludes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { + }, + "phoneNumber": { "type": "string" - } - } - }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" }, - { - "title": "AggregationEntity", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "additionalAddressLine1": { + "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "country": { + "$ref": "#/components/schemas/Country" }, - { - "title": "AggregationTerms", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "countryState": { + "$ref": "#/components/schemas/CountryState" }, - { - "title": "AggregationHistogram", + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "type": "object" + }, + "OrderRouteResponse": { + "type": "object", + "properties": { + "orders": { + "type": "object", "allOf": [ { - "$ref": "#/components/schemas/AggregationHistogram" + "type": "object", + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + } + } }, { - "$ref": "#/components/schemas/SubAggregations" + "$ref": "#/components/schemas/EntitySearchResult" } ] }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "paymentChangeable": { + "type": "object", + "description": "The key-value pairs contain the uuid of the order as key and a boolean as value, indicating that the payment method can still be changed.", + "additionalProperties": { + "type": "boolean" + } } + }, + "required": [ + "orders" ] }, - "SubAggregations": { + "WishlistLoadRouteResponse": { "type": "object", + "required": [ + "products" + ], "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/AggregationHistogram" + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" }, - { - "$ref": "#/components/schemas/AggregationRange" + "salesChannelId": { + "type": "string" } - ] + } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" } } }, - "TotalCountMode": { - "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", - "type": "string", - "default": "none", - "enum": [ - "none", - "exact", - "next-pages" - ] - }, - "Query": { + "CookieRouteResponse": { "type": "object", + "description": "Response containing cookie groups and their configuration hash.", "properties": { - "score": { - "type": "number" - }, - "query": { - "oneOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } + "apiAlias": { + "type": "string", + "enum": [ + "cookie_groups_hash" ] + }, + "elements": { + "type": "array", + "description": "Collection of cookie groups", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "hash": { + "type": "string", + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + }, + "languageId": { + "type": "string", + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" } }, - "additionalProperties": true + "required": [ + "elements", + "hash", + "languageId", + "apiAlias" + ], + "example": { + "apiAlias": "cookie_groups_hash", + "elements": [ + { + "isRequired": true, + "description": "Cookies required for this shop to function:", + "name": "Technically required", + "entries": [ + { + "name": "Session", + "hidden": false, + "cookie": "session-", + "apiAlias": "cookie_entry" + }, + { + "name": "Timezone", + "hidden": false, + "cookie": "timezone", + "apiAlias": "cookie_entry" + }, + { + "value": "1", + "expiration": 30, + "name": "Cookie preferences", + "hidden": true, + "cookie": "cookie-preference", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Cookies used for statistics and shop performance metrics.", + "name": "Statistics", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Analytics", + "hidden": false, + "cookie": "google-analytics-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Allows Google to collect personal data for online advertising and marketing.", + "name": "Marketing", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Advertising", + "hidden": false, + "cookie": "google-ads-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "name": "Comfort features", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "YouTube video", + "hidden": false, + "cookie": "youtube-video", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + } + ], + "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", + "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + } }, - "Sort": { + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + }, + "EntitySearchResult": { "type": "object", "properties": { - "field": { + "entity": { "type": "string" }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] + "total": { + "type": "integer", + "description": "The total number of found entities" }, - "naturalSorting": { - "type": "boolean" + "aggregations": { + "type": "array", + "description": "Contains aggregated data. A simple example is the determination of the average price from a product search query.", + "items": { + "type": "object" + } }, - "type": { - "type": "string" + "page": { + "type": "integer", + "description": "The actual page. This can be used for pagination." + }, + "limit": { + "type": "integer", + "description": "The actual limit. This is used for pagination and goes together with the page." } - }, - "required": [ - "field", - "order" - ] - }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] } }, - "SimpleFilter": { + "CartError": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "type": { - "type": "string", + "key": { + "type": "string" + }, + "level": { + "type": "number", "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "field": { + "message": { "type": "string" }, - "value": { + "messageKey": { "type": "string" } }, "required": [ - "type", - "field", - "value" + "key", + "level", + "message", + "messageKey" ] }, - "EqualsFilter": { + "CustomerAddressRead": { "type": "object", "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "equals" - ] + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "field": { - "type": "string" + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "value": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { "oneOf": [ { - "type": "string" + "type": "string", + "format": "date-time" }, { - "type": "number" - }, + "type": "null" + } + ] + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "oneOf": [ { - "type": "boolean" + "$ref": "#/components/schemas/CountryState" }, { "type": "null" } ] - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "MultiNotFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or", - "nor", - "nand" - ] }, - "queries": { - "$ref": "#/components/schemas/Filters" + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "required": [ - "type", - "operator", - "queries" + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" ] }, - "RangeFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "type": "string" + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "parameters": { + { "type": "object", + "description": "Additional search parameters for product listings", "properties": { - "gte": { - "type": "number" + "order": { + "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", + "type": "string" }, - "gt": { - "type": "number" + "limit": { + "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", + "type": "integer", + "minimum": 0 }, - "lte": { - "type": "number" + "p": { + "description": "Search result page", + "type": "integer", + "default": 1 }, - "lt": { - "type": "number" + "manufacturer": { + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "type": "string" + }, + "min-price": { + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "max-price": { + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "rating": { + "description": "Filter products with a minimum average rating.", + "type": "integer" + }, + "shipping-free": { + "description": "Filters products that are marked as shipping-free.", + "type": "boolean", + "default": false + }, + "properties": { + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "type": "string" + }, + "manufacturer-filter": { + "description": "Enables/disabled filtering by manufacturer. If set to false, the `manufacturer` filter will be ignored. Also the `aggregations[manufacturer]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "price-filter": { + "description": "Enables/disabled filtering by price. If set to false, the `min-price` and `max-price` filter will be ignored. Also the `aggregations[price]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "rating-filter": { + "description": "Enables/disabled filtering by rating. If set to false, the `rating` filter will be ignored. Also the `aggregations[rating]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "shipping-free-filter": { + "description": "Enables/disabled filtering by shipping-free products. If set to false, the `shipping-free` filter will be ignored. Also the `aggregations[shipping-free]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "property-filter": { + "description": "Enables/disabled filtering by properties products. If set to false, the `properties` filter will be ignored. Also the `aggregations[properties]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "property-whitelist": { + "description": "A whitelist of property identifiers which can be used for filtering. List of property identifiers separated by a `|`. The `property-filter` must be `true`, otherwise the whitelist has no effect.", + "type": "string" + }, + "reduce-aggregations": { + "description": "By sending the parameter `reduce-aggregations` , the post-filters that were applied by the customer, are also applied to the aggregations. This has the consequence that only values are returned in the aggregations that would lead to further filter results. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } } } - }, - "required": [ - "type", - "field", - "parameters" ] }, - "CustomerAddressRead": { + "Cart": { "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "name": { + "description": "Name of the cart - for example `guest-cart`", + "type": "string" }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "token": { + "description": "Context token identifying the cart and the user session", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time" + "price": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "updatedAt": { + "lineItems": { + "description": "All items within the cart", + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + }, + "errors": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "code", + "key", + "level", + "message", + "messageKey" + ] + } + } + ] + }, + "deliveries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDelivery" + } + }, + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", + "type": "array", + "items": { + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } + } + }, + "modified": { + "type": "boolean" + }, + "customerComment": { + "description": "A comment that can be added to the cart.", "oneOf": [ { - "type": "string", - "format": "date-time" + "type": "string" }, { "type": "null" } ] }, - "country": { - "$ref": "#/components/schemas/Country" + "affiliateCode": { + "description": "An affiliate tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "countryState": { + "campaignCode": { + "description": "A campaign tracking code", "oneOf": [ { - "$ref": "#/components/schemas/CountryState" + "type": "string" }, { "type": "null" } ] }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "apiAlias": { + "type": "string", + "enum": [ + "cart" + ] } }, "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" + "price", + "apiAlias" ] }, + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, "ProductMeasurements": { "type": "object", "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", @@ -19992,86 +19889,214 @@ ], "default": "kg" }, - "value": { - "type": "number" + "value": { + "type": "number" + } + } + } + } + }, + "CalculatedPrice": { + "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", + "properties": { + "unitPrice": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "rawTotal": { + "type": "number" + }, + "totalPrice": { + "type": "number" + }, + "taxStatus": { + "type": "string", + "enum": [ + "net", + "tax-free" + ] + }, + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] + } + }, + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] + }, + "positionPrice": { + "type": "number" + }, + "netPrice": { + "type": "number" + }, + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" } - } - } - } - }, - "AccountNewsletterRecipient": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" ] }, "apiAlias": { "type": "string", "enum": [ - "account_newsletter_recipient" + "calculated_price" ] + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } } }, "required": [ - "status", - "apiAlias" + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules", + "rawTotal", + "taxStatus" ] }, - "SearchByImageSearchTermResponse": { + "NaturalLanguageSearchTermResponse": { "type": "array", "items": { "type": "object", "required": [ "term", + "reason", "apiAlias" ], "properties": { "term": { "type": "string" }, + "reason": { + "type": "string" + }, "apiAlias": { "type": "string", "enum": [ - "product_image_upload_search_term" + "product_natural_language_search_term" ] - }, - "extensions": { - "type": "array", - "items": { - "type": "object" - } } } } }, - "NaturalLanguageSearchTermResponse": { + "SearchByImageSearchTermResponse": { "type": "array", "items": { "type": "object", "required": [ "term", - "reason", "apiAlias" ], "properties": { "term": { "type": "string" }, - "reason": { - "type": "string" - }, "apiAlias": { "type": "string", "enum": [ - "product_natural_language_search_term" + "product_image_upload_search_term" ] + }, + "extensions": { + "type": "array", + "items": { + "type": "object" + } } } } @@ -20469,24 +20494,24 @@ "204": { "description": "No Content" }, - "ProductListResponse": { - "description": "Entity search result containing products", + "LanguageListResponse": { + "description": "Entity search result containing languages.", "content": { "application/json": { "schema": { "allOf": [ { - "required": [ - "elements" - ], "properties": { "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Language" } } }, + "required": [ + "elements" + ], "type": "object" }, { @@ -20497,31 +20522,6 @@ } } }, - "CategoryListResponse": { - "description": "Entity search result containing categories.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - } - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } - }, "OpenApi3": { "description": "Returns information about the store API.", "content": { @@ -20711,7 +20711,7 @@ } } }, - "CountryStateListResponse": { + "CountryListResponse": { "description": "Entity search result containing countries.", "content": { "application/json": { @@ -20722,7 +20722,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/CountryState" + "$ref": "#/components/schemas/Country" } } }, @@ -20736,38 +20736,22 @@ } } }, - "CurrencyListResponse": { - "description": "Entity search result containing currencies.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Currency" - } - } - } - } - }, - "SeoUrlListResponse": { - "description": "Entity search result containing seo urls.", + "CategoryListResponse": { + "description": "Entity search result containing categories.", "content": { "application/json": { "schema": { "allOf": [ { + "type": "object", "properties": { "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/SeoUrl" + "$ref": "#/components/schemas/Category" } } - }, - "type": "object", - "required": [ - "elements" - ] + } }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -20777,28 +20761,26 @@ } } }, - "PaymentMethodListResponse": { - "description": "", + "ContextTokenResponse": { + "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", + "headers": { + "sw-context-token": { + "description": "Contains sw-context-token value", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" } - }, - "type": "object" + } } } } @@ -20839,8 +20821,47 @@ } } }, - "SalutationListResponse": { - "description": "Entity search result containing salutations.", + "PaymentMethodListResponse": { + "description": "", + "content": { + "application/json": { + "schema": { + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } + } + }, + "type": "object" + } + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + } + } + }, + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", "content": { "application/json": { "schema": { @@ -20850,11 +20871,14 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Salutation" + "$ref": "#/components/schemas/SeoUrl" } } }, - "type": "object" + "type": "object", + "required": [ + "elements" + ] }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -20864,42 +20888,46 @@ } } }, - "ContextTokenResponse": { - "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value", - "schema": { - "type": "string" - } - } - }, + "SalutationListResponse": { + "description": "Entity search result containing salutations.", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Salutation" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - } + ] } } } }, - "CountryListResponse": { - "description": "Entity search result containing countries.", + "ProductListResponse": { + "description": "Entity search result containing products", "content": { "application/json": { "schema": { "allOf": [ { + "required": [ + "elements" + ], "properties": { "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Country" + "$ref": "#/components/schemas/Product" } } }, @@ -20913,8 +20941,8 @@ } } }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", + "CountryStateListResponse": { + "description": "Entity search result containing countries.", "content": { "application/json": { "schema": { @@ -20924,13 +20952,10 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/CountryState" } } }, - "required": [ - "elements" - ], "type": "object" }, { @@ -20963,38 +20988,6 @@ "default": "application/json" } }, - "noAggregations": { - "name": "no-aggregations", - "in": "query", - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", - "required": false, - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "onlyAggregations": { - "name": "only-aggregations", - "in": "query", - "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", - "required": false, - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, "criteriaPage": { "name": "page", "in": "query", @@ -21167,61 +21160,233 @@ "schema": { "$ref": "#/components/schemas/Excludes" }, - "style": "deepObject", - "explode": true - }, - "CompressedCriteria": { - "name": "_criteria", - "in": "query", - "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the Criteria schema (see #/components/schemas/Criteria).", - "required": false, - "schema": { - "type": "string", - "format": "base64url", - "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" - } - }, - "CompressedNoneFieldsCriteria": { - "name": "_criteria", - "in": "query", - "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the NoneFieldsCriteria schema (see #/components/schemas/NoneFieldsCriteria).", - "required": false, - "schema": { - "type": "string", - "format": "base64url", - "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" - } + "style": "deepObject", + "explode": true + }, + "CompressedCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the Criteria schema (see #/components/schemas/Criteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + }, + "CompressedNoneFieldsCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the NoneFieldsCriteria schema (see #/components/schemas/NoneFieldsCriteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + }, + "noAggregations": { + "name": "no-aggregations", + "in": "query", + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "onlyAggregations": { + "name": "only-aggregations", + "in": "query", + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "securitySchemes": { + "ApiKey": { + "type": "apiKey", + "description": "Identifies the sales channel you want to access the API through", + "name": "sw-access-key", + "in": "header" + }, + "ContextToken": { + "type": "apiKey", + "description": "Identifies an anonymous or identified user session", + "name": "sw-context-token", + "in": "header" + } + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "paths": { + "/permission": { + "get": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch all available permissions", + "description": "This route is used to fetch all available permissions", + "operationId": "readPermissions", + "responses": { + "200": { + "description": "Permission collection", + "content": { + "application/json": { + "schema": { + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "type": "object", + "properties": { + "permissionName": { + "type": "string" + }, + "permissionDependencies": { + "type": "array", + "items": { + "type": "string" + } + }, + "permissionGroupName": { + "type": "string" + } + } + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "post": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Add a new permission", + "description": "This route is used to add a new permissions", + "operationId": "addPermission", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "Name of the new permission", + "type": "string" + }, + "group": { + "description": "Group of the new permission", + "type": "string" + }, + "dependencies": { + "description": "Optional dependencies for the new permission", + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object" + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Permission collection", + "content": { + "application/json": { + "schema": { + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "type": "object", + "properties": { + "permissionName": { + "type": "string" + }, + "permissionDependencies": { + "type": "array", + "items": { + "type": "string" + } + }, + "permissionGroupName": { + "type": "string" + } + } + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "securitySchemes": { - "ApiKey": { - "type": "apiKey", - "description": "Identifies the sales channel you want to access the API through", - "name": "sw-access-key", - "in": "header" - }, - "ContextToken": { - "type": "apiKey", - "description": "Identifies an anonymous or identified user session", - "name": "sw-context-token", - "in": "header" - } - } - }, - "security": [ - { - "ApiKey": [] - } - ], - "paths": { - "/employee/create": { + "/role/create": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Create a single employee and return the employee", - "description": "This route is used to create and return an employee", - "operationId": "createEmployee", + "summary": "Create a single role and return the role", + "description": "This route is used to create and return an role", + "operationId": "createRole", "parameters": [], "requestBody": { "required": true, @@ -21229,35 +21394,22 @@ "application/json": { "schema": { "properties": { - "firstName": { - "description": "First name of the new employee", - "type": "string" - }, - "lastName": { - "description": "Last name of the new employee", - "type": "string" - }, - "email": { - "description": "Email of the new employee", + "name": { + "description": "Name of the new role", "type": "string" }, - "languageId": { - "description": "Identifier of the [language](#/System%20%26%20Context/readLanguages) to be set for the new employee.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "permissions": { + "description": "Permissions of the new role", + "type": "array", + "items": { + "type": "string" + } }, - "roleId": { - "description": "Id of the role of the new employee", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "isDefaultRole": { + "description": "Ability to set the new role as default", + "type": "boolean" } }, - "required": [ - "firstName", - "lastName", - "email", - "languageId" - ], "type": "object" } } @@ -21265,11 +21417,11 @@ }, "responses": { "200": { - "description": "Employee entity", + "description": "Role entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } } @@ -21282,14 +21434,14 @@ ] } }, - "/employee": { + "/role": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of employees", - "description": "This route is used to load employees", - "operationId": "readEmployees", + "summary": "Fetch a list of roles", + "description": "This route is used to load roles", + "operationId": "readRoles", "parameters": [], "requestBody": { "required": false, @@ -21307,7 +21459,7 @@ }, "responses": { "200": { - "description": "Entity search result containing employees", + "description": "Entity search result containing roles", "content": { "application/json": { "schema": { @@ -21318,7 +21470,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } }, @@ -21343,9 +21495,9 @@ "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of employees", - "description": "This route is used to load employees", - "operationId": "readEmployeesPOST", + "summary": "Fetch a list of roles", + "description": "This route is used to load roles", + "operationId": "readRolesPOST", "parameters": [], "requestBody": { "required": false, @@ -21363,7 +21515,7 @@ }, "responses": { "200": { - "description": "Entity search result containing employees", + "description": "Entity search result containing roles", "content": { "application/json": { "schema": { @@ -21374,7 +21526,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } }, @@ -21396,33 +21548,33 @@ ] } }, - "/employee/{id}": { + "/role/{id}": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch one employee by id", - "description": "This route is used to fetch one employee by id\n\n**Available Associations:**\n- `role`\n- `language`\n- `organization`", - "operationId": "readB2bEmployee", + "summary": "Fetch one role by id", + "description": "This route is used to fetch one role by id", + "operationId": "readRole", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be read", + "description": "Identifier of the role to be fetched", "required": true, "schema": { "type": "string", - "format": "uuid" + "pattern": "^[0-9a-f]{32}$" } } ], "responses": { "200": { - "description": "Employee entity", + "description": "Role entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } } @@ -21438,14 +21590,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Update one employee by id", - "description": "This route is used to update one employee by id", - "operationId": "updateEmployee", + "summary": "Update one role by id", + "description": "This route is used to update one role by id", + "operationId": "updateRole", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be updated", + "description": "Identifier of the role to be updated", "required": true, "schema": { "type": "string", @@ -21459,21 +21611,20 @@ "application/json": { "schema": { "properties": { - "firstName": { - "description": "New first name of the employee", - "type": "string" - }, - "lastName": { - "description": "New last name of the employee", + "name": { + "description": "New name of the role", "type": "string" }, - "email": { - "description": "New email of the employee", - "type": "string" + "permissions": { + "description": "New permissions of the role", + "type": "array", + "items": { + "type": "string" + } }, - "roleId": { - "description": "New id of the role of the employee", - "type": "string" + "isDefaultRole": { + "description": "Ability to set the role as default", + "type": "boolean" } }, "type": "object" @@ -21483,11 +21634,11 @@ }, "responses": { "200": { - "description": "Employee entity", + "description": "Role entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } } @@ -21503,14 +21654,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Delete one employee by id", - "description": "This route is used to delete one employee by id", - "operationId": "deleteEmployee", + "summary": "Delete one role by id", + "description": "This route is used to delete one role by id", + "operationId": "deleteRole", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be deleted", + "description": "Identifier of the role to be fetched", "required": true, "schema": { "type": "string", @@ -21530,34 +21681,22 @@ ] } }, - "/employee/reinvite/{id}": { + "/role/default": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Reinvite employee by id", - "description": "This route is used to reinvite an employee via email by id", - "operationId": "reinviteEmployee", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the employee to be reinvited", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], + "summary": "Sets the default role Id for new employees", + "description": "This route is used to update the defaultRoleId for new employees", + "operationId": "updateDefaultRoleId", "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "storefrontUrl": { - "description": "URL of the storefront domain", + "id": { + "description": "Id of the roleId to be set as default", "type": "string" } }, @@ -21567,15 +21706,8 @@ } }, "responses": { - "200": { - "description": "Employee entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/B2bEmployee" - } - } - } + "204": { + "description": "No content response" } }, "security": [ @@ -21585,14 +21717,14 @@ ] } }, - "/role/create": { + "/employee/create": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Create a single role and return the role", - "description": "This route is used to create and return an role", - "operationId": "createRole", + "summary": "Create a single employee and return the employee", + "description": "This route is used to create and return an employee", + "operationId": "createEmployee", "parameters": [], "requestBody": { "required": true, @@ -21600,22 +21732,35 @@ "application/json": { "schema": { "properties": { - "name": { - "description": "Name of the new role", + "firstName": { + "description": "First name of the new employee", "type": "string" }, - "permissions": { - "description": "Permissions of the new role", - "type": "array", - "items": { - "type": "string" - } + "lastName": { + "description": "Last name of the new employee", + "type": "string" + }, + "email": { + "description": "Email of the new employee", + "type": "string" }, - "isDefaultRole": { - "description": "Ability to set the new role as default", - "type": "boolean" + "languageId": { + "description": "Identifier of the [language](#/System%20%26%20Context/readLanguages) to be set for the new employee.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "roleId": { + "description": "Id of the role of the new employee", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, + "required": [ + "firstName", + "lastName", + "email", + "languageId" + ], "type": "object" } } @@ -21623,11 +21768,11 @@ }, "responses": { "200": { - "description": "Role entity", + "description": "Employee entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } } @@ -21640,14 +21785,14 @@ ] } }, - "/role": { + "/employee": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRoles", + "summary": "Fetch a list of employees", + "description": "This route is used to load employees", + "operationId": "readEmployees", "parameters": [], "requestBody": { "required": false, @@ -21665,7 +21810,7 @@ }, "responses": { "200": { - "description": "Entity search result containing roles", + "description": "Entity search result containing employees", "content": { "application/json": { "schema": { @@ -21676,7 +21821,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } }, @@ -21701,9 +21846,9 @@ "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRolesPOST", + "summary": "Fetch a list of employees", + "description": "This route is used to load employees", + "operationId": "readEmployeesPOST", "parameters": [], "requestBody": { "required": false, @@ -21721,7 +21866,7 @@ }, "responses": { "200": { - "description": "Entity search result containing roles", + "description": "Entity search result containing employees", "content": { "application/json": { "schema": { @@ -21732,7 +21877,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } }, @@ -21754,33 +21899,33 @@ ] } }, - "/role/{id}": { + "/employee/{id}": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch one role by id", - "description": "This route is used to fetch one role by id", - "operationId": "readRole", + "summary": "Fetch one employee by id", + "description": "This route is used to fetch one employee by id\n\n**Available Associations:**\n- `role`\n- `language`\n- `organization`", + "operationId": "readB2bEmployee", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be fetched", + "description": "Identifier of the employee to be read", "required": true, "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "uuid" } } ], "responses": { "200": { - "description": "Role entity", + "description": "Employee entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } } @@ -21796,14 +21941,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Update one role by id", - "description": "This route is used to update one role by id", - "operationId": "updateRole", + "summary": "Update one employee by id", + "description": "This route is used to update one employee by id", + "operationId": "updateEmployee", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be updated", + "description": "Identifier of the employee to be updated", "required": true, "schema": { "type": "string", @@ -21817,20 +21962,21 @@ "application/json": { "schema": { "properties": { - "name": { - "description": "New name of the role", + "firstName": { + "description": "New first name of the employee", "type": "string" }, - "permissions": { - "description": "New permissions of the role", - "type": "array", - "items": { - "type": "string" - } + "lastName": { + "description": "New last name of the employee", + "type": "string" }, - "isDefaultRole": { - "description": "Ability to set the role as default", - "type": "boolean" + "email": { + "description": "New email of the employee", + "type": "string" + }, + "roleId": { + "description": "New id of the role of the employee", + "type": "string" } }, "type": "object" @@ -21840,11 +21986,11 @@ }, "responses": { "200": { - "description": "Role entity", + "description": "Employee entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } } @@ -21860,14 +22006,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Delete one role by id", - "description": "This route is used to delete one role by id", - "operationId": "deleteRole", + "summary": "Delete one employee by id", + "description": "This route is used to delete one employee by id", + "operationId": "deleteEmployee", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be fetched", + "description": "Identifier of the employee to be deleted", "required": true, "schema": { "type": "string", @@ -21887,125 +22033,35 @@ ] } }, - "/role/default": { + "/employee/reinvite/{id}": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Sets the default role Id for new employees", - "description": "This route is used to update the defaultRoleId for new employees", - "operationId": "updateDefaultRoleId", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "id": { - "description": "Id of the roleId to be set as default", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "204": { - "description": "No content response" - } - }, - "security": [ + "summary": "Reinvite employee by id", + "description": "This route is used to reinvite an employee via email by id", + "operationId": "reinviteEmployee", + "parameters": [ { - "ApiKey": [] - } - ] - } - }, - "/permission": { - "get": { - "tags": [ - "B2B Employee Management" - ], - "summary": "Fetch all available permissions", - "description": "This route is used to fetch all available permissions", - "operationId": "readPermissions", - "responses": { - "200": { - "description": "Permission collection", - "content": { - "application/json": { - "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "permissionName": { - "type": "string" - }, - "permissionDependencies": { - "type": "array", - "items": { - "type": "string" - } - }, - "permissionGroupName": { - "type": "string" - } - } - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } + "name": "id", + "in": "path", + "description": "Identifier of the employee to be reinvited", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "post": { - "tags": [ - "B2B Employee Management" ], - "summary": "Add a new permission", - "description": "This route is used to add a new permissions", - "operationId": "addPermission", "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "name": { - "description": "Name of the new permission", - "type": "string" - }, - "group": { - "description": "Group of the new permission", + "storefrontUrl": { + "description": "URL of the storefront domain", "type": "string" - }, - "dependencies": { - "description": "Optional dependencies for the new permission", - "type": "array", - "items": { - "type": "string" - } } }, "type": "object" @@ -22013,44 +22069,13 @@ } } }, - "parameters": [], "responses": { "200": { - "description": "Permission collection", + "description": "Employee entity", "content": { "application/json": { "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "permissionName": { - "type": "string" - }, - "permissionDependencies": { - "type": "array", - "items": { - "type": "string" - } - }, - "permissionGroupName": { - "type": "string" - } - } - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/B2bEmployee" } } }