diff --git a/SwagCommercial-storeapi.json b/SwagCommercial-storeapi.json index b63b83e..c119af6 100644 --- a/SwagCommercial-storeapi.json +++ b/SwagCommercial-storeapi.json @@ -873,6 +873,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -954,9 +957,6 @@ }, "B2bComponentsApprovalRuleAppScriptCondition": { "description": "Added since version: 6.6.3.0", - "required": [ - "name" - ], "properties": { "id": { "type": "string", @@ -1067,6 +1067,9 @@ "format": "date-time", "readOnly": true }, + "customer": { + "$ref": "#/components/schemas/Customer" + }, "organizations": { "type": "array", "items": { @@ -2633,6 +2636,130 @@ }, "type": "object" }, + "BundleDiscount": { + "description": "Added since version: 6.7.9.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "description": "Version identifier of the bundle discount entity.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "type": { + "type": "string", + "enum": [ + "absolute", + "percentage" + ] + }, + "value": { + "type": "number" + }, + "maxValue": { + "type": "number" + }, + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "preventCombination": { + "type": "boolean" + }, + "active": { + "type": "boolean" + }, + "apiAlias": { + "type": "string", + "example": "bundle_discount" + } + }, + "type": "object", + "required": [ + "id", + "type", + "value" + ] + }, + "BundleItem": { + "description": "Added since version: 6.7.9.0", + "required": [ + "productId", + "quantity", + "min", + "required", + "id" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "description": "Version identifier of the bundle item entity.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "bundleId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "quantity": { + "type": "integer", + "minimum": 1 + }, + "min": { + "type": "integer", + "minimum": 1 + }, + "max": { + "type": "integer" + }, + "required": { + "type": "boolean" + }, + "position": { + "type": "integer" + }, + "showBundleOnItemPdp": { + "type": "boolean" + }, + "product": { + "type": "object" + }, + "apiAlias": { + "type": "string", + "example": "bundle_item" + } + }, + "type": "object" + }, "CategoryJsonApi": { "description": "Added since version: 6.0.0.0", "allOf": [ @@ -4552,7 +4679,7 @@ "format": "date-time" }, "hash": { - "description": "Password hash for customer recovery.", + "description": "Customer registration double opt-in hash for confirming the customer account.", "type": "string" }, "guest": { @@ -5646,6 +5773,9 @@ "description": "Technical name of document type.", "type": "string" }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5656,9 +5786,6 @@ "format": "date-time", "readOnly": true }, - "customFields": { - "type": "object" - }, "translated": { "type": "object" } @@ -8909,8 +9036,7 @@ "OrderReturnLineItemReason": { "required": [ "id", - "reasonKey", - "content" + "reasonKey" ], "properties": { "id": { @@ -10096,14 +10222,9 @@ } }, "type": "object" - } - }, - "type": "object" - }, - "relationships": { - "properties": { - "downloads": { - "description": "Downloadable files associated with the product (e.g., manuals, digital content)", + }, + "bundleItems": { + "description": "Bundle items assigned to this grouped bundle product.", "properties": { "links": { "type": "object", @@ -10111,7 +10232,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/downloads" + "example": "/product/deb10517653c255364175796ace3553f/bundleItems" } } }, @@ -10122,11 +10243,11 @@ "properties": { "type": { "type": "string", - "example": "product_download" + "example": "bundle_item" }, "id": { "type": "string", - "example": "d07d50a751bc6ddf12bf3af0efee9b45" + "example": "d7706d2e11bc4878ffb242403ea5b274" } } } @@ -10134,8 +10255,8 @@ }, "type": "object" }, - "parent": { - "description": "Unique identity of the product.", + "bundleDiscounts": { + "description": "Discount configurations that belong to this bundle.", "properties": { "links": { "type": "object", @@ -10143,29 +10264,31 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/parent" + "example": "/product/deb10517653c255364175796ace3553f/bundleDiscounts" } } }, "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "d0e45878043844ffc41aac437e86b602" + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "bundle_discount" + }, + "id": { + "type": "string", + "example": "a79712cce6d0182645b519f6add10f77" + } } } } }, "type": "object" }, - "children": { - "description": "Product variants that inherit from this parent product", + "bundleSalesChannels": { + "description": "Sales channels in which this bundle is available.", "properties": { "links": { "type": "object", @@ -10173,7 +10296,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/children" + "example": "/product/deb10517653c255364175796ace3553f/bundleSalesChannels" } } }, @@ -10184,20 +10307,21 @@ "properties": { "type": { "type": "string", - "example": "product" + "example": "sales_channel" }, "id": { "type": "string", - "example": "268184c12df027f536154d099d497b31" + "example": "d4aa52cb00cd89c5e047c6a5c72a0384" } } } } }, - "type": "object" + "type": "object", + "readOnly": true }, - "deliveryTime": { - "description": "Estimated delivery time for the product", + "items": { + "description": "Products referenced as bundle items of this bundle.", "properties": { "links": { "type": "object", @@ -10205,29 +10329,31 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/deliveryTime" + "example": "/product/deb10517653c255364175796ace3553f/items" } } }, "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "delivery_time" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "8c888ae25a7bd42057370e31f7e01044" + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "example": "691d502cfd0e0626cd3b058e5682ad1c" + } } } } }, "type": "object" }, - "tax": { - "description": "Tax configuration (rate and calculation rules)", + "belongToBundleItems": { + "description": "Reference to the bundle item definition when this product acts as a bundle item.", "properties": { "links": { "type": "object", @@ -10235,29 +10361,31 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/tax" + "example": "/product/deb10517653c255364175796ace3553f/belongToBundleItems" } } }, "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "tax" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "06565e5611f23fdf8cc43e5077b92b54" + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "bundle_item" + }, + "id": { + "type": "string", + "example": "db4ef6a91ceb3a70935c07a3617ea4cd" + } } } } }, "type": "object" }, - "manufacturer": { - "description": "Product manufacturer or brand information", + "bundles": { + "description": "Bundles that include this product as an item.", "properties": { "links": { "type": "object", @@ -10265,29 +10393,36 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/manufacturer" + "example": "/product/deb10517653c255364175796ace3553f/bundles" } } }, "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_manufacturer" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "c2904bca62b22443d6cf5e9d89cab204" + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "example": "9e21e19f42862a3b26cd7aae135a3f74" + } } } } }, "type": "object" - }, - "unit": { - "description": "Product unit of measure (e.g., piece, liter, kg)", + } + }, + "type": "object" + }, + "relationships": { + "properties": { + "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", "properties": { "links": { "type": "object", @@ -10295,18 +10430,202 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/unit" + "example": "/product/deb10517653c255364175796ace3553f/downloads" } } }, "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "unit" - }, - "id": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_download" + }, + "id": { + "type": "string", + "example": "d07d50a751bc6ddf12bf3af0efee9b45" + } + } + } + } + }, + "type": "object" + }, + "parent": { + "description": "Unique identity of the product.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/parent" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "d0e45878043844ffc41aac437e86b602" + } + } + } + }, + "type": "object" + }, + "children": { + "description": "Product variants that inherit from this parent product", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/children" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "example": "268184c12df027f536154d099d497b31" + } + } + } + } + }, + "type": "object" + }, + "deliveryTime": { + "description": "Estimated delivery time for the product", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/deliveryTime" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "delivery_time" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "8c888ae25a7bd42057370e31f7e01044" + } + } + } + }, + "type": "object" + }, + "tax": { + "description": "Tax configuration (rate and calculation rules)", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/tax" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "tax" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "06565e5611f23fdf8cc43e5077b92b54" + } + } + } + }, + "type": "object" + }, + "manufacturer": { + "description": "Product manufacturer or brand information", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/manufacturer" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_manufacturer" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "c2904bca62b22443d6cf5e9d89cab204" + } + } + } + }, + "type": "object" + }, + "unit": { + "description": "Product unit of measure (e.g., piece, liter, kg)", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/unit" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "unit" + }, + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", "example": "3e34bdebd9bd5edda27e8728904a2552" @@ -11269,71 +11588,264 @@ } }, "type": "object" - } - }, - "type": "object" - }, - "downloads": { - "description": "Downloadable files associated with the product (e.g., manuals, digital content)", - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductDownload" - } - }, - "parent": { - "$ref": "#/components/schemas/Product", - "description": "Unique identity of the product." - }, - "children": { - "description": "Product variants that inherit from this parent product", - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - }, - "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime", - "description": "Estimated delivery time for the product" - }, - "tax": { - "$ref": "#/components/schemas/Tax", - "description": "Tax configuration (rate and calculation rules)" - }, - "manufacturer": { - "$ref": "#/components/schemas/ProductManufacturer", - "description": "Product manufacturer or brand information" - }, - "unit": { - "$ref": "#/components/schemas/Unit", - "description": "Product unit of measure (e.g., piece, liter, kg)" - }, - "cover": { - "$ref": "#/components/schemas/ProductMedia", - "description": "Main product image displayed in listings and detail pages" - }, - "cmsPage": { - "$ref": "#/components/schemas/CmsPage", - "description": "Custom CMS page layout for the product detail page" - }, - "canonicalProduct": { - "$ref": "#/components/schemas/Product", - "description": "Canonical product reference for variant consolidation and SEO purposes" - }, - "media": { - "description": "Product images and media gallery", - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductMedia" - } - }, - "crossSellings": { - "description": "Cross-selling configurations (related products, accessories, similar items)", - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductCrossSelling" - } - }, - "configuratorSettings": { + }, + "bundleItems": { + "description": "Bundle items assigned to this grouped bundle product.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/bundleItems" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "bundle_item" + }, + "id": { + "type": "string", + "example": "d7706d2e11bc4878ffb242403ea5b274" + } + } + } + } + }, + "type": "object" + }, + "bundleDiscounts": { + "description": "Discount configurations that belong to this bundle.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/bundleDiscounts" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "bundle_discount" + }, + "id": { + "type": "string", + "example": "a79712cce6d0182645b519f6add10f77" + } + } + } + } + }, + "type": "object" + }, + "bundleSalesChannels": { + "description": "Sales channels in which this bundle is available.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/bundleSalesChannels" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "sales_channel" + }, + "id": { + "type": "string", + "example": "d4aa52cb00cd89c5e047c6a5c72a0384" + } + } + } + } + }, + "type": "object", + "readOnly": true + }, + "items": { + "description": "Products referenced as bundle items of this bundle.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/items" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "example": "691d502cfd0e0626cd3b058e5682ad1c" + } + } + } + } + }, + "type": "object" + }, + "belongToBundleItems": { + "description": "Reference to the bundle item definition when this product acts as a bundle item.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/belongToBundleItems" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "bundle_item" + }, + "id": { + "type": "string", + "example": "db4ef6a91ceb3a70935c07a3617ea4cd" + } + } + } + } + }, + "type": "object" + }, + "bundles": { + "description": "Bundles that include this product as an item.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/bundles" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "example": "9e21e19f42862a3b26cd7aae135a3f74" + } + } + } + } + }, + "type": "object" + } + }, + "type": "object" + }, + "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductDownload" + } + }, + "parent": { + "$ref": "#/components/schemas/Product", + "description": "Unique identity of the product." + }, + "children": { + "description": "Product variants that inherit from this parent product", + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "deliveryTime": { + "$ref": "#/components/schemas/DeliveryTime", + "description": "Estimated delivery time for the product" + }, + "tax": { + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration (rate and calculation rules)" + }, + "manufacturer": { + "$ref": "#/components/schemas/ProductManufacturer", + "description": "Product manufacturer or brand information" + }, + "unit": { + "$ref": "#/components/schemas/Unit", + "description": "Product unit of measure (e.g., piece, liter, kg)" + }, + "cover": { + "$ref": "#/components/schemas/ProductMedia", + "description": "Main product image displayed in listings and detail pages" + }, + "cmsPage": { + "$ref": "#/components/schemas/CmsPage", + "description": "Custom CMS page layout for the product detail page" + }, + "canonicalProduct": { + "$ref": "#/components/schemas/Product", + "description": "Canonical product reference for variant consolidation and SEO purposes" + }, + "media": { + "description": "Product images and media gallery", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductMedia" + } + }, + "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductCrossSelling" + } + }, + "configuratorSettings": { "description": "Variant configurator settings defining available options for product variants", "type": "array", "items": { @@ -14432,9 +14944,10 @@ "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.landing.page", + "frontend.bundle.detail.page", + "frontend.detail.page" ] }, "pathInfo": { @@ -14517,9 +15030,10 @@ "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.landing.page", + "frontend.bundle.detail.page", + "frontend.detail.page" ] }, "pathInfo": { @@ -15689,6 +16203,10 @@ "additionalAddressLine2": { "type": "string" }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, "customFields": { "type": "object" }, @@ -16602,1874 +17120,1105 @@ }, "type": "object" }, - "ProductDetailResponse": { + "Cart": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "name": { + "description": "Name of the cart - for example `guest-cart`", + "type": "string" }, - "configurator": { + "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", - "description": "List of property groups with their corresponding options and information on how to display them.", "items": { - "$ref": "#/components/schemas/PropertyGroup" + "$ref": "#/components/schemas/LineItem" } - } - }, - "required": [ - "product" - ] - }, - "CartDeliveryPosition": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "deliveryDate": { + }, + "errors": { "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } }, - "latest": { - "type": "string", - "format": "date-time" + { + "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" + ] + } } - } - }, - "identifier": { - "type": "string" - }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" + ] }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "CartItems": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { + "deliveries": { "type": "array", "items": { - "$ref": "#/components/schemas/LineItem" - } - } - } - }, - "CookieGroup": { - "type": "object", - "properties": { - "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" - ] + "$ref": "#/components/schemas/CartDelivery" } - ] - }, - "required": [ - "name", - "isRequired", - "apiAlias" - ] - }, - "CartPriceQuantity": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_quantity" - ] - }, - "isCalculated": { - "type": "boolean" - }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" - }, - "price": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" }, - "taxRules": { + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", "type": "array", "items": { "type": "object", "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { + "paymentMethodId": { "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" } } } }, - "type": { - "type": "string" - } - }, - "required": [ - "apiAlias" - ] - }, - "CartPriceReference": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] + "modified": { + "type": "boolean" }, - "listPrice": { + "customerComment": { + "description": "A comment that can be added to the cart.", "oneOf": [ { - "$ref": "#/components/schemas/CartListPrice" + "type": "string" }, { "type": "null" } ] }, - "regulationPrice": { + "affiliateCode": { + "description": "An affiliate tracking code", "oneOf": [ { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "type": "string" }, { "type": "null" } ] }, - "hasRange": { - "type": "boolean" - }, - "variantId": { + "campaignCode": { + "description": "A campaign tracking code", "oneOf": [ { - "type": "string", - "format": "^[0-9a-f]{32}$" + "type": "string" }, { "type": "null" } ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart" + ] } }, "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "price", + "apiAlias" ] }, - "CartDelivery": { + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, + "Breadcrumb": { "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" - } - } + "name": { + "type": "string" }, - "location": { + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "type": { + "$ref": "#/components/schemas/Category/properties/type" + }, + "translated": { "type": "object", + "additionalProperties": true, "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] + "customFields": { + "type": "object" }, - "country": { - "$ref": "#/components/schemas/Country" + "slotConfig": { + "type": "object" }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" }, - "state": { - "$ref": "#/components/schemas/CountryState" + "internalLink": { + "type": "string" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" } } }, - "positions": { + "path": { + "type": "string" + }, + "seoUrls": { "type": "array", "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" + "$ref": "#/components/schemas/SeoUrl" } }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] } - } + }, + "required": [ + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" + ] }, - "CrossSellingElement": { + "CartDeliveryInformation": { "type": "object", "properties": { - "crossSelling": { - "$ref": "#/components/schemas/ProductCrossSelling" + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_information" + ] }, - "products": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" + "freeDelivery": { + "type": "boolean" + }, + "deliveryTime": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_time" + ] + } } }, - "total": { - "type": "integer", - "format": "int32" + "height": { + "type": "integer" }, - "streamId": { - "type": "string", - "format": "uuid" + "length": { + "type": "integer" }, - "apiAlias": { - "type": "string", - "enum": [ - "cross_selling_element" - ] + "restockTime": { + "type": "integer" + }, + "stock": { + "type": "integer" + }, + "weight": { + "type": "integer" + }, + "width": { + "type": "integer" } }, "required": [ - "crossSelling", - "products", - "total", "apiAlias" ] }, - "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": { + "ProductListingResult": { + "allOf": [ + { + "$ref": "#/components/schemas/EntitySearchResult" + }, + { + "type": "object", + "properties": { + "currentFilters": { "type": "object", + "description": "Contains the state of the filters. These can be used to create listing filters.", "properties": { - "shippingMethodId": { - "type": "string" - }, - "name": { + "navigationId": { "type": "string" }, - "description": { - "type": "string" - } - } - } - }, - "orderDeliveries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "orderId": { - "type": "string" + "manufacturer": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } }, - "shippingOrderAddressId": { - "type": "string" + "price": { + "type": "object", + "properties": { + "min": { + "type": "integer", + "default": 0 + }, + "max": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "min", + "max" + ] }, - "shippingMethodId": { - "type": "string" + "rating": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] }, - "shippingDateEarliest": { - "type": "string", - "format": "date-time" - }, - "shippingDateLatest": { - "type": "string", - "format": "date-time" - }, - "stateId": { - "type": "string" - } - } - } - }, - "salesChannelDefaultAssignments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "typeId": { - "type": "string" - }, - "languageId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "paymentMethodId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "countryId": { - "type": "string" - }, - "navigationCategoryId": { - "type": "string" - }, - "navigationCategoryDepth": { - "type": "integer", - "format": "int32" - }, - "footerCategoryId": { - "type": "string" - }, - "serviceCategoryId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "shortName": { - "type": "string" - }, - "accessKey": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "maintenance": { - "type": "boolean" - }, - "maintenanceIpWhitelist": { - "type": "string" - }, - "mailHeaderFooterId": { - "type": "string" - }, - "customerGroupId": { - "type": "string" + "shipping-free": { + "type": "boolean", + "default": false }, - "hreflangActive": { - "type": "boolean" + "properties": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } }, - "hreflangDefaultDomainId": { + "search": { "type": "string" } - } - } - }, - "salesChannels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "typeId": { - "type": "string" - }, - "languageId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "paymentMethodId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "countryId": { - "type": "string" - }, - "navigationCategoryId": { - "type": "string" - }, - "navigationCategoryDepth": { - "type": "integer", - "format": "int32" - }, - "footerCategoryId": { - "type": "string" - }, - "serviceCategoryId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "shortName": { - "type": "string" - }, - "accessKey": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "maintenance": { - "type": "boolean" - }, - "maintenanceIpWhitelist": { - "type": "string" - }, - "mailHeaderFooterId": { - "type": "string" - }, - "customerGroupId": { - "type": "string" - }, - "hreflangActive": { - "type": "boolean" + }, + "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" + ] + } }, - "hreflangDefaultDomainId": { - "type": "string" - } + "required": [ + "label", + "translated", + "key", + "priority", + "apiAlias" + ] } - } - }, - "availabilityRule": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "priority": { - "type": "integer", - "format": "int32" - }, - "invalid": { - "type": "boolean" + }, + "sorting": { + "type": "string" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" } - } - }, - "availabilityRuleId": { - "type": "string" - }, - "prices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "shippingMethodId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "ruleId": { - "type": "string" - }, - "calculation": { - "type": "integer", - "format": "int32" - }, - "quantityStart": { - "type": "number", - "format": "float" - }, - "quantityEnd": { - "type": "number", - "format": "float" - }, - "price": { - "type": "number", - "format": "float" - }, - "calculationRuleId": { - "type": "string" - } - } - } - }, - "mediaId": { - "type": "string" - }, - "media": { - "type": "object", - "properties": { - "userId": { - "type": "string" - }, - "mimeType": { - "type": "string" - }, - "fileExtension": { - "type": "string" - }, - "fileSize": { - "type": "integer", - "format": "int32" - }, - "title": { - "type": "string" - }, - "metaDataRaw": { - "type": "string" - }, - "mediaTypeRaw": { - "type": "string" - }, - "uploadedAt": { - "type": "string", - "format": "date-time" - }, - "alt": { - "type": "string" - }, - "url": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "mediaFolderId": { - "type": "string" - }, - "private": { - "type": "boolean" - }, - "thumbnailsRo": { - "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" + }, + "entity": { + "type": "string", + "enum": [ + "product" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_listing" + ] } }, "required": [ - "gross", - "net" + "elements", + "availableSortings", + "currentFilters", + "apiAlias" ] } - }, - "required": [ - "currencyId", - "gross", - "net" - ] - }, - "Sitemap": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "filename", - "created" ] }, - "AggregationEntity": { - "title": "AggregationEntity", + "AggregationMetrics": { "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": [ - "entity" + "avg", + "count", + "max", + "min", + "stats", + "sum" ] }, "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", "type": "string" } }, "required": [ "name", "type", - "field", - "definition" + "field" ] }, - "AggregationFilter": { - "title": "AggregationFilter", + "MeasurementUnits": { "type": "object", + "description": "Configuration of the measurement system", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", + "system": { "type": "string", "enum": [ - "filter" - ] - }, - "filter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Filters" - } - } - }, - "required": [ - "name", - "type", - "filter" - ] - }, - "AggregationTerms": { - "title": "AggregationTerms", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "terms" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "limit": { - "description": "The number of terms to return", - "type": "number" - }, - "sort": { - "type": "array", - "description": "Sorting the aggregation result.", - "items": { - "$ref": "#/components/schemas/Sort" + "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." + } } } - }, - "required": [ - "name", - "type", - "field" - ] + } }, - "AggregationHistogram": { - "title": "AggregationHistogram", + "CartListPrice": { "type": "object", + "description": "", "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", + "discount": { "type": "number" }, - "format": { - "description": "The format of the histogram", - "type": "string" + "percentage": { + "type": "number" }, - "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" + "price": { + "type": "number" }, - "type": { - "description": "The type of aggregation", + "apiAlias": { "type": "string", "enum": [ - "range" + "cart_list_price" ] - }, - "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" + "apiAlias" ] }, - "Breadcrumb": { + "SalesChannelContext": { "type": "object", "properties": { - "name": { + "token": { + "description": "Context the user session", "type": "string" }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "type": { - "$ref": "#/components/schemas/Category/properties/type" - }, - "translated": { + "currentCustomerGroup": { "type": "object", - "additionalProperties": true, + "description": "Customer group of the current user", "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" - }, - "linkType": { - "$ref": "#/components/schemas/Category/properties/linkType" - }, - "internalLink": { - "type": "string" - }, - "externalLink": { + "name": { "type": "string" }, - "linkNewTab": { + "displayGross": { "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { + } + } + }, + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { "type": "string" }, - "keywords": { - "type": "string" + "displayGross": { + "type": "boolean" } } }, - "path": { - "type": "string" + "currency": { + "$ref": "#/components/schemas/Currency" }, - "seoUrls": { + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { "type": "array", + "description": "Currently active tax rules and/or rates", "items": { - "$ref": "#/components/schemas/SeoUrl" + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } } }, - "apiAlias": { - "type": "string", - "enum": [ - "breadcrumb" - ] - } - }, - "required": [ - "name", - "categoryId", - "type", - "translated", - "path", - "apiAlias" - ] - }, - "ReferencePrice": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { + "customer": { "oneOf": [ { - "$ref": "#/components/schemas/ListPrice" + "type": "null" }, { - "type": "null" + "$ref": "#/components/schemas/Customer" } ] }, - "regulationPrice": { - "oneOf": [ - { + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "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" + }, + "currencyId": { + "type": "string" + }, + "currencyFactor": { + "type": "integer" + }, + "currencyPrecision": { + "type": "integer", + "format": "int32" + }, + "languageIdChain": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "source": { "type": "object", + "required": [ + "salesChannelId", + "type" + ], "properties": { - "price": { - "type": "number" - }, - "apiAlias": { + "type": { "type": "string", "enum": [ - "cart_regulation_price" + "sales-channel", + "shop-api" ] + }, + "salesChannelId": { + "type": "string" } } }, - { - "type": "null" + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" } - ] + } }, - "hasRange": { - "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" + } + } }, - "variantId": { - "oneOf": [ - { + "totalRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { "type": "string", - "format": "^[0-9a-f]{32}$" + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] }, - { - "type": "null" + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + } + }, + "languageInfo": { + "type": "object", + "required": [ + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" } + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "sales_channel_context" ] } }, "required": [ - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" ] }, - "ProductListingResult": { + "ProductListingCriteria": { "allOf": [ { - "$ref": "#/components/schemas/EntitySearchResult" + "$ref": "#/components/schemas/Criteria" }, { "type": "object", + "description": "Additional search parameters for product listings", "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" - ] + "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" }, - "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" - ] - } + "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 }, - "sorting": { + "p": { + "description": "Search result page", + "type": "integer", + "default": 1 + }, + "manufacturer": { + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", "type": "string" }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } + "min-price": { + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 }, - "entity": { - "type": "string", - "enum": [ - "product" - ] + "max-price": { + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 }, - "apiAlias": { - "type": "string", - "enum": [ - "product_listing" + "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": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" - ] + } } ] }, - "LineItemType": { - "type": "string", - "deprecated": true, - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", - "quantity" - ] - }, - "LineItem": { - "type": "object", + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } + "countryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "cover": { - "$ref": "#/components/schemas/Media" + "countryStateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "dataContextHash": { + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { "type": "string" }, - "dataTimestamp": { + "lastName": { "type": "string" }, - "deliveryInformation": { - "$ref": "#/components/schemas/CartDeliveryInformation" + "zipcode": { + "type": "string" }, - "description": { + "city": { "type": "string" }, - "good": { - "type": "boolean" + "company": { + "type": "string" }, - "id": { + "street": { "type": "string" }, - "label": { + "department": { "type": "string" }, - "modified": { - "type": "boolean" + "title": { + "type": "string" }, - "modifiedByApp": { - "type": "boolean" + "phoneNumber": { + "type": "string" }, - "payload": { - "$ref": "#/components/schemas/ProductJsonApi" + "additionalAddressLine1": { + "type": "string" }, - "price": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "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" - ] - } - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "quantity": { - "type": "number" - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] - }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } - ] - }, - "totalPrice": { - "type": "number" - }, - "unitPrice": { - "type": "number" - }, - "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", - "totalPrice", - "quantity", - "unitPrice" - ] - }, - "priceDefinition": { - "$ref": "#/components/schemas/CartPriceQuantity" - }, - "quantity": { - "type": "number" - }, - "quantityInformation": { - "type": "object", - "properties": { - "maxPurchase": { - "type": "number" - }, - "minPurchase": { - "type": "number" - }, - "purchaseSteps": { - "type": "number" - } - } - }, - "referencedId": { + "additionalAddressLine2": { "type": "string" }, - "removable": { - "type": "boolean" - }, - "stackable": { - "type": "boolean" + "customFields": { + "type": "object" }, - "states": { - "deprecated": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "is-physical", - "is-download" - ] - } + "country": { + "$ref": "#/components/schemas/Country" }, - "type": { - "$ref": "#/components/schemas/OrderLineItem/properties/type" + "countryState": { + "$ref": "#/components/schemas/CountryState" }, - "uniqueIdentifier": { - "type": "string" + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, - "required": [ - "id", - "type", - "deliveryInformation", - "payload", - "quantity", - "states" + "type": "object" + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" ] }, - "SalesChannelContext": { + "Sitemap": { "type": "object", "properties": { - "token": { - "description": "Context the user session", + "filename": { "type": "string" }, - "currentCustomerGroup": { + "created": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "filename", + "created" + ] + }, + "OrderRouteResponse": { + "type": "object", + "properties": { + "orders": { "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + } + } }, - "displayGross": { - "type": "boolean" + { + "$ref": "#/components/schemas/EntitySearchResult" } - } + ] }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", + "paymentChangeable": { "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } + "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" + ] + }, + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "CartPriceReference": { + "type": "object", + "properties": { + "purchaseUnit": { + "type": "number" }, - "currency": { - "$ref": "#/components/schemas/Currency" + "referenceUnit": { + "type": "number" }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" + "unitName": { + "type": "string" }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + "price": { + "type": "number" }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] }, - "customer": { + "listPrice": { "oneOf": [ { - "type": "null" + "$ref": "#/components/schemas/CartListPrice" }, { - "$ref": "#/components/schemas/Customer" + "type": "null" } ] }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "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" - }, - "currencyId": { - "type": "string" - }, - "currencyFactor": { - "type": "integer" - }, - "currencyPrecision": { - "type": "integer", - "format": "int32" - }, - "languageIdChain": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "source": { + "regulationPrice": { + "oneOf": [ + { "type": "object", - "required": [ - "salesChannelId", - "type" - ], "properties": { - "type": { + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "sales-channel", - "shop-api" + "cart_regulation_price" ] - }, - "salesChannelId": { - "type": "string" } } }, - "taxState": { - "type": "string" - }, - "useCache": { - "type": "boolean" + { + "type": "null" } - } + ] }, - "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" - } - } + "hasRange": { + "type": "boolean" }, - "totalRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { + "variantId": { + "oneOf": [ + { "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" - } - } - }, - "languageInfo": { - "type": "object", - "required": [ - "localeCode", - "name" - ], - "properties": { - "name": { - "type": "string" + "format": "^[0-9a-f]{32}$" }, - "localeCode": { - "type": "string" + { + "type": "null" } - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "sales_channel_context" ] } }, "required": [ - "salesChannel", "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" ] }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } - }, - "AccountNewsletterRecipient": { + "CartItems": { "type": "object", + "required": [ + "items" + ], "properties": { - "status": { - "type": "string", - "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "account_newsletter_recipient" - ] + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } } - }, - "required": [ - "status", - "apiAlias" - ] + } }, - "FindProductVariantRouteResponse": { + "EntitySearchResult": { "type": "object", "properties": { - "foundCombination": { - "type": "object", - "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } + "entity": { + "type": "string" + }, + "total": { + "type": "integer", + "description": "The total number of found entities" + }, + "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" } + }, + "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." } } }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - } - }, - "CartDeliveryInformation": { + "Criteria": { "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_information" - ] - }, - "freeDelivery": { - "type": "boolean" - }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer" - }, - "max": { - "type": "integer" - }, - "unit": { - "type": "string" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_time" - ] - } - } - }, - "height": { - "type": "integer" - }, - "length": { - "type": "integer" - }, - "restockTime": { - "type": "integer" - }, - "stock": { - "type": "integer" - }, - "weight": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "required": [ - "apiAlias" - ] - }, - "SuccessResponse": { - "type": "object", - "properties": { - "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)", + "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", @@ -18996,72 +18745,150 @@ "parameters" ] }, - "AggregationMetrics": { + "CartError": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "name": { + "key": { "type": "string" }, - "type": { - "type": "string", + "level": { + "type": "number", "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" - ] + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "field": { + "message": { + "type": "string" + }, + "messageKey": { "type": "string" } }, "required": [ - "name", - "type", - "field" + "key", + "level", + "message", + "messageKey" ] }, - "MeasurementUnits": { + "WishlistLoadRouteResponse": { "type": "object", - "description": "Configuration of the measurement system", + "required": [ + "products" + ], "properties": { - "system": { + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "salesChannelId": { + "type": "string" + } + } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + }, + "ReferencePrice": { + "type": "object", + "properties": { + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { + "type": "string" + }, + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + "cart_price_reference" + ] }, - "units": { + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "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": [ + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "FindProductVariantRouteResponse": { + "type": "object", + "properties": { + "foundCombination": { "type": "object", - "description": "Units used in the measurement system.", "properties": { - "length": { + "variantId": { "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." + "pattern": "^[0-9a-f]{32}$" }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." + "options": { + "type": "array", + "items": { + "type": "string" + } } } } @@ -19101,36 +18928,200 @@ "apiAlias" ] }, - "ContextMeasurementSystemInfo": { + "CookieGroup": { "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." + "isRequired": { + "type": "boolean" }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", + "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" + ] + }, + "AccountNewsletterRecipient": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "undefined", + "notSet", + "direct", + "optIn", + "optOut" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "account_newsletter_recipient" + ] + } + }, + "required": [ + "status", + "apiAlias" + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" + ] + }, + "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": [ + "apiAlias" + ] + }, + "ProductMeasurements": { + "type": "object", + "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", + "properties": { + "width": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", "ft" ], - "default": "mm", - "description": "Unit of length." + "default": "mm" }, - "weight": { + "value": { + "type": "number" + } + } + }, + "height": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } + }, + "length": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } + }, + "weight": { + "type": "object", + "properties": { + "unit": { "type": "string", "enum": [ "g", @@ -19138,36 +19129,65 @@ "oz", "lb" ], - "default": "kg", - "description": "Unit of weight." + "default": "kg" + }, + "value": { + "type": "number" } } } } }, - "ListPrice": { + "CartDelivery": { "type": "object", - "description": "", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "discount": { - "type": "number" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "percentage": { - "type": "number" + "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" + } + } }, - "price": { - "type": "number" + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDeliveryPosition" + } }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } - }, - "required": [ - "apiAlias" - ] + } }, "ProductListingFlags": { "type": "object", @@ -19197,339 +19217,491 @@ } } }, - "CartListPrice": { + "AggregationEntity": { + "title": "AggregationEntity", "type": "object", - "description": "", "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "apiAlias": { + "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "cart_list_price" + "entity" ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" } }, "required": [ - "apiAlias" + "name", + "type", + "field", + "definition" ] }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", - "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], + "AggregationFilter": { + "title": "AggregationFilter", + "type": "object", "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "salutationId": { + "type": { + "description": "The type of aggregation", "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" + "enum": [ + "filter" + ] }, - "lastName": { + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } + } + }, + "required": [ + "name", + "type", + "filter" + ] + }, + "AggregationTerms": { + "title": "AggregationTerms", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, - "zipcode": { - "type": "string" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "terms" + ] }, - "city": { + "field": { + "description": "The field you want to aggregate over.", "type": "string" }, - "company": { - "type": "string" + "limit": { + "description": "The number of terms to return", + "type": "number" }, - "street": { + "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" }, - "department": { - "type": "string" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "histogram" + ] }, - "title": { + "field": { + "description": "The field you want to aggregate over.", "type": "string" }, - "phoneNumber": { - "type": "string" + "interval": { + "description": "The interval of the histogram", + "type": "number" }, - "additionalAddressLine1": { + "format": { + "description": "The format of the histogram", "type": "string" }, - "additionalAddressLine2": { + "timeZone": { + "description": "The timezone of the histogram", "type": "string" - }, - "customFields": { - "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - } - }, - "type": "object" - }, - "OrderRouteResponse": { - "type": "object", - "properties": { - "orders": { - "type": "object", - "allOf": [ - { - "type": "object", - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - } - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - }, - "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" + "name", + "type", + "field" ] }, - "WishlistLoadRouteResponse": { + "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", - "required": [ - "products" - ], "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string" - }, - "salesChannelId": { - "type": "string" - } - } + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "CookieRouteResponse": { - "type": "object", - "description": "Response containing cookie groups and their configuration hash.", - "properties": { - "apiAlias": { + "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "cookie_groups_hash" + "range" ] }, - "elements": { + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", "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": [ + "type": "object", + "anyOf": [ { - "name": "Session", - "hidden": false, - "cookie": "session-", - "apiAlias": "cookie_entry" + "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" + ] }, { - "name": "Timezone", - "hidden": false, - "cookie": "timezone", - "apiAlias": "cookie_entry" + "type": "object", + "title": "From only", + "properties": { + "from": { + "type": "string", + "description": "The lower bound of the range" + } + }, + "required": [ + "from" + ] }, { - "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" + "type": "object", + "title": "To only", + "properties": { + "to": { + "type": "string", + "description": "The upper bound of the range" + } + }, + "required": [ + "to" + ] } - ], - "apiAlias": "cookie_group" + ] } - ], - "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", - "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" - } + } + }, + "required": [ + "name", + "type", + "field", + "ranges" + ] }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" + "ContextMeasurementSystemInfo": { + "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." + } + } + } } }, - "EntitySearchResult": { + "CrossSellingElement": { "type": "object", "properties": { - "entity": { - "type": "string" - }, - "total": { - "type": "integer", - "description": "The total number of found entities" + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" }, - "aggregations": { + "products": { "type": "array", - "description": "Contains aggregated data. A simple example is the determination of the average price from a product search query.", "items": { - "type": "object" + "$ref": "#/components/schemas/Product" } }, - "page": { + "total": { "type": "integer", - "description": "The actual page. This can be used for pagination." + "format": "int32" }, - "limit": { - "type": "integer", - "description": "The actual limit. This is used for pagination and goes together with the page." + "streamId": { + "type": "string", + "format": "uuid" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cross_selling_element" + ] } + }, + "required": [ + "crossSelling", + "products", + "total", + "apiAlias" + ] + }, + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" } }, - "CartError": { + "CartDeliveryPosition": { "type": "object", "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "key": { - "type": "string" - }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "message": { + "identifier": { "type": "string" }, - "messageKey": { - "type": "string" + "lineItem": { + "$ref": "#/components/schemas/LineItem" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] + } + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, + "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" + } + ] + }, + "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" + ] }, "CustomerAddressRead": { "type": "object", @@ -19584,521 +19756,867 @@ "salutation" ] }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "ProductDetailResponse": { + "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", + "properties": { + "product": { + "$ref": "#/components/schemas/Product" }, - { + "configurator": { + "type": "array", + "description": "List of property groups with their corresponding options and information on how to display them.", + "items": { + "$ref": "#/components/schemas/PropertyGroup" + } + } + }, + "required": [ + "product" + ] + }, + "LineItemType": { + "type": "string", + "deprecated": true, + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity" + ] + }, + "LineItem": { + "type": "object", + "properties": { + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + }, + "cover": { + "$ref": "#/components/schemas/Media" + }, + "dataContextHash": { + "type": "string" + }, + "dataTimestamp": { + "type": "string" + }, + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" + }, + "description": { + "type": "string" + }, + "good": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "modified": { + "type": "boolean" + }, + "modifiedByApp": { + "type": "boolean" + }, + "payload": { + "$ref": "#/components/schemas/ProductJsonApi" + }, + "price": { "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" - }, - "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 + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] }, - "p": { - "description": "Search result page", - "type": "integer", - "default": 1 - }, - "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 + "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" + ] + } }, - "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 + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - "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 + "quantity": { + "type": "number" }, - "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" + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] }, - "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.", + "regulationPrice": { "oneOf": [ { - "type": "string" + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, { "type": "null" } ] - } - } - } - ] - }, - "Cart": { - "type": "object", - "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" - } - }, - "errors": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "anyOf": [ - { + }, + "totalPrice": { + "type": "number" + }, + "unitPrice": { + "type": "number" + }, + "taxRules": { "type": "array", + "description": "Currently active tax rules and/or rates", "items": { - "$ref": "#/components/schemas/CartError" - } - }, - { - "type": "object", - "additionalProperties": { "type": "object", "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" + "taxRate": { + "type": "number", + "format": "float" }, - "messageKey": { + "name": { "type": "string" } - }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] + } } } + }, + "required": [ + "apiAlias", + "totalPrice", + "quantity", + "unitPrice" ] }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" - } + "priceDefinition": { + "$ref": "#/components/schemas/CartPriceQuantity" }, - "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" - } + "quantity": { + "type": "number" + }, + "quantityInformation": { + "type": "object", + "properties": { + "maxPurchase": { + "type": "number" + }, + "minPurchase": { + "type": "number" + }, + "purchaseSteps": { + "type": "number" } } }, - "modified": { + "referencedId": { + "type": "string" + }, + "removable": { "type": "boolean" }, - "customerComment": { - "description": "A comment that can be added to the cart.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "stackable": { + "type": "boolean" }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "states": { + "deprecated": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] + "uniqueIdentifier": { + "type": "string" } }, "required": [ - "price", - "apiAlias" + "id", + "type", + "deliveryInformation", + "payload", + "quantity", + "states" ] }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" - } - }, - "ProductMeasurements": { + "Price": { "type": "object", - "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", + "description": "Price object", "properties": { - "width": { + "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": { - "unit": { + "currencyId": { "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" + "pattern": "^[0-9a-f]{32}$" }, - "value": { + "gross": { + "description": "", "type": "number" - } - } - }, - "height": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" }, - "value": { + "net": { + "description": "", "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" } - } + }, + "required": [ + "gross", + "net" + ] }, - "length": { + "regulationPrice": { + "description": "", "type": "object", "properties": { - "unit": { + "currencyId": { "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" + "pattern": "^[0-9a-f]{32}$" }, - "value": { + "gross": { + "description": "", "type": "number" - } - } - }, - "weight": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg" }, - "value": { + "net": { + "description": "", "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" } - } + }, + "required": [ + "gross", + "net" + ] } - } + }, + "required": [ + "currencyId", + "gross", + "net" + ] }, - "CalculatedPrice": { + "CookieRouteResponse": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", + "description": "Response containing cookie groups and their configuration hash.", "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "taxStatus": { + "apiAlias": { "type": "string", "enum": [ - "net", - "tax-free" + "cookie_groups_hash" ] }, - "calculatedTaxes": { + "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" + } + }, + "SuccessResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + } + } + }, + "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": { + "type": "object", + "properties": { + "shippingMethodId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + }, + "orderDeliveries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "orderId": { + "type": "string" + }, + "shippingOrderAddressId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "shippingDateEarliest": { + "type": "string", + "format": "date-time" + }, + "shippingDateLatest": { + "type": "string", + "format": "date-time" + }, + "stateId": { + "type": "string" + } + } + } + }, + "salesChannelDefaultAssignments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "typeId": { + "type": "string" + }, + "languageId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "paymentMethodId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "countryId": { + "type": "string" + }, + "navigationCategoryId": { + "type": "string" + }, + "navigationCategoryDepth": { + "type": "integer", + "format": "int32" + }, + "footerCategoryId": { + "type": "string" + }, + "serviceCategoryId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "shortName": { + "type": "string" + }, + "accessKey": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "maintenance": { + "type": "boolean" + }, + "maintenanceIpWhitelist": { + "type": "string" + }, + "mailHeaderFooterId": { + "type": "string" + }, + "customerGroupId": { + "type": "string" + }, + "hreflangActive": { + "type": "boolean" + }, + "hreflangDefaultDomainId": { + "type": "string" + } + } + } + }, + "salesChannels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "typeId": { + "type": "string" + }, + "languageId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "paymentMethodId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "countryId": { + "type": "string" + }, + "navigationCategoryId": { + "type": "string" + }, + "navigationCategoryDepth": { + "type": "integer", + "format": "int32" + }, + "footerCategoryId": { + "type": "string" + }, + "serviceCategoryId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "shortName": { + "type": "string" + }, + "accessKey": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "maintenance": { + "type": "boolean" + }, + "maintenanceIpWhitelist": { + "type": "string" + }, + "mailHeaderFooterId": { + "type": "string" + }, + "customerGroupId": { + "type": "string" + }, + "hreflangActive": { + "type": "boolean" + }, + "hreflangDefaultDomainId": { + "type": "string" + } + } + } + }, + "availabilityRule": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] + "name": { + "type": "string" }, - "tax": { - "type": "number" + "description": { + "type": "string" }, - "taxRate": { - "type": "number" + "priority": { + "type": "integer", + "format": "int32" }, - "price": { - "type": "number" + "invalid": { + "type": "boolean" } - }, - "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": [ - { + }, + "availabilityRuleId": { + "type": "string" + }, + "prices": { + "type": "array", + "items": { "type": "object", "properties": { + "shippingMethodId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "ruleId": { + "type": "string" + }, + "calculation": { + "type": "integer", + "format": "int32" + }, + "quantityStart": { + "type": "number", + "format": "float" + }, + "quantityEnd": { + "type": "number", + "format": "float" + }, "price": { - "type": "number" + "type": "number", + "format": "float" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] + "calculationRuleId": { + "type": "string" } } - }, - { - "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": { + }, + "mediaId": { + "type": "string" + }, + "media": { "type": "object", "properties": { - "taxRate": { - "type": "number", - "format": "float" + "userId": { + "type": "string" }, - "name": { + "mimeType": { + "type": "string" + }, + "fileExtension": { + "type": "string" + }, + "fileSize": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "metaDataRaw": { + "type": "string" + }, + "mediaTypeRaw": { + "type": "string" + }, + "uploadedAt": { + "type": "string", + "format": "date-time" + }, + "alt": { + "type": "string" + }, + "url": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "mediaFolderId": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "thumbnailsRo": { "type": "string" } } + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + } } } + } + }, + "ListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } }, "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules", - "rawTotal", - "taxStatus" + "apiAlias" ] }, - "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" + } } } } }, - "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" - } } } } @@ -20358,6 +20876,47 @@ "required": [ "categories" ] + }, + "BundleProduct": { + "type": "object", + "required": [ + "id", + "productNumber" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "productNumber": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "available": { + "type": "boolean" + }, + "bundleItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BundleItem" + } + }, + "bundleDiscounts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BundleDiscount" + } + }, + "apiAlias": { + "type": "string", + "example": "product" + } + } } }, "responses": { @@ -20470,34 +21029,232 @@ "example": { "errors": [ { - "status": "400", - "title": "Bad Request", - "description": "Bad parameters for this endpoint. See documentation for the correct ones." + "status": "400", + "title": "Bad Request", + "description": "Bad parameters for this endpoint. See documentation for the correct ones." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "400", + "title": "Bad Request", + "description": "Bad parameters for this endpoint. See documentation for the correct ones." + } + ] + } + } + } + }, + "204": { + "description": "No Content" + }, + "CountryListResponse": { + "description": "Entity search result containing countries.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Country" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "SalutationListResponse": { + "description": "Entity search result containing salutations.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Salutation" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "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" + } + } + } + }, + "ProductListResponse": { + "description": "Entity search result containing products", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "LanguageListResponse": { + "description": "Entity search result containing languages.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + } + } + }, + "required": [ + "elements" + ], + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "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" + } + ] + } + } + } + }, + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } + } + }, + "type": "object", + "required": [ + "elements" + ] + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } ] } - }, + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "400", - "title": "Bad Request", - "description": "Bad parameters for this endpoint. See documentation for the correct ones." - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } } } } }, - "204": { - "description": "No Content" - }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", + "CountryStateListResponse": { + "description": "Entity search result containing countries.", "content": { "application/json": { "schema": { @@ -20507,13 +21264,10 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/CountryState" } } }, - "required": [ - "elements" - ], "type": "object" }, { @@ -20713,56 +21467,6 @@ } } }, - "CountryListResponse": { - "description": "Entity search result containing countries.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Country" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } - }, - "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" - } - ] - } - } - } - }, "ContextTokenResponse": { "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", "headers": { @@ -20822,151 +21526,6 @@ } } } - }, - "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": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - } - }, - "type": "object", - "required": [ - "elements" - ] - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } - }, - "SalutationListResponse": { - "description": "Entity search result containing salutations.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Salutation" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } - }, - "ProductListResponse": { - "description": "Entity search result containing products", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } - }, - "CountryStateListResponse": { - "description": "Entity search result containing countries.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CountryState" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } } }, "parameters": { @@ -20980,14 +21539,46 @@ "default": "application/json" } }, - "accept": { - "name": "Accept", - "in": "header", - "description": "Accepted response content types", - "required": true, + "accept": { + "name": "Accept", + "in": "header", + "description": "Accepted response content types", + "required": true, + "schema": { + "type": "string", + "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": { - "type": "string", - "default": "application/json" + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, "criteriaPage": { @@ -21140,247 +21731,75 @@ "criteriaTotalCountMode": { "name": "total-count-mode", "in": "query", - "description": "", - "schema": { - "$ref": "#/components/schemas/TotalCountMode" - } - }, - "criteriaIncludes": { - "name": "includes", - "in": "query", - "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", - "schema": { - "$ref": "#/components/schemas/Includes" - }, - "style": "deepObject", - "explode": true - }, - "criteriaExcludes": { - "name": "excludes", - "in": "query", - "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", - "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" - } - }, - "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" - } - ] - } - } - } - } + "description": "", + "schema": { + "$ref": "#/components/schemas/TotalCountMode" + } + }, + "criteriaIncludes": { + "name": "includes", + "in": "query", + "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "schema": { + "$ref": "#/components/schemas/Includes" }, - "security": [ - { - "ApiKey": [] - } - ] + "style": "deepObject", + "explode": true + }, + "criteriaExcludes": { + "name": "excludes", + "in": "query", + "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "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" + } } }, + "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": { "/role/create": { "post": { "tags": [ @@ -22090,6 +22509,146 @@ ] } }, + "/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": [] + } + ] + } + }, "/sso/auth/{providerId}": { "post": { "tags": [ @@ -24820,7 +25379,7 @@ "B2B Budget Management" ], "summary": "Load single budget", - "description": "This route is used to load one budget by ID\n\n**Available Associations:**\n- `organizations`\n- `notificationRecipients`\n- `reviewerRole`\n- `currency`", + "description": "This route is used to load one budget by ID\n\n**Available Associations:**\n- `customer`\n- `organizations`\n- `notificationRecipients`\n- `reviewerRole`\n- `currency`", "operationId": "readBudget", "requestBody": { "required": false, @@ -24870,7 +25429,7 @@ "B2B Budget Management" ], "summary": "Load single budget", - "description": "This route is used to load one budget by ID\n\n**Available Associations:**\n- `organizations`\n- `notificationRecipients`\n- `reviewerRole`\n- `currency`", + "description": "This route is used to load one budget by ID\n\n**Available Associations:**\n- `customer`\n- `organizations`\n- `notificationRecipients`\n- `reviewerRole`\n- `currency`", "operationId": "readBudgetGet", "parameters": [ { @@ -25651,6 +26210,61 @@ } ] } + }, + "/store-api/product/{productId}/recommended-bundles": { + "post": { + "tags": [ + "Product Bundles" + ], + "summary": "Fetch bundle recommendations for a product", + "description": "Returns bundle products that include the given product as an item and have show_bundle_on_item_pdp enabled.", + "operationId": "getRecommendedBundles", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Optional criteria payload." + } + } + } + }, + "responses": { + "200": { + "description": "List of bundle products", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BundleProduct" + } + } + } + } + } + } + }, + "404": { + "description": "Returned when the product cannot be resolved." + } + } + } } }, "tags": [ diff --git a/SwagCommercial-storeapi.summary.json b/SwagCommercial-storeapi.summary.json index 5282ce7..36f405f 100644 --- a/SwagCommercial-storeapi.summary.json +++ b/SwagCommercial-storeapi.summary.json @@ -55,7 +55,8 @@ "/shopping-lists", "/shopping-lists/add-to-cart", "/sso/auth/{providerId}", - "/sso/redirect/{providerId}" + "/sso/redirect/{providerId}", + "/store-api/product/{productId}/recommended-bundles" ], "schemas": [ "AccountNewsletterRecipient", @@ -117,6 +118,9 @@ "B2bOrderEmployee", "B2bPermission", "Breadcrumb", + "BundleDiscount", + "BundleItem", + "BundleProduct", "CalculatedPrice", "Cart", "CartDelivery",