diff --git a/.github/workflows/manual_versioning.yml b/.github/workflows/manual_versioning.yml index ae6af74..c73e8ff 100644 --- a/.github/workflows/manual_versioning.yml +++ b/.github/workflows/manual_versioning.yml @@ -41,7 +41,7 @@ jobs: shopware_version: ${{ inputs.shopware_version }} php_version: ${{ inputs.php_version }} secrets: inherit - + generate-commercial-trunk: if: ${{ inputs.trigger_commercial_schema }} uses: ./.github/workflows/plugin_commercial_schema.yml @@ -49,7 +49,7 @@ jobs: shopware_version: ${{ inputs.shopware_version }} php_version: ${{ inputs.php_version }} secrets: inherit - + generate-digitalsalesroom-trunk: if: ${{ inputs.trigger_digitalsalesroom_schema }} uses: ./.github/workflows/plugin_digitalsalesroom_schema.yml diff --git a/SwagCommercial-storeapi.json b/SwagCommercial-storeapi.json index 7d0a15a..e9859e8 100644 --- a/SwagCommercial-storeapi.json +++ b/SwagCommercial-storeapi.json @@ -443,6 +443,46 @@ }, "type": "object" }, + "AdvancedSearchCompoundDictionary": { + "required": [ + "id", + "languageId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "wordList": { + "type": "array", + "items": { + "type": "string" + } + }, + "minSubwordSize": { + "type": "integer", + "format": "int64" + }, + "onlyLongestMatch": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, "AdvancedSearchConfig": { "properties": { "id": { @@ -563,6 +603,42 @@ }, "type": "object" }, + "AdvancedSearchStopwordDictionary": { + "required": [ + "id", + "languageId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "stopwords": { + "type": "array", + "items": { + "type": "string" + } + }, + "extendsBuiltin": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, "AdvancedSearchSynonym": { "properties": { "id": { @@ -742,6 +818,84 @@ }, "type": "object" }, + "AppMcpPrompt": { + "description": "Added since version: 6.7.11.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "AppMcpResource": { + "description": "Added since version: 6.7.11.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "AppMcpTool": { + "description": "Added since version: 6.7.11.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, "AppPaymentMethod": { "description": "Added since version: 6.4.1.0", "properties": { @@ -1067,6 +1221,42 @@ "format": "date-time", "readOnly": true }, + "extensions": { + "properties": { + "subscriptionBudgets": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-budget/1e4002da52224f484ff690aa9b0bfb2a/subscriptionBudgets" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_subscription_budget" + }, + "id": { + "type": "string", + "example": "db9b610a5feba7efda832033f6be0bbf" + } + } + } + } + }, + "type": "object" + } + }, + "type": "object" + }, "customer": { "$ref": "#/components/schemas/Customer" }, @@ -2451,6 +2641,22 @@ }, "type": "object" }, + "B2bComponentsSubscriptionBudget": { + "description": "Added since version: 6.7.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "subscription": { + "$ref": "#/components/schemas/Subscription" + }, + "budget": { + "$ref": "#/components/schemas/B2bComponentsBudget" + } + }, + "type": "object" + }, "B2bComponentsSubscriptionEmployee": { "required": [ "id", @@ -4735,6 +4941,11 @@ }, "readOnly": true }, + "requestedGroupId": { + "description": "Unique identity of requested group.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "createdById": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -5692,7 +5903,7 @@ "description": "Unique number associated with every document.", "type": "string" }, - "config": { + "customFields": { "type": "object" }, "createdAt": { @@ -5700,8 +5911,9 @@ "format": "date-time", "readOnly": true }, - "customFields": { - "type": "object" + "config": { + "type": "object", + "deprecated": true }, "updatedAt": { "type": "string", @@ -8494,9 +8706,6 @@ }, "readOnly": true }, - "purchasePrices": { - "type": "string" - }, "releaseDate": { "type": "string", "format": "date-time" @@ -9967,6 +10176,12 @@ "description": "When the value is set to true, the product is hidden when sold out.", "type": "boolean" }, + "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", + "type": "integer", + "format": "int64", + "readOnly": true + }, "stock": { "description": "Indicates the number of products available.", "type": "integer", @@ -10120,6 +10335,11 @@ "description": { "type": "string" }, + "descriptionTeaser": { + "description": "Read-only, HTML-stripped excerpt of the description, derived on write.", + "type": "string", + "readOnly": true + }, "metaTitle": { "type": "string" }, @@ -10154,13 +10374,6 @@ "readOnly": true, "deprecated": true }, - "availableStock": { - "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", - "type": "integer", - "format": "int64", - "readOnly": true, - "deprecated": true - }, "calculatedPrice": { "type": "object" }, @@ -11299,6 +11512,12 @@ "description": "When the value is set to true, the product is hidden when sold out.", "type": "boolean" }, + "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", + "type": "integer", + "format": "int64", + "readOnly": true + }, "stock": { "description": "Indicates the number of products available.", "type": "integer", @@ -11452,6 +11671,11 @@ "description": { "type": "string" }, + "descriptionTeaser": { + "description": "Read-only, HTML-stripped excerpt of the description, derived on write.", + "type": "string", + "readOnly": true + }, "metaTitle": { "type": "string" }, @@ -11486,13 +11710,6 @@ "readOnly": true, "deprecated": true }, - "availableStock": { - "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", - "type": "integer", - "format": "int64", - "readOnly": true, - "deprecated": true - }, "calculatedPrice": { "type": "object", "$ref": "#/components/schemas/CalculatedPrice" @@ -14628,6 +14845,10 @@ "measurementUnits": { "$ref": "#/components/schemas/MeasurementUnits" }, + "businessTimeZone": { + "description": "Business timezone used for sales-channel-specific rendering. Added since version: 6.7.13.0.", + "type": "string" + }, "name": { "type": "string" }, @@ -14806,6 +15027,26 @@ }, "type": "object" }, + "SalesChannelFile": { + "description": "Added since version: 6.7.12.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, "SalesChannelTrackingCustomer": { "description": "Added since version: 6.7.9.0", "properties": { @@ -16186,11 +16427,40 @@ } }, "type": "object" - } - }, - "type": "object" - }, - "subscriptionPlan": { + }, + "subscriptionBudget": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/subscription/787ad0b7a17de4ad6b1711bbf8d79fcb/subscriptionBudget" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_subscription_budget" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "6b2732717e6360e8eccfd947596f4e64" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + }, + "subscriptionPlan": { "$ref": "#/components/schemas/SubscriptionPlan" }, "subscriptionInterval": { @@ -17228,136 +17498,430 @@ }, "type": "object" }, - "CartPriceQuantity": { + "NewsletterStatus": { + "type": "string", + "enum": [ + "notSet", + "optIn", + "optOut", + "direct", + "undefined" + ], + "description": "The subscription status. Possible values are: notSet, optIn, optOut, direct, undefined." + }, + "Breadcrumb": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_quantity" - ] - }, - "isCalculated": { - "type": "boolean" - }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" + "name": { + "type": "string" }, - "price": { - "type": "number" + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "quantity": { - "type": "number" + "type": { + "$ref": "#/components/schemas/Category/properties/type" }, - "regulationPrice": { + "translated": { + "type": "object", + "additionalProperties": true, "properties": { - "price": { - "type": "number", - "format": "float" + "customFields": { + "type": "object" + }, + "slotConfig": { + "type": "object" + }, + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" + }, + "internalLink": { + "type": "string" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" } - }, - "type": "object" + } }, - "taxRules": { + "path": { + "type": "string" + }, + "seoUrls": { "type": "array", "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } + "$ref": "#/components/schemas/SeoUrl" } }, - "type": { - "type": "string" + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] } }, "required": [ + "name", + "categoryId", + "type", + "translated", + "path", "apiAlias" ] }, - "CrossSellingElement": { + "ProductPurchaseLimit": { "type": "object", + "description": "Current quantity purchase limits for a product.", + "required": [ + "productId", + "minPurchase", + "purchaseSteps", + "maxPurchase", + "stock", + "apiAlias" + ], "properties": { - "crossSelling": { - "$ref": "#/components/schemas/ProductCrossSelling" + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The product ID." }, - "products": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } + "minPurchase": { + "type": "integer", + "description": "Minimum quantity a customer can purchase." }, - "total": { + "purchaseSteps": { "type": "integer", - "format": "int32" + "description": "Step increment for quantity selection." }, - "streamId": { - "type": "string", - "format": "uuid" + "maxPurchase": { + "type": "integer", + "description": "Maximum quantity a customer can purchase, reflecting current stock for closeout products." + }, + "stock": { + "type": [ + "integer", + "null" + ], + "description": "Current stock level of the product." }, "apiAlias": { "type": "string", "enum": [ - "cross_selling_element" + "product_purchase_limit" + ] + } + } + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" ] + }, + "field": { + "type": "string" } }, "required": [ - "crossSelling", - "products", - "total", - "apiAlias" + "name", + "type", + "field" ] }, - "ProductMeasurements": { + "LineItemType": { + "type": "string", + "deprecated": true, + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity" + ] + }, + "LineItem": { "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" - }, - "value": { - "type": "number" - } + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" } }, - "height": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "cover": { + "$ref": "#/components/schemas/Media" }, - "length": { + "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", + "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": { + "type": "string" + }, + "removable": { + "type": "boolean" + }, + "stackable": { + "type": "boolean" + }, + "states": { + "deprecated": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } + }, + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" + }, + "uniqueIdentifier": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ] + }, + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "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" + }, + "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": { @@ -17396,179 +17960,351 @@ } } }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "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 - }, - "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" + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "EntitySearchResult": { + "type": "object", + "properties": { + "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." + } + } + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "Gross price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net prices are linked through the tax configuration.", + "type": "boolean" + }, + "percentage": { + "description": "Discount percentage relative to the list price for the gross and net amounts. `null` when no list price is set.", + "type": [ + "object", + "null" + ], + "properties": { + "gross": { + "description": "Discount percentage relative to the gross list price.", + "type": "number" }, - "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 + "net": { + "description": "Discount percentage relative to the net list price.", + "type": "number" + } + }, + "required": [ + "gross", + "net" + ] + }, + "listPrice": { + "description": "Reference list price for displaying discounts.", + "type": "object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "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 + "gross": { + "description": "Gross list price for the associated currency.", + "type": "number" }, - "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 + "net": { + "description": "Net list price for the associated currency.", + "type": "number" }, - "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 + "linked": { + "description": "Whether gross and net list prices are linked through the tax configuration.", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] + }, + "regulationPrice": { + "description": "Reference price used for legal price disclosures.", + "type": "object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "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 + "gross": { + "description": "Gross regulation price for the associated currency.", + "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" + "net": { + "description": "Net regulation price for the associated currency.", + "type": "number" }, - "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" - } - ] + "linked": { + "description": "Whether gross and net regulation prices are linked through the tax configuration.", + "type": "boolean" } - } + }, + "required": [ + "gross", + "net" + ] } + }, + "required": [ + "currencyId", + "gross", + "net" ] }, - "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" + "CartItems": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + } + } + }, + "CookieRouteResponse": { + "type": "object", + "description": "Response containing cookie groups and their configuration hash.", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cookie_groups_hash" + ] + }, + "elements": { + "type": "array", + "description": "Collection of cookie groups", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "hash": { + "type": "string", + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + }, + "languageId": { + "type": "string", + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + } + }, + "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" + } + }, + "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" } } } @@ -17624,7 +18360,11 @@ "maintenance": { "type": "boolean" }, + "maintenanceIpAllowlist": { + "type": "string" + }, "maintenanceIpWhitelist": { + "deprecated": true, "type": "string" }, "mailHeaderFooterId": { @@ -17693,7 +18433,11 @@ "maintenance": { "type": "boolean" }, + "maintenanceIpAllowlist": { + "type": "string" + }, "maintenanceIpWhitelist": { + "deprecated": true, "type": "string" }, "mailHeaderFooterId": { @@ -17812,868 +18556,410 @@ "mediaFolderId": { "type": "string" }, - "private": { - "type": "boolean" - }, - "thumbnailsRo": { - "type": "string" - } - } - }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - } - } - } - } - }, - "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" - ] - }, - "ProductPurchaseLimit": { - "type": "object", - "description": "Current quantity purchase limits for a product.", - "required": [ - "productId", - "minPurchase", - "purchaseSteps", - "maxPurchase", - "stock", - "apiAlias" - ], - "properties": { - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The product ID." - }, - "minPurchase": { - "type": "integer", - "description": "Minimum quantity a customer can purchase." - }, - "purchaseSteps": { - "type": "integer", - "description": "Step increment for quantity selection." - }, - "maxPurchase": { - "type": "integer", - "description": "Maximum quantity a customer can purchase, reflecting current stock for closeout products." - }, - "stock": { - "type": [ - "integer", - "null" - ], - "description": "Current stock level of the product." - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_purchase_limit" - ] - } - } - }, - "CartDeliveryPosition": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } - }, - "identifier": { - "type": "string" - }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" - }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "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", - "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": { - "type": "string" - }, - "removable": { - "type": "boolean" - }, - "stackable": { - "type": "boolean" - }, - "states": { - "deprecated": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "is-physical", - "is-download" - ] - } - }, - "type": { - "$ref": "#/components/schemas/OrderLineItem/properties/type" - }, - "uniqueIdentifier": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "deliveryInformation", - "payload", - "quantity", - "states" - ] - }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - } - }, - "Sitemap": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "filename", - "created" - ] - }, - "CartItems": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } - } - } - }, - "CookieEntry": { - "type": "object", - "properties": { - "cookie": { - "type": "string" - }, - "value": { - "type": "string" - }, - "expiration": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cookie_entry" - ] - } - }, - "required": [ - "cookie", - "hidden", - "apiAlias" - ] - }, - "CookieRouteResponse": { - "type": "object", - "description": "Response containing cookie groups and their configuration hash.", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cookie_groups_hash" - ] - }, - "elements": { - "type": "array", - "description": "Collection of cookie groups", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } - }, - "hash": { - "type": "string", - "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", - "example": "f86b6a872cb83dbd22d838ceda1aa3d4" - }, - "languageId": { - "type": "string", - "format": "uuid", - "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", - "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" - } - }, - "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" - } - }, - "CartDelivery": { - "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" - } - } - }, - "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" - } - } - }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } - }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "CookieEntryCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieEntry" - } - }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" - ] - }, - "SalesChannelContext": { - "type": "object", - "properties": { - "token": { - "description": "Context the user session", - "type": "string" - }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } - }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" + "private": { + "type": "boolean" + }, + "thumbnailsRo": { + "type": "string" + } + } + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } } } + } + } + }, + "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" + "format": "^[0-9a-f]{32}$" }, - "roundForNet": { - "type": "boolean" + { + "type": "null" } + ] + } + }, + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "AggregationEntity": { + "title": "AggregationEntity", + "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" + ] + }, + "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" + ] + }, + "AggregationFilter": { + "title": "AggregationFilter", + "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": [ + "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" }, - "languageInfo": { - "type": "object", - "required": [ - "localeCode", - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "localeCode": { - "type": "string" - } + "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" } + } + }, + "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" }, - "apiAlias": { + "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "sales_channel_context" + "histogram" ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "interval": { + "description": "The interval of the histogram", + "type": "number" + }, + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" } }, "required": [ - "salesChannel", - "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" + "name", + "type", + "field" ] }, - "AggregationMetrics": { + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", "type": "object", "properties": { "name": { + "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" + "range" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" + }, + "to": { + "type": "number", + "description": "The upper bound of the range" + } + }, + "required": [ + "from", + "to" + ] + }, + { + "type": "object", + "title": "From only", + "properties": { + "from": { + "type": "string", + "description": "The lower bound of the range" + } + }, + "required": [ + "from" + ] + }, + { + "type": "object", + "title": "To only", + "properties": { + "to": { + "type": "string", + "description": "The upper bound of the range" + } + }, + "required": [ + "to" + ] + } + ] + } + } + }, + "required": [ + "name", + "type", + "field", + "ranges" + ] + }, + "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": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "code", + "key", + "level", + "message", + "messageKey" + ] + } + } ] }, - "field": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } - }, - "ProductListingFlags": { - "type": "object", - "description": "Additional flags for product listings", - "properties": { - "no-aggregations": { - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "deliveries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDelivery" + } + }, + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", + "type": "array", + "items": { + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } + } + }, + "modified": { + "type": "boolean" + }, + "customerComment": { + "description": "A comment that can be added to the cart.", "oneOf": [ { "type": "string" @@ -18683,8 +18969,8 @@ } ] }, - "only-aggregations": { - "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "affiliateCode": { + "description": "An affiliate tracking code", "oneOf": [ { "type": "string" @@ -18693,203 +18979,165 @@ "type": "null" } ] - } - } - }, - "Breadcrumb": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "type": { - "$ref": "#/components/schemas/Category/properties/type" }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" - }, - "linkType": { - "$ref": "#/components/schemas/Category/properties/linkType" - }, - "internalLink": { - "type": "string" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ + { "type": "string" }, - "keywords": { - "type": "string" + { + "type": "null" } - } - }, - "path": { - "type": "string" - }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } + ] }, "apiAlias": { "type": "string", "enum": [ - "breadcrumb" + "cart" ] } }, "required": [ - "name", - "categoryId", - "type", - "translated", - "path", + "price", "apiAlias" ] }, - "CartError": { + "CartItemsUpdate": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "required": [ + "items" + ], "properties": { - "key": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartLineItemUpdate" + } + } + } + }, + "CartLineItemUpdate": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { "type": "string" }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" }, - "message": { + "quantity": { + "type": "integer" + }, + "referencedId": { "type": "string" }, - "messageKey": { + "label": { "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "CartPriceReference": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" }, - "referenceUnit": { - "type": "number" + "payload": { + "type": "object" }, - "unitName": { - "type": "string" + "stackable": { + "type": "boolean" }, - "price": { - "type": "number" + "removable": { + "type": "boolean" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] + "coverId": { + "type": "string" }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" + "priceDefinition": { + "type": "object", + "properties": { + "type": { + "type": "string" }, - { - "type": "null" - } - ] - }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] + "price": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "quantity": { + "type": "integer" + }, + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "type": "number" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number" + }, + "percentage": { + "type": "number" + } } } - }, - { - "type": "null" } - ] - }, - "hasRange": { - "type": "boolean" + } + } + } + }, + "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." }, - "variantId": { - "oneOf": [ - { + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { "type": "string", - "format": "^[0-9a-f]{32}$" + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." }, - { - "type": "null" + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." } - ] + } } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] + } }, "AccountNewsletterRecipient": { "type": "object", "properties": { "status": { - "type": "string", - "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" - ] + "$ref": "#/components/schemas/NewsletterStatus" }, "apiAlias": { "type": "string", @@ -18903,163 +19151,134 @@ "apiAlias" ] }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "EntitySearchResult": { - "type": "object", - "properties": { - "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." - } - } - }, - "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" - ] + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "calculatedTaxes": { - "type": "array", - "items": { - "type": "object", + { + "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 + }, + "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": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] - }, - "tax": { - "type": "number" - }, - "taxRate": { - "type": "number" - }, - "price": { - "type": "number" - } + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "type": "string" }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" + "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 }, - { - "type": "null" - } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" + "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 }, - { - "type": "null" - } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "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 }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" + "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 }, - { - "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 + }, + "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" + } + ] } - ] - }, + } + } + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { "apiAlias": { "type": "string", "enum": [ - "calculated_price" + "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", - "description": "Currently active tax rules and/or rates", "items": { "type": "object", "properties": { @@ -19072,223 +19291,116 @@ } } } - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules", - "rawTotal", - "taxStatus" - ] - }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", - "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], - "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "phoneNumber": { - "type": "string" - }, - "additionalAddressLine1": { - "type": "string" - }, - "additionalAddressLine2": { + "type": { "type": "string" - }, - "customFields": { - "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" } }, - "type": "object" + "required": [ + "apiAlias" + ] }, - "ReferencePrice": { + "ProductListingFlags": { "type": "object", + "description": "Additional flags for product listings", "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/ListPrice" - }, - { - "type": "null" - } - ] - }, - "regulationPrice": { + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", "oneOf": [ { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "type": "string" }, { "type": "null" } ] }, - "hasRange": { - "type": "boolean" - }, - "variantId": { + "only-aggregations": { + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", "oneOf": [ { - "type": "string", - "format": "^[0-9a-f]{32}$" + "type": "string" }, { "type": "null" } ] } - }, - "required": [ - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] + } }, - "CustomerAddressRead": { + "CartDelivery": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "oneOf": [ - { + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { "type": "string", "format": "date-time" }, - { - "type": "null" + "latest": { + "type": "string", + "format": "date-time" } - ] - }, - "country": { - "$ref": "#/components/schemas/Country" + } }, - "countryState": { - "oneOf": [ - { - "$ref": "#/components/schemas/CountryState" + "location": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - { - "type": "null" + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "state": { + "$ref": "#/components/schemas/CountryState" } - ] + } + }, + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDeliveryPosition" + } }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + } + } + }, + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, + "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": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" + "product" ] }, "Criteria": { @@ -19820,11 +19932,162 @@ "parameters" ] }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" + "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" + ] + } + ] + }, + "required": [ + "name", + "isRequired", + "apiAlias" + ] + }, + "CartDeliveryPosition": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } + }, + "identifier": { + "type": "string" + }, + "lineItem": { + "$ref": "#/components/schemas/LineItem" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" + } } }, + "ReferencePrice": { + "type": "object", + "properties": { + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { + "type": "string" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/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" + ] + }, "OrderRouteResponse": { "type": "object", "properties": { @@ -19847,77 +20110,19 @@ }, { "$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" - ] - }, - "CartDeliveryInformation": { - "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" + "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": [ - "apiAlias" + "orders" ] }, "WishlistLoadRouteResponse": { @@ -19942,594 +20147,765 @@ } } }, - "AggregationEntity": { - "title": "AggregationEntity", + "Sitemap": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + "filename": { "type": "string" }, - "type": { - "description": "The type of aggregation", + "created": { "type": "string", - "enum": [ - "entity" - ] + "format": "date-time" + } + }, + "required": [ + "filename", + "created" + ] + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" + ] + }, + "ListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "percentage": { + "type": "number" }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", - "type": "string" + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] } }, "required": [ - "name", - "type", - "field", - "definition" + "apiAlias" ] }, - "AggregationFilter": { - "title": "AggregationFilter", + "CalculatedPrice": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "unitPrice": { + "type": "number" }, - "type": { - "description": "The type of aggregation", + "quantity": { + "type": "number" + }, + "rawTotal": { + "type": "number" + }, + "totalPrice": { + "type": "number" + }, + "taxStatus": { "type": "string", "enum": [ - "filter" + "net", + "tax-free" ] }, - "filter": { + "calculatedTaxes": { "type": "array", "items": { - "$ref": "#/components/schemas/Filters" + "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": [ - "name", - "type", - "filter" + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules", + "rawTotal", + "taxStatus" ] }, - "AggregationTerms": { - "title": "AggregationTerms", + "CookieEntry": { "type": "object", "properties": { + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, "name": { - "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, - "type": { - "description": "The type of aggregation", + "description": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "apiAlias": { "type": "string", "enum": [ - "terms" + "cookie_entry" ] + } + }, + "required": [ + "cookie", + "hidden", + "apiAlias" + ] + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "percentage": { + "type": "number" }, - "limit": { - "description": "The number of terms to return", + "price": { "type": "number" }, - "sort": { - "type": "array", - "description": "Sorting the aggregation result.", - "items": { - "$ref": "#/components/schemas/Sort" - } + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] } }, "required": [ - "name", - "type", - "field" + "apiAlias" ] }, - "AggregationHistogram": { - "title": "AggregationHistogram", - "type": "object", + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "countryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "type": { - "description": "The type of aggregation", + "countryStateId": { "type": "string", - "enum": [ - "histogram" - ] + "pattern": "^[0-9a-f]{32}$" }, - "field": { - "description": "The field you want to aggregate over.", + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { "type": "string" }, - "interval": { - "description": "The interval of the histogram", - "type": "number" + "lastName": { + "type": "string" }, - "format": { - "description": "The format of the histogram", + "zipcode": { "type": "string" }, - "timeZone": { - "description": "The timezone of the histogram", + "city": { + "type": "string" + }, + "company": { + "type": "string" + }, + "street": { + "type": "string" + }, + "department": { + "type": "string" + }, + "title": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, - "required": [ - "name", - "type", - "field" - ] + "type": "object" }, - "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)", + "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": [ - "range" + "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." + } + } + } + } + }, + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "oneOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } ] }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "country": { + "$ref": "#/components/schemas/Country" }, - "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" - ] - } - ] - } + "countryState": { + "oneOf": [ + { + "$ref": "#/components/schemas/CountryState" + }, + { + "type": "null" + } + ] + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } - }, - "required": [ - "name", - "type", - "field", - "ranges" + }, + "required": [ + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" ] }, - "CartListPrice": { + "CrossSellingElement": { "type": "object", - "description": "", "properties": { - "discount": { - "type": "number" + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" }, - "percentage": { - "type": "number" + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } }, - "price": { - "type": "number" + "total": { + "type": "integer", + "format": "int32" + }, + "streamId": { + "type": "string", + "format": "uuid" }, "apiAlias": { "type": "string", "enum": [ - "cart_list_price" + "cross_selling_element" ] } }, "required": [ + "crossSelling", + "products", + "total", "apiAlias" ] }, - "Cart": { + "SalesChannelContext": { "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", + "description": "Context the user session", "type": "string" }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" + "currentCustomerGroup": { + "type": "object", + "description": "Customer group of the current user", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } } }, - "errors": { + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } + "properties": { + "name": { + "type": "string" }, - { - "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" - ] - } + "displayGross": { + "type": "boolean" } - ] - }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" } }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { "type": "array", + "description": "Currently active tax rules and/or rates", "items": { "type": "object", "properties": { - "paymentMethodId": { - "type": "string" + "taxRate": { + "type": "number", + "format": "float" }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" + "name": { + "type": "string" } } } }, - "modified": { - "type": "boolean" - }, - "customerComment": { - "description": "A comment that can be added to the cart.", + "customer": { "oneOf": [ - { - "type": "string" - }, { "type": "null" - } - ] - }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" }, { - "type": "null" + "$ref": "#/components/schemas/Customer" } ] }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { - "type": "string" + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - { - "type": "null" + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] - } - }, - "required": [ - "price", - "apiAlias" - ] - }, - "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" - ] } - ] - }, - "required": [ - "name", - "isRequired", - "apiAlias" - ] - }, - "MeasurementUnits": { - "type": "object", - "description": "Configuration of the measurement system", - "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": { + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "context": { + "description": "Core context with general configuration values and state", "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." + "versionId": { + "type": "string" }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" + "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" ], - "default": "kg", - "description": "Unit of weight." + "properties": { + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] + }, + "salesChannelId": { + "type": "string" + } + } + }, + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" } } - } - } - }, - "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": "", + "itemRounding": { "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], "properties": { - "currencyId": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] }, - "gross": { - "description": "", - "type": "number" + "decimals": { + "type": "integer", + "format": "int32" }, - "net": { - "description": "", - "type": "number" + "interval": { + "type": "number", + "format": "float" }, - "linked": { - "description": "", + "roundForNet": { "type": "boolean" } - }, - "required": [ - "gross", - "net" - ] + } }, - "regulationPrice": { - "description": "", + "totalRounding": { "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], "properties": { - "currencyId": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] }, - "gross": { - "description": "", - "type": "number" + "decimals": { + "type": "integer", + "format": "int32" }, - "net": { - "description": "", - "type": "number" + "interval": { + "type": "number", + "format": "float" }, - "linked": { - "description": "", + "roundForNet": { "type": "boolean" } - }, + } + }, + "languageInfo": { + "type": "object", "required": [ - "gross", - "net" + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" + } + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "sales_channel_context" ] } }, "required": [ - "currencyId", - "gross", - "net" + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" ] }, - "ContextMeasurementSystemInfo": { + "SuccessResponse": { "type": "object", - "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "system": { + "success": { + "type": "boolean" + } + } + }, + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + }, + "CartDeliveryInformation": { + "type": "object", + "properties": { + "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_delivery_information" + ] }, - "units": { + "freeDelivery": { + "type": "boolean" + }, + "deliveryTime": { "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." + "name": { + "type": "string" }, - "weight": { + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "apiAlias": { "type": "string", "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." + "cart_delivery_time" + ] } } + }, + "height": { + "type": "integer" + }, + "length": { + "type": "integer" + }, + "restockTime": { + "type": "integer" + }, + "stock": { + "type": "integer" + }, + "weight": { + "type": "integer" + }, + "width": { + "type": "integer" } - } + }, + "required": [ + "apiAlias" + ] }, "FindProductVariantRouteResponse": { "type": "object", @@ -20551,28 +20927,40 @@ } } }, - "ListPrice": { + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, + "CartError": { "type": "object", - "description": "", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "discount": { - "type": "number" + "key": { + "type": "string" }, - "percentage": { - "type": "number" + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "price": { - "type": "number" + "message": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] + "messageKey": { + "type": "string" } }, "required": [ - "apiAlias" + "key", + "level", + "message", + "messageKey" ] }, "ProductListingResult": { @@ -21204,121 +21592,68 @@ } } }, - "204": { - "description": "No Content" - }, - "CurrencyListResponse": { - "description": "Entity search result containing currencies.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Currency" - } - } - } - } - }, - "ProductListResponse": { - "description": "Entity search result containing products", + "429": { + "description": "Too Many Requests", "content": { - "application/json": { + "application/vnd.api+json": { "schema": { - "allOf": [ - { - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - } - }, - "type": "object" - }, + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "$ref": "#/components/schemas/EntitySearchResult" + "status": "429", + "title": "Too Many Requests", + "description": "Rate limit exceeded. Please wait before retrying." } ] } - } - } - }, - "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/failure" + }, + "example": { + "errors": [ { - "$ref": "#/components/schemas/EntitySearchResult" + "status": "429", + "title": "Too Many Requests", + "description": "Rate limit exceeded. Please wait before retrying." } ] } } } }, - "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" - } - ] - } - } - } + "204": { + "description": "No Content" }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", + "ShippingMethodListResponse": { + "description": "Entity search result containing shipping methods.", "content": { "application/json": { "schema": { "allOf": [ { + "required": [ + "elements" + ], "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/ShippingMethod" } } }, - "required": [ - "elements" - ], "type": "object" }, { @@ -21354,32 +21689,8 @@ } } }, - "ContextTokenResponse": { - "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" - } - } - } - } - } - }, - "SalutationListResponse": { - "description": "Entity search result containing salutations.", + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", "content": { "application/json": { "schema": { @@ -21389,72 +21700,14 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Salutation" + "$ref": "#/components/schemas/SeoUrl" } } }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } - }, - "ShippingMethodListResponse": { - "description": "Entity search result containing shipping methods.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { + "type": "object", "required": [ "elements" - ], - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } - }, - "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" @@ -21464,6 +21717,32 @@ } } }, + "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" + } + } + } + }, "OpenApi3": { "description": "Returns information about the store API.", "content": { @@ -21653,28 +21932,170 @@ } } }, - "PaymentMethodListResponse": { - "description": "", + "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": { + "sw-context-token": { + "description": "Contains sw-context-token value", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "total": { - "description": "Total amount", - "type": "integer" + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } + } + } + } + } + }, + "SalutationListResponse": { + "description": "Entity search result containing salutations.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Salutation" + } + } + }, + "type": "object" }, - "aggregations": { - "description": "aggregation result", + { + "$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" }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "type": "object" + ] + } + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + } + } + }, + "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" + } + ] + } + } + } + }, + "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" + } + ] } } } @@ -21701,36 +22122,14 @@ "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.", + "swLanguageId": { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", "required": false, "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "criteriaPage": { @@ -21929,6 +22328,38 @@ "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": { @@ -22006,6 +22437,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] }, "post": { @@ -22042,7 +22478,11 @@ } } }, - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "responses": { "200": { "description": "Permission collection", @@ -22092,50 +22532,41 @@ ] } }, - "/employee/create": { + "/role/create": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Create a single employee and return the employee", - "description": "This route is used to create and return an employee", - "operationId": "createEmployee", - "parameters": [], + "summary": "Create a single role and return the role", + "description": "This route is used to create and return an role", + "operationId": "createRole", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "firstName": { - "description": "First name of the new employee", - "type": "string" - }, - "lastName": { - "description": "Last name of the new employee", - "type": "string" - }, - "email": { - "description": "Email of the new employee", + "name": { + "description": "Name of the new role", "type": "string" }, - "languageId": { - "description": "Identifier of the [language](#/System%20%26%20Context/readLanguages) to be set for the new employee.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "permissions": { + "description": "Permissions of the new role", + "type": "array", + "items": { + "type": "string" + } }, - "roleId": { - "description": "Id of the role of the new employee", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "isDefaultRole": { + "description": "Ability to set the new role as default", + "type": "boolean" } }, - "required": [ - "firstName", - "lastName", - "email", - "languageId" - ], "type": "object" } } @@ -22143,11 +22574,11 @@ }, "responses": { "200": { - "description": "Employee entity", + "description": "Role entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } } @@ -22160,15 +22591,19 @@ ] } }, - "/employee": { + "/role": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of employees", - "description": "This route is used to load employees", - "operationId": "readEmployees", - "parameters": [], + "summary": "Fetch a list of roles", + "description": "This route is used to load roles", + "operationId": "readRoles", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -22185,7 +22620,7 @@ }, "responses": { "200": { - "description": "Entity search result containing employees", + "description": "Entity search result containing roles", "content": { "application/json": { "schema": { @@ -22196,7 +22631,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } }, @@ -22221,10 +22656,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of employees", - "description": "This route is used to load employees", - "operationId": "readEmployeesPOST", - "parameters": [], + "summary": "Fetch a list of roles", + "description": "This route is used to load roles", + "operationId": "readRolesPOST", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -22241,7 +22680,7 @@ }, "responses": { "200": { - "description": "Entity search result containing employees", + "description": "Entity search result containing roles", "content": { "application/json": { "schema": { @@ -22252,7 +22691,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } }, @@ -22274,33 +22713,36 @@ ] } }, - "/employee/{id}": { + "/role/{id}": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch one employee by id", - "description": "This route is used to fetch one employee by id\n\n**Available Associations:**\n- `role`\n- `language`\n- `organization`", - "operationId": "readB2bEmployee", + "summary": "Fetch one role by id", + "description": "This route is used to fetch one role by id", + "operationId": "readRole", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be read", + "description": "Identifier of the role to be fetched", "required": true, "schema": { "type": "string", - "format": "uuid" + "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "Employee entity", + "description": "Role entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } } @@ -22316,19 +22758,22 @@ "tags": [ "B2B Employee Management" ], - "summary": "Update one employee by id", - "description": "This route is used to update one employee by id", - "operationId": "updateEmployee", + "summary": "Update one role by id", + "description": "This route is used to update one role by id", + "operationId": "updateRole", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be updated", + "description": "Identifier of the role to be updated", "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -22337,21 +22782,20 @@ "application/json": { "schema": { "properties": { - "firstName": { - "description": "New first name of the employee", - "type": "string" - }, - "lastName": { - "description": "New last name of the employee", + "name": { + "description": "New name of the role", "type": "string" }, - "email": { - "description": "New email of the employee", - "type": "string" + "permissions": { + "description": "New permissions of the role", + "type": "array", + "items": { + "type": "string" + } }, - "roleId": { - "description": "New id of the role of the employee", - "type": "string" + "isDefaultRole": { + "description": "Ability to set the role as default", + "type": "boolean" } }, "type": "object" @@ -22361,11 +22805,11 @@ }, "responses": { "200": { - "description": "Employee entity", + "description": "Role entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/B2bComponentsRole" } } } @@ -22381,14 +22825,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Delete one employee by id", - "description": "This route is used to delete one employee by id", - "operationId": "deleteEmployee", + "summary": "Delete one role by id", + "description": "This route is used to delete one role by id", + "operationId": "deleteRole", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be deleted", + "description": "Identifier of the role to be fetched", "required": true, "schema": { "type": "string", @@ -22408,34 +22852,22 @@ ] } }, - "/employee/reinvite/{id}": { + "/role/default": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Reinvite employee by id", - "description": "This route is used to reinvite an employee via email by id", - "operationId": "reinviteEmployee", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the employee to be reinvited", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], + "summary": "Sets the default role Id for new employees", + "description": "This route is used to update the defaultRoleId for new employees", + "operationId": "updateDefaultRoleId", "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "storefrontUrl": { - "description": "URL of the storefront domain", + "id": { + "description": "Id of the roleId to be set as default", "type": "string" } }, @@ -22445,55 +22877,70 @@ } }, "responses": { - "200": { - "description": "Employee entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/B2bEmployee" - } - } - } + "204": { + "description": "No content response" } }, "security": [ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, - "/role/create": { + "/employee/create": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Create a single role and return the role", - "description": "This route is used to create and return an role", - "operationId": "createRole", - "parameters": [], + "summary": "Create a single employee and return the employee", + "description": "This route is used to create and return an employee", + "operationId": "createEmployee", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "name": { - "description": "Name of the new role", + "firstName": { + "description": "First name of the new employee", "type": "string" }, - "permissions": { - "description": "Permissions of the new role", - "type": "array", - "items": { - "type": "string" - } + "lastName": { + "description": "Last name of the new employee", + "type": "string" }, - "isDefaultRole": { - "description": "Ability to set the new role as default", - "type": "boolean" + "email": { + "description": "Email of the new employee", + "type": "string" + }, + "languageId": { + "description": "Identifier of the [language](#/System%20%26%20Context/readLanguages) to be set for the new employee.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "roleId": { + "description": "Id of the role of the new employee", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, + "required": [ + "firstName", + "lastName", + "email", + "languageId" + ], "type": "object" } } @@ -22501,11 +22948,11 @@ }, "responses": { "200": { - "description": "Role entity", + "description": "Employee entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } } @@ -22518,15 +22965,19 @@ ] } }, - "/role": { + "/employee": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRoles", - "parameters": [], + "summary": "Fetch a list of employees", + "description": "This route is used to load employees", + "operationId": "readEmployees", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -22543,7 +22994,7 @@ }, "responses": { "200": { - "description": "Entity search result containing roles", + "description": "Entity search result containing employees", "content": { "application/json": { "schema": { @@ -22554,7 +23005,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } }, @@ -22579,10 +23030,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRolesPOST", - "parameters": [], + "summary": "Fetch a list of employees", + "description": "This route is used to load employees", + "operationId": "readEmployeesPOST", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -22599,7 +23054,7 @@ }, "responses": { "200": { - "description": "Entity search result containing roles", + "description": "Entity search result containing employees", "content": { "application/json": { "schema": { @@ -22610,7 +23065,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } }, @@ -22632,33 +23087,36 @@ ] } }, - "/role/{id}": { + "/employee/{id}": { "get": { "tags": [ "B2B Employee Management" ], - "summary": "Fetch one role by id", - "description": "This route is used to fetch one role by id", - "operationId": "readRole", + "summary": "Fetch one employee by id", + "description": "This route is used to fetch one employee by id\n\n**Available Associations:**\n- `role`\n- `language`\n- `organization`", + "operationId": "readB2bEmployee", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be fetched", + "description": "Identifier of the employee to be read", "required": true, "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "uuid" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "Role entity", + "description": "Employee entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } } @@ -22674,19 +23132,22 @@ "tags": [ "B2B Employee Management" ], - "summary": "Update one role by id", - "description": "This route is used to update one role by id", - "operationId": "updateRole", + "summary": "Update one employee by id", + "description": "This route is used to update one employee by id", + "operationId": "updateEmployee", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be updated", + "description": "Identifier of the employee to be updated", "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -22695,20 +23156,21 @@ "application/json": { "schema": { "properties": { - "name": { - "description": "New name of the role", + "firstName": { + "description": "New first name of the employee", "type": "string" }, - "permissions": { - "description": "New permissions of the role", - "type": "array", - "items": { - "type": "string" - } + "lastName": { + "description": "New last name of the employee", + "type": "string" }, - "isDefaultRole": { - "description": "Ability to set the role as default", - "type": "boolean" + "email": { + "description": "New email of the employee", + "type": "string" + }, + "roleId": { + "description": "New id of the role of the employee", + "type": "string" } }, "type": "object" @@ -22718,11 +23180,11 @@ }, "responses": { "200": { - "description": "Role entity", + "description": "Employee entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/B2bEmployee" } } } @@ -22738,14 +23200,14 @@ "tags": [ "B2B Employee Management" ], - "summary": "Delete one role by id", - "description": "This route is used to delete one role by id", - "operationId": "deleteRole", + "summary": "Delete one employee by id", + "description": "This route is used to delete one employee by id", + "operationId": "deleteEmployee", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be fetched", + "description": "Identifier of the employee to be deleted", "required": true, "schema": { "type": "string", @@ -22765,22 +23227,37 @@ ] } }, - "/role/default": { + "/employee/reinvite/{id}": { "post": { "tags": [ "B2B Employee Management" ], - "summary": "Sets the default role Id for new employees", - "description": "This route is used to update the defaultRoleId for new employees", - "operationId": "updateDefaultRoleId", + "summary": "Reinvite employee by id", + "description": "This route is used to reinvite an employee via email by id", + "operationId": "reinviteEmployee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the employee to be reinvited", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "id": { - "description": "Id of the roleId to be set as default", + "storefrontUrl": { + "description": "URL of the storefront domain", "type": "string" } }, @@ -22790,8 +23267,15 @@ } }, "responses": { - "204": { - "description": "No content response" + "200": { + "description": "Employee entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bEmployee" + } + } + } } }, "security": [ @@ -22819,6 +23303,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -22858,6 +23345,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -22887,7 +23377,11 @@ "summary": "Request new quote", "description": "This route is used to request a new quote from the store", "operationId": "requestQuote", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -22931,7 +23425,11 @@ "summary": "Fetch a list of quotes", "description": "This route is used to load quotes", "operationId": "readQuotes", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -22999,6 +23497,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23052,6 +23553,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23100,6 +23604,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23148,6 +23655,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23200,6 +23710,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23265,6 +23778,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -23297,6 +23813,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23345,6 +23864,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23406,7 +23928,12 @@ } } } - } + }, + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] } }, "/product/image-upload-search/search-term": { @@ -23446,7 +23973,12 @@ } } } - } + }, + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] } }, "/pending-orders/request": { @@ -23457,7 +23989,11 @@ "summary": "Request new order approval", "description": "This route is used to request a new order approval", "operationId": "requestOrderApproval", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -23511,6 +24047,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23560,6 +24099,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -23615,6 +24157,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23663,6 +24208,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23711,6 +24259,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23776,6 +24327,9 @@ "type": "integer", "default": 10 } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23853,6 +24407,9 @@ "type": "integer", "default": 10 } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -23898,7 +24455,11 @@ "summary": "Create a new approval rule", "description": "This route is used to create a new approval rule", "operationId": "createApprovalRule", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -23986,6 +24547,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -24023,6 +24587,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -24102,7 +24669,11 @@ "summary": "Create new shopping list", "description": "This route is used to create a new shopping list from the store", "operationId": "createShoppingList", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -24245,6 +24816,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -24276,6 +24852,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -24315,6 +24894,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -24366,6 +24948,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -24430,6 +25015,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -24495,6 +25083,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -24553,7 +25144,11 @@ "summary": "Delete shopping list line items", "description": "This route is used to delete shopping list line items", "operationId": "removeLineItems", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -24617,6 +25212,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -24658,7 +25256,11 @@ "summary": "Add shopping lists to cart", "description": "This route is used to add shopping lists to cart", "operationId": "addShoppingListsToCart", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -24702,7 +25304,11 @@ "summary": "Create new organization unit", "description": "This route is used to create a new organization", "operationId": "createOrganizationUnit", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -24882,6 +25488,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -24903,6 +25514,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -24940,6 +25554,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -25460,6 +26077,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] }, "get": { @@ -25489,6 +26111,9 @@ "type": "integer", "minimum": 1 } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -25531,7 +26156,7 @@ "B2B Budget Management" ], "summary": "Load single budget", - "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`", + "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`\n- `subscriptionBudgets`", "operationId": "readBudget", "requestBody": { "required": false, @@ -25553,6 +26178,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -25581,7 +26209,7 @@ "B2B Budget Management" ], "summary": "Load single budget", - "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`", + "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`\n- `subscriptionBudgets`", "operationId": "readBudgetGet", "parameters": [ { @@ -25593,6 +26221,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -25633,6 +26264,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -25921,6 +26555,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -25989,6 +26628,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -26128,6 +26770,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] }, "post": { @@ -26174,6 +26821,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -26205,6 +26857,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -26282,6 +26937,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -26380,6 +27038,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { diff --git a/SwagCommercial-storeapi.summary.json b/SwagCommercial-storeapi.summary.json index 5dcabe8..beab522 100644 --- a/SwagCommercial-storeapi.summary.json +++ b/SwagCommercial-storeapi.summary.json @@ -64,10 +64,12 @@ "AdvancedSearchAction", "AdvancedSearchActionSearchTerm", "AdvancedSearchBoosting", + "AdvancedSearchCompoundDictionary", "AdvancedSearchConfig", "AdvancedSearchConfigField", "AdvancedSearchEntityStream", "AdvancedSearchEntityStreamFilter", + "AdvancedSearchStopwordDictionary", "AdvancedSearchSynonym", "Aggregation", "AggregationEntity", @@ -82,6 +84,9 @@ "AppCmsBlock", "AppFlowAction", "AppFlowEvent", + "AppMcpPrompt", + "AppMcpResource", + "AppMcpTool", "AppPaymentMethod", "AppScriptCondition", "AppShippingMethod", @@ -113,6 +118,7 @@ "B2bComponentsShoppingListJsonApi", "B2bComponentsShoppingListLineItem", "B2bComponentsShoppingListLineItemJsonApi", + "B2bComponentsSubscriptionBudget", "B2bComponentsSubscriptionEmployee", "B2bEmployee", "B2bOrderEmployee", @@ -128,6 +134,8 @@ "CartDeliveryPosition", "CartError", "CartItems", + "CartItemsUpdate", + "CartLineItemUpdate", "CartListPrice", "CartPriceQuantity", "CartPriceReference", @@ -220,6 +228,7 @@ "NavigationType", "NewsletterRecipient", "NewsletterRecipientJsonApi", + "NewsletterStatus", "NoneFieldsCriteria", "Notification", "NumberRange", @@ -303,6 +312,7 @@ "SalesChannelAnalytics", "SalesChannelContext", "SalesChannelDomain", + "SalesChannelFile", "SalesChannelTrackingCustomer", "SalesChannelTrackingOrder", "SalesChannelType", diff --git a/SwagCustomizedProducts-storeapi.json b/SwagCustomizedProducts-storeapi.json index 98839be..f2ac4ab 100644 --- a/SwagCustomizedProducts-storeapi.json +++ b/SwagCustomizedProducts-storeapi.json @@ -546,6 +546,84 @@ }, "type": "object" }, + "AppMcpPrompt": { + "description": "Added since version: 6.7.0.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "AppMcpResource": { + "description": "Added since version: 6.7.0.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "AppMcpTool": { + "description": "Added since version: 6.7.0.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, "AppPaymentMethod": { "description": "Added since version: 6.4.1.0", "properties": { @@ -704,7 +782,12 @@ }, "type": { "description": "Type of categories like `page`, `folder`, `link`.", - "type": "string" + "type": "string", + "enum": [ + "page", + "link", + "folder" + ] }, "productAssignmentType": { "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", @@ -718,10 +801,6 @@ "description": "When boolean value is `true`, the category is listed for selection.", "type": "boolean" }, - "cmsPageIdSwitched": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, "visibleChildCount": { "description": "Runtime field, cannot be used as part of the criteria.", "type": "integer", @@ -734,7 +813,13 @@ "type": "object" }, "linkType": { - "type": "string" + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, "internalLink": { "type": "string", @@ -771,6 +856,11 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "cmsPageIdSwitched": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean", + "deprecated": true + }, "seoUrl": { "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" @@ -1060,7 +1150,8 @@ "type": "string", "enum": [ "page", - "link" + "link", + "folder" ] }, "productAssignmentType": { @@ -1075,10 +1166,6 @@ "description": "When boolean value is `true`, the category is listed for selection.", "type": "boolean" }, - "cmsPageIdSwitched": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, "visibleChildCount": { "description": "Runtime field, cannot be used as part of the criteria.", "type": "integer", @@ -1091,7 +1178,13 @@ "type": "object" }, "linkType": { - "type": "string" + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, "internalLink": { "type": "string", @@ -1128,6 +1221,11 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "cmsPageIdSwitched": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean", + "deprecated": true + }, "seoUrl": { "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" @@ -1435,7 +1533,7 @@ "format": "int64" }, "type": { - "description": "Types of sections can be `sidebar` or `fullwidth`.", + "description": "Types of sections can be `default` or `sidebar`.", "type": "string", "enum": [ "default", @@ -2479,7 +2577,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": { @@ -2535,6 +2633,11 @@ }, "readOnly": true }, + "requestedGroupId": { + "description": "Unique identity of requested group.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "createdById": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -3353,7 +3456,7 @@ "description": "Unique number associated with every document.", "type": "string" }, - "config": { + "customFields": { "type": "object" }, "createdAt": { @@ -3361,8 +3464,9 @@ "format": "date-time", "readOnly": true }, - "customFields": { - "type": "object" + "config": { + "type": "object", + "deprecated": true }, "updatedAt": { "type": "string", @@ -3434,6 +3538,9 @@ "description": "Technical name of document type.", "type": "string" }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -3444,9 +3551,6 @@ "format": "date-time", "readOnly": true }, - "customFields": { - "type": "object" - }, "translated": { "type": "object" } @@ -5339,10 +5443,6 @@ "description": "Title name given to customer like DR. , Prof., etc.", "type": "string" }, - "vatId": { - "description": "Unique identity of VAT.", - "type": "string" - }, "phoneNumber": { "description": "Phone number of the customer.", "type": "string" @@ -5362,6 +5462,11 @@ "customFields": { "type": "object" }, + "vatId": { + "description": "Unique identity of VAT.", + "type": "string", + "deprecated": true + }, "createdAt": { "type": "string", "format": "date-time", @@ -5944,7 +6049,16 @@ }, "type": { "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", - "type": "string" + "type": "string", + "enum": [ + "product", + "credit", + "custom", + "promotion", + "container", + "discount", + "quantity" + ] }, "customFields": { "type": "object" @@ -6932,6 +7046,11 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "openGraphMediaId": { + "description": "Media used as Open Graph image for social media sharing.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "productNumber": { "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", "type": "string" @@ -7125,9 +7244,19 @@ "customFields": { "type": "object" }, + "ogTitle": { + "type": "string" + }, + "ogDescription": { + "type": "string" + }, "type": { "description": "The type of the product, e.g., physical or digital.", - "type": "string" + "type": "string", + "enum": [ + "physical", + "digital" + ] }, "states": { "type": "array", @@ -7458,6 +7587,36 @@ }, "type": "object" }, + "openGraphMedia": { + "description": "Open Graph image for social media sharing", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/openGraphMedia" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "media" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "bbda52d941a3452369a00f2880f4f358" + } + } + } + }, + "type": "object" + }, "cmsPage": { "description": "Custom CMS page layout for the product detail page", "properties": { @@ -8023,6 +8182,11 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "openGraphMediaId": { + "description": "Media used as Open Graph image for social media sharing.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "productNumber": { "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", "type": "string" @@ -8216,6 +8380,12 @@ "customFields": { "type": "object" }, + "ogTitle": { + "type": "string" + }, + "ogDescription": { + "type": "string" + }, "type": { "description": "The type of the product, e.g., physical or digital.", "type": "string", @@ -8421,6 +8591,10 @@ "$ref": "#/components/schemas/ProductMedia", "description": "Main product image displayed in listings and detail pages" }, + "openGraphMedia": { + "$ref": "#/components/schemas/Media", + "description": "Open Graph image for social media sharing" + }, "cmsPage": { "$ref": "#/components/schemas/CmsPage", "description": "Custom CMS page layout for the product detail page" @@ -9769,6 +9943,46 @@ }, "type": "object" }, + "SalesChannelTrackingCustomer": { + "description": "Added since version: 6.7.9.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SalesChannelTrackingOrder": { + "description": "Added since version: 6.7.9.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, "SalesChannelType": { "description": "Added since version: 6.0.0.0", "required": [ @@ -9826,6 +10040,11 @@ "customFields": { "type": "object" }, + "position": { + "description": "Numerical value that indicates the order in which the defined salutations must be displayed in the frontend.", + "type": "integer", + "format": "int64" + }, "createdAt": { "type": "string", "format": "date-time", @@ -9870,6 +10089,11 @@ "customFields": { "type": "object" }, + "position": { + "description": "Numerical value that indicates the order in which the defined salutations must be displayed in the frontend.", + "type": "integer", + "format": "int64" + }, "createdAt": { "type": "string", "format": "date-time", @@ -9963,7 +10187,12 @@ }, "routeName": { "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", - "type": "string" + "type": "string", + "enum": [ + "frontend.detail.page", + "frontend.navigation.page", + "frontend.landing.page" + ] }, "pathInfo": { "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", @@ -10045,9 +10274,9 @@ "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string", "enum": [ + "frontend.detail.page", "frontend.navigation.page", - "frontend.landing.page", - "frontend.detail.page" + "frontend.landing.page" ] }, "pathInfo": { @@ -10092,8 +10321,7 @@ "readOnly": true } }, - "type": "object", - "title": "SeoUrlEntity" + "type": "object" }, "SeoUrlTemplate": { "description": "Added since version: 6.0.0.0", @@ -12663,24 +12891,76 @@ } } }, - "CartDelivery": { + "SalesChannelContext": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "deliveryDate": { + "token": { + "description": "Context the user session", + "type": "string" + }, + "currentCustomerGroup": { "type": "object", + "description": "Customer group of the current user", "properties": { - "earliest": { - "type": "string", - "format": "date-time" + "name": { + "type": "string" }, - "latest": { - "type": "string", - "format": "date-time" + "displayGross": { + "type": "boolean" } } }, - "location": { + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } + } + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } + }, + "customer": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Customer" + } + ] + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { "type": "object", "properties": { "apiAlias": { @@ -12694,405 +12974,578 @@ }, "address": { "$ref": "#/components/schemas/CustomerAddress" - }, - "state": { - "$ref": "#/components/schemas/CountryState" } } }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } - }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" - }, "shippingMethod": { "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } - }, - "OrderRouteResponse": { - "type": "object", - "properties": { - "orders": { + }, + "context": { + "description": "Core context with general configuration values and state", "type": "object", - "allOf": [ - { + "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": [ - "elements" + "salesChannelId", + "type" ], "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] + }, + "salesChannelId": { + "type": "string" } } }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" } - ] + } }, - "paymentChangeable": { + "itemRounding": { "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": [ + "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" + } + } + }, + "totalRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] + }, + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + } + }, + "languageInfo": { + "type": "object", + "required": [ + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" + } } + }, + "apiAlias": { + "type": "string", + "enum": [ + "sales_channel_context" + ] } }, "required": [ - "orders" + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" ] }, - "ReferencePrice": { + "CartError": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "purchaseUnit": { - "type": "number" + "key": { + "type": "string" }, - "referenceUnit": { - "type": "number" + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "unitName": { + "message": { "type": "string" }, - "price": { - "type": "number" - }, - "apiAlias": { + "messageKey": { + "type": "string" + } + }, + "required": [ + "key", + "level", + "message", + "messageKey" + ] + }, + "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": [ - "cart_price_reference" - ] + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/ListPrice" + "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." }, - { - "type": "null" + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." } - ] + } + } + } + }, + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "regulationPrice": { + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { "oneOf": [ { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "type": "string", + "format": "date-time" }, { "type": "null" } ] }, - "hasRange": { - "type": "boolean" + "country": { + "$ref": "#/components/schemas/Country" }, - "variantId": { + "countryState": { "oneOf": [ { - "type": "string", - "format": "^[0-9a-f]{32}$" + "$ref": "#/components/schemas/CountryState" }, { "type": "null" } ] + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "required": [ - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" ] }, - "SuccessResponse": { + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + }, + { + "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 + }, + "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 + }, + "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" + } + ] + } + } + } + ] + }, + "WishlistLoadRouteResponse": { "type": "object", + "required": [ + "products" + ], "properties": { - "success": { - "type": "boolean" + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "salesChannelId": { + "type": "string" + } + } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" } } }, - "Cart": { + "Sitemap": { "type": "object", "properties": { - "name": { - "description": "Name of the cart - for example `guest-cart`", + "filename": { "type": "string" }, - "token": { - "description": "Context token identifying the cart and the user session", - "type": "string" + "created": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "filename", + "created" + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" + ] + }, + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" }, "price": { - "$ref": "#/components/schemas/CalculatedPrice" + "type": "number" }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } + "quantity": { + "type": "number" }, - "errors": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } - }, - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] - } + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" } - ] - }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" - } + }, + "type": "object" }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", + "taxRules": { "type": "array", "items": { "type": "object", "properties": { - "paymentMethodId": { - "type": "string" + "taxRate": { + "type": "number", + "format": "float" }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" + "name": { + "type": "string" } } } }, - "modified": { - "type": "boolean" - }, - "customerComment": { - "description": "A comment that can be added to the cart.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] + "type": { + "type": "string" } }, "required": [ - "price", "apiAlias" ] }, - "CookieEntryCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieEntry" - } - }, - "CrossSellingElement": { + "ProductDetailResponse": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "crossSelling": { - "$ref": "#/components/schemas/ProductCrossSelling" + "product": { + "$ref": "#/components/schemas/Product" }, - "products": { + "configurator": { "type": "array", + "description": "List of property groups with their corresponding options and information on how to display them.", "items": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/PropertyGroup" } - }, - "total": { - "type": "integer", - "format": "int32" - }, - "streamId": { - "type": "string", - "format": "uuid" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cross_selling_element" - ] } }, "required": [ - "crossSelling", - "products", - "total", - "apiAlias" + "product" ] }, - "CalculatedPrice": { + "NewsletterStatus": { + "type": "string", + "enum": [ + "notSet", + "optIn", + "optOut", + "direct", + "undefined" + ], + "description": "The subscription status. Possible values are: notSet, optIn, optOut, direct, undefined." + }, + "CartDelivery": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "unitPrice": { - "type": "number" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "quantity": { + "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" + } + } + }, + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDeliveryPosition" + } + }, + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + } + } + }, + "ReferencePrice": { + "type": "object", + "properties": { + "purchaseUnit": { "type": "number" }, - "rawTotal": { + "referenceUnit": { "type": "number" }, - "totalPrice": { + "unitName": { + "type": "string" + }, + "price": { "type": "number" }, - "taxStatus": { + "apiAlias": { "type": "string", "enum": [ - "net", - "tax-free" + "cart_price_reference" ] }, - "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": { + "listPrice": { "oneOf": [ { - "$ref": "#/components/schemas/CartPriceReference" + "$ref": "#/components/schemas/ListPrice" }, { "type": "null" } ] }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { + "regulationPrice": { "oneOf": [ { "type": "object", @@ -13126,159 +13579,165 @@ "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" + "unitName" ] }, - "CartPriceReference": { + "CartDeliveryInformation": { "type": "object", "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, "apiAlias": { "type": "string", "enum": [ - "cart_price_reference" + "cart_delivery_information" ] }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] + "freeDelivery": { + "type": "boolean" }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "deliveryTime": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "null" + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_time" + ] } - ] + } }, - "hasRange": { - "type": "boolean" + "height": { + "type": "integer" }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] + "length": { + "type": "integer" + }, + "restockTime": { + "type": "integer" + }, + "stock": { + "type": "integer" + }, + "weight": { + "type": "integer" + }, + "width": { + "type": "integer" } }, "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "apiAlias" ] }, - "CartDeliveryPosition": { + "Cart": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "deliveryDate": { + "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", - "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" + ] + } } + ] + }, + "deliveries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDelivery" } }, - "identifier": { - "type": "string" + "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" + } + } + } }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" + "modified": { + "type": "boolean" }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "ProductListingFlags": { - "type": "object", - "description": "Additional flags for product listings", - "properties": { - "no-aggregations": { - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "customerComment": { + "description": "A comment that can be added to the cart.", "oneOf": [ { "type": "string" @@ -13288,8 +13747,8 @@ } ] }, - "only-aggregations": { - "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "affiliateCode": { + "description": "An affiliate tracking code", "oneOf": [ { "type": "string" @@ -13298,1539 +13757,664 @@ "type": "null" } ] - } - } + }, + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart" + ] + } + }, + "required": [ + "price", + "apiAlias" + ] }, - "CartListPrice": { + "AccountNewsletterRecipient": { "type": "object", - "description": "", "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" + "status": { + "$ref": "#/components/schemas/NewsletterStatus" }, "apiAlias": { "type": "string", "enum": [ - "cart_list_price" + "account_newsletter_recipient" ] } }, "required": [ + "status", "apiAlias" ] }, - "NavigationRouteResponse": { + "CrossSellingElementCollection": { "type": "array", "items": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/CrossSellingElement" } }, - "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" + "Criteria": { + "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" + }, + "term": { + "description": "Search term", + "type": "string" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "min": { - "type": "integer", - "format": "int32" + { + "$ref": "#/components/schemas/EqualsFilter" }, - "max": { - "type": "integer", - "format": "int32" + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "unit": { - "type": "string" + { + "$ref": "#/components/schemas/RangeFilter" } - } - }, - "translations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "shippingMethodId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - } + ] + } + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "query": { + "type": "string", + "description": "The query string to search for" + }, + "associations": { + "$ref": "#/components/schemas/Associations" + }, + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } - }, - "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" - } + ] + } + }, + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + }, + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" + } + } + }, + "NoneFieldsCriteria": { + "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" + }, + "term": { + "description": "Search term", + "type": "string" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } - }, - "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": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "priority": { - "type": "integer", - "format": "int32" - }, - "invalid": { - "type": "boolean" - } - } - }, - "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" - } - } - } - } - } - } - }, - "Sitemap": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "filename", - "created" - ] - }, - "AggregationEntity": { - "title": "AggregationEntity", - "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" - ] - }, - "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" - ] - }, - "AggregationFilter": { - "title": "AggregationFilter", - "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": [ - "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" - }, - "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" - } - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "AggregationHistogram": { - "title": "AggregationHistogram", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "histogram" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "interval": { - "description": "The interval of the histogram", - "type": "number" - }, - "format": { - "description": "The format of the histogram", - "type": "string" - }, - "timeZone": { - "description": "The timezone of the histogram", - "type": "string" - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "AggregationRange": { - "title": "AggregationRange", - "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "ranges": { - "description": "The ranges of the aggregation", - "type": "array", - "items": { - "type": "object", - "anyOf": [ - { - "type": "object", - "title": "From and to", - "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" - }, - "to": { - "type": "number", - "description": "The upper bound of the range" - } - }, - "required": [ - "from", - "to" - ] - }, - { - "type": "object", - "title": "From only", - "properties": { - "from": { - "type": "string", - "description": "The lower bound of the range" - } - }, - "required": [ - "from" - ] - }, - { - "type": "object", - "title": "To only", - "properties": { - "to": { - "type": "string", - "description": "The upper bound of the range" - } - }, - "required": [ - "to" - ] - } - ] - } - } - }, - "required": [ - "name", - "type", - "field", - "ranges" - ] - }, - "LineItemType": { - "type": "string", - "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", - "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": { - "type": "string" - }, - "removable": { - "type": "boolean" - }, - "stackable": { - "type": "boolean" - }, - "states": { - "deprecated": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "is-physical", - "is-download" - ] - } - }, - "type": { - "$ref": "#/components/schemas/LineItemType" - }, - "uniqueIdentifier": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "deliveryInformation", - "payload", - "quantity", - "states" - ] - }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - } - }, - "CartError": { - "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" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "FindProductVariantRouteResponse": { - "type": "object", - "properties": { - "foundCombination": { - "type": "object", - "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "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 - }, - "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 - }, - "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" - } - ] - } - } - } - ] - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" - ] - }, - "WishlistLoadRouteResponse": { - "type": "object", - "required": [ - "products" - ], - "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string" - }, - "salesChannelId": { - "type": "string" - } + ] } }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "AggregationMetrics": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" - ] + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "field": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "CartDeliveryInformation": { - "type": "object", - "properties": { - "apiAlias": { + "query": { "type": "string", - "enum": [ - "cart_delivery_information" - ] + "description": "The query string to search for" }, - "freeDelivery": { - "type": "boolean" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer" - }, - "max": { - "type": "integer" - }, - "unit": { - "type": "string" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_time" - ] - } + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "height": { - "type": "integer" - }, - "length": { - "type": "integer" - }, - "restockTime": { - "type": "integer" - }, - "stock": { - "type": "integer" - }, - "weight": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "required": [ - "apiAlias" - ] - }, - "CartItems": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { + "sort": { "type": "array", + "description": "Sorting in the search result.", "items": { - "$ref": "#/components/schemas/LineItem" + "$ref": "#/components/schemas/Sort" } - } - } - }, - "Breadcrumb": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "type": { - "type": "string", - "enum": [ - "page", - "link", - "folder" - ] }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" - }, - "linkType": { - "type": "string", - "enum": [ - "external", - "category", - "product", - "landing_page" - ] - }, - "internalLink": { - "type": "string" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - } + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" } }, - "path": { - "type": "string" - }, - "seoUrls": { + "grouping": { "type": "array", + "description": "Perform groupings over certain fields", "items": { - "$ref": "#/components/schemas/SeoUrl" + "type": "string", + "description": "Name of a field" } }, - "apiAlias": { - "type": "string", - "enum": [ - "breadcrumb" - ] + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } - }, - "required": [ - "name", - "categoryId", - "type", - "translated", - "path", - "apiAlias" - ] + } + }, + "Associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } }, - "SalesChannelContext": { + "Excludes": { "type": "object", - "properties": { - "token": { - "description": "Context the user session", + "additionalProperties": { + "type": "array", + "items": { "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" }, - "displayGross": { - "type": "boolean" + { + "$ref": "#/components/schemas/SubAggregations" } - } + ] }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" }, - "displayGross": { - "type": "boolean" - } - } - }, - "currency": { - "$ref": "#/components/schemas/Currency" - }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" - }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } + { + "$ref": "#/components/schemas/SubAggregations" } - } + ] }, - "customer": { - "oneOf": [ + { + "title": "AggregationTerms", + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/AggregationTerms" }, { - "$ref": "#/components/schemas/Customer" + "$ref": "#/components/schemas/SubAggregations" } ] }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" + { + "$ref": "#/components/schemas/SubAggregations" } - } - }, - "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" + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" }, - "source": { - "type": "object", - "required": [ - "salesChannelId", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "sales-channel", - "shop-api" - ] - }, - "salesChannelId": { - "type": "string" - } - } + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + } + ] + }, + "SubAggregations": { + "type": "object", + "properties": { + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "taxState": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationEntity" }, - "useCache": { - "type": "boolean" - } - } - }, - "itemRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] + { + "$ref": "#/components/schemas/AggregationFilter" }, - "decimals": { - "type": "integer", - "format": "int32" + { + "$ref": "#/components/schemas/AggregationTerms" }, - "interval": { - "type": "number", - "format": "float" + { + "$ref": "#/components/schemas/AggregationHistogram" }, - "roundForNet": { - "type": "boolean" + { + "$ref": "#/components/schemas/AggregationRange" } - } + ] + } + } + }, + "TotalCountMode": { + "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", + "type": "string", + "default": "none", + "enum": [ + "none", + "exact", + "next-pages" + ] + }, + "Query": { + "type": "object", + "properties": { + "score": { + "type": "number" }, - "totalRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] - }, - "decimals": { - "type": "integer", - "format": "int32" + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "interval": { - "type": "number", - "format": "float" + { + "$ref": "#/components/schemas/EqualsFilter" }, - "roundForNet": { - "type": "boolean" - } - } - }, - "languageInfo": { - "type": "object", - "required": [ - "localeCode", - "name" - ], - "properties": { - "name": { - "type": "string" + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "localeCode": { - "type": "string" + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] + } + }, + "additionalProperties": true + }, + "Sort": { + "type": "object", + "properties": { + "field": { + "type": "string" }, - "apiAlias": { + "order": { "type": "string", "enum": [ - "sales_channel_context" + "ASC", + "DESC" ] + }, + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" } }, "required": [ - "salesChannel", - "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" + "field", + "order" ] }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" + "Filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "ContextMeasurementSystemInfo": { + "SimpleFilter": { "type": "object", - "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "system": { + "type": { "type": "string", "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + "contains", + "equalsAny", + "prefix", + "suffix" + ] }, - "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." + "field": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] + }, + "field": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "string" }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" } - } + ] } - } + }, + "required": [ + "type", + "field", + "value" + ] }, - "ListPrice": { + "MultiNotFilter": { "type": "object", - "description": "", "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" + "type": { + "type": "string", + "enum": [ + "multi", + "not" + ] }, - "price": { - "type": "number" + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] }, - "apiAlias": { + "queries": { + "$ref": "#/components/schemas/Filters" + } + }, + "required": [ + "type", + "operator", + "queries" + ] + }, + "RangeFilter": { + "type": "object", + "properties": { + "type": { "type": "string", "enum": [ - "cart_list_price" + "range" ] + }, + "field": { + "type": "string" + }, + "parameters": { + "type": "object", + "properties": { + "gte": { + "type": "number" + }, + "gt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "lt": { + "type": "number" + } + } } }, "required": [ - "apiAlias" + "type", + "field", + "parameters" ] }, + "FindProductVariantRouteResponse": { + "type": "object", + "properties": { + "foundCombination": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, "Price": { "type": "object", "description": "Price object", "properties": { "currencyId": { + "description": "Unique identity of the associated currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "gross": { - "description": "", + "description": "Gross price for the associated currency.", "type": "number" }, "net": { - "description": "", + "description": "Net price for the associated currency.", "type": "number" }, "linked": { - "description": "", + "description": "Whether gross and net prices are linked through the tax configuration.", "type": "boolean" }, + "percentage": { + "description": "Discount percentage relative to the list price for the gross and net amounts. `null` when no list price is set.", + "type": [ + "object", + "null" + ], + "properties": { + "gross": { + "description": "Discount percentage relative to the gross list price.", + "type": "number" + }, + "net": { + "description": "Discount percentage relative to the net list price.", + "type": "number" + } + }, + "required": [ + "gross", + "net" + ] + }, "listPrice": { - "description": "", + "description": "Reference list price for displaying discounts.", "type": "object", "properties": { "currencyId": { + "description": "Unique identity of the associated currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "gross": { - "description": "", + "description": "Gross list price for the associated currency.", "type": "number" }, "net": { - "description": "", + "description": "Net list price for the associated currency.", "type": "number" }, "linked": { - "description": "", + "description": "Whether gross and net list prices are linked through the tax configuration.", "type": "boolean" } }, @@ -14840,23 +14424,24 @@ ] }, "regulationPrice": { - "description": "", + "description": "Reference price used for legal price disclosures.", "type": "object", "properties": { "currencyId": { + "description": "Unique identity of the associated currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "gross": { - "description": "", + "description": "Gross regulation price for the associated currency.", "type": "number" }, "net": { - "description": "", + "description": "Net regulation price for the associated currency.", "type": "number" }, "linked": { - "description": "", + "description": "Whether gross and net regulation prices are linked through the tax configuration.", "type": "boolean" } }, @@ -14872,6 +14457,51 @@ "net" ] }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" + ] + }, + "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" + ] + }, "ProductListingResult": { "allOf": [ { @@ -15008,14 +14638,237 @@ "product_listing" ] } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" + }, + "required": [ + "elements", + "availableSortings", + "currentFilters", + "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" + }, + "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", + "kg", + "oz", + "lb" + ], + "default": "kg" + }, + "value": { + "type": "number" + } + } + } + } + }, + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "CrossSellingElement": { + "type": "object", + "properties": { + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" + }, + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "total": { + "type": "integer", + "format": "int32" + }, + "streamId": { + "type": "string", + "format": "uuid" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cross_selling_element" + ] + } + }, + "required": [ + "crossSelling", + "products", + "total", + "apiAlias" + ] + }, + "CookieEntry": { + "type": "object", + "properties": { + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cookie_entry" + ] + } + }, + "required": [ + "cookie", + "hidden", + "apiAlias" + ] + }, + "MeasurementUnits": { + "type": "object", + "description": "Configuration of the measurement system", + "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." + } + } + } + } + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" ] } + }, + "required": [ + "apiAlias" ] }, "CookieGroup": { @@ -15069,6 +14922,83 @@ "apiAlias" ] }, + "SuccessResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + } + } + }, + "CartItems": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + } + } + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] + }, + "field": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "CartDeliveryPosition": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } + }, + "identifier": { + "type": "string" + }, + "lineItem": { + "$ref": "#/components/schemas/LineItem" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } + }, "CustomerAddressBody": { "description": "Added since version: 6.0.0.0", "required": [ @@ -15139,155 +15069,49 @@ }, "type": "object" }, - "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" - ] - }, - "CartPriceQuantity": { + "ProductPurchaseLimit": { "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" - } - }, + "description": "Current quantity purchase limits for a product.", "required": [ + "productId", + "minPurchase", + "purchaseSteps", + "maxPurchase", + "stock", "apiAlias" - ] - }, - "MeasurementUnits": { - "type": "object", - "description": "Configuration of the measurement system", + ], "properties": { - "system": { + "productId": { "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." - } - } - } - } - }, - "CookieEntry": { - "type": "object", - "properties": { - "cookie": { - "type": "string" - }, - "value": { - "type": "string" + "pattern": "^[0-9a-f]{32}$", + "description": "The product ID." }, - "expiration": { - "type": "integer" + "minPurchase": { + "type": "integer", + "description": "Minimum quantity a customer can purchase." }, - "name": { - "type": "string" + "purchaseSteps": { + "type": "integer", + "description": "Step increment for quantity selection." }, - "description": { - "type": "string" + "maxPurchase": { + "type": "integer", + "description": "Maximum quantity a customer can purchase, reflecting current stock for closeout products." }, - "hidden": { - "type": "boolean" + "stock": { + "type": [ + "integer", + "null" + ], + "description": "Current stock level of the product." }, "apiAlias": { "type": "string", "enum": [ - "cookie_entry" + "product_purchase_limit" ] - } - }, - "required": [ - "cookie", - "hidden", - "apiAlias" - ] + } + } }, "CookieRouteResponse": { "type": "object", @@ -15368,731 +15192,1279 @@ "cookie": "google-analytics-enabled", "apiAlias": "cookie_entry" } - ], - "apiAlias": "cookie_group" + ], + "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" + } + }, + "CartItemsUpdate": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartLineItemUpdate" + } + } + } + }, + "CartLineItemUpdate": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" + }, + "quantity": { + "type": "integer" + }, + "referencedId": { + "type": "string" + }, + "label": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "stackable": { + "type": "boolean" + }, + "removable": { + "type": "boolean" + }, + "coverId": { + "type": "string" + }, + "priceDefinition": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "price": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "quantity": { + "type": "integer" + }, + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "type": "number" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number" + }, + "percentage": { + "type": "number" + } + } + } + } + } + } + } + }, + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + }, + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "ProductListingFlags": { + "type": "object", + "description": "Additional flags for product listings", + "properties": { + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "only-aggregations": { + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "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" + } + } + } }, - { - "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" + "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" + } } - ], - "apiAlias": "cookie_group" + } }, - { - "isRequired": false, - "name": "Comfort features", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "YouTube video", - "hidden": false, - "cookie": "youtube-video", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" - } - ], - "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", - "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" - } - }, - "Criteria": { - "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", - "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "term": { - "description": "Search term", - "type": "string" - }, - "limit": { - "description": "Number of items per result page", - "type": "integer" - }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" + "availabilityRule": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "$ref": "#/components/schemas/EqualsFilter" + "description": { + "type": "string" }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "priority": { + "type": "integer", + "format": "int32" }, - { - "$ref": "#/components/schemas/RangeFilter" + "invalid": { + "type": "boolean" } - ] - } - }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { + } + }, + "availabilityRuleId": { "type": "string" - } - }, - "query": { - "type": "string", - "description": "The query string to search for" - }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" + }, + "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" }, - { - "$ref": "#/components/schemas/EqualsFilter" + "mimeType": { + "type": "string" }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "fileExtension": { + "type": "string" }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } - }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Includes" - }, - "excludes": { - "$ref": "#/components/schemas/Excludes" - } - } - }, - "NoneFieldsCriteria": { - "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", - "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "term": { - "description": "Search term", - "type": "string" - }, - "limit": { - "description": "Number of items per result page", - "type": "integer" - }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" + "fileSize": { + "type": "integer", + "format": "int32" }, - { - "$ref": "#/components/schemas/EqualsFilter" + "title": { + "type": "string" }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "metaDataRaw": { + "type": "string" }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } - }, - "query": { - "type": "string", - "description": "The query string to search for" - }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" + "mediaTypeRaw": { + "type": "string" }, - { - "$ref": "#/components/schemas/EqualsFilter" + "uploadedAt": { + "type": "string", + "format": "date-time" }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "alt": { + "type": "string" }, - { - "$ref": "#/components/schemas/RangeFilter" + "url": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "mediaFolderId": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "thumbnailsRo": { + "type": "string" } - ] - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } - }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" + } + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + } } - }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Includes" - }, - "excludes": { - "$ref": "#/components/schemas/Excludes" - } - } - }, - "Associations": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Includes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" } } }, - "Excludes": { + "CartPriceReference": { "type": "object", - "additionalProperties": { - "type": "array", - "items": { + "properties": { + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { "type": "string" - } - } - }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" }, - { - "title": "AggregationEntity", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "price": { + "type": "number" }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" ] }, - { - "title": "AggregationTerms", - "allOf": [ + "listPrice": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationTerms" + "$ref": "#/components/schemas/CartListPrice" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, - { - "title": "AggregationHistogram", - "allOf": [ + "regulationPrice": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationHistogram" + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, - { - "title": "AggregationRange", - "allOf": [ + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationRange" + "type": "string", + "format": "^[0-9a-f]{32}$" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] } + }, + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" ] }, - "SubAggregations": { + "Breadcrumb": { "type": "object", "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" + "name": { + "type": "string" + }, + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "type": { + "$ref": "#/components/schemas/Category/properties/type" + }, + "translated": { + "type": "object", + "additionalProperties": true, + "properties": { + "customFields": { + "type": "object" }, - { - "$ref": "#/components/schemas/AggregationEntity" + "slotConfig": { + "type": "object" }, - { - "$ref": "#/components/schemas/AggregationFilter" + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" }, - { - "$ref": "#/components/schemas/AggregationTerms" + "internalLink": { + "type": "string" }, - { - "$ref": "#/components/schemas/AggregationHistogram" + "externalLink": { + "type": "string" }, - { - "$ref": "#/components/schemas/AggregationRange" + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" } + } + }, + "path": { + "type": "string" + }, + "seoUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" ] } - } - }, - "TotalCountMode": { - "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", - "type": "string", - "default": "none", - "enum": [ - "none", - "exact", - "next-pages" + }, + "required": [ + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" ] }, - "Query": { + "CalculatedPrice": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "score": { + "unitPrice": { "type": "number" }, - "query": { + "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/SimpleFilter" + "$ref": "#/components/schemas/CartPriceReference" }, { - "$ref": "#/components/schemas/EqualsFilter" + "type": "null" + } + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" }, { - "$ref": "#/components/schemas/MultiNotFilter" + "type": "null" + } + ] + }, + "positionPrice": { + "type": "number" + }, + "netPrice": { + "type": "number" + }, + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, { - "$ref": "#/components/schemas/RangeFilter" + "type": "null" } ] - } - }, - "additionalProperties": true - }, - "Sort": { - "type": "object", - "properties": { - "field": { - "type": "string" }, - "order": { + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "apiAlias": { "type": "string", "enum": [ - "ASC", - "DESC" + "calculated_price" ] }, - "naturalSorting": { - "type": "boolean" - }, - "type": { - "type": "string" + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } } }, "required": [ - "field", - "order" + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules", + "rawTotal", + "taxStatus" ] }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" } }, - "SimpleFilter": { + "LineItemType": { + "type": "string", + "deprecated": true, + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity" + ] + }, + "LineItem": { "type": "object", "properties": { - "type": { - "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } }, - "field": { + "cover": { + "$ref": "#/components/schemas/Media" + }, + "dataContextHash": { "type": "string" }, - "value": { + "dataTimestamp": { "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "EqualsFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] }, - "field": { + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" + }, + "description": { "type": "string" }, - "value": { - "oneOf": [ - { - "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", + "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" }, - { - "type": "boolean" + "minPurchase": { + "type": "number" }, - { - "type": "null" + "purchaseSteps": { + "type": "number" } - ] + } + }, + "referencedId": { + "type": "string" + }, + "removable": { + "type": "boolean" + }, + "stackable": { + "type": "boolean" + }, + "states": { + "deprecated": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } + }, + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" + }, + "uniqueIdentifier": { + "type": "string" } }, "required": [ - "type", - "field", - "value" + "id", + "type" ] }, - "MultiNotFilter": { + "ListPrice": { "type": "object", + "description": "", "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] + "discount": { + "type": "number" }, - "operator": { + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "and", - "or", - "nor", - "nand" + "cart_list_price" ] - }, - "queries": { - "$ref": "#/components/schemas/Filters" } }, "required": [ - "type", - "operator", - "queries" + "apiAlias" ] }, - "RangeFilter": { + "AggregationEntity": { + "title": "AggregationEntity", "type": "object", "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "range" + "entity" ] }, "field": { + "description": "The field you want to aggregate over.", "type": "string" }, - "parameters": { - "type": "object", - "properties": { - "gte": { - "type": "number" - }, - "gt": { - "type": "number" - }, - "lte": { - "type": "number" - }, - "lt": { - "type": "number" - } - } + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" } }, "required": [ + "name", "type", "field", - "parameters" + "definition" ] }, - "CustomerAddressRead": { + "AggregationFilter": { + "title": "AggregationFilter", "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "createdAt": { + "type": { + "description": "The type of aggregation", "type": "string", - "format": "date-time" - }, - "updatedAt": { - "oneOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "oneOf": [ - { - "$ref": "#/components/schemas/CountryState" - }, - { - "type": "null" - } + "enum": [ + "filter" ] }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } } }, "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" + "name", + "type", + "filter" ] }, - "ProductMeasurements": { + "AggregationTerms": { + "title": "AggregationTerms", "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" - }, - "value": { - "type": "number" - } - } + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "height": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "terms" + ] }, - "length": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "weight": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg" - }, - "value": { - "type": "number" - } + "limit": { + "description": "The number of terms to return", + "type": "number" + }, + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" } } - } + }, + "required": [ + "name", + "type", + "field" + ] }, - "AccountNewsletterRecipient": { + "AggregationHistogram": { + "title": "AggregationHistogram", "type": "object", "properties": { - "status": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" + "histogram" ] }, - "apiAlias": { + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "interval": { + "description": "The interval of the histogram", + "type": "number" + }, + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "account_newsletter_recipient" + "range" ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" + }, + "to": { + "type": "number", + "description": "The upper bound of the range" + } + }, + "required": [ + "from", + "to" + ] + }, + { + "type": "object", + "title": "From only", + "properties": { + "from": { + "type": "string", + "description": "The lower bound of the range" + } + }, + "required": [ + "from" + ] + }, + { + "type": "object", + "title": "To only", + "properties": { + "to": { + "type": "string", + "description": "The upper bound of the range" + } + }, + "required": [ + "to" + ] + } + ] + } } }, "required": [ - "status", - "apiAlias" + "name", + "type", + "field", + "ranges" ] } }, @@ -16206,47 +16578,188 @@ "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" + }, + "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" + } + ] + } + } + } + }, + "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" + } + ] + } + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + } + } + }, + "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" } ] } - }, + } + } + }, + "CategoryListResponse": { + "description": "Entity search result containing categories.", + "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ + "allOf": [ { - "status": "400", - "title": "Bad Request", - "description": "Bad parameters for this endpoint. See documentation for the correct ones." + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } ] } } } }, - "204": { - "description": "No Content" - }, - "ProductListResponse": { - "description": "Entity search result containing products", + "CountryStateListResponse": { + "description": "Entity search result containing countries.", "content": { "application/json": { "schema": { "allOf": [ { - "required": [ - "elements" - ], "properties": { "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/CountryState" } } }, @@ -16260,22 +16773,25 @@ } } }, - "CategoryListResponse": { - "description": "Entity search result containing categories.", + "LanguageListResponse": { + "description": "Entity search result containing languages.", "content": { "application/json": { "schema": { "allOf": [ { - "type": "object", "properties": { "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Language" } } - } + }, + "required": [ + "elements" + ], + "type": "object" }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -16285,6 +16801,30 @@ } } }, + "ContextTokenResponse": { + "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", + "headers": { + "sw-context-token": { + "description": "Contains sw-context-token value", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } + } + } + } + } + }, "OpenApi3": { "description": "Returns information about the store API.", "content": { @@ -16474,72 +17014,6 @@ } } }, - "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" - } - ] - } - } - } - }, - "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" - } - ] - } - } - } - }, "PaymentMethodListResponse": { "description": "", "content": { @@ -16601,108 +17075,6 @@ } } } - }, - "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" - } - ] - } - } - } - }, - "ContextTokenResponse": { - "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" - } - } - } - } - } - }, - "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" - } - ] - } - } - } - }, - "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" - } - ] - } - } - } } }, "parameters": { @@ -16726,6 +17098,16 @@ "default": "application/json" } }, + "swLanguageId": { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, "noAggregations": { "name": "no-aggregations", "in": "query", diff --git a/SwagCustomizedProducts-storeapi.summary.json b/SwagCustomizedProducts-storeapi.summary.json index 9690699..492dbf4 100644 --- a/SwagCustomizedProducts-storeapi.summary.json +++ b/SwagCustomizedProducts-storeapi.summary.json @@ -16,6 +16,9 @@ "AppCmsBlock", "AppFlowAction", "AppFlowEvent", + "AppMcpPrompt", + "AppMcpResource", + "AppMcpTool", "AppPaymentMethod", "AppScriptCondition", "AppShippingMethod", @@ -30,6 +33,8 @@ "CartDeliveryPosition", "CartError", "CartItems", + "CartItemsUpdate", + "CartLineItemUpdate", "CartListPrice", "CartPriceQuantity", "CartPriceReference", @@ -117,6 +122,7 @@ "NavigationType", "NewsletterRecipient", "NewsletterRecipientJsonApi", + "NewsletterStatus", "NoneFieldsCriteria", "Notification", "NumberRange", @@ -157,6 +163,7 @@ "ProductMeasurements", "ProductMedia", "ProductPrice", + "ProductPurchaseLimit", "ProductReview", "ProductSearchConfig", "ProductSearchConfigField", @@ -182,6 +189,8 @@ "SalesChannelAnalytics", "SalesChannelContext", "SalesChannelDomain", + "SalesChannelTrackingCustomer", + "SalesChannelTrackingOrder", "SalesChannelType", "Salutation", "SalutationJsonApi", diff --git a/SwagDigitalSalesRooms-storeapi.json b/SwagDigitalSalesRooms-storeapi.json index 0f3a5bc..c78a48f 100644 --- a/SwagDigitalSalesRooms-storeapi.json +++ b/SwagDigitalSalesRooms-storeapi.json @@ -546,6 +546,84 @@ }, "type": "object" }, + "AppMcpPrompt": { + "description": "Added since version: 6.7.11.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "AppMcpResource": { + "description": "Added since version: 6.7.11.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "AppMcpTool": { + "description": "Added since version: 6.7.11.0", + "required": [ + "label" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, "AppPaymentMethod": { "description": "Added since version: 6.4.1.0", "properties": { @@ -996,324 +1074,316 @@ } ] }, - "Category": { + "CountryJsonApi": { "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "breadcrumb", - "children", - "childCount", - "translated", - "type", - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "afterCategoryId": { - "description": "Unique identity of the category under which the new category is to be created.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "afterCategoryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "description": "Unique identity of media added to identify category.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "displayNestedProducts": { - "description": "Shows nested categories on a product category page.", - "type": "boolean" - }, - "breadcrumb": { - "type": "array", - "items": { - "type": "string", - "additionalProperties": false - }, - "readOnly": true - }, - "level": { - "description": "An integer value that denotes the level of nesting of a particular category located in an hierarchical category tree.", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "path": { - "description": "A relative URL to the category.", - "type": "string", - "readOnly": true - }, - "childCount": { - "type": "number", - "format": "int64", - "readOnly": true - }, - "type": { - "description": "Type of categories like `page`, `folder`, `link`.", - "type": "string", - "enum": [ - "page", - "link", - "folder" - ] - }, - "productAssignmentType": { - "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", - "type": "string" - }, - "visible": { - "description": "Displays categories on category page when true.", - "type": "boolean" - }, - "active": { - "description": "When boolean value is `true`, the category is listed for selection.", - "type": "boolean" - }, - "visibleChildCount": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "integer", - "format": "int64" - }, - "name": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "linkType": { - "type": "string", - "enum": [ - "category", - "product", - "external", - "landing_page" - ] - }, - "internalLink": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - }, - "cmsPageId": { - "description": "Unique identity of CMS page.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customEntityTypeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageIdSwitched": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "deprecated": true - }, - "seoUrl": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "breadcrumb": { - "type": "array", - "items": { - "type": "string" - } - } - }, + { "required": [ - "breadcrumb" - ] - }, - "parent": { - "$ref": "#/components/schemas/Category", - "description": "Unique identity of category." - }, - "children": { - "description": "Child categories within this category for hierarchical navigation", - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - }, - "media": { - "$ref": "#/components/schemas/Media", - "description": "Category image or banner" - }, - "tags": { - "description": "Tags for organizing and filtering categories", - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "cmsPage": { - "$ref": "#/components/schemas/CmsPage", - "description": "CMS page layout for the category" - }, - "seoUrls": { - "description": "SEO-friendly URLs for the category across different sales channels", - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "category" - ] + "id", + "name", + "addressFormat" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "iso": { + "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", + "type": "string" + }, + "position": { + "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the country is available for selection in the storefront.", + "type": "boolean" + }, + "shippingAvailable": { + "description": "The shipping availability for a country is enabled when boolean value is `true`.", + "type": "boolean" + }, + "iso3": { + "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", + "type": "string" + }, + "displayStateInRegistration": { + "description": "The country's state is displayed in the address when boolean value is `true`.", + "type": "boolean" + }, + "forceStateInRegistration": { + "description": "State details in the address are force included when boolean value is `true`.", + "type": "boolean" + }, + "checkVatIdPattern": { + "description": "Verify if VAT ID is valid or not.", + "type": "boolean" + }, + "vatIdRequired": { + "description": "Set to true, if VAT ID is to be made mandatory.", + "type": "boolean" + }, + "vatIdPattern": { + "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "customerTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], + "properties": { + "enabled": { + "type": "boolean" + }, + "currencyId": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "companyTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], + "properties": { + "enabled": { + "type": "boolean" + }, + "currencyId": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "postalCodeRequired": { + "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", + "type": "boolean" + }, + "checkPostalCodePattern": { + "description": "Verify for valid postal code pattern.", + "type": "boolean" + }, + "checkAdvancedPostalCodePattern": { + "description": "Verify for advanced postal code pattern.", + "type": "boolean" + }, + "advancedPostalCodePattern": { + "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", + "type": "string" + }, + "addressFormat": { + "type": "object" + }, + "defaultPostalCodePattern": { + "description": "Default pattern of postal or zip code.", + "type": "string" + }, + "isEu": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "relationships": { + "properties": { + "states": { + "description": "States/provinces/regions within the country", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/country/59716c97497eb9694541f7c3d37b1a4d/states" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country_state" + }, + "id": { + "type": "string", + "example": "34d955a0df5f7af9c9b4e4dccb3c3564" + } + } + } + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" } - }, - "type": "object" + ] }, - "CmsBlock": { + "Country": { "description": "Added since version: 6.0.0.0", "required": [ - "apiAlias", - "slots", "id", - "position", - "type", - "sectionId" + "name", + "addressFormat" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "cmsSectionVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "iso": { + "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", + "type": "string" }, "position": { - "description": "Order of the block indicated by number like 0, 1, 2,...", + "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", "type": "integer", "format": "int64" }, - "type": { - "description": "Type of block can be 'image`, `text`, 'product-listing`, `image-two-column`, etc.", - "type": "string" - }, - "name": { - "description": "Unique name of the CMS Block.", - "type": "string" + "active": { + "description": "When boolean value is `true`, the country is available for selection in the storefront.", + "type": "boolean" }, - "sectionPosition": { - "description": "Position of the section. It can either be `main` or `sidebar`.", - "type": "string" + "shippingAvailable": { + "description": "The shipping availability for a country is enabled when boolean value is `true`.", + "type": "boolean" }, - "marginTop": { - "description": "Defines the margin area on the top of an element.", + "iso3": { + "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", "type": "string" }, - "marginBottom": { - "description": "Defines for the margin area on the bottom of an element.", - "type": "string" - }, - "marginLeft": { - "description": "Defines for the margin area on the left of an element.", - "type": "string" + "displayStateInRegistration": { + "description": "The country's state is displayed in the address when boolean value is `true`.", + "type": "boolean" }, - "marginRight": { - "description": "Defines the margin area on the right of an element.", - "type": "string" + "forceStateInRegistration": { + "description": "State details in the address are force included when boolean value is `true`.", + "type": "boolean" }, - "backgroundColor": { - "description": "Defines the background color of an element.", - "type": "string" + "checkVatIdPattern": { + "description": "Verify if VAT ID is valid or not.", + "type": "boolean" }, - "backgroundMediaId": { - "description": "Unique identity of background media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "vatIdRequired": { + "description": "Set to true, if VAT ID is to be made mandatory.", + "type": "boolean" }, - "backgroundMediaMode": { - "description": "Background media mode accept values `cover`, `auto`, `contain`.", + "vatIdPattern": { + "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", "type": "string" }, - "cssClass": { - "description": "One or more CSS classes added and separated by spaces.", - "type": "string" + "customFields": { + "type": "object" }, - "visibility": { + "customerTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], "properties": { - "mobile": { + "enabled": { "type": "boolean" }, - "desktop": { - "type": "boolean" + "currencyId": { + "type": "string" }, - "tablet": { + "amount": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "companyTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], + "properties": { + "enabled": { "type": "boolean" + }, + "currencyId": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "float" } }, "type": "object" }, - "sectionId": { - "description": "Unique identity of section.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "postalCodeRequired": { + "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", + "type": "boolean" }, - "customFields": { + "checkPostalCodePattern": { + "description": "Verify for valid postal code pattern.", + "type": "boolean" + }, + "checkAdvancedPostalCodePattern": { + "description": "Verify for advanced postal code pattern.", + "type": "boolean" + }, + "advancedPostalCodePattern": { + "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", + "type": "string" + }, + "addressFormat": { "type": "object" }, + "defaultPostalCodePattern": { + "description": "Default pattern of postal or zip code.", + "type": "string" + }, + "isEu": { + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -1324,68 +1394,112 @@ "format": "date-time", "readOnly": true }, - "backgroundMedia": { - "$ref": "#/components/schemas/Media" + "translated": { + "type": "object" }, - "slots": { + "states": { + "description": "States/provinces/regions within the country", "type": "array", "items": { - "$ref": "#/components/schemas/CmsSlot" + "$ref": "#/components/schemas/CountryState" } - }, - "apiAlias": { - "type": "string", - "enum": [ - "cms_block" - ] } }, "type": "object" }, - "CmsPage": { + "CountryStateJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "countryId", + "shortCode", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Unique identity of the country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shortCode": { + "description": "An abbreviation for the country's state.", + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + } + ] + }, + "CountryState": { "description": "Added since version: 6.0.0.0", "required": [ - "apiAlias", - "sections", "id", - "type" + "countryId", + "shortCode", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "countryId": { + "description": "Unique identity of the country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "type": { - "description": "CMS page types can be `landingpage`, `page`, `product_list`, `product_detail`.", - "type": "string" - }, - "entity": { - "description": "This field will be implemented in the future.", + "shortCode": { + "description": "An abbreviation for the country's state.", "type": "string" }, - "cssClass": { - "description": "One or more CSS classes added and separated by spaces.", + "name": { "type": "string" }, - "config": { - "properties": { - "backgroundColor": { - "type": "string" - } - }, - "type": "object" + "position": { + "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", + "type": "integer", + "format": "int64" }, - "previewMediaId": { - "description": "Unique identity of media to be previewed.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "active": { + "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", + "type": "boolean" }, "customFields": { "type": "object" @@ -1402,115 +1516,221 @@ }, "translated": { "type": "object" - }, - "sections": { - "description": "Content sections within the CMS page (layout blocks containing slots)", - "type": "array", - "items": { - "$ref": "#/components/schemas/CmsSection" - } - }, - "previewMedia": { - "$ref": "#/components/schemas/Media", - "description": "Preview image for the CMS page in admin panel and page selection" - }, - "landingPages": { - "description": "Landing pages using this CMS layout", - "type": "array", - "items": { - "$ref": "#/components/schemas/LandingPage" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "cms_page" - ] } }, "type": "object" }, - "CmsSection": { + "CurrencyJsonApi": { "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "blocks", - "id", - "position", - "type", - "pageId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "cmsPageVersionId": { + { + "required": [ + "id", + "factor", + "symbol", + "isoCode", + "itemRounding", + "totalRounding", + "shortName", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "factor": { + "description": "Currency exchange rate.", + "type": "number", + "format": "float" + }, + "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", + "type": "string" + }, + "isoCode": { + "description": "Standard international three digit code to represent currency. For example, USD.", + "type": "string" + }, + "shortName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "description": "The order of the tabs for multiple currencies defined.", + "type": "integer", + "format": "int64" + }, + "isSystemDefault": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "taxFreeFrom": { + "description": "The value from which the tax must be exempted.", + "type": "number", + "format": "float" + }, + "customFields": { + "type": "object" + }, + "itemRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], + "properties": { + "decimals": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + }, + "type": "object" + }, + "totalRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], + "properties": { + "decimals": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + }, + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + } + ] + }, + "Currency": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "factor", + "symbol", + "isoCode", + "itemRounding", + "totalRounding", + "shortName", + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "position": { - "description": "Position of occurrence of each section denoted by numerical values 0, 1, 2...", - "type": "integer", - "format": "int64" - }, - "type": { - "description": "Types of sections can be `default` or `sidebar`.", - "type": "string", - "enum": [ - "default", - "sidebar" - ] + "factor": { + "description": "Currency exchange rate.", + "type": "number", + "format": "float" }, - "name": { - "description": "Name of the CMS section defined.", + "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", "type": "string" }, - "sizingMode": { - "description": "Sizing mode can be `boxed` or `full_width`.", + "isoCode": { + "description": "Standard international three digit code to represent currency. For example, USD.", "type": "string" }, - "mobileBehavior": { - "description": "Hides the sidebar on mobile viewports. It can hold values such as 'mobile', 'wrap', any other string or be unset.", + "shortName": { "type": "string" }, - "backgroundColor": { - "description": "Background color of CMS page.", + "name": { "type": "string" }, - "backgroundMediaId": { - "description": "Unique identity of CMS section's background media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "position": { + "description": "The order of the tabs for multiple currencies defined.", + "type": "integer", + "format": "int64" }, - "backgroundMediaMode": { - "description": "Background media mode can be `cover`, `auto` or `contain`.", - "type": "string" + "isSystemDefault": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" }, - "cssClass": { - "description": "One or more CSS classes added and separated by spaces.", - "type": "string" + "taxFreeFrom": { + "description": "The value from which the tax must be exempted.", + "type": "number", + "format": "float" }, - "pageId": { - "description": "Unique identity of page where CMS section is defined.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "customFields": { + "type": "object" }, - "visibility": { + "itemRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], "properties": { - "mobile": { - "type": "boolean" + "decimals": { + "type": "integer", + "format": "int64" }, - "desktop": { - "type": "boolean" + "interval": { + "type": "number", + "format": "float" }, - "tablet": { + "roundForNet": { "type": "boolean" } }, "type": "object" }, - "customFields": { + "totalRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], + "properties": { + "decimals": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + }, "type": "object" }, "createdAt": { @@ -1523,80 +1743,76 @@ "format": "date-time", "readOnly": true }, - "page": { - "$ref": "#/components/schemas/CmsPage" - }, - "backgroundMedia": { - "$ref": "#/components/schemas/Media" - }, - "blocks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CmsBlock" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "cms_section" - ] + "translated": { + "type": "object" } }, "type": "object" }, - "CmsSlot": { - "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "id", - "type", - "slot", - "blockId" - ], + "CurrencyCountryRounding": { + "description": "Added since version: 6.4.0.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "cmsBlockVersionId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "CustomEntity": { + "description": "Added since version: 6.4.9.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "fieldConfig": { - "type": "object" - }, - "type": { - "description": "It indicates the types of content that can be defined within the slot which includes `image`, `text`, `form`, `product-listing`, `category-navigation`, `product-box`, `buy-box`, `sidebar-filter`, etc.", - "type": "string" - }, - "slot": { - "description": "Key-value pair to configure which element to be shown in which slot.", - "type": "string" - }, - "locked": { - "type": "boolean" - }, - "config": { - "type": "object" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "customFields": { - "type": "object", - "properties": { - "_uniqueIdentifier": { - "type": "string" - } - } + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "CustomField": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "data": { - "type": "object", + "createdAt": { + "type": "string", + "format": "date-time", "readOnly": true }, - "blockId": { - "description": "Unique identity of CMS block where slot is defined.", + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "CustomFieldSet": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -1609,38 +1825,31 @@ "type": "string", "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "CustomFieldSetRelation": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object", - "properties": { - "config": { - "type": "object", - "properties": { - "content": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - } - } - } - }, - "block": { - "$ref": "#/components/schemas/CmsBlock" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "apiAlias": { + "updatedAt": { "type": "string", - "enum": [ - "cms_slot" - ] + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "CountryJsonApi": { + "CustomerAddressJsonApi": { "description": "Added since version: 6.0.0.0", "allOf": [ { @@ -1649,144 +1858,168 @@ { "required": [ "id", - "name", - "addressFormat" + "customerId", + "countryId", + "firstName", + "lastName", + "city", + "street" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { + "customerId": { + "description": "Unique identity of customer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "description": "Unique identity of country's state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", "type": "string" }, - "iso": { - "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", + "lastName": { + "description": "Last name of the customer.", "type": "string" }, - "position": { - "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", - "type": "integer", - "format": "int64" + "zipcode": { + "description": "Postal or zip code of customer's address.", + "type": "string" }, - "active": { - "description": "When boolean value is `true`, the country is available for selection in the storefront.", - "type": "boolean" + "city": { + "description": "Name of customer's city.", + "type": "string" }, - "shippingAvailable": { - "description": "The shipping availability for a country is enabled when boolean value is `true`.", - "type": "boolean" + "company": { + "description": "Name of customer's company.", + "type": "string" }, - "iso3": { - "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", + "street": { + "description": "Name of customer's street.", "type": "string" }, - "displayStateInRegistration": { - "description": "The country's state is displayed in the address when boolean value is `true`.", - "type": "boolean" + "department": { + "description": "Name of customer's department.", + "type": "string" }, - "forceStateInRegistration": { - "description": "State details in the address are force included when boolean value is `true`.", - "type": "boolean" + "title": { + "description": "Titles given to customer like Dr. , Prof., etc", + "type": "string" }, - "checkVatIdPattern": { - "description": "Verify if VAT ID is valid or not.", - "type": "boolean" + "phoneNumber": { + "description": "Customer's phone number.", + "type": "string" }, - "vatIdRequired": { - "description": "Set to true, if VAT ID is to be made mandatory.", - "type": "boolean" + "additionalAddressLine1": { + "description": "Additional customer's address information.", + "type": "string" }, - "vatIdPattern": { - "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", + "additionalAddressLine2": { + "description": "Additional customer's address information.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" }, "customFields": { "type": "object" }, - "customerTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], - "properties": { - "enabled": { - "type": "boolean" - }, - "currencyId": { - "type": "string" - }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" }, - "companyTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "relationships": { "properties": { - "enabled": { - "type": "boolean" + "country": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/country" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "e909c2d7067ea37437cf97fe11d91bd0" + } + } + } + }, + "type": "object" }, - "currencyId": { - "type": "string" + "countryState": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/countryState" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country_state" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "cb6a9764567191fb74fe28d8d6a4819d" + } + } + } + }, + "type": "object" }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "postalCodeRequired": { - "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", - "type": "boolean" - }, - "checkPostalCodePattern": { - "description": "Verify for valid postal code pattern.", - "type": "boolean" - }, - "checkAdvancedPostalCodePattern": { - "description": "Verify for advanced postal code pattern.", - "type": "boolean" - }, - "advancedPostalCodePattern": { - "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", - "type": "string" - }, - "addressFormat": { - "type": "object" - }, - "defaultPostalCodePattern": { - "description": "Default pattern of postal or zip code.", - "type": "string" - }, - "isEu": { - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - }, - "relationships": { - "properties": { - "states": { - "description": "States/provinces/regions within the country", + "salutation": { "properties": { "links": { "type": "object", @@ -1794,23 +2027,21 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/country/59716c97497eb9694541f7c3d37b1a4d/states" + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/salutation" } } }, "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "country_state" - }, - "id": { - "type": "string", - "example": "34d955a0df5f7af9c9b4e4dccb3c3564" - } + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "salutation" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7a6efb02514153b5aa9a8f40c6f8bcc3" } } } @@ -1825,131 +2056,156 @@ } ] }, - "Country": { + "CustomerRecovery": { + "description": "Added since version: 6.1.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "CustomerTag": { "description": "Added since version: 6.0.0.0", "required": [ - "id", - "name", - "addressFormat" + "customerId", + "tagId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "iso": { - "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", - "type": "string" + "tagId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "position": { - "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", - "type": "integer", - "format": "int64" + "tag": { + "$ref": "#/components/schemas/Tag" + } + }, + "type": "object" + }, + "CustomerWishlist": { + "description": "Added since version: 6.3.4.0", + "required": [ + "id", + "customerId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "active": { - "description": "When boolean value is `true`, the country is available for selection in the storefront.", - "type": "boolean" + "customerId": { + "description": "Unique identity of the customer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "shippingAvailable": { - "description": "The shipping availability for a country is enabled when boolean value is `true`.", - "type": "boolean" + "customFields": { + "type": "object" }, - "iso3": { - "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "displayStateInRegistration": { - "description": "The country's state is displayed in the address when boolean value is `true`.", - "type": "boolean" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "forceStateInRegistration": { - "description": "State details in the address are force included when boolean value is `true`.", - "type": "boolean" + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerWishlistProduct" + } + } + }, + "type": "object" + }, + "CustomerWishlistProduct": { + "description": "Added since version: 6.3.4.0", + "required": [ + "id", + "productId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "checkVatIdPattern": { - "description": "Verify if VAT ID is valid or not.", - "type": "boolean" + "productId": { + "description": "Unique identity of the product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "vatIdRequired": { - "description": "Set to true, if VAT ID is to be made mandatory.", - "type": "boolean" + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "vatIdPattern": { - "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", - "type": "string" - }, - "customFields": { - "type": "object" - }, - "customerTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], - "properties": { - "enabled": { - "type": "boolean" - }, - "currencyId": { - "type": "string" - }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "companyTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], - "properties": { - "enabled": { - "type": "boolean" - }, - "currencyId": { - "type": "string" - }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "DeliveryTime": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "name", + "min", + "max", + "unit" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "postalCodeRequired": { - "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", - "type": "boolean" + "name": { + "type": "string" }, - "checkPostalCodePattern": { - "description": "Verify for valid postal code pattern.", - "type": "boolean" + "min": { + "description": "Minimum delivery time taken.", + "type": "integer", + "format": "int64" }, - "checkAdvancedPostalCodePattern": { - "description": "Verify for advanced postal code pattern.", - "type": "boolean" + "max": { + "description": "Maximum delivery time taken.", + "type": "integer", + "format": "int64" }, - "advancedPostalCodePattern": { - "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", + "unit": { + "description": "Unit in which the delivery time is defined. For example, days or hours.", "type": "string" }, - "addressFormat": { + "customFields": { "type": "object" }, - "defaultPostalCodePattern": { - "description": "Default pattern of postal or zip code.", - "type": "string" - }, - "isEu": { - "type": "boolean" - }, "createdAt": { "type": "string", "format": "date-time", @@ -1962,83 +2218,15 @@ }, "translated": { "type": "object" - }, - "states": { - "description": "States/provinces/regions within the country", - "type": "array", - "items": { - "$ref": "#/components/schemas/CountryState" - } } }, "type": "object" }, - "CountryStateJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "countryId", - "shortCode", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "description": "Unique identity of the country.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shortCode": { - "description": "An abbreviation for the country's state.", - "type": "string" - }, - "name": { - "type": "string" - }, - "position": { - "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", - "type": "integer", - "format": "int64" - }, - "active": { - "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", - "type": "boolean" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" - } - ] - }, - "CountryState": { + "DocumentBaseConfig": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "countryId", - "shortCode", + "documentTypeId", "name" ], "properties": { @@ -2046,27 +2234,36 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryId": { - "description": "Unique identity of the country.", + "documentTypeId": { + "description": "Unique identity of the document type.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shortCode": { - "description": "An abbreviation for the country's state.", - "type": "string" + "logoId": { + "description": "Unique identity of the company logo.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "name": { + "description": "Name of the document.", "type": "string" }, - "position": { - "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", - "type": "integer", - "format": "int64" + "filenamePrefix": { + "description": "A prefix name added to the file name separated by an underscore.", + "type": "string" }, - "active": { - "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", + "filenameSuffix": { + "description": "A suffix name added to the file name separated by an underscore.", + "type": "string" + }, + "global": { + "description": "When set to `true`, the document can be used across all sales channels.", "type": "boolean" }, + "documentNumber": { + "description": "Unique number associated with every document.", + "type": "string" + }, "customFields": { "type": "object" }, @@ -2075,145 +2272,66 @@ "format": "date-time", "readOnly": true }, + "config": { + "type": "object", + "deprecated": true + }, "updatedAt": { "type": "string", "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "logo": { + "$ref": "#/components/schemas/Media", + "description": "Logo in the document at the top-right corner." } }, "type": "object" }, - "CurrencyJsonApi": { + "DocumentBaseConfigSalesChannel": { "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "required": [ + "id", + "documentBaseConfigId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { - "required": [ - "id", - "factor", - "symbol", - "isoCode", - "itemRounding", - "totalRounding", - "shortName", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "factor": { - "description": "Currency exchange rate.", - "type": "number", - "format": "float" - }, - "symbol": { - "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", - "type": "string" - }, - "isoCode": { - "description": "Standard international three digit code to represent currency. For example, USD.", - "type": "string" - }, - "shortName": { - "type": "string" - }, - "name": { - "type": "string" - }, - "position": { - "description": "The order of the tabs for multiple currencies defined.", - "type": "integer", - "format": "int64" - }, - "isSystemDefault": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "taxFreeFrom": { - "description": "The value from which the tax must be exempted.", - "type": "number", - "format": "float" - }, - "customFields": { - "type": "object" - }, - "itemRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], - "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - }, - "type": "object" - }, - "totalRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], - "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - }, - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" + "documentBaseConfigId": { + "description": "Unique identity of document's base config.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "description": "Unique identity of sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "documentTypeId": { + "description": "Unique identity of document type.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } - ] + }, + "type": "object" }, - "Currency": { + "DocumentType": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "factor", - "symbol", - "isoCode", - "itemRounding", - "totalRounding", - "shortName", + "technicalName", "name" ], "properties": { @@ -2221,84 +2339,16 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "factor": { - "description": "Currency exchange rate.", - "type": "number", - "format": "float" - }, - "symbol": { - "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", - "type": "string" - }, - "isoCode": { - "description": "Standard international three digit code to represent currency. For example, USD.", - "type": "string" - }, - "shortName": { - "type": "string" - }, "name": { "type": "string" }, - "position": { - "description": "The order of the tabs for multiple currencies defined.", - "type": "integer", - "format": "int64" - }, - "isSystemDefault": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "taxFreeFrom": { - "description": "The value from which the tax must be exempted.", - "type": "number", - "format": "float" + "technicalName": { + "description": "Technical name of document type.", + "type": "string" }, "customFields": { "type": "object" }, - "itemRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], - "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - }, - "type": "object" - }, - "totalRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], - "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - }, - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -2315,75 +2365,81 @@ }, "type": "object" }, - "CurrencyCountryRounding": { - "description": "Added since version: 6.4.0.0", + "DsrAppointment": { + "required": [ + "presentationId", + "salesChannelDomainId", + "name", + "createdById" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "presentationId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CustomEntity": { - "description": "Added since version: 6.4.9.0", - "properties": { - "id": { + "dsrPresentationVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "active": { + "type": "boolean" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CustomField": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "salesChannelDomainId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "accessibleFrom": { "type": "string", - "format": "date-time", - "readOnly": true + "format": "date-time" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CustomFieldSet": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "accessibleTo": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time" }, - "createdAt": { - "type": "string", + "attendeeRuleIds": { + "type": "object" + }, + "guideUserId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "isPreview": { + "type": "boolean" + }, + "videoAudioSettings": { + "type": "string" + }, + "name": { + "type": "string" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "endedAt": { + "type": "string", + "format": "date-time" + }, + "default": { + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "createdById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "updatedById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", "format": "date-time", "readOnly": true }, @@ -2391,17 +2447,33 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" + }, + "videoChat": { + "$ref": "#/components/schemas/DsrAppointmentVideoChat" } }, "type": "object" }, - "CustomFieldSetRelation": { - "description": "Added since version: 6.0.0.0", + "DsrAppointmentAttendee": { "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "joinedAt": { + "type": "string", + "format": "date-time" + }, + "lastActive": { + "type": "string", + "format": "date-time" + }, + "isBlocked": { + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -2415,171 +2487,107 @@ }, "type": "object" }, - "Customer": { - "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "activeBillingAddress", - "activeShippingAddress", - "id", - "groupId", - "salesChannelId", - "languageId", - "defaultBillingAddressId", - "defaultShippingAddressId", - "customerNumber", - "firstName", - "lastName", - "email" - ], + "DsrAppointmentRequest": { "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "groupId": { - "description": "Unique identity of customer group.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salesChannelId": { - "description": "Unique identity of sales channel.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "description": "Unique identity of language.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "lastPaymentMethodId": { - "description": "Unique identity of previous payment method.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "defaultBillingAddressId": { - "description": "Unique identity of default billing address.", + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "defaultShippingAddressId": { - "description": "Unique identity of default shipping address.", + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customerNumber": { - "description": "Unique number assigned to identity a customer.", - "type": "string" - }, - "salutationId": { - "description": "Unique identity of salutation.", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "DsrAppointmentVideoChat": { + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "description": "First name of the customer.", - "type": "string" - }, - "lastName": { - "description": "Last name of the customer.", - "type": "string" - }, - "email": { - "description": "Email ID of the customer.", - "type": "string" - }, - "title": { - "description": "Titles or honorifics like Mr, Mrs, etc.", - "type": "string" - }, - "affiliateCode": { - "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", + "name": { "type": "string" }, - "campaignCode": { - "description": "A campaign code is the globally unique identifier for a campaign.", + "url": { "type": "string" }, - "active": { - "description": "To keep the status of the customer active, the boolean value is set to `true`.", - "type": "boolean" - }, - "doubleOptInRegistration": { - "description": "Set to `true` to allow user subscriptions to an email marketing list.", - "type": "boolean" + "customFields": { + "type": "object" }, - "doubleOptInEmailSentDate": { - "description": "Date and time when the double opt-in email was sent.", + "createdAt": { "type": "string", - "format": "date-time" + "format": "date-time", + "readOnly": true }, - "doubleOptInConfirmDate": { - "description": "Date and time when the double opt-in email was confirmed.", + "updatedAt": { "type": "string", - "format": "date-time" - }, - "hash": { - "description": "Customer registration double opt-in hash for confirming the customer account.", - "type": "string" - }, - "guest": { - "description": "Boolean value is `true` if it is to be a guest account.", - "type": "boolean" - }, - "firstLogin": { - "description": "To capture date and time of customer's first login.", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "DsrAttendeeProductCollection": { + "required": [ + "attendeeId", + "productId" + ], + "properties": { + "id": { "type": "string", - "format": "date-time" + "pattern": "^[0-9a-f]{32}$" }, - "lastLogin": { - "description": "To capture date and time of customer's last login.", + "attendeeId": { "type": "string", - "format": "date-time" + "pattern": "^[0-9a-f]{32}$" }, - "birthday": { - "description": "To capture customer's birthday details.", - "type": "string" + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "lastOrderDate": { - "description": "Captures last order date.", + "createdAt": { "type": "string", "format": "date-time", "readOnly": true }, - "orderCount": { - "description": "Captures the number of orders placed.", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "orderTotalAmount": { - "description": "Sum of total amount to be paid.", - "type": "number", - "format": "float", - "readOnly": true - }, - "reviewCount": { - "description": "Number of reviews the customer has given.", - "type": "integer", - "format": "int64", + "updatedAt": { + "type": "string", + "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "DsrCmsSlide": { + "required": [ + "id", + "slideName", + "cmsSectionId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "tagIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true + "slideName": { + "type": "string" }, - "createdById": { + "cmsSectionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "updatedById": { + "cmsSectionVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -2593,200 +2601,375 @@ "format": "date-time", "readOnly": true }, - "group": { - "$ref": "#/components/schemas/CustomerGroup", - "description": "Customer group determining pricing and permissions" + "translated": { + "type": "object" }, - "language": { - "$ref": "#/components/schemas/Language", - "description": "Preferred language for customer communication" + "cmsSection": { + "$ref": "#/components/schemas/CmsSection" + } + }, + "type": "object" + }, + "DsrInteraction": { + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "lastPaymentMethod": { - "$ref": "#/components/schemas/PaymentMethod", - "description": "Last used payment method by the customer" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "defaultBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress", - "description": "Default billing address for the customer" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "DsrPresentation": { + "required": [ + "id", + "createdById", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "activeBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress", - "description": "Currently active billing address in the session" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "defaultShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress", - "description": "Default shipping address for the customer" + "active": { + "type": "boolean" }, - "activeShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress", - "description": "Currently active shipping address in the session" + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "salutation": { - "$ref": "#/components/schemas/Salutation", - "description": "Customer salutation (e.g., Mr., Mrs., Ms.)" + "parentVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "addresses": { - "description": "All addresses saved for the customer", + "name": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "updatedById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "parent": { + "$ref": "#/components/schemas/DsrPresentation" + }, + "appointments": { "type": "array", "items": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/DsrAppointment" } }, - "tags": { - "description": "Tags assigned to the customer for organization and segmentation", + "cmsPages": { "type": "array", "items": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/DsrPresentationCmsPage" } + } + }, + "type": "object" + }, + "DsrPresentationCmsPage": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "presentationId", + "cmsPageId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "apiAlias": { + "presentationId": { "type": "string", - "enum": [ - "customer" - ] + "pattern": "^[0-9a-f]{32}$" + }, + "dsrPresentationVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "title": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productStreamId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "pickedProductIds": { + "type": "object" + }, + "position": { + "type": "integer", + "format": "int64" + }, + "isInstantListing": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" } }, - "type": "object", - "oneOf": [ - { - "required": [ - "accountType" - ], - "properties": { - "accountType": { - "type": "string", - "enum": [ - "private" - ] - } - } + "type": "object" + }, + "Flow": { + "description": "Added since version: 6.4.6.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { - "required": [ - "accountType", - "vatIds", - "company" - ], - "properties": { - "accountType": { - "type": "string", - "enum": [ - "business" - ] - }, - "vatIds": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - }, - "company": { - "type": "string" - } - } + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } - ] + }, + "type": "object" }, - "CustomerAddressJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "FlowSequence": { + "description": "Added since version: 6.4.6.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "FlowTemplate": { + "description": "Added since version: 6.4.18.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ImportExportFile": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ImportExportLog": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ImportExportProfile": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "Integration": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "LandingPageJsonApi": { + "description": "Added since version: 6.4.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, { "required": [ "id", - "customerId", - "countryId", - "firstName", - "lastName", - "city", - "street" + "name", + "url" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { - "description": "Unique identity of customer.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "description": "Unique identity of country.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "description": "Unique identity of country's state.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "description": "Unique identity of salutation.", + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "description": "First name of the customer.", - "type": "string" - }, - "lastName": { - "description": "Last name of the customer.", - "type": "string" - }, - "zipcode": { - "description": "Postal or zip code of customer's address.", - "type": "string" - }, - "city": { - "description": "Name of customer's city.", - "type": "string" - }, - "company": { - "description": "Name of customer's company.", - "type": "string" + "active": { + "type": "boolean" }, - "street": { - "description": "Name of customer's street.", + "name": { "type": "string" }, - "department": { - "description": "Name of customer's department.", - "type": "string" + "customFields": { + "type": "object" }, - "title": { - "description": "Titles given to customer like Dr. , Prof., etc", - "type": "string" + "slotConfig": { + "type": "object" }, - "phoneNumber": { - "description": "Customer's phone number.", + "metaTitle": { "type": "string" }, - "additionalAddressLine1": { - "description": "Additional customer's address information.", + "metaDescription": { "type": "string" }, - "additionalAddressLine2": { - "description": "Additional customer's address information.", + "keywords": { "type": "string" }, - "hash": { - "description": "Runtime field, cannot be used as part of the criteria.", + "url": { "type": "string" }, - "customFields": { - "type": "object" - }, - "isDefaultBillingAddress": { - "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", - "type": "boolean" + "cmsPageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "isDefaultShippingAddress": { - "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", - "type": "boolean" + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -2798,9 +2981,13 @@ "format": "date-time", "readOnly": true }, + "translated": { + "type": "object" + }, "relationships": { "properties": { - "country": { + "cmsPage": { + "description": "CMS page layout for the landing page", "properties": { "links": { "type": "object", @@ -2808,7 +2995,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/country" + "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/cmsPage" } } }, @@ -2817,19 +3004,20 @@ "properties": { "type": { "type": "string", - "example": "country" + "example": "cms_page" }, "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "example": "e909c2d7067ea37437cf97fe11d91bd0" + "example": "7b1460918b1abb93311108f3dc021c9b" } } } }, "type": "object" }, - "countryState": { + "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", "properties": { "links": { "type": "object", @@ -2837,36 +3025,100 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/countryState" + "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/seoUrls" } } }, "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "country_state" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "cb6a9764567191fb74fe28d8d6a4819d" + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "seo_url" + }, + "id": { + "type": "string", + "example": "5321b5a71127b8b98cdd4b068ad56c4c" + } } } } }, "type": "object" - }, - "salutation": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + }, + "LanguageJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "localeId", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "localeId": { + "description": "Unique identity of locale.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "translationCodeId": { + "description": "Unique identity of translation code.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "description": "Name of the language.", + "type": "string" + }, + "active": { + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "relationships": { + "properties": { + "parent": { + "description": "Unique identity of language.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", "format": "uri-reference", - "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/salutation" + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/parent" } } }, @@ -2875,12 +3127,104 @@ "properties": { "type": { "type": "string", - "example": "salutation" + "example": "language" }, "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "example": "7a6efb02514153b5aa9a8f40c6f8bcc3" + "example": "d0e45878043844ffc41aac437e86b602" + } + } + } + }, + "type": "object" + }, + "locale": { + "description": "Locale defining regional settings (date, time, number formats)", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/locale" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "locale" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "fb216d9e8791e63c8d12bdc420956839" + } + } + } + }, + "type": "object" + }, + "translationCode": { + "description": "Locale used for translating content", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/translationCode" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "locale" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "6ef2035242b8fcb7b61c3a41850e60b3" + } + } + } + }, + "type": "object" + }, + "children": { + "description": "Child languages inheriting from this parent language", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/children" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "language" + }, + "id": { + "type": "string", + "example": "268184c12df027f536154d099d497b31" + } } } } @@ -2895,101 +3239,42 @@ } ] }, - "CustomerAddress": { + "Language": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "customerId", - "countryId", - "firstName", - "lastName", - "city", - "street" + "localeId", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { - "description": "Unique identity of customer.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "description": "Unique identity of country.", + "parentId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryStateId": { - "description": "Unique identity of country's state.", + "localeId": { + "description": "Unique identity of locale.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "salutationId": { - "description": "Unique identity of salutation.", + "translationCodeId": { + "description": "Unique identity of translation code.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "description": "First name of the customer.", - "type": "string" - }, - "lastName": { - "description": "Last name of the customer.", - "type": "string" - }, - "zipcode": { - "description": "Postal or zip code of customer's address.", - "type": "string" - }, - "city": { - "description": "Name of customer's city.", - "type": "string" - }, - "company": { - "description": "Name of customer's company.", - "type": "string" - }, - "street": { - "description": "Name of customer's street.", - "type": "string" - }, - "department": { - "description": "Name of customer's department.", - "type": "string" - }, - "title": { - "description": "Titles given to customer like Dr. , Prof., etc", - "type": "string" - }, - "phoneNumber": { - "description": "Customer's phone number.", - "type": "string" - }, - "additionalAddressLine1": { - "description": "Additional customer's address information.", - "type": "string" - }, - "additionalAddressLine2": { - "description": "Additional customer's address information.", + "name": { + "description": "Name of the language.", "type": "string" }, - "hash": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" + "active": { + "type": "boolean" }, "customFields": { "type": "object" }, - "isDefaultBillingAddress": { - "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "isDefaultShippingAddress": { - "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, "createdAt": { "type": "string", "format": "date-time", @@ -3000,55 +3285,53 @@ "format": "date-time", "readOnly": true }, - "country": { - "$ref": "#/components/schemas/Country" + "parent": { + "$ref": "#/components/schemas/Language", + "description": "Unique identity of language." }, - "countryState": { - "$ref": "#/components/schemas/CountryState" + "locale": { + "$ref": "#/components/schemas/Locale", + "description": "Locale defining regional settings (date, time, number formats)" }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "translationCode": { + "$ref": "#/components/schemas/Locale", + "description": "Locale used for translating content" + }, + "children": { + "description": "Child languages inheriting from this parent language", + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + } } }, "type": "object" }, - "CustomerGroup": { + "Locale": { "description": "Added since version: 6.0.0.0", "required": [ - "translated", "id", - "name" + "code", + "name", + "territory" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { + "code": { + "description": "Code given to the locale. For example: en-CA.", "type": "string" }, - "displayGross": { - "description": "If boolean value is `true` gross value is displayed else, net value will be displayed to the customer.", - "type": "boolean" - }, - "customFields": { - "type": "object" - }, - "registrationActive": { - "description": "To enable the registration of partner customer group.", - "type": "boolean" - }, - "registrationTitle": { + "name": { "type": "string" }, - "registrationIntroduction": { + "territory": { "type": "string" }, - "registrationOnlyCompanyRegistration": { - "type": "boolean" - }, - "registrationSeoMetaDescription": { - "type": "string" + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -3061,27 +3344,13 @@ "readOnly": true }, "translated": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "registrationIntroduction": { - "type": "string" - }, - "registrationSeoMetaDescription": { - "type": "string" - }, - "registrationTitle": { - "type": "string" - } - } + "type": "object" } }, "type": "object" }, - "CustomerRecovery": { - "description": "Added since version: 6.1.0.0", + "LogEntry": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", @@ -3100,46 +3369,76 @@ }, "type": "object" }, - "CustomerTag": { + "MailHeaderFooter": { "description": "Added since version: 6.0.0.0", "required": [ - "customerId", - "tagId" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { + "systemDefault": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "headerHtml": { + "type": "string" + }, + "headerPlain": { + "type": "string" + }, + "footerHtml": { + "type": "string" + }, + "footerPlain": { + "type": "string" + }, + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "tagId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "tag": { - "$ref": "#/components/schemas/Tag" + "translated": { + "type": "object" } }, "type": "object" }, - "CustomerWishlist": { - "description": "Added since version: 6.3.4.0", + "MailTemplate": { + "description": "Added since version: 6.0.0.0", "required": [ - "id", - "customerId" + "subject", + "contentHtml", + "contentPlain" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { - "description": "Unique identity of the customer.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "systemDefault": { + "type": "boolean" + }, + "senderName": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "contentPlain": { + "type": "string" }, "customFields": { "type": "object" @@ -3154,56 +3453,62 @@ "format": "date-time", "readOnly": true }, - "products": { + "translated": { + "type": "object" + }, + "mailTemplateType": { + "$ref": "#/components/schemas/MailTemplateType" + }, + "media": { "type": "array", "items": { - "$ref": "#/components/schemas/CustomerWishlistProduct" + "$ref": "#/components/schemas/MailTemplateMedia" } } }, "type": "object" }, - "CustomerWishlistProduct": { - "description": "Added since version: 6.3.4.0", + "MailTemplateMedia": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "productId" + "mailTemplateId", + "languageId", + "mediaId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productId": { - "description": "Unique identity of the product.", + "mailTemplateId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productVersionId": { + "languageId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "mediaId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "position": { + "type": "integer", + "format": "int64" + }, + "media": { + "$ref": "#/components/schemas/Media" } }, "type": "object" }, - "DeliveryTime": { + "MailTemplateType": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "name", - "min", - "max", - "unit" + "technicalName", + "name" ], "properties": { "id": { @@ -3213,18 +3518,8 @@ "name": { "type": "string" }, - "min": { - "description": "Minimum delivery time taken.", - "type": "integer", - "format": "int64" - }, - "max": { - "description": "Maximum delivery time taken.", - "type": "integer", - "format": "int64" - }, - "unit": { - "description": "Unit in which the delivery time is defined. For example, days or hours.", + "technicalName": { + "description": "Technical name of mail template.", "type": "string" }, "customFields": { @@ -3246,73 +3541,97 @@ }, "type": "object" }, - "Document": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "documentTypeId", - "orderId", - "config", - "deepLinkCode" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentTypeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "referencedDocumentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentMediaFileId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentA11yMediaFileId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "MainCategoryJsonApi": { + "description": "Added since version: 6.1.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "config": { - "type": "object", + { + "required": [ + "id", + "productId", + "categoryId", + "salesChannelId" + ], "properties": { - "name": { - "type": "string" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "title": { - "type": "string" - } - }, - "required": [ - "name", - "title" - ] + "productId": { + "description": "Unique identity of the product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "categoryId": { + "description": "Unique identity of the category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "categoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "description": "Unique identity of the sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + } + ] + }, + "MainCategory": { + "description": "Added since version: 6.1.0.0", + "required": [ + "id", + "productId", + "categoryId", + "salesChannelId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "sent": { - "type": "boolean" + "productId": { + "description": "Unique identity of the product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "static": { - "type": "boolean" + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "deepLinkCode": { - "type": "string" + "categoryId": { + "description": "Unique identity of the category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "documentNumber": { - "type": "string" + "categoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" + "salesChannelId": { + "description": "Unique identity of the sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -3323,122 +3642,106 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "documentType": { - "$ref": "#/components/schemas/DocumentType" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "referencedDocument": { - "$ref": "#/components/schemas/Document" - }, - "dependentDocuments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - }, - "documentMediaFile": { - "$ref": "#/components/schemas/Media" - }, - "documentA11yMediaFile": { - "$ref": "#/components/schemas/Media" - }, - "fileType": { - "type": "string" } }, "type": "object" }, - "DocumentBaseConfig": { - "description": "Added since version: 6.0.0.0", + "MeasurementDisplayUnit": { + "description": "Added since version: 6.7.1.0", "required": [ "id", - "documentTypeId", - "name" + "measurementSystemId", + "default", + "type", + "shortName", + "factor", + "precision" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "documentTypeId": { - "description": "Unique identity of the document type.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "logoId": { - "description": "Unique identity of the company logo.", + "measurementSystemId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "description": "Name of the document.", - "type": "string" + "default": { + "type": "boolean" }, - "filenamePrefix": { - "description": "A prefix name added to the file name separated by an underscore.", + "type": { "type": "string" }, - "filenameSuffix": { - "description": "A suffix name added to the file name separated by an underscore.", + "shortName": { "type": "string" }, - "global": { - "description": "When set to `true`, the document can be used across all sales channels.", - "type": "boolean" - }, - "documentNumber": { - "description": "Unique number associated with every document.", - "type": "string" + "factor": { + "type": "number", + "format": "float" }, - "config": { - "type": "object" + "precision": { + "type": "integer", + "format": "int64" }, "createdAt": { "type": "string", "format": "date-time", "readOnly": true }, - "customFields": { - "type": "object" - }, "updatedAt": { "type": "string", "format": "date-time", "readOnly": true }, - "logo": { - "$ref": "#/components/schemas/Media", - "description": "Logo in the document at the top-right corner." + "translated": { + "type": "object" + }, + "measurementSystem": { + "$ref": "#/components/schemas/MeasurementSystem" } }, "type": "object" }, - "DocumentBaseConfigSalesChannel": { - "description": "Added since version: 6.0.0.0", + "MeasurementSystem": { + "description": "Added since version: 6.7.1.0", "required": [ "id", - "documentBaseConfigId" + "technicalName" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "documentBaseConfigId": { - "description": "Unique identity of document's base config.", + "technicalName": { + "type": "string" + }, + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "salesChannelId": { - "description": "Unique identity of sales channel.", + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "documentTypeId": { - "description": "Unique identity of document type.", + "translated": { + "type": "object" + }, + "units": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MeasurementDisplayUnit" + } + } + }, + "type": "object" + }, + "MediaDefaultFolder": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -3455,27 +3758,32 @@ }, "type": "object" }, - "DocumentType": { + "MediaFolder": { "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "technicalName", - "name" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "technicalName": { - "description": "Technical name of document type.", - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "customFields": { - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "MediaFolderConfiguration": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -3486,121 +3794,62 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" } }, "type": "object" }, - "DsrAppointment": { + "MediaTag": { + "description": "Added since version: 6.0.0.0", "required": [ - "presentationId", - "salesChannelDomainId", - "name", - "createdById" + "mediaId", + "tagId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "presentationId": { + "mediaId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "dsrPresentationVersionId": { + "tagId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "active": { - "type": "boolean" - }, - "salesChannelDomainId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "media": { + "$ref": "#/components/schemas/Media" }, - "accessibleFrom": { - "type": "string", - "format": "date-time" - }, - "accessibleTo": { - "type": "string", - "format": "date-time" - }, - "attendeeRuleIds": { - "type": "object" - }, - "guideUserId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "isPreview": { - "type": "boolean" - }, - "videoAudioSettings": { - "type": "string" - }, - "name": { - "type": "string" - }, - "startedAt": { - "type": "string", - "format": "date-time" - }, - "endedAt": { - "type": "string", - "format": "date-time" - }, - "default": { - "type": "boolean" - }, - "customFields": { - "type": "object" - }, - "createdById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "updatedById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - }, - "videoChat": { - "$ref": "#/components/schemas/DsrAppointmentVideoChat" + "tag": { + "$ref": "#/components/schemas/Tag" } }, "type": "object" }, - "DsrAppointmentAttendee": { + "MediaThumbnailSize": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "width", + "height" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "joinedAt": { - "type": "string", - "format": "date-time" + "width": { + "description": "Width of the thumbnail.", + "type": "integer", + "format": "int64" }, - "lastActive": { - "type": "string", - "format": "date-time" + "height": { + "description": "Height of the thumbnail.", + "type": "integer", + "format": "int64" }, - "isBlocked": { - "type": "boolean" + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -3615,7 +3864,35 @@ }, "type": "object" }, - "DsrAppointmentRequest": { + "NewsletterRecipientJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + } + ] + }, + "NewsletterRecipient": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", @@ -3634,21 +3911,13 @@ }, "type": "object" }, - "DsrAppointmentVideoChat": { + "Notification": { + "description": "Added since version: 6.4.7.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -3662,24 +3931,16 @@ }, "type": "object" }, - "DsrAttendeeProductCollection": { + "NumberRange": { + "description": "Added since version: 6.0.0.0", "required": [ - "attendeeId", - "productId" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "attendeeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -3689,36 +3950,20 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" } }, "type": "object" }, - "DsrCmsSlide": { - "required": [ - "id", - "slideName", - "cmsSectionId" - ], + "NumberRangeSalesChannel": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "slideName": { - "type": "string" - }, - "cmsSectionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsSectionVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -3728,17 +3973,12 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" - }, - "cmsSection": { - "$ref": "#/components/schemas/CmsSection" } }, "type": "object" }, - "DsrInteraction": { + "NumberRangeState": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", @@ -3757,46 +3997,16 @@ }, "type": "object" }, - "DsrPresentation": { + "NumberRangeType": { + "description": "Added since version: 6.0.0.0", "required": [ - "id", - "createdById", - "name" + "typeName" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "active": { - "type": "boolean" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "updatedById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -3809,106 +4019,94 @@ }, "translated": { "type": "object" - }, - "parent": { - "$ref": "#/components/schemas/DsrPresentation" - }, - "appointments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DsrAppointment" - } - }, - "cmsPages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DsrPresentationCmsPage" - } } }, "type": "object" }, - "DsrPresentationCmsPage": { + "OrderAddress": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "presentationId", - "cmsPageId" + "countryId", + "firstName", + "lastName", + "street", + "city" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "presentationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "dsrPresentationVersionId": { + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "cmsPageId": { + "countryId": { + "description": "Unique identity of country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "cmsPageVersionId": { + "countryStateId": { + "description": "Unique identity of state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "title": { + "firstName": { + "description": "First name of the customer.", "type": "string" }, - "customFields": { - "type": "object" + "lastName": { + "description": "Last name of the customer.", + "type": "string" }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "street": { + "description": "Street address", + "type": "string" }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "zipcode": { + "description": "Zip code of the country.", + "type": "string" }, - "productStreamId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "city": { + "description": "Name of the city.", + "type": "string" }, - "pickedProductIds": { - "type": "object" + "company": { + "description": "Name of the company.", + "type": "string" }, - "position": { - "type": "integer", - "format": "int64" + "department": { + "description": "Name of the department.", + "type": "string" }, - "isInstantListing": { - "type": "boolean" + "title": { + "description": "Title name given to customer like DR. , Prof., etc.", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "phoneNumber": { + "description": "Phone number of the customer.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "additionalAddressLine1": { + "description": "Additional address input if necessary.", + "type": "string" }, - "translated": { + "additionalAddressLine2": { + "description": "Additional address input if necessary.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { "type": "object" }, - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - } - }, - "type": "object" - }, - "Flow": { - "description": "Added since version: 6.4.6.0", - "properties": { - "id": { + "vatId": { + "description": "Unique identity of VAT.", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "deprecated": true }, "createdAt": { "type": "string", @@ -3919,37 +4117,74 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "FlowSequence": { - "description": "Added since version: 6.4.6.0", + "OrderCustomer": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "email", + "firstName", + "lastName" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "versionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "FlowTemplate": { - "description": "Added since version: 6.4.18.0", - "properties": { - "id": { + "email": { + "description": "Email address of the customer.", + "type": "string" + }, + "salutationId": { + "description": "Unique identity of salutation.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "firstName": { + "description": "First name of the customer.", + "type": "string" + }, + "lastName": { + "description": "Last name of the customer.", + "type": "string" + }, + "company": { + "description": "Name of the company.", + "type": "string" + }, + "title": { + "description": "Title name given to the customer like Dr, prof. etc.", + "type": "string" + }, + "vatIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "customerNumber": { + "description": "Unique number assigned to the customer.", + "type": "string" + }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -3959,280 +4194,137 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "ImportExportFile": { + "OrderDelivery": { "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "orderId", + "shippingOrderAddressId", + "shippingMethodId", + "stateId", + "shippingDateEarliest", + "shippingDateLatest" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "versionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "ImportExportLog": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "orderId": { + "description": "Unique identity of order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "orderVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "ImportExportProfile": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "shippingOrderAddressId": { + "description": "Unique identity of order's shipping address.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "shippingOrderAddressVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "shippingMethodId": { + "description": "Unique identity of shipping method.", "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "Integration": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "stateId": { + "description": "Unique identity of state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "trackingCodes": { + "type": "array", + "items": { + "type": "string" + } + }, + "shippingDateEarliest": { + "description": "Date and time of earliest delivery of products.", "type": "string", - "format": "date-time", - "readOnly": true + "format": "date-time" }, - "updatedAt": { + "shippingDateLatest": { + "description": "Date and time of latest delivery of products.", "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "LandingPageJsonApi": { - "description": "Added since version: 6.4.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "format": "date-time" }, - { + "shippingCosts": { "required": [ - "id", - "name", - "url" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "unitPrice", + "totalPrice", + "quantity" + ], + "properties": { + "unitPrice": { + "type": "number", + "format": "float" }, - "active": { - "type": "boolean" + "totalPrice": { + "type": "number", + "format": "float" }, - "name": { - "type": "string" + "quantity": { + "type": "integer", + "format": "int64" }, - "customFields": { + "calculatedTaxes": { "type": "object" }, - "slotConfig": { + "taxRules": { "type": "object" }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - }, - "url": { - "type": "string" - }, - "cmsPageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { + "referencePrice": { "type": "object" }, - "relationships": { + "listPrice": { "properties": { - "cmsPage": { - "description": "CMS page layout for the landing page", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/cmsPage" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "cms_page" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "7b1460918b1abb93311108f3dc021c9b" - } - } - } - }, - "type": "object" + "price": { + "type": "number", + "format": "float" }, - "seoUrls": { - "description": "SEO-friendly URLs for the landing page across different sales channels", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/seoUrls" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "seo_url" - }, - "id": { - "type": "string", - "example": "5321b5a71127b8b98cdd4b068ad56c4c" - } - } - } - } - }, - "type": "object" + "discount": { + "type": "number", + "format": "float" + }, + "percentage": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" } }, "type": "object" } }, "type": "object" - } - ] - }, - "LandingPage": { - "description": "Added since version: 6.4.0.0", - "required": [ - "apiAlias", - "id", - "name", - "url" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "active": { - "type": "boolean" - }, - "name": { - "type": "string" }, "customFields": { "type": "object" }, - "slotConfig": { - "type": "object" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - }, - "url": { - "type": "string" - }, - "cmsPageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -4243,244 +4335,133 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState", + "description": "Current delivery state (e.g., open, shipped, delivered, cancelled)" }, - "cmsPage": { - "$ref": "#/components/schemas/CmsPage", - "description": "CMS page layout for the landing page" + "shippingOrderAddress": { + "$ref": "#/components/schemas/OrderAddress", + "description": "Shipping address for this delivery" }, - "seoUrls": { - "description": "SEO-friendly URLs for the landing page across different sales channels", + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod", + "description": "Shipping method used for this delivery" + }, + "positions": { + "description": "Line items included in this delivery", "type": "array", "items": { - "$ref": "#/components/schemas/SeoUrl" + "$ref": "#/components/schemas/OrderDeliveryPosition" } - }, - "apiAlias": { - "type": "string", - "enum": [ - "landing_page" - ] } }, "type": "object" }, - "LanguageJsonApi": { + "OrderDeliveryPosition": { "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "required": [ + "id", + "orderDeliveryId", + "orderLineItemId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderDeliveryId": { + "description": "Unique identity of order delivery.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderDeliveryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderLineItemId": { + "description": "Unique identity of line items in an order.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderLineItemVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "price": { "required": [ - "id", - "localeId", - "name" + "unitPrice", + "totalPrice", + "quantity" ], "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "localeId": { - "description": "Unique identity of locale.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "translationCodeId": { - "description": "Unique identity of translation code.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "unitPrice": { + "type": "number", + "format": "float" }, - "name": { - "description": "Name of the language.", - "type": "string" + "totalPrice": { + "type": "number", + "format": "float" }, - "active": { - "type": "boolean" + "quantity": { + "type": "integer", + "format": "int64" }, - "customFields": { + "calculatedTaxes": { "type": "object" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "taxRules": { + "type": "object" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "referencePrice": { + "type": "object" }, - "relationships": { + "listPrice": { "properties": { - "parent": { - "description": "Unique identity of language.", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/parent" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "language" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "d0e45878043844ffc41aac437e86b602" - } - } - } - }, - "type": "object" - }, - "locale": { - "description": "Locale defining regional settings (date, time, number formats)", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/locale" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "locale" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "fb216d9e8791e63c8d12bdc420956839" - } - } - } - }, - "type": "object" + "price": { + "type": "number", + "format": "float" }, - "translationCode": { - "description": "Locale used for translating content", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/translationCode" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "locale" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "6ef2035242b8fcb7b61c3a41850e60b3" - } - } - } - }, - "type": "object" + "discount": { + "type": "number", + "format": "float" }, - "children": { - "description": "Child languages inheriting from this parent language", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/children" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "language" - }, - "id": { - "type": "string", - "example": "268184c12df027f536154d099d497b31" - } - } - } - } - }, - "type": "object" + "percentage": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" } }, "type": "object" } }, "type": "object" - } - ] - }, - "Language": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "localeId", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "localeId": { - "description": "Unique identity of locale.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" }, - "translationCodeId": { - "description": "Unique identity of translation code.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "unitPrice": { + "description": "Price of product per item (where, quantity=1).", + "type": "number", + "format": "float" }, - "name": { - "description": "Name of the language.", - "type": "string" + "totalPrice": { + "description": "Cost of product based on quantity.", + "type": "number", + "format": "float" }, - "active": { - "type": "boolean" + "quantity": { + "description": "Number of items of each product.", + "type": "integer", + "format": "int64" }, "customFields": { "type": "object" @@ -4494,161 +4475,138 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "parent": { - "$ref": "#/components/schemas/Language", - "description": "Unique identity of language." - }, - "locale": { - "$ref": "#/components/schemas/Locale", - "description": "Locale defining regional settings (date, time, number formats)" - }, - "translationCode": { - "$ref": "#/components/schemas/Locale", - "description": "Locale used for translating content" - }, - "children": { - "description": "Child languages inheriting from this parent language", - "type": "array", - "items": { - "$ref": "#/components/schemas/Language" - } } }, "type": "object" }, - "Locale": { + "OrderTag": { "description": "Added since version: 6.0.0.0", "required": [ - "id", - "code", - "name", - "territory" + "orderId", + "tagId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "code": { - "description": "Code given to the locale. For example: en-CA.", - "type": "string" - }, - "name": { - "type": "string" - }, - "territory": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdAt": { + "orderId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "orderVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "LogEntry": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "tagId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "order": { + "$ref": "#/components/schemas/Order" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "tag": { + "$ref": "#/components/schemas/Tag" } }, "type": "object" }, - "MailHeaderFooter": { + "OrderTransaction": { "description": "Added since version: 6.0.0.0", "required": [ - "name" + "id", + "orderId", + "paymentMethodId", + "amount", + "stateId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "systemDefault": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "headerHtml": { - "type": "string" - }, - "headerPlain": { - "type": "string" - }, - "footerHtml": { - "type": "string" - }, - "footerPlain": { - "type": "string" - }, - "createdAt": { + "versionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "orderId": { + "description": "Unique identity of an order.", "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "MailTemplate": { - "description": "Added since version: 6.0.0.0", - "required": [ - "subject", - "contentHtml", - "contentPlain" - ], - "properties": { - "id": { + "orderVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "systemDefault": { - "type": "boolean" + "paymentMethodId": { + "description": "Unique identity of payment method.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "senderName": { - "type": "string" + "amount": { + "required": [ + "unitPrice", + "totalPrice", + "quantity" + ], + "properties": { + "unitPrice": { + "type": "number", + "format": "float" + }, + "totalPrice": { + "type": "number", + "format": "float" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "calculatedTaxes": { + "type": "object" + }, + "taxRules": { + "type": "object" + }, + "referencePrice": { + "type": "object" + }, + "listPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + }, + "discount": { + "type": "number", + "format": "float" + }, + "percentage": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" + } + }, + "type": "object" }, - "contentHtml": { - "type": "string" + "validationData": { + "type": "object" }, - "contentPlain": { - "type": "string" + "stateId": { + "description": "Unique identity of state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "customFields": { "type": "object" @@ -4663,185 +4621,118 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState", + "description": "Current payment transaction state (e.g., open, paid, cancelled)" }, - "mailTemplateType": { - "$ref": "#/components/schemas/MailTemplateType" + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod", + "description": "Payment method used for this transaction" }, - "media": { + "captures": { + "description": "Payment captures for this transaction", "type": "array", "items": { - "$ref": "#/components/schemas/MailTemplateMedia" + "$ref": "#/components/schemas/OrderTransactionCapture" } } }, "type": "object" }, - "MailTemplateMedia": { - "description": "Added since version: 6.0.0.0", + "OrderTransactionCapture": { + "description": "Added since version: 6.4.12.0", "required": [ "id", - "mailTemplateId", - "languageId", - "mediaId" + "orderTransactionId", + "stateId", + "amount" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mailTemplateId": { + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "languageId": { + "orderTransactionId": { + "description": "Unique identity of order transaction.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mediaId": { + "orderTransactionVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "position": { - "type": "integer", - "format": "int64" - }, - "media": { - "$ref": "#/components/schemas/Media" - } - }, - "type": "object" - }, - "MailTemplateType": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "technicalName", - "name" - ], - "properties": { - "id": { + "stateId": { + "description": "Unique identity of order state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "technicalName": { - "description": "Technical name of mail template.", + "externalReference": { + "description": "External payment provider token.", "type": "string" }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "MainCategoryJsonApi": { - "description": "Added since version: 6.1.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { + "amount": { "required": [ - "id", - "productId", - "categoryId", - "salesChannelId" + "unitPrice", + "totalPrice", + "quantity" ], "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "unitPrice": { + "type": "number", + "format": "float" }, - "productId": { - "description": "Unique identity of the product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "totalPrice": { + "type": "number", + "format": "float" }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "quantity": { + "type": "integer", + "format": "int64" }, - "categoryId": { - "description": "Unique identity of the category.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "calculatedTaxes": { + "type": "object" }, - "categoryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "taxRules": { + "type": "object" }, - "salesChannelId": { - "description": "Unique identity of the sales channel.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "referencePrice": { + "type": "object" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "listPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + }, + "discount": { + "type": "number", + "format": "float" + }, + "percentage": { + "type": "number", + "format": "float" + } + }, + "type": "object" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" } }, "type": "object" - } - ] - }, - "MainCategory": { - "description": "Added since version: 6.1.0.0", - "required": [ - "id", - "productId", - "categoryId", - "salesChannelId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "description": "Unique identity of the product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "categoryId": { - "description": "Unique identity of the category.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "categoryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" }, - "salesChannelId": { - "description": "Unique identity of the sales channel.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -4852,46 +4743,120 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState" + }, + "transaction": { + "$ref": "#/components/schemas/OrderTransaction" + }, + "refunds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderTransactionCaptureRefund" + } } }, "type": "object" }, - "MeasurementDisplayUnit": { - "description": "Added since version: 6.7.1.0", + "OrderTransactionCaptureRefund": { + "description": "Added since version: 6.4.12.0", "required": [ "id", - "measurementSystemId", - "default", - "type", - "shortName", - "factor", - "precision" + "captureId", + "stateId", + "amount" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "measurementSystemId": { + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "default": { - "type": "boolean" + "captureId": { + "description": "Unique identity of order transaction capture.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "type": { + "captureVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "stateId": { + "description": "Unique identity of order state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "externalReference": { + "description": "External payment provider token.", "type": "string" }, - "shortName": { + "reason": { + "description": "Reason for refunding the amount for an order.", "type": "string" }, - "factor": { - "type": "number", - "format": "float" + "amount": { + "required": [ + "unitPrice", + "totalPrice", + "quantity" + ], + "properties": { + "unitPrice": { + "type": "number", + "format": "float" + }, + "totalPrice": { + "type": "number", + "format": "float" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "calculatedTaxes": { + "type": "object" + }, + "taxRules": { + "type": "object" + }, + "referencePrice": { + "type": "object" + }, + "listPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + }, + "discount": { + "type": "number", + "format": "float" + }, + "percentage": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" + } + }, + "type": "object" }, - "precision": { - "type": "integer", - "format": "int64" + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -4903,130 +4868,126 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState" }, - "measurementSystem": { - "$ref": "#/components/schemas/MeasurementSystem" + "transactionCapture": { + "$ref": "#/components/schemas/OrderTransactionCapture" + }, + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderTransactionCaptureRefundPosition" + } } }, "type": "object" }, - "MeasurementSystem": { - "description": "Added since version: 6.7.1.0", + "OrderTransactionCaptureRefundPosition": { + "description": "Added since version: 6.4.12.0", "required": [ "id", - "technicalName" + "refundId", + "orderLineItemId", + "amount" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "technicalName": { - "type": "string" - }, - "createdAt": { + "versionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "refundId": { + "description": "Unique identity of order transaction capture refund.", "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" + "refundVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "units": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MeasurementDisplayUnit" - } - } - }, - "type": "object" - }, - "Media": { - "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "fileExtension", - "fileName", - "hasFile", - "path", - "private", - "url", - "id" - ], - "properties": { - "id": { + "orderLineItemId": { + "description": "Unique identity of order line item.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mimeType": { - "description": "A string sent along with a file indicating the type of the file. For example: image/jpeg.", - "type": "string" + "orderLineItemVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "fileExtension": { - "description": "Type of file indication. For example: jpeg, png.", + "externalReference": { + "description": "External payment provider token.", "type": "string" }, - "uploadedAt": { - "description": "Date and time at which media was added.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "fileName": { - "description": "Name of the media file uploaded.", + "reason": { + "description": "Reason for refunding the amount for an order.", "type": "string" }, - "fileSize": { - "description": "Size of the file media file uploaded.", + "quantity": { + "description": "Quantity of line item to be refunded.", "type": "integer", - "format": "int64", - "readOnly": true + "format": "int64" }, - "metaData": { - "type": "object", - "readOnly": true, + "amount": { + "required": [ + "unitPrice", + "totalPrice", + "quantity" + ], "properties": { - "height": { - "type": "integer", - "format": "int64" + "unitPrice": { + "type": "number", + "format": "float" }, - "width": { + "totalPrice": { + "type": "number", + "format": "float" + }, + "quantity": { "type": "integer", "format": "int64" + }, + "calculatedTaxes": { + "type": "object" + }, + "taxRules": { + "type": "object" + }, + "referencePrice": { + "type": "object" + }, + "listPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + }, + "discount": { + "type": "number", + "format": "float" + }, + "percentage": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" } - } - }, - "config": { + }, "type": "object" }, - "alt": { - "type": "string" - }, - "title": { - "type": "string" - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "path": { - "type": "string" - }, - "hasFile": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "private": { - "description": "When `true`, the media display is kept private.", - "type": "boolean" - }, "customFields": { "type": "object" }, @@ -5040,221 +5001,70 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" - }, - "thumbnails": { - "description": "Generated thumbnail images in various sizes", - "type": "array", - "items": { - "$ref": "#/components/schemas/MediaThumbnail" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "media" - ] - } - }, - "type": "object" - }, - "MediaDefaultFolder": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "MediaFolder": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "MediaFolderConfiguration": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "orderLineItem": { + "$ref": "#/components/schemas/OrderLineItem" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "orderTransactionCaptureRefund": { + "$ref": "#/components/schemas/OrderTransactionCaptureRefund" } }, "type": "object" }, - "MediaTag": { + "PaymentMethodJsonApi": { "description": "Added since version: 6.0.0.0", - "required": [ - "mediaId", - "tagId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "tagId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "media": { - "$ref": "#/components/schemas/Media" - }, - "tag": { - "$ref": "#/components/schemas/Tag" - } - }, - "type": "object" - }, - "MediaThumbnail": { - "description": "Added since version: 6.0.0.0", - "required": [ - "url", - "id", - "mediaId", - "width", - "height" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaThumbnailSizeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "width": { - "description": "Width of the thumbnail.", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "height": { - "description": "Height of the thumbnail.", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "url": { - "description": "Public url of media thumbnail. Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "path": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "MediaThumbnailSize": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "width", - "height" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "width": { - "description": "Width of the thumbnail.", - "type": "integer", - "format": "int64" - }, - "height": { - "description": "Height of the thumbnail.", - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "NewsletterRecipientJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, { + "required": [ + "id", + "technicalName", + "name" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "name": { + "type": "string" + }, + "distinguishableName": { + "type": "string", + "readOnly": true + }, + "description": { + "type": "string" + }, + "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", + "type": "boolean" + }, + "afterOrderEnabled": { + "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "technicalName": { + "type": "string" + }, + "shortName": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5264,39 +5074,100 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" + }, + "relationships": { + "properties": { + "media": { + "description": "Payment method logo or icon image", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/payment-method/da8da1569e6bef3249a7064261df833f/media" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "media" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" + } + } + } + }, + "type": "object" + } + }, + "type": "object" } }, "type": "object" } ] }, - "NewsletterRecipient": { + "PaymentMethod": { "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "technicalName", + "name" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "name": { + "type": "string" }, - "updatedAt": { + "distinguishableName": { "type": "string", - "format": "date-time", "readOnly": true - } - }, - "type": "object" - }, - "Notification": { - "description": "Added since version: 6.4.7.0", - "properties": { - "id": { + }, + "description": { + "type": "string" + }, + "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", + "type": "boolean" + }, + "afterOrderEnabled": { + "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "technicalName": { + "type": "string" + }, + "shortName": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5306,14 +5177,21 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" + }, + "media": { + "$ref": "#/components/schemas/Media", + "description": "Payment method logo or icon image" } }, "type": "object" }, - "NumberRange": { + "Plugin": { "description": "Added since version: 6.0.0.0", "required": [ - "name" + "label" ], "properties": { "id": { @@ -5336,13 +5214,49 @@ }, "type": "object" }, - "NumberRangeSalesChannel": { + "ProductConfiguratorSetting": { "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "productId", + "optionId" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productId": { + "description": "Unique identity of product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "optionId": { + "description": "Unique identity of option.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "position": { + "description": "The order of the tabs of your defined product configuration settings in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5352,17 +5266,56 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "media": { + "$ref": "#/components/schemas/Media" + }, + "option": { + "$ref": "#/components/schemas/PropertyGroupOption" } }, "type": "object" }, - "NumberRangeState": { - "description": "Added since version: 6.0.0.0", + "ProductCrossSelling": { + "description": "Added since version: 6.1.0.0", + "required": [ + "id", + "name" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "name": { + "type": "string" + }, + "position": { + "description": "The order of the tabs of your defined cross-selling actions in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "sortBy": { + "description": "To sort the display of products by name, price or publication (descending, ascending) date.", + "type": "string" + }, + "sortDirection": { + "description": "To sort the display of products by ascending or descending order.", + "type": "string" + }, + "type": { + "description": "Type of product assignment for cross-selling. It can either be Dynamic product group or Manual assignment.", + "type": "string" + }, + "active": { + "description": "When set to active, the cross-selling feature is enabled.", + "type": "boolean" + }, + "limit": { + "description": "The maximum number of products to be displayed in cross-selling on the item detail page of your item.", + "type": "integer", + "format": "int64" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5372,15 +5325,15 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" } }, "type": "object" }, - "NumberRangeType": { - "description": "Added since version: 6.0.0.0", - "required": [ - "typeName" - ], + "ProductCrossSellingAssignedProducts": { + "description": "Added since version: 6.2.0.0", "properties": { "id": { "type": "string", @@ -5395,27 +5348,16 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" } }, "type": "object" }, - "Order": { - "description": "Added since version: 6.0.0.0", + "ProductDownload": { + "description": "Added since version: 6.4.19.0", "required": [ - "documents", - "orderDate", - "stateMachineState", - "price", "id", - "billingAddressId", - "currencyId", - "languageId", - "salesChannelId", - "orderDateTime", - "currencyFactor" + "productId", + "mediaId" ], "properties": { "id": { @@ -5426,37 +5368,101 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderNumber": { - "description": "Unique number associated with every order.", - "type": "string" - }, - "billingAddressId": { - "description": "Unique identity of the billing address.", + "productId": { + "description": "Unique identity of Product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "billingAddressVersionId": { + "productVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "primaryOrderDeliveryId": { + "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "primaryOrderDeliveryVersionId": { + "position": { + "description": "The order in which the digital products are downloaded, like 1,2,3, etc.to adjust their order of display.", + "type": "integer", + "format": "int64" + }, + "customFields": { + "type": "object" + }, + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "primaryOrderTransactionId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "product": { + "$ref": "#/components/schemas/Product" + }, + "media": { + "$ref": "#/components/schemas/Media" + } + }, + "type": "object" + }, + "ProductExport": { + "description": "Added since version: 6.1.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "primaryOrderTransactionVersionId": { + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ProductFeatureSet": { + "description": "Added since version: 6.3.0.0", + "required": [ + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "currencyId": { - "description": "Unique identity of the currency.", + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "ProductKeywordDictionary": { + "description": "Added since version: 6.0.0.0", + "required": [ + "languageId", + "keyword" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5465,183 +5471,163 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "salesChannelId": { - "description": "Unique identity of the sales channel.", + "keyword": { + "description": "The keywords that help to search the product.", + "type": "string" + } + }, + "type": "object" + }, + "ProductManufacturer": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderDateTime": { - "description": "Timestamp when the order was placed.", + "versionId": { "type": "string", - "format": "date-time" + "pattern": "^[0-9a-f]{32}$" }, - "orderDate": { - "description": "Date when the order was placed.", + "mediaId": { + "description": "Unique identity of the media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "link": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdAt": { "type": "string", + "format": "date-time", "readOnly": true }, - "price": { - "required": [ - "netPrice", - "totalPrice", - "positionPrice", - "rawTotal", - "taxStatus" - ], - "properties": { - "netPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "positionPrice": { - "type": "number", - "format": "float" - }, - "rawTotal": { - "type": "number", - "format": "float" - }, - "taxStatus": { - "type": "string" - } - }, - "type": "object", - "$ref": "#/components/schemas/CalculatedPrice" - }, - "amountTotal": { - "description": "Gross price of the order.", - "type": "number", - "format": "float", + "updatedAt": { + "type": "string", + "format": "date-time", "readOnly": true }, - "amountNet": { - "description": "Net price of the order.", - "type": "number", - "format": "float", - "readOnly": true + "translated": { + "type": "object" }, - "positionPrice": { - "description": "Price of each line item in the cart multiplied by its quantity excluding charges like shipping cost, rules, taxes etc.", - "type": "number", - "format": "float", + "media": { + "$ref": "#/components/schemas/Media" + } + }, + "type": "object" + }, + "ProductPrice": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", "readOnly": true }, - "taxStatus": { - "description": "TaxStatus takes `Free`, `Net` or `Gross` as values.", + "updatedAt": { "type": "string", + "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "ProductReview": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "productId", + "salesChannelId", + "languageId", + "title", + "content" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "shippingCosts": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" + "productId": { + "description": "Unique identity of the product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "shippingTotal": { - "description": "Total shipping cost of the ordered product.", - "type": "number", - "format": "float", - "readOnly": true + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "currencyFactor": { - "description": "Rate at which currency is exchanged.", - "type": "number", - "format": "float" + "salesChannelId": { + "description": "Unique identity of the sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "deepLinkCode": { - "description": "It is a generated special code linked to email. It is used to access orders placed by guest customers.", - "type": "string" + "languageId": { + "description": "Unique identity of the language.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "affiliateCode": { - "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", + "externalUser": { + "description": "External user name.", "type": "string" }, - "campaignCode": { - "description": "A campaign code is the globally unique identifier for a campaign.", + "title": { + "description": "Title of product review.", "type": "string" }, - "customerComment": { - "description": "Comments given by comments.", + "content": { + "description": "Short description or subject of the project review.", "type": "string" }, - "source": { - "description": "Source of orders either via normal order placement or subscriptions.", - "type": "string" + "points": { + "description": "A floating point number given to rate a product.", + "type": "number", + "format": "float" }, - "taxCalculationType": { + "status": { + "description": "When status is set, the rating is made visible.", + "type": "boolean" + }, + "comment": { + "description": "Detailed review about the product.", "type": "string" }, "customFields": { "type": "object" }, - "createdById": { - "description": "Unique identity of createdBy.", + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "updatedById": { - "description": "Unique identity of updatedBy.", + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ProductSearchConfig": { + "description": "Added since version: 6.3.5.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5654,165 +5640,72 @@ "type": "string", "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "ProductSearchConfigField": { + "description": "Added since version: 6.3.5.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState", - "description": "Current order state (e.g., open, in_progress, completed, cancelled)" - }, - "primaryOrderDelivery": { - "$ref": "#/components/schemas/OrderDelivery", - "description": "Primary delivery information for the order" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "primaryOrderTransaction": { - "$ref": "#/components/schemas/OrderTransaction", - "description": "Primary payment transaction for the order" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ProductSearchKeyword": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "orderCustomer": { - "$ref": "#/components/schemas/OrderCustomer", - "description": "Customer information associated with the order" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "currency": { - "$ref": "#/components/schemas/Currency", - "description": "Currency used for the order" - }, - "language": { - "$ref": "#/components/schemas/Language", - "description": "Language used when placing the order" - }, - "addresses": { - "description": "All addresses associated with the order (billing and shipping)", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderAddress" - } - }, - "billingAddress": { - "$ref": "#/components/schemas/OrderAddress", - "description": "Billing address for the order" - }, - "deliveries": { - "description": "Delivery information including shipping address and tracking", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderDelivery" - } - }, - "lineItems": { - "description": "Order line items (products, discounts, fees)", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderLineItem" - } - }, - "transactions": { - "description": "Payment transactions for the order", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderTransaction" - } - }, - "documents": { - "description": "Generated documents (invoices, delivery notes, credit notes)", - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - }, - "tags": { - "description": "Tags assigned to the order for organization and filtering", - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "OrderAddress": { - "description": "Added since version: 6.0.0.0", + "ProductSorting": { + "description": "Added since version: 6.3.2.0", "required": [ - "id", - "countryId", - "firstName", - "lastName", - "street", - "city" + "key", + "priority", + "label" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "description": "Unique identity of country.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "description": "Unique identity of state.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "description": "First name of the customer.", - "type": "string" - }, - "lastName": { - "description": "Last name of the customer.", - "type": "string" - }, - "street": { - "description": "Street address", - "type": "string" - }, - "zipcode": { - "description": "Zip code of the country.", - "type": "string" - }, - "city": { - "description": "Name of the city.", - "type": "string" - }, - "company": { - "description": "Name of the company.", - "type": "string" - }, - "department": { - "description": "Name of the department.", - "type": "string" - }, - "title": { - "description": "Title name given to customer like DR. , Prof., etc.", - "type": "string" - }, - "phoneNumber": { - "description": "Phone number of the customer.", - "type": "string" - }, - "additionalAddressLine1": { - "description": "Additional address input if necessary.", + "key": { "type": "string" }, - "additionalAddressLine2": { - "description": "Additional address input if necessary.", - "type": "string" + "priority": { + "type": "integer", + "format": "int64" }, - "hash": { - "description": "Runtime field, cannot be used as part of the criteria.", + "label": { "type": "string" }, - "customFields": { - "type": "object" - }, - "vatId": { - "description": "Unique identity of VAT.", - "type": "string", - "deprecated": true - }, "createdAt": { "type": "string", "format": "date-time", @@ -5823,73 +5716,40 @@ "format": "date-time", "readOnly": true }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "translated": { + "type": "object" } }, "type": "object" }, - "OrderCustomer": { + "ProductStream": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "email", - "firstName", - "lastName" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "email": { - "description": "Email address of the customer.", - "type": "string" - }, - "salutationId": { - "description": "Unique identity of salutation.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "description": "First name of the customer.", - "type": "string" - }, - "lastName": { - "description": "Last name of the customer.", - "type": "string" - }, - "company": { - "description": "Name of the company.", - "type": "string" - }, - "title": { - "description": "Title name given to the customer like Dr, prof. etc.", + "name": { "type": "string" }, - "vatIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "customerNumber": { - "description": "Unique number assigned to the customer.", + "description": { "type": "string" }, "customFields": { "type": "object" }, + "internal": { + "description": "When the boolean value is `true` indicating that it is for internal use only and will not appear in product stream listings.", + "type": "boolean" + }, + "displayAsGroup": { + "description": "When enabled, matching variants are grouped according to the product presentation setting. Disable to show them individually.", + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5900,133 +5760,62 @@ "format": "date-time", "readOnly": true }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "translated": { + "type": "object" } }, "type": "object" }, - "OrderDelivery": { + "ProductStreamFilter": { "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "orderId", - "shippingOrderAddressId", - "shippingMethodId", - "stateId", - "shippingDateEarliest", - "shippingDateLatest" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderId": { - "description": "Unique identity of order.", + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderVersionId": { + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ProductVisibility": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shippingOrderAddressId": { - "description": "Unique identity of order's shipping address.", + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "shippingOrderAddressVersionId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Promotion": { + "description": "Added since version: 6.0.0.0", + "required": [ + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shippingMethodId": { - "description": "Unique identity of shipping method.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "stateId": { - "description": "Unique identity of state.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "trackingCodes": { - "type": "array", - "items": { - "type": "string" - } - }, - "shippingDateEarliest": { - "description": "Date and time of earliest delivery of products.", - "type": "string", - "format": "date-time" - }, - "shippingDateLatest": { - "description": "Date and time of latest delivery of products.", - "type": "string", - "format": "date-time" - }, - "shippingCosts": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" - }, "customFields": { "type": "object" }, @@ -6040,137 +5829,59 @@ "format": "date-time", "readOnly": true }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState", - "description": "Current delivery state (e.g., open, shipped, delivered, cancelled)" - }, - "shippingOrderAddress": { - "$ref": "#/components/schemas/OrderAddress", - "description": "Shipping address for this delivery" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod", - "description": "Shipping method used for this delivery" - }, - "positions": { - "description": "Line items included in this delivery", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderDeliveryPosition" - } + "translated": { + "type": "object" } }, "type": "object" }, - "OrderDeliveryPosition": { + "PromotionDiscount": { "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "orderDeliveryId", - "orderLineItemId" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderDeliveryId": { - "description": "Unique identity of order delivery.", + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderDeliveryVersionId": { + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "PromotionDiscountPrices": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderLineItemId": { - "description": "Unique identity of line items in an order.", + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderLineItemVersionId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "PromotionIndividualCode": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "price": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "unitPrice": { - "description": "Price of product per item (where, quantity=1).", - "type": "number", - "format": "float" - }, - "totalPrice": { - "description": "Cost of product based on quantity.", - "type": "number", - "format": "float" - }, - "quantity": { - "description": "Number of items of each product.", - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -6184,238 +5895,86 @@ }, "type": "object" }, - "OrderLineItem": { + "PromotionSalesChannel": { "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "id", - "orderId", - "identifier", - "quantity", - "label", - "children", - "states" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderId": { - "description": "Unique identity of order.", + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "PromotionSetgroup": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "description": "Unique identity of product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "promotionId": { - "description": "Unique identity of product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "parentVersionId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "coverId": { - "description": "Unique identity of cover image.", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "PropertyGroup": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "identifier": { - "description": "It is a unique identity of an item in cart before its converted to an order.", + "name": { "type": "string" }, - "referencedId": { - "description": "Unique identity of type of entity.", + "description": { "type": "string" }, - "quantity": { - "description": "Number of items of product.", - "type": "integer", - "format": "int64" - }, - "label": { - "description": "It is a typical product name given to the line item.", + "displayType": { + "description": "Property groups can be displayed in the form of text, image, dropdown or color.", "type": "string" }, - "payload": { - "type": "object", - "properties": { - "categoryIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "customFields": { - "type": "object" - }, - "features": { - "type": "array" - }, - "isCloseout": { - "type": "boolean" - }, - "isNew": { - "type": "boolean" - }, - "manufacturerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "markAsTopseller": { - "type": "boolean" - }, - "optionIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "options": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertyGroupOption" - } - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productNumber": { - "type": "string" - }, - "propertyIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "purchasePrices": { - "type": "string" - }, - "releaseDate": { - "type": "string", - "format": "date-time" - }, - "stock": { - "type": "integer", - "format": "int64" - }, - "streamIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "tagIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "taxId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productType": { - "$ref": "#/components/schemas/Product/properties/type" - } - } - }, - "good": { - "description": "When set to true, it indicates the line item is physical else it is virtual.", - "type": "boolean" + "sortingType": { + "description": "Sorting the property group by name or position.", + "type": "string" }, - "removable": { - "description": "Allows the line item to be removable from the cart when set to true.", + "filterable": { + "description": "When set to true, the property will be displayed in the product filter of product lists.", "type": "boolean" }, - "stackable": { - "description": "Allows to change the quantity of the line item when set to true.", + "visibleOnProductDetailPage": { + "description": "When set to true, the property groups are displayed on product detail page.", "type": "boolean" }, "position": { - "description": "Position of line items placed in an order.", "type": "integer", "format": "int64" }, - "priceDefinition": { - "type": "object", - "$ref": "#/components/schemas/CartPriceQuantity" - }, - "unitPrice": { - "description": "Price of product per item (where, quantity=1).", - "type": "number", - "format": "float" - }, - "totalPrice": { - "description": "Cost of product based on quantity.", - "type": "number", - "format": "float" - }, - "description": { - "description": "Description of line items in an order.", - "type": "string" - }, - "type": { - "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", - "type": "string", - "enum": [ - "product", - "credit", - "custom", - "promotion", - "container", - "discount", - "quantity" - ] - }, "customFields": { "type": "object" }, - "states": { - "type": "array", - "items": { - "type": "string" - }, - "deprecated": true - }, "createdAt": { "type": "string", "format": "date-time", @@ -6426,93 +5985,35 @@ "format": "date-time", "readOnly": true }, - "cover": { - "$ref": "#/components/schemas/Media", - "description": "Line item image or thumbnail" - }, - "product": { - "$ref": "#/components/schemas/Product", - "description": "Referenced product if this is a product line item" - }, - "orderDeliveryPositions": { - "description": "Delivery positions for this line item", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderDeliveryPosition" - } - }, - "downloads": { - "description": "Digital downloads associated with this line item", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderLineItemDownload" - } - }, - "parent": { - "$ref": "#/components/schemas/OrderLineItem" + "translated": { + "type": "object" }, - "children": { + "options": { "type": "array", "items": { - "$ref": "#/components/schemas/OrderLineItem" + "$ref": "#/components/schemas/PropertyGroupOption" } - }, - "apiAlias": { - "type": "string", - "enum": [ - "order_line_item" - ] - }, - "extensions": { - "type": "object" - }, - "translated": { - "type": "object" } }, "type": "object" }, - "OrderLineItemDownload": { - "description": "Added since version: 6.4.19.0", + "Rule": { + "description": "Added since version: 6.0.0.0", "required": [ - "media", - "id", - "orderLineItemId", - "mediaId", - "position", - "accessGranted" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderLineItemId": { - "description": "Unique identity of Order line item.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderLineItemVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "position": { - "description": "The order of downloaded digital products displayed in the storefront by mentioning numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" + "name": { + "description": "Name of the rule defined.", + "type": "string" }, - "accessGranted": { - "description": "When boolean value is `true`, the digital product is allowed to download.", - "type": "boolean" + "description": { + "description": "Description of the rule.", + "type": "string" }, "customFields": { "type": "object" @@ -6526,268 +6027,154 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "orderLineItem": { - "$ref": "#/components/schemas/OrderLineItem" - }, - "media": { - "$ref": "#/components/schemas/Media" } }, "type": "object" }, - "OrderTag": { + "RuleCondition": { "description": "Added since version: 6.0.0.0", - "required": [ - "orderId", - "tagId" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderVersionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "tagId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "tag": { - "$ref": "#/components/schemas/Tag" + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "OrderTransaction": { + "SalesChannel": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "orderId", + "languageId", + "customerGroupId", + "currencyId", "paymentMethodId", - "amount", - "stateId" + "shippingMethodId", + "countryId", + "navigationCategoryId", + "name", + "homeEnabled" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "languageId": { + "description": "Unique identity of language used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderId": { - "description": "Unique identity of an order.", + "customerGroupId": { + "description": "Unique identity of customer group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderVersionId": { + "currencyId": { + "description": "Unique identity of currency used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "paymentMethodId": { - "description": "Unique identity of payment method.", + "description": "Unique identity of payment method used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "amount": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "validationData": { - "type": "object" - }, - "stateId": { - "description": "Unique identity of state.", + "shippingMethodId": { + "description": "Unique identity of shipping method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "navigationCategoryId": { + "description": "Unique identity of navigation category.", "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "navigationCategoryVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState", - "description": "Current payment transaction state (e.g., open, paid, cancelled)" + "navigationCategoryDepth": { + "description": "It determines the number of levels of subcategories in the storefront category menu.", + "type": "integer", + "format": "int64" }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod", - "description": "Payment method used for this transaction" + "footerCategoryId": { + "description": "Unique identity of footer category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "captures": { - "description": "Payment captures for this transaction", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderTransactionCapture" - } - } - }, - "type": "object" - }, - "OrderTransactionCapture": { - "description": "Added since version: 6.4.12.0", - "required": [ - "id", - "orderTransactionId", - "stateId", - "amount" - ], - "properties": { - "id": { + "footerCategoryVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "serviceCategoryId": { + "description": "Unique identity of service category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderTransactionId": { - "description": "Unique identity of order transaction.", + "serviceCategoryVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderTransactionVersionId": { + "mailHeaderFooterId": { + "description": "Unique identity of mail header and footer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "stateId": { - "description": "Unique identity of order state.", + "hreflangDefaultDomainId": { + "description": "Unique identity of hreflangDefaultDomain.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "externalReference": { - "description": "External payment provider token.", + "measurementUnits": { + "$ref": "#/components/schemas/MeasurementUnits" + }, + "businessTimeZone": { + "description": "Business timezone used for sales-channel-specific rendering. Added since version: 6.7.13.0.", "type": "string" }, - "amount": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, + "name": { + "type": "string" + }, + "shortName": { + "description": "A short name for sales channel.", + "type": "string" + }, + "taxCalculationType": { + "description": "Tax calculation types are `horizontal` and `vertical`.", + "type": "string" + }, + "configuration": { "type": "object" }, + "active": { + "description": "When boolean value is `true`, the sales channel is enabled.", + "type": "boolean" + }, + "hreflangActive": { + "description": "When set to true, the sales channel pages are available in different languages.", + "type": "boolean" + }, + "maintenance": { + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -6801,116 +6188,119 @@ "format": "date-time", "readOnly": true }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "translated": { + "type": "object" }, - "transaction": { - "$ref": "#/components/schemas/OrderTransaction" + "language": { + "$ref": "#/components/schemas/Language", + "description": "Default language for the sales channel" }, - "refunds": { + "currency": { + "$ref": "#/components/schemas/Currency", + "description": "Default currency for the sales channel" + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod", + "description": "Default payment method for the sales channel" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod", + "description": "Default shipping method for the sales channel" + }, + "country": { + "$ref": "#/components/schemas/Country", + "description": "Default country for the sales channel" + }, + "domains": { + "description": "Domain URLs configured for the sales channel", "type": "array", "items": { - "$ref": "#/components/schemas/OrderTransactionCaptureRefund" + "$ref": "#/components/schemas/SalesChannelDomain" } + }, + "navigationCategory": { + "$ref": "#/components/schemas/Category", + "description": "Root category for navigation menu" + }, + "footerCategory": { + "$ref": "#/components/schemas/Category", + "description": "Root category for footer navigation" + }, + "serviceCategory": { + "$ref": "#/components/schemas/Category", + "description": "Root category for service pages" + }, + "hreflangDefaultDomain": { + "$ref": "#/components/schemas/SalesChannelDomain" } }, "type": "object" }, - "OrderTransactionCaptureRefund": { - "description": "Added since version: 6.4.12.0", + "SalesChannelAnalytics": { + "description": "Added since version: 6.2.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SalesChannelDomain": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "captureId", - "stateId", - "amount" + "url", + "salesChannelId", + "languageId", + "currencyId", + "snippetSetId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "url": { + "description": "URL of the sales channel domain.", + "type": "string" + }, + "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "captureId": { - "description": "Unique identity of order transaction capture.", + "languageId": { + "description": "Unique identity of language used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "captureVersionId": { + "currencyId": { + "description": "Unique identity of currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "stateId": { - "description": "Unique identity of order state.", + "snippetSetId": { + "description": "Unique identity of snippet set.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "externalReference": { - "description": "External payment provider token.", - "type": "string" - }, - "reason": { - "description": "Reason for refunding the amount for an order.", - "type": "string" + "measurementUnits": { + "$ref": "#/components/schemas/MeasurementUnits" }, - "amount": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" + "hreflangUseOnlyLocale": { + "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance.", + "type": "boolean" }, "customFields": { "type": "object" @@ -6925,128 +6315,87 @@ "format": "date-time", "readOnly": true }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "language": { + "$ref": "#/components/schemas/Language" }, - "transactionCapture": { - "$ref": "#/components/schemas/OrderTransactionCapture" + "currency": { + "$ref": "#/components/schemas/Currency" }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderTransactionCaptureRefundPosition" - } + "salesChannelDefaultHreflang": { + "$ref": "#/components/schemas/SalesChannel" } }, "type": "object" }, - "OrderTransactionCaptureRefundPosition": { - "description": "Added since version: 6.4.12.0", - "required": [ - "id", - "refundId", - "orderLineItemId", - "amount" - ], + "SalesChannelFile": { + "description": "Added since version: 6.7.12.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "refundId": { - "description": "Unique identity of order transaction capture refund.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "refundVersionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderLineItemId": { - "description": "Unique identity of order line item.", + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderLineItemVersionId": { + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SalesChannelTrackingCustomer": { + "description": "Added since version: 6.7.9.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "externalReference": { - "description": "External payment provider token.", - "type": "string" - }, - "reason": { - "description": "Reason for refunding the amount for an order.", - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "quantity": { - "description": "Quantity of line item to be refunded.", - "type": "integer", - "format": "int64" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SalesChannelTrackingOrder": { + "description": "Added since version: 6.7.9.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "amount": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "customFields": { - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SalesChannelType": { + "description": "Added since version: 6.0.0.0", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -7058,16 +6407,13 @@ "format": "date-time", "readOnly": true }, - "orderLineItem": { - "$ref": "#/components/schemas/OrderLineItem" - }, - "orderTransactionCaptureRefund": { - "$ref": "#/components/schemas/OrderTransactionCaptureRefund" + "translated": { + "type": "object" } }, "type": "object" }, - "PaymentMethodJsonApi": { + "SalutationJsonApi": { "description": "Added since version: 6.0.0.0", "allOf": [ { @@ -7076,51 +6422,32 @@ { "required": [ "id", - "technicalName", - "name" + "salutationKey", + "displayName", + "letterName" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { + "salutationKey": { + "description": "Technical name given to salutation. For example: mr", "type": "string" }, - "distinguishableName": { - "type": "string", - "readOnly": true - }, - "description": { + "displayName": { "type": "string" }, - "position": { - "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" - }, - "active": { - "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", - "type": "boolean" - }, - "afterOrderEnabled": { - "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", - "type": "boolean" + "letterName": { + "type": "string" }, "customFields": { "type": "object" }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "technicalName": { - "type": "string" - }, - "shortName": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" + "position": { + "description": "Numerical value that indicates the order in which the defined salutations must be displayed in the frontend.", + "type": "integer", + "format": "int64" }, "createdAt": { "type": "string", @@ -7134,96 +6461,42 @@ }, "translated": { "type": "object" - }, - "relationships": { - "properties": { - "media": { - "description": "Payment method logo or icon image", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/payment-method/da8da1569e6bef3249a7064261df833f/media" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "media" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" - } - } - } - }, - "type": "object" - } - }, - "type": "object" } }, "type": "object" } ] }, - "PaymentMethod": { + "Salutation": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "technicalName", - "name" + "salutationKey", + "displayName", + "letterName" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { + "salutationKey": { + "description": "Technical name given to salutation. For example: mr", "type": "string" }, - "distinguishableName": { - "type": "string", - "readOnly": true - }, - "description": { + "displayName": { "type": "string" }, - "position": { - "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" - }, - "active": { - "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", - "type": "boolean" - }, - "afterOrderEnabled": { - "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", - "type": "boolean" + "letterName": { + "type": "string" }, "customFields": { "type": "object" }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "technicalName": { - "type": "string" - }, - "shortName": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" + "position": { + "description": "Numerical value that indicates the order in which the defined salutations must be displayed in the frontend.", + "type": "integer", + "format": "int64" }, "createdAt": { "type": "string", @@ -7237,19 +6510,12 @@ }, "translated": { "type": "object" - }, - "media": { - "$ref": "#/components/schemas/Media", - "description": "Payment method logo or icon image" } }, "type": "object" }, - "Plugin": { + "ScheduledTask": { "description": "Added since version: 6.0.0.0", - "required": [ - "label" - ], "properties": { "id": { "type": "string", @@ -7264,383 +6530,208 @@ "type": "string", "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "Script": { + "description": "Added since version: 6.4.7.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "ProductJsonApi": { + "SeoUrlJsonApi": { "description": "Added since version: 6.0.0.0", "allOf": [ { - "$ref": "#/components/schemas/resource", - "required": [ - "options" - ], - "properties": { - "options": { - "type": "array", - "items": { - "type": "object", - "required": [ - "group", - "option", - "translated" - ], - "properties": { - "group": { - "type": "string" - }, - "option": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "group": { - "type": "string" - }, - "option": { - "type": "string" - } - }, - "required": [ - "group", - "option" - ] - } - } - } - } - } + "$ref": "#/components/schemas/resource" }, { "required": [ "id", - "taxId", - "productNumber", - "stock", - "name" + "languageId", + "foreignKey", + "routeName", + "pathInfo", + "seoPathInfo" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "parentId": { + "languageId": { + "description": "Unique identity of language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "parentVersionId": { + "foreignKey": { + "description": "The key that references to product or category entity ID.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "manufacturerId": { - "description": "Unique identity of the manufacturer.", + "routeName": { + "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "frontend.detail.page", + "frontend.navigation.page", + "frontend.landing.page" + ] }, - "productManufacturerVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pathInfo": { + "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", + "type": "string" }, - "unitId": { - "description": "Unique identity of the unit.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "seoPathInfo": { + "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", + "type": "string" }, - "taxId": { - "description": "Unique identity of tax.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "isCanonical": { + "description": "When set to true, search redirects to the main URL.", + "type": "boolean" }, - "coverId": { - "description": "Unique identity of a ProductMedia item used as product cover.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "isModified": { + "description": "When boolean value is `true`, the seo url is changed.", + "type": "boolean" }, - "productMediaVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "isDeleted": { + "description": "When set to true, the URL is deleted and cannot be used any more but it is still available on table and can be restored later.", + "type": "boolean" }, - "deliveryTimeId": { - "description": "Unique identity of delivery time.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "error": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" }, - "canonicalProductId": { - "description": "Unique identity of canonical product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "url": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" }, - "canonicalProductVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "customFields": { + "type": "object" }, - "cmsPageId": { - "description": "Unique identity of CMS page.", + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "cmsPageVersionId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "openGraphMediaId": { - "description": "Media used as Open Graph image for social media sharing.", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + } + ] + }, + "SeoUrlTemplate": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "description": "Unique identity of sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "isValid": { + "description": "Created SEO URL template can be made usable by setting `isValid` to true.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ShippingMethodJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "technicalName", + "deliveryTimeId", + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productNumber": { - "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", + "name": { "type": "string" }, - "restockTime": { - "description": "The restock time in days indicates how long it will take until a sold out item is back in stock.", - "type": "integer", - "format": "int64" + "technicalName": { + "type": "string" }, "active": { - "description": "When boolean value is `true`, the products are available for selection in the storefront for purchase.", - "type": "boolean" - }, - "available": { - "description": "Indicates weather the product is available or not.", - "type": "boolean", - "readOnly": true - }, - "isCloseout": { - "description": "When the value is set to true, the product is hidden when sold out.", + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", "type": "boolean" }, - "stock": { - "description": "Indicates the number of products available.", + "position": { + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, - "displayGroup": { - "description": "Runtime field, cannot be used as part of the criteria.", + "customFields": { + "type": "object" + }, + "mediaId": { + "description": "Unique identity of media.", "type": "string", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "manufacturerNumber": { - "description": "Unique number that describes the manufacturer.", - "type": "string" + "deliveryTimeId": { + "description": "Unique identity of deliveryTime.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "ean": { - "description": "Indicates EAN of the product.", - "type": "string" - }, - "purchaseSteps": { - "description": "Specifies the scales in which the item is to be offered. For example, a scale of 2 means that your customers can purchase 2, 4, 6 products, etc., but not 1, 3 or 5.", - "type": "integer", - "format": "int64" - }, - "maxPurchase": { - "description": "Maximum number of items that can be purchased.", - "type": "integer", - "format": "int64" - }, - "minPurchase": { - "description": "Minimum number of items that can be purchased.", - "type": "integer", - "format": "int64" - }, - "purchaseUnit": { - "description": "Quantity of the item purchased. For example, 500ml, 2kg, etc.", - "type": "number", - "format": "float" - }, - "referenceUnit": { - "description": "Price of purchased item calculated as per the reference unit. Say, you bought 500ml of milk and the price is calculated in reference to 1000ml.", - "type": "number", - "format": "float" - }, - "shippingFree": { - "description": "Indicates weather the shipping price is free or not.", - "type": "boolean" - }, - "markAsTopseller": { - "description": "Indicates weather the product is top seller or not.", - "type": "boolean" - }, - "weight": { - "description": "The weight of the product.", - "type": "number", - "format": "float" - }, - "width": { - "description": "The width of the product.", - "type": "number", - "format": "float" - }, - "height": { - "description": "The height of the product.", - "type": "number", - "format": "float" - }, - "length": { - "description": "The length of the product.", - "type": "number", - "format": "float" - }, - "releaseDate": { - "description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.", - "type": "string", - "format": "date-time" - }, - "ratingAverage": { - "description": "Average of all the ratings.", - "type": "number", - "format": "float", - "readOnly": true - }, - "categoryTree": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "propertyIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "optionIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "streamIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "tagIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "categoryIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "childCount": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "sales": { - "description": "Frequency of the product sales.", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "metaDescription": { - "type": "string" - }, - "name": { - "type": "string" - }, - "keywords": { + "taxType": { + "description": "Refers `Free`, `Net` or `Gross` type of taxes.", "type": "string" }, "description": { "type": "string" }, - "metaTitle": { - "type": "string" - }, - "packUnit": { - "type": "string" - }, - "packUnitPlural": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "ogTitle": { - "type": "string" - }, - "ogDescription": { + "trackingUrl": { "type": "string" }, - "type": { - "description": "The type of the product, e.g., physical or digital.", - "type": "string", - "enum": [ - "physical", - "digital" - ] - }, - "states": { - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true, - "deprecated": true - }, - "availableStock": { - "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", - "type": "integer", - "format": "int64", - "readOnly": true, - "deprecated": true - }, - "calculatedPrice": { - "type": "object" - }, - "calculatedPrices": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false - } - }, - "calculatedMaxPurchase": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "integer", - "format": "int64" - }, - "calculatedCheapestPrice": { - "type": "object" - }, - "isNew": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "sortedProperties": { - "type": "object" - }, - "measurements": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -7654,9 +6745,10 @@ "translated": { "type": "object" }, - "extensions": { + "relationships": { "properties": { - "attendeeProductCollections": { + "deliveryTime": { + "description": "Estimated delivery time information", "properties": { "links": { "type": "object", @@ -7664,36 +6756,29 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/attendeeProductCollections" + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/deliveryTime" } } }, "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "dsr_attendee_product_collection" - }, - "id": { - "type": "string", - "example": "0a7b3b2f4b81f36910a74f22826f35df" - } + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "delivery_time" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "8c888ae25a7bd42057370e31f7e01044" } } } }, "type": "object" - } - }, - "type": "object" - }, - "relationships": { - "properties": { - "downloads": { - "description": "Downloadable files associated with the product (e.g., manuals, digital content)", + }, + "availabilityRule": { + "description": "Rule defining when this shipping method is available", "properties": { "links": { "type": "object", @@ -7701,39 +6786,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/downloads" - } - } - }, - "data": { - "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" + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/availabilityRule" } } }, @@ -7742,20 +6795,20 @@ "properties": { "type": { "type": "string", - "example": "product" + "example": "rule" }, "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "example": "d0e45878043844ffc41aac437e86b602" + "example": "9fbb7961d1cb158094924c679e1b302c" } } } }, "type": "object" }, - "children": { - "description": "Product variants that inherit from this parent product", + "prices": { + "description": "Shipping prices based on weight, volume, or cart value", "properties": { "links": { "type": "object", @@ -7763,7 +6816,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/children" + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/prices" } } }, @@ -7774,11 +6827,11 @@ "properties": { "type": { "type": "string", - "example": "product" + "example": "shipping_method_price" }, "id": { "type": "string", - "example": "268184c12df027f536154d099d497b31" + "example": "afae32efe0f84fece3f96b377b768b33" } } } @@ -7786,158 +6839,8 @@ }, "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" - } - } - } - }, - "type": "object" - }, - "cover": { - "description": "Main product image displayed in listings and detail pages", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/cover" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_media" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "41d0e299ca1abeb2094852da042165c7" - } - } - } - }, - "type": "object" - }, - "openGraphMedia": { - "description": "Open Graph image for social media sharing", + "media": { + "description": "Shipping method logo or carrier image", "properties": { "links": { "type": "object", @@ -7945,7 +6848,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/openGraphMedia" + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/media" } } }, @@ -7959,15 +6862,15 @@ "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "example": "bbda52d941a3452369a00f2880f4f358" + "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" } } } }, "type": "object" }, - "cmsPage": { - "description": "Custom CMS page layout for the product detail page", + "tags": { + "description": "Tags for organizing shipping methods", "properties": { "links": { "type": "object", @@ -7975,29 +6878,31 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/cmsPage" + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tags" } } }, "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "cms_page" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "7b1460918b1abb93311108f3dc021c9b" + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "tag" + }, + "id": { + "type": "string", + "example": "d57ac45256849d9b13e2422d91580fb9" + } } } } }, "type": "object" }, - "canonicalProduct": { - "description": "Canonical product reference for variant consolidation and SEO purposes", + "tax": { + "description": "Tax configuration for shipping costs", "properties": { "links": { "type": "object", @@ -8005,7 +6910,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/canonicalProduct" + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tax" } } }, @@ -8014,431 +6919,826 @@ "properties": { "type": { "type": "string", - "example": "product" + "example": "tax" }, "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "example": "023995a50b56c0de077323e958b2bbcd" + "example": "06565e5611f23fdf8cc43e5077b92b54" } } } }, "type": "object" - }, - "media": { - "description": "Product images and media gallery", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/media" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_media" - }, - "id": { - "type": "string", - "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" - } - } - } - } - }, - "type": "object" - }, - "crossSellings": { - "description": "Cross-selling configurations (related products, accessories, similar items)", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/crossSellings" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_cross_selling" - }, - "id": { - "type": "string", - "example": "89936e14544d1b403cecef938101b6b0" - } - } - } - } - }, - "type": "object" - }, - "configuratorSettings": { - "description": "Variant configurator settings defining available options for product variants", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/configuratorSettings" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_configurator_setting" - }, - "id": { - "type": "string", - "example": "c0827fee13725d41f1fd7e292243f5aa" - } - } - } - } - }, - "type": "object" - }, - "productReviews": { - "description": "Customer reviews and ratings for the product", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/productReviews" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_review" - }, - "id": { - "type": "string", - "example": "01e78541ea343ed72424a5222796a4cd" - } - } - } - } - }, - "type": "object" - }, - "mainCategories": { - "description": "Primary category assignments per sales channel for SEO and navigation", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/mainCategories" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "main_category" - }, - "id": { - "type": "string", - "example": "1fb731fc4139cbb575429e28846f0c39" - } - } - } - } - }, - "type": "object" - }, - "seoUrls": { - "description": "SEO-friendly URLs for the product across different sales channels", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/seoUrls" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "seo_url" - }, - "id": { - "type": "string", - "example": "5321b5a71127b8b98cdd4b068ad56c4c" - } - } - } - } - }, - "type": "object" - }, - "options": { - "description": "Product variant options (e.g., size, color) that define different variants", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/options" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "property_group_option" - }, - "id": { - "type": "string", - "example": "93da65a9fd0004d9477aeac024e08e15" - } - } - } - } - }, - "type": "object" - }, - "properties": { - "description": "Product properties and characteristics for filtering", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/properties" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "property_group_option" - }, - "id": { - "type": "string", - "example": "74693d2fc58b46bd06410f278e39aa71" - } - } - } - } - }, - "type": "object" - }, - "categories": { - "description": "Categories this product is assigned to", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/categories" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "category" - }, - "id": { - "type": "string", - "example": "b0b5ccb4a195a07fd3eed14affb8695f" - } - } - } - } - }, - "type": "object" - }, - "streams": { - "description": "Dynamic product streams this product belongs to based on defined filters", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/streams" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_stream" - }, - "id": { - "type": "string", - "example": "2f6f4768f1c2d7c8f1f54823723f1a70" - } - } - } - } - }, - "type": "object" - }, - "categoriesRo": { - "description": "Read-only category tree including all parent categories for optimized queries", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/categoriesRo" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "category" - }, - "id": { - "type": "string", - "example": "7f0702d3a90d965b8c9158c451f43fdb" - } - } - } - } - }, - "type": "object" - }, - "tags": { - "description": "Tags for organizing and filtering products", + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + }, + "ShippingMethod": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "technicalName", + "deliveryTimeId", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "technicalName": { + "type": "string" + }, + "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", + "type": "boolean" + }, + "position": { + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "customFields": { + "type": "object" + }, + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "deliveryTimeId": { + "description": "Unique identity of deliveryTime.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "taxType": { + "description": "Refers `Free`, `Net` or `Gross` type of taxes.", + "type": "string" + }, + "description": { + "type": "string" + }, + "trackingUrl": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "deliveryTime": { + "$ref": "#/components/schemas/DeliveryTime", + "description": "Estimated delivery time information" + }, + "availabilityRule": { + "$ref": "#/components/schemas/Rule", + "description": "Rule defining when this shipping method is available" + }, + "prices": { + "description": "Shipping prices based on weight, volume, or cart value", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethodPrice" + } + }, + "media": { + "$ref": "#/components/schemas/Media", + "description": "Shipping method logo or carrier image" + }, + "tags": { + "description": "Tags for organizing shipping methods", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "tax": { + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration for shipping costs" + } + }, + "type": "object" + }, + "ShippingMethodPrice": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "shippingMethodId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingMethodId": { + "description": "Unique identity of shipping method.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "ruleId": { + "description": "Unique identity of rule.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "calculation": { + "description": "Shipping price calculated based on quantity, price, weight or volume of items.", + "type": "integer", + "format": "int64" + }, + "calculationRuleId": { + "description": "Unique identity of rule calculation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "quantityStart": { + "description": "Starting range of quantity of an item.", + "type": "number", + "format": "float" + }, + "quantityEnd": { + "description": "Ending range of quantity of an item.", + "type": "number", + "format": "float" + }, + "currencyPrice": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Snippet": { + "description": "Added since version: 6.0.0.0", + "required": [ + "setId", + "translationKey", + "value" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "setId": { + "description": "Unique identity od snippet set.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "translationKey": { + "description": "Reference to the snippet in the template.", + "type": "string" + }, + "value": { + "description": "Value of the key.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SnippetSet": { + "description": "Added since version: 6.0.0.0", + "required": [ + "name", + "iso" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "description": "Name of snippet set.", + "type": "string" + }, + "iso": { + "description": "ISO nomenclature used to classify languages.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "snippets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Snippet" + } + } + }, + "type": "object" + }, + "StateMachine": { + "description": "Added since version: 6.0.0.0", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "states": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StateMachineState" + } + }, + "transitions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StateMachineTransition" + } + } + }, + "type": "object" + }, + "StateMachineHistory": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "fromStateMachineState": { + "$ref": "#/components/schemas/StateMachineState" + }, + "toStateMachineState": { + "$ref": "#/components/schemas/StateMachineState" + } + }, + "type": "object" + }, + "StateMachineTransition": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SystemConfig": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "configurationKey", + "configurationValue" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "configurationKey": { + "description": "Config key for shop configurations.", + "type": "string" + }, + "configurationValue": { + "properties": { + "_value": { + "type": "object" + } + }, + "type": "object" + }, + "salesChannelId": { + "description": "Unique identity of sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + } + }, + "type": "object" + }, + "Tag": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Tax": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "taxRate", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "taxRate": { + "description": "Rate of tax.", + "type": "number", + "format": "float" + }, + "name": { + "description": "Name defined for a Tax.", + "type": "string" + }, + "position": { + "description": "The order of the tabs of your defined taxes in the storefront by entering numerical values like 1,2,3, etc. Added since version: 6.4.0.0.", + "type": "integer", + "format": "int64" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "TaxProvider": { + "description": "Added since version: 6.5.0.0", + "required": [ + "id", + "priority", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "active": { + "description": "When boolean value is `true`, the tax providers are available for selection in the storefront.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "priority": { + "description": "A numerical value to prioritize one of the tax providers from the list.", + "type": "integer", + "format": "int64" + }, + "processUrl": { + "description": "External URL makes request to get tax info.", + "type": "string" + }, + "appId": { + "description": "Unique identity of app.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "TaxRule": { + "description": "Added since version: 6.1.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "TaxRuleType": { + "description": "Added since version: 6.1.0.0", + "required": [ + "typeName" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "Theme": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "name", + "author", + "active" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "technicalName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "author": { + "type": "string" + }, + "description": { + "type": "string" + }, + "labels": { + "type": "object" + }, + "helpTexts": { + "type": "object" + }, + "customFields": { + "type": "object" + }, + "previewMediaId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentThemeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "baseConfig": { + "type": "object" + }, + "configValues": { + "type": "object" + }, + "active": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "media": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Media" + } + } + }, + "type": "object" + }, + "Unit": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "shortCode", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shortCode": { + "type": "string" + }, + "name": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "User": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "UserAccessKey": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "UserConfig": { + "description": "Added since version: 6.3.5.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "UserRecovery": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Webhook": { + "description": "Added since version: 6.3.1.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "WebhookEventLog": { + "description": "Added since version: 6.4.1.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Product": { + "type": "object", + "properties": { + "extensions": { + "properties": { + "attendeeProductCollections": { + "properties": { + "links": { + "type": "object", "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/tags" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "tag" - }, - "id": { - "type": "string", - "example": "d57ac45256849d9b13e2422d91580fb9" - } - } - } + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/attendeeProductCollections" } - }, - "type": "object" + } }, - "seoCategory": { - "description": "Main category used for SEO URL generation in the current sales channel", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/seoCategory" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "category" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "9354d004d12e03d35ad8292bf0bb234d" - } + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "dsr_attendee_product_collection" + }, + "id": { + "type": "string", + "example": "0a7b3b2f4b81f36910a74f22826f35df" } } - }, - "type": "object" + } } }, "type": "object" @@ -8446,28 +7746,6 @@ }, "type": "object" }, - [], - { - "$ref": "#/components/schemas/DiscountLineItemPayload" - } - ] - }, - "Product": { - "description": "Represents a product along with detailed information required to display a variant selection.", - "required": [ - "apiAlias", - "calculatedPrice", - "calculatedPrices", - "seoCategory", - "type", - "translated", - "id", - "taxId", - "productNumber", - "stock", - "name" - ], - "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -8562,6 +7840,12 @@ "description": "When the value is set to true, the product is hidden when sold out.", "type": "boolean" }, + "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", + "type": "integer", + "format": "int64", + "readOnly": true + }, "stock": { "description": "Indicates the number of products available.", "type": "integer", @@ -8715,6 +7999,11 @@ "description": { "type": "string" }, + "descriptionTeaser": { + "description": "Read-only, HTML-stripped excerpt of the description, derived on write.", + "type": "string", + "readOnly": true + }, "metaTitle": { "type": "string" }, @@ -8749,13 +8038,6 @@ "readOnly": true, "deprecated": true }, - "availableStock": { - "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", - "type": "integer", - "format": "int64", - "readOnly": true, - "deprecated": true - }, "calculatedPrice": { "type": "object", "$ref": "#/components/schemas/CalculatedPrice" @@ -8869,44 +8151,8 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" - }, - "extensions": { - "properties": { - "attendeeProductCollections": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/attendeeProductCollections" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "dsr_attendee_product_collection" - }, - "id": { - "type": "string", - "example": "0a7b3b2f4b81f36910a74f22826f35df" - } - } - } - } - }, - "type": "object" - } - }, + }, + "translated": { "type": "object" }, "downloads": { @@ -9049,319 +8295,92 @@ }, "apiAlias": { "type": "string", - "enum": [ - "product" - ] - }, - "variantListingConfig": { - "oneOf": [ - { - "type": "object", - "properties": { - "displayParent": { - "type": "boolean" - } - } - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "ProductConfiguratorSetting": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "productId", - "optionId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "description": "Unique identity of product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "optionId": { - "description": "Unique identity of option.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "position": { - "description": "The order of the tabs of your defined product configuration settings in the storefront by entering numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "media": { - "$ref": "#/components/schemas/Media" - }, - "option": { - "$ref": "#/components/schemas/PropertyGroupOption" - } - }, - "type": "object" - }, - "ProductCrossSelling": { - "description": "Added since version: 6.1.0.0", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "position": { - "description": "The order of the tabs of your defined cross-selling actions in the storefront by entering numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" - }, - "sortBy": { - "description": "To sort the display of products by name, price or publication (descending, ascending) date.", - "type": "string" - }, - "sortDirection": { - "description": "To sort the display of products by ascending or descending order.", - "type": "string" - }, - "type": { - "description": "Type of product assignment for cross-selling. It can either be Dynamic product group or Manual assignment.", - "type": "string" - }, - "active": { - "description": "When set to active, the cross-selling feature is enabled.", - "type": "boolean" - }, - "limit": { - "description": "The maximum number of products to be displayed in cross-selling on the item detail page of your item.", - "type": "integer", - "format": "int64" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "ProductCrossSellingAssignedProducts": { - "description": "Added since version: 6.2.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "ProductDownload": { - "description": "Added since version: 6.4.19.0", - "required": [ - "id", - "productId", - "mediaId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "description": "Unique identity of Product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "position": { - "description": "The order in which the digital products are downloaded, like 1,2,3, etc.to adjust their order of display.", - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "media": { - "$ref": "#/components/schemas/Media" - } - }, - "type": "object" - }, - "ProductExport": { - "description": "Added since version: 6.1.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "ProductFeatureSet": { - "description": "Added since version: 6.3.0.0", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "product" + ] }, - "translated": { - "type": "object" + "variantListingConfig": { + "oneOf": [ + { + "type": "object", + "properties": { + "displayParent": { + "type": "boolean" + } + } + }, + { + "type": "null" + } + ] } }, - "type": "object" - }, - "ProductKeywordDictionary": { - "description": "Added since version: 6.0.0.0", + "description": "Represents a product along with detailed information required to display a variant selection.", "required": [ - "languageId", - "keyword" + "apiAlias", + "calculatedPrice", + "calculatedPrices", + "seoCategory", + "type", + "translated", + "id", + "taxId", + "productNumber", + "stock", + "name" + ] + }, + "NewsletterStatus": { + "type": "string", + "enum": [ + "notSet", + "optIn", + "optOut", + "direct", + "undefined" ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "description": "Unique identity of the language.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "keyword": { - "description": "The keywords that help to search the product.", - "type": "string" - } - }, - "type": "object" + "description": "The subscription status. Possible values are: notSet, optIn, optOut, direct, undefined." }, - "ProductManufacturer": { + "MediaThumbnail": { "description": "Added since version: 6.0.0.0", "required": [ + "url", "id", - "name" + "mediaId", + "width", + "height" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mediaId": { - "description": "Unique identity of the media.", + "mediaThumbnailSizeId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "link": { - "type": "string" + "width": { + "description": "Width of the thumbnail.", + "type": "integer", + "format": "int64", + "readOnly": true }, - "name": { + "height": { + "description": "Height of the thumbnail.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "url": { + "description": "Public url of media thumbnail. Runtime field, cannot be used as part of the criteria.", "type": "string" }, - "description": { + "path": { "type": "string" }, "customFields": { @@ -9376,190 +8395,298 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" - }, - "media": { - "$ref": "#/components/schemas/Media" } }, "type": "object" }, - "ProductMedia": { - "description": "Added since version: 6.0.0.0", - "required": [ - "media", - "id", - "productId", - "mediaId" - ], + "Breadcrumb": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "description": "Unique identity of the product.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "productVersionId": { + "categoryId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mediaId": { - "description": "Unique identity of the media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": { + "$ref": "#/components/schemas/Category/properties/type" }, - "position": { - "description": "The order of the images to be displayed for a product.", - "type": "integer", - "format": "int64" + "translated": { + "type": "object", + "additionalProperties": true, + "properties": { + "customFields": { + "type": "object" + }, + "slotConfig": { + "type": "object" + }, + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" + }, + "internalLink": { + "type": "string" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + } + } }, - "customFields": { - "type": "object" + "path": { + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "seoUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } }, - "updatedAt": { + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true - }, - "media": { - "$ref": "#/components/schemas/Media" + "enum": [ + "breadcrumb" + ] } }, - "type": "object" + "required": [ + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" + ] }, - "ProductPrice": { - "description": "Added since version: 6.0.0.0", + "ProductPurchaseLimit": { + "type": "object", + "description": "Current quantity purchase limits for a product.", + "required": [ + "productId", + "minPurchase", + "purchaseSteps", + "maxPurchase", + "stock", + "apiAlias" + ], "properties": { - "id": { + "productId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "The product ID." }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "minPurchase": { + "type": "integer", + "description": "Minimum quantity a customer can purchase." }, - "updatedAt": { + "purchaseSteps": { + "type": "integer", + "description": "Step increment for quantity selection." + }, + "maxPurchase": { + "type": "integer", + "description": "Maximum quantity a customer can purchase, reflecting current stock for closeout products." + }, + "stock": { + "type": [ + "integer", + "null" + ], + "description": "Current stock level of the product." + }, + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "product_purchase_limit" + ] } - }, - "type": "object" + } }, - "ProductReview": { + "Customer": { "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", + "activeBillingAddress", + "activeShippingAddress", "id", - "productId", + "groupId", "salesChannelId", "languageId", - "title", - "content" + "defaultBillingAddressId", + "defaultShippingAddressId", + "customerNumber", + "firstName", + "lastName", + "email" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productId": { - "description": "Unique identity of the product.", + "groupId": { + "description": "Unique identity of customer group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productVersionId": { + "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "salesChannelId": { - "description": "Unique identity of the sales channel.", + "languageId": { + "description": "Unique identity of language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "languageId": { - "description": "Unique identity of the language.", + "lastPaymentMethodId": { + "description": "Unique identity of previous payment method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "externalUser": { - "description": "External user name.", + "defaultBillingAddressId": { + "description": "Unique identity of default billing address.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "defaultShippingAddressId": { + "description": "Unique identity of default shipping address.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerNumber": { + "description": "Unique number assigned to identity a customer.", + "type": "string" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", + "type": "string" + }, + "lastName": { + "description": "Last name of the customer.", + "type": "string" + }, + "email": { + "description": "Email ID of the customer.", "type": "string" }, "title": { - "description": "Title of product review.", + "description": "Titles or honorifics like Mr, Mrs, etc.", "type": "string" }, - "content": { - "description": "Short description or subject of the project review.", + "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", "type": "string" }, - "points": { - "description": "A floating point number given to rate a product.", - "type": "number", - "format": "float" + "campaignCode": { + "description": "A campaign code is the globally unique identifier for a campaign.", + "type": "string" }, - "status": { - "description": "When status is set, the rating is made visible.", + "active": { + "description": "To keep the status of the customer active, the boolean value is set to `true`.", "type": "boolean" }, - "comment": { - "description": "Detailed review about the product.", + "doubleOptInRegistration": { + "description": "Set to `true` to allow user subscriptions to an email marketing list.", + "type": "boolean" + }, + "doubleOptInEmailSentDate": { + "description": "Date and time when the double opt-in email was sent.", + "type": "string", + "format": "date-time" + }, + "doubleOptInConfirmDate": { + "description": "Date and time when the double opt-in email was confirmed.", + "type": "string", + "format": "date-time" + }, + "hash": { + "description": "Customer registration double opt-in hash for confirming the customer account.", "type": "string" }, - "customFields": { - "type": "object" + "guest": { + "description": "Boolean value is `true` if it is to be a guest account.", + "type": "boolean" }, - "createdAt": { + "firstLogin": { + "description": "To capture date and time of customer's first login.", "type": "string", - "format": "date-time", - "readOnly": true + "format": "date-time" }, - "updatedAt": { + "lastLogin": { + "description": "To capture date and time of customer's last login.", + "type": "string", + "format": "date-time" + }, + "birthday": { + "description": "To capture customer's birthday details.", + "type": "string" + }, + "lastOrderDate": { + "description": "Captures last order date.", "type": "string", "format": "date-time", "readOnly": true - } - }, - "type": "object" - }, - "ProductSearchConfig": { - "description": "Added since version: 6.3.5.0", - "properties": { - "id": { + }, + "orderCount": { + "description": "Captures the number of orders placed.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "orderTotalAmount": { + "description": "Sum of total amount to be paid.", + "type": "number", + "format": "float", + "readOnly": true + }, + "reviewCount": { + "description": "Number of reviews the customer has given.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "customFields": { + "type": "object" + }, + "tagIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "requestedGroupId": { + "description": "Unique identity of requested group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "createdById": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "ProductSearchConfigField": { - "description": "Added since version: 6.3.5.0", - "properties": { - "id": { + "updatedById": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -9572,313 +8699,463 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "group": { + "$ref": "#/components/schemas/CustomerGroup", + "description": "Customer group determining pricing and permissions" + }, + "language": { + "$ref": "#/components/schemas/Language", + "description": "Preferred language for customer communication" + }, + "lastPaymentMethod": { + "$ref": "#/components/schemas/PaymentMethod", + "description": "Last used payment method by the customer" + }, + "defaultBillingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default billing address for the customer" + }, + "activeBillingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active billing address in the session" + }, + "defaultShippingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default shipping address for the customer" + }, + "activeShippingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active shipping address in the session" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation", + "description": "Customer salutation (e.g., Mr., Mrs., Ms.)" + }, + "addresses": { + "description": "All addresses saved for the customer", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerAddress" + } + }, + "tags": { + "description": "Tags assigned to the customer for organization and segmentation", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "customer" + ] + } + }, + "type": "object", + "oneOf": [ + { + "required": [ + "accountType" + ], + "properties": { + "accountType": { + "type": "string", + "enum": [ + "private" + ] + } + } + }, + { + "required": [ + "accountType", + "vatIds", + "company" + ], + "properties": { + "accountType": { + "type": "string", + "enum": [ + "business" + ] + }, + "vatIds": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "company": { + "type": "string" + } + } } - }, - "type": "object" + ] }, - "ProductSearchKeyword": { - "description": "Added since version: 6.0.0.0", + "AggregationMetrics": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "createdAt": { + "type": { "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "field": { + "type": "string" } }, - "type": "object" - }, - "ProductSorting": { - "description": "Added since version: 6.3.2.0", "required": [ - "key", - "priority", - "label" - ], + "name", + "type", + "field" + ] + }, + "LineItemType": { + "type": "string", + "deprecated": true, + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity", + "dsr-line-item-discount", + "dsr-cart-discount" + ] + }, + "LineItem": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } }, - "key": { - "type": "string" + "cover": { + "$ref": "#/components/schemas/Media" }, - "priority": { - "type": "integer", - "format": "int64" + "dataContextHash": { + "type": "string" }, - "label": { + "dataTimestamp": { "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "description": { + "type": "string" + }, + "good": { + "type": "boolean" }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "ProductStream": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "name" - ], - "properties": { "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, - "name": { + "label": { "type": "string" }, - "description": { + "modified": { + "type": "boolean" + }, + "modifiedByApp": { + "type": "boolean" + }, + "payload": { + "$ref": "#/components/schemas/ProductJsonApi" + }, + "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": { "type": "string" }, - "customFields": { - "type": "object" - }, - "internal": { - "description": "When the boolean value is `true` indicating that it is for internal use only and will not appear in product stream listings.", + "removable": { "type": "boolean" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "stackable": { + "type": "boolean" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "states": { + "deprecated": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "ProductStreamFilter": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "uniqueIdentifier": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "extensions": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "attendees": { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + } + } + } + } } }, - "type": "object" + "required": [ + "id", + "type" + ] }, - "ProductVisibility": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } }, - "Promotion": { + "CmsSection": { "description": "Added since version: 6.0.0.0", "required": [ - "name" + "apiAlias", + "blocks", + "id", + "position", + "type", + "pageId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "PromotionDiscount": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "PromotionDiscountPrices": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "PromotionIndividualCode": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "PromotionSalesChannel": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "cmsPageVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "PromotionSetgroup": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "position": { + "description": "Position of occurrence of each section denoted by numerical values 0, 1, 2...", + "type": "integer", + "format": "int64" }, - "createdAt": { + "type": { + "description": "Types of sections can be `default` or `sidebar`.", "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "default", + "sidebar" + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "PropertyGroup": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "description": "Name of the CMS section defined.", + "type": "string" }, - "name": { + "sizingMode": { + "description": "Sizing mode can be `boxed` or `full_width`.", "type": "string" }, - "description": { + "mobileBehavior": { + "description": "Hides the sidebar on mobile viewports. It can hold values such as 'mobile', 'wrap', any other string or be unset.", "type": "string" }, - "displayType": { - "description": "Property groups can be displayed in the form of text, image, dropdown or color.", + "backgroundColor": { + "description": "Background color of CMS page.", "type": "string" }, - "sortingType": { - "description": "Sorting the property group by name or position.", + "backgroundMediaId": { + "description": "Unique identity of CMS section's background media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "backgroundMediaMode": { + "description": "Background media mode can be `cover`, `auto` or `contain`.", "type": "string" }, - "filterable": { - "description": "When set to true, the property will be displayed in the product filter of product lists.", - "type": "boolean" + "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", + "type": "string" }, - "visibleOnProductDetailPage": { - "description": "When set to true, the property groups are displayed on product detail page.", - "type": "boolean" + "pageId": { + "description": "Unique identity of page where CMS section is defined.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "position": { - "type": "integer", - "format": "int64" + "visibility": { + "properties": { + "mobile": { + "type": "boolean" + }, + "desktop": { + "type": "boolean" + }, + "tablet": { + "type": "boolean" + } + }, + "type": "object" }, "customFields": { "type": "object" @@ -9893,104 +9170,187 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "page": { + "$ref": "#/components/schemas/CmsPage" }, - "options": { + "backgroundMedia": { + "$ref": "#/components/schemas/Media" + }, + "blocks": { "type": "array", "items": { - "$ref": "#/components/schemas/PropertyGroupOption" + "$ref": "#/components/schemas/CmsBlock" } + }, + "apiAlias": { + "type": "string", + "enum": [ + "cms_section" + ] } }, "type": "object" }, - "PropertyGroupOption": { + "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" + }, + "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", + "kg", + "oz", + "lb" + ], + "default": "kg" + }, + "value": { + "type": "number" + } + } + } + } + }, + "Media": { "description": "Added since version: 6.0.0.0", "required": [ - "group", - "option", - "translated", - "id", - "groupId", - "name" + "apiAlias", + "fileExtension", + "fileName", + "hasFile", + "path", + "private", + "url", + "id" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "groupId": { - "description": "Unique identity of property group.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { + "mimeType": { + "description": "A string sent along with a file indicating the type of the file. For example: image/jpeg.", "type": "string" }, - "position": { - "type": "integer", - "format": "int64" - }, - "colorHexCode": { - "description": "Property group options can be displayed in the form of color. For example: #98e3f5ff.", + "fileExtension": { + "description": "Type of file indication. For example: jpeg, png.", "type": "string" }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "combinable": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "customFields": { - "type": "object" - }, - "createdAt": { + "uploadedAt": { + "description": "Date and time at which media was added.", "type": "string", "format": "date-time", "readOnly": true }, - "updatedAt": { - "type": "string", - "format": "date-time", + "fileName": { + "description": "Name of the media file uploaded.", + "type": "string" + }, + "fileSize": { + "description": "Size of the file media file uploaded.", + "type": "integer", + "format": "int64", "readOnly": true }, - "translated": { - "type": "object" + "metaData": { + "type": "object", + "readOnly": true, + "properties": { + "height": { + "type": "integer", + "format": "int64" + }, + "width": { + "type": "integer", + "format": "int64" + } + } }, - "media": { - "$ref": "#/components/schemas/Media" + "config": { + "type": "object" }, - "group": { - "$ref": "#/components/schemas/PropertyGroup" + "alt": { + "type": "string" }, - "option": { + "title": { "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "description": "Added since version: 6.0.0.0", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" }, - "name": { - "description": "Name of the rule defined.", + "url": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" }, - "description": { - "description": "Description of the rule.", + "path": { "type": "string" }, + "hasFile": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "private": { + "description": "When `true`, the media display is kept private.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -10003,150 +9363,97 @@ "type": "string", "format": "date-time", "readOnly": true - } - }, - "type": "object" - }, - "RuleCondition": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "translated": { + "type": "object" }, - "updatedAt": { + "thumbnails": { + "description": "Generated thumbnail images in various sizes", + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaThumbnail" + } + }, + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "media" + ] } }, "type": "object" }, - "SalesChannel": { + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "Document": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "languageId", - "customerGroupId", - "currencyId", - "paymentMethodId", - "shippingMethodId", - "countryId", - "navigationCategoryId", - "name", - "homeEnabled" + "documentTypeId", + "orderId", + "config", + "deepLinkCode" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "languageId": { - "description": "Unique identity of language used.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customerGroupId": { - "description": "Unique identity of customer group.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "currencyId": { - "description": "Unique identity of currency used.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "paymentMethodId": { - "description": "Unique identity of payment method used.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingMethodId": { - "description": "Unique identity of shipping method.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "description": "Unique identity of country.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "navigationCategoryId": { - "description": "Unique identity of navigation category.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "navigationCategoryVersionId": { + "documentTypeId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "navigationCategoryDepth": { - "description": "It determines the number of levels of subcategories in the storefront category menu.", - "type": "integer", - "format": "int64" - }, - "footerCategoryId": { - "description": "Unique identity of footer category.", + "referencedDocumentId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "footerCategoryVersionId": { + "orderId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "serviceCategoryId": { - "description": "Unique identity of service category.", + "documentMediaFileId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "serviceCategoryVersionId": { + "documentA11yMediaFileId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mailHeaderFooterId": { - "description": "Unique identity of mail header and footer.", + "orderVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "hreflangDefaultDomainId": { - "description": "Unique identity of hreflangDefaultDomain.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "config": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "name", + "title" + ] }, - "measurementUnits": { - "$ref": "#/components/schemas/MeasurementUnits" + "sent": { + "type": "boolean" }, - "name": { - "type": "string" + "static": { + "type": "boolean" }, - "shortName": { - "description": "A short name for sales channel.", + "deepLinkCode": { "type": "string" }, - "taxCalculationType": { - "description": "Tax calculation types are `horizontal` and `vertical`.", + "documentNumber": { "type": "string" }, - "configuration": { - "type": "object" - }, - "active": { - "description": "When boolean value is `true`, the sales channel is enabled.", - "type": "boolean" - }, - "hreflangActive": { - "description": "When set to true, the sales channel pages are available in different languages.", - "type": "boolean" - }, - "maintenance": { - "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period.", - "type": "boolean" - }, "customFields": { "type": "object" }, @@ -10160,118 +9467,201 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" - }, - "language": { - "$ref": "#/components/schemas/Language", - "description": "Default language for the sales channel" - }, - "currency": { - "$ref": "#/components/schemas/Currency", - "description": "Default currency for the sales channel" - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod", - "description": "Default payment method for the sales channel" + "documentType": { + "$ref": "#/components/schemas/DocumentType" }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod", - "description": "Default shipping method for the sales channel" + "order": { + "$ref": "#/components/schemas/Order" }, - "country": { - "$ref": "#/components/schemas/Country", - "description": "Default country for the sales channel" + "referencedDocument": { + "$ref": "#/components/schemas/Document" }, - "domains": { - "description": "Domain URLs configured for the sales channel", + "dependentDocuments": { "type": "array", "items": { - "$ref": "#/components/schemas/SalesChannelDomain" + "$ref": "#/components/schemas/Document" } }, - "navigationCategory": { - "$ref": "#/components/schemas/Category", - "description": "Root category for navigation menu" - }, - "footerCategory": { - "$ref": "#/components/schemas/Category", - "description": "Root category for footer navigation" + "documentMediaFile": { + "$ref": "#/components/schemas/Media" }, - "serviceCategory": { - "$ref": "#/components/schemas/Category", - "description": "Root category for service pages" + "documentA11yMediaFile": { + "$ref": "#/components/schemas/Media" }, - "hreflangDefaultDomain": { - "$ref": "#/components/schemas/SalesChannelDomain" + "fileType": { + "type": "string" } }, "type": "object" }, - "SalesChannelAnalytics": { - "description": "Added since version: 6.2.0.0", + "EntitySearchResult": { + "type": "object", "properties": { - "id": { + "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." + } + } + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "gross": { + "description": "Gross price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net prices are linked through the tax configuration.", + "type": "boolean" + }, + "percentage": { + "description": "Discount percentage relative to the list price for the gross and net amounts. `null` when no list price is set.", + "type": [ + "object", + "null" + ], + "properties": { + "gross": { + "description": "Discount percentage relative to the gross list price.", + "type": "number" + }, + "net": { + "description": "Discount percentage relative to the net list price.", + "type": "number" + } + }, + "required": [ + "gross", + "net" + ] + }, + "listPrice": { + "description": "Reference list price for displaying discounts.", + "type": "object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "Gross list price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net list price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net list prices are linked through the tax configuration.", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "regulationPrice": { + "description": "Reference price used for legal price disclosures.", + "type": "object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "Gross regulation price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net regulation price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net regulation prices are linked through the tax configuration.", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] } }, - "type": "object" + "required": [ + "currencyId", + "gross", + "net" + ] }, - "SalesChannelDomain": { + "PropertyGroupOption": { "description": "Added since version: 6.0.0.0", "required": [ + "group", + "option", + "translated", "id", - "url", - "salesChannelId", - "languageId", - "currencyId", - "snippetSetId" + "groupId", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "url": { - "description": "URL of the sales channel domain.", - "type": "string" - }, - "salesChannelId": { - "description": "Unique identity of sales channel.", + "groupId": { + "description": "Unique identity of property group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "languageId": { - "description": "Unique identity of language used.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "currencyId": { - "description": "Unique identity of currency.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "position": { + "type": "integer", + "format": "int64" }, - "snippetSetId": { - "description": "Unique identity of snippet set.", + "colorHexCode": { + "description": "Property group options can be displayed in the form of color. For example: #98e3f5ff.", + "type": "string" + }, + "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "measurementUnits": { - "$ref": "#/components/schemas/MeasurementUnits" - }, - "hreflangUseOnlyLocale": { - "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance.", + "combinable": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "boolean" }, "customFields": { @@ -10287,744 +9677,845 @@ "format": "date-time", "readOnly": true }, - "language": { - "$ref": "#/components/schemas/Language" + "translated": { + "type": "object" }, - "currency": { - "$ref": "#/components/schemas/Currency" + "media": { + "$ref": "#/components/schemas/Media" }, - "salesChannelDefaultHreflang": { - "$ref": "#/components/schemas/SalesChannel" + "group": { + "$ref": "#/components/schemas/PropertyGroup" + }, + "option": { + "type": "string" } }, "type": "object" }, - "SalesChannelTrackingCustomer": { - "description": "Added since version: 6.7.9.0", + "CartItems": { + "type": "object", + "required": [ + "items" + ], "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } } - }, - "type": "object" + } }, - "SalesChannelTrackingOrder": { - "description": "Added since version: 6.7.9.0", + "CookieRouteResponse": { + "type": "object", + "description": "Response containing cookie groups and their configuration hash.", "properties": { - "id": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "cookie_groups_hash" + ] }, - "createdAt": { + "elements": { + "type": "array", + "description": "Collection of cookie groups", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "hash": { "type": "string", - "format": "date-time", - "readOnly": true + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" }, - "updatedAt": { + "languageId": { "type": "string", - "format": "date-time", - "readOnly": true + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" } }, - "type": "object" - }, - "SalesChannelType": { - "description": "Added since version: 6.0.0.0", "required": [ - "name" + "elements", + "hash", + "languageId", + "apiAlias" ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" + "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" + } }, - "SalutationJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "salutationKey", - "displayName", - "letterName" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationKey": { - "description": "Technical name given to salutation. For example: mr", - "type": "string" - }, - "displayName": { - "type": "string" - }, - "letterName": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "position": { - "description": "Numerical value that indicates the order in which the defined salutations must be displayed in the frontend.", - "type": "integer", - "format": "int64" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" + "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" + }, + "maintenanceIpAllowlist": { + "type": "string" + }, + "maintenanceIpWhitelist": { + "deprecated": true, + "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" + }, + "maintenanceIpAllowlist": { + "type": "string" + }, + "maintenanceIpWhitelist": { + "deprecated": true, + "type": "string" + }, + "mailHeaderFooterId": { + "type": "string" + }, + "customerGroupId": { + "type": "string" + }, + "hreflangActive": { + "type": "boolean" + }, + "hreflangDefaultDomainId": { + "type": "string" + } + } } }, - "type": "object" + "availabilityRule": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "invalid": { + "type": "boolean" + } + } + }, + "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" + } + } + } + } } - ] + } }, - "Salutation": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "salutationKey", - "displayName", - "letterName" - ], + "CartPriceReference": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "purchaseUnit": { + "type": "number" }, - "salutationKey": { - "description": "Technical name given to salutation. For example: mr", - "type": "string" + "referenceUnit": { + "type": "number" }, - "displayName": { + "unitName": { "type": "string" }, - "letterName": { - "type": "string" + "price": { + "type": "number" }, - "customFields": { - "type": "object" + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] }, - "position": { - "description": "Numerical value that indicates the order in which the defined salutations must be displayed in the frontend.", - "type": "integer", - "format": "int64" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "hasRange": { + "type": "boolean" }, - "translated": { - "type": "object" + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] } }, - "type": "object" + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] }, - "ScheduledTask": { - "description": "Added since version: 6.0.0.0", + "AggregationEntity": { + "title": "AggregationEntity", + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "createdAt": { + "type": { + "description": "The type of aggregation", "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "entity" + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" } }, - "type": "object" + "required": [ + "name", + "type", + "field", + "definition" + ] }, - "Script": { - "description": "Added since version: 6.4.7.0", + "AggregationFilter": { + "title": "AggregationFilter", + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "createdAt": { + "type": { + "description": "The type of aggregation", "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "filter" + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } } }, - "type": "object" - }, - "SeoUrlJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "languageId", - "foreignKey", - "routeName", - "pathInfo", - "seoPathInfo" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salesChannelId": { - "description": "Unique identity of sales channel.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "description": "Unique identity of language.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "foreignKey": { - "description": "The key that references to product or category entity ID.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "routeName": { - "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" - ] - }, - "pathInfo": { - "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", - "type": "string" - }, - "seoPathInfo": { - "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", - "type": "string" - }, - "isCanonical": { - "description": "When set to true, search redirects to the main URL.", - "type": "boolean" - }, - "isModified": { - "description": "When boolean value is `true`, the seo url is changed.", - "type": "boolean" - }, - "isDeleted": { - "description": "When set to true, the URL is deleted and cannot be used any more but it is still available on table and can be restored later.", - "type": "boolean" - }, - "error": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - } + "required": [ + "name", + "type", + "filter" ] }, - "SeoUrl": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "languageId", - "foreignKey", - "routeName", - "pathInfo", - "seoPathInfo" - ], + "AggregationTerms": { + "title": "AggregationTerms", + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salesChannelId": { - "description": "Unique identity of sales channel.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "description": "Unique identity of language.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "foreignKey": { - "description": "The key that references to product or category entity ID.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "routeName": { - "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", + "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "frontend.detail.page", - "frontend.navigation.page", - "frontend.landing.page" + "terms" ] }, - "pathInfo": { - "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", - "type": "string" - }, - "seoPathInfo": { - "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", - "type": "string" - }, - "isCanonical": { - "description": "When set to true, search redirects to the main URL.", - "type": "boolean" - }, - "isModified": { - "description": "When boolean value is `true`, the seo url is changed.", - "type": "boolean" - }, - "isDeleted": { - "description": "When set to true, the URL is deleted and cannot be used any more but it is still available on table and can be restored later.", - "type": "boolean" - }, - "error": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria.", + "field": { + "description": "The field you want to aggregate over.", "type": "string" }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "limit": { + "description": "The number of terms to return", + "type": "number" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" + } } }, - "type": "object" + "required": [ + "name", + "type", + "field" + ] }, - "SeoUrlTemplate": { - "description": "Added since version: 6.0.0.0", + "AggregationHistogram": { + "title": "AggregationHistogram", + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "salesChannelId": { - "description": "Unique identity of sales channel.", + "type": { + "description": "The type of aggregation", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "histogram" + ] }, - "isValid": { - "description": "Created SEO URL template can be made usable by setting `isValid` to true.", - "type": "boolean" + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "customFields": { - "type": "object" + "interval": { + "description": "The interval of the histogram", + "type": "number" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "format": { + "description": "The format of the histogram", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" } }, - "type": "object" - }, - "ShippingMethodJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "technicalName", - "deliveryTimeId", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "technicalName": { - "type": "string" - }, - "active": { - "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", - "type": "boolean" - }, - "position": { - "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "deliveryTimeId": { - "description": "Unique identity of deliveryTime.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "taxType": { - "description": "Refers `Free`, `Net` or `Gross` type of taxes.", - "type": "string" - }, - "description": { - "type": "string" - }, - "trackingUrl": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - }, - "relationships": { - "properties": { - "deliveryTime": { - "description": "Estimated delivery time information", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/deliveryTime" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "delivery_time" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "8c888ae25a7bd42057370e31f7e01044" - } - } - } - }, - "type": "object" - }, - "availabilityRule": { - "description": "Rule defining when this shipping method is available", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/availabilityRule" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "rule" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "9fbb7961d1cb158094924c679e1b302c" - } - } - } - }, - "type": "object" - }, - "prices": { - "description": "Shipping prices based on weight, volume, or cart value", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/prices" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "shipping_method_price" - }, - "id": { - "type": "string", - "example": "afae32efe0f84fece3f96b377b768b33" - } - } - } - } - }, - "type": "object" - }, - "media": { - "description": "Shipping method logo or carrier image", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/media" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "media" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" - } - } - } + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" }, - "type": "object" + "to": { + "type": "number", + "description": "The upper bound of the range" + } }, - "tags": { - "description": "Tags for organizing shipping methods", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tags" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "tag" - }, - "id": { - "type": "string", - "example": "d57ac45256849d9b13e2422d91580fb9" - } - } - } - } - }, - "type": "object" + "required": [ + "from", + "to" + ] + }, + { + "type": "object", + "title": "From only", + "properties": { + "from": { + "type": "string", + "description": "The lower bound of the range" + } }, - "tax": { - "description": "Tax configuration for shipping costs", - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tax" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "tax" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "06565e5611f23fdf8cc43e5077b92b54" - } - } - } - }, - "type": "object" - } + "required": [ + "from" + ] }, - "type": "object" - } - }, - "type": "object" + { + "type": "object", + "title": "To only", + "properties": { + "to": { + "type": "string", + "description": "The upper bound of the range" + } + }, + "required": [ + "to" + ] + } + ] + } } + }, + "required": [ + "name", + "type", + "field", + "ranges" ] }, - "ShippingMethod": { - "description": "Added since version: 6.0.0.0", + "LandingPage": { + "description": "Added since version: 6.4.0.0", "required": [ + "apiAlias", "id", - "technicalName", - "deliveryTimeId", - "name" + "name", + "url" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "technicalName": { - "type": "string" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "active": { - "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", "type": "boolean" }, - "position": { - "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" + "name": { + "type": "string" }, "customFields": { "type": "object" }, - "mediaId": { - "description": "Unique identity of media.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "slotConfig": { + "type": "object" }, - "deliveryTimeId": { - "description": "Unique identity of deliveryTime.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "metaTitle": { + "type": "string" }, - "taxType": { - "description": "Refers `Free`, `Net` or `Gross` type of taxes.", + "metaDescription": { "type": "string" }, - "description": { + "keywords": { "type": "string" }, - "trackingUrl": { + "url": { "type": "string" }, + "cmsPageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "createdAt": { "type": "string", "format": "date-time", @@ -11038,194 +10529,253 @@ "translated": { "type": "object" }, - "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime", - "description": "Estimated delivery time information" + "cmsPage": { + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the landing page" }, - "availabilityRule": { - "$ref": "#/components/schemas/Rule", - "description": "Rule defining when this shipping method is available" + "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "landing_page" + ] + } + }, + "type": "object" + }, + "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": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "code", + "key", + "level", + "message", + "messageKey" + ] + } + } + ] }, - "prices": { - "description": "Shipping prices based on weight, volume, or cart value", + "deliveries": { "type": "array", "items": { - "$ref": "#/components/schemas/ShippingMethodPrice" + "$ref": "#/components/schemas/CartDelivery" } }, - "media": { - "$ref": "#/components/schemas/Media", - "description": "Shipping method logo or carrier image" - }, - "tags": { - "description": "Tags for organizing shipping methods", + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", "type": "array", "items": { - "$ref": "#/components/schemas/Tag" + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } } }, - "tax": { - "$ref": "#/components/schemas/Tax", - "description": "Tax configuration for shipping costs" + "modified": { + "type": "boolean" + }, + "customerComment": { + "description": "A comment that can be added to the cart.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "affiliateCode": { + "description": "An affiliate tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart" + ] } }, - "type": "object" + "required": [ + "price", + "apiAlias" + ] }, - "ShippingMethodPrice": { + "CmsBlock": { "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", + "slots", "id", - "shippingMethodId" + "position", + "type", + "sectionId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shippingMethodId": { - "description": "Unique identity of shipping method.", + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "ruleId": { - "description": "Unique identity of rule.", + "cmsSectionVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "calculation": { - "description": "Shipping price calculated based on quantity, price, weight or volume of items.", + "position": { + "description": "Order of the block indicated by number like 0, 1, 2,...", "type": "integer", "format": "int64" }, - "calculationRuleId": { - "description": "Unique identity of rule calculation.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "quantityStart": { - "description": "Starting range of quantity of an item.", - "type": "number", - "format": "float" - }, - "quantityEnd": { - "description": "Ending range of quantity of an item.", - "type": "number", - "format": "float" - }, - "currencyPrice": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" - } - }, - "customFields": { - "type": "object" + "type": { + "description": "Type of block can be 'image`, `text`, 'product-listing`, `image-two-column`, etc.", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "name": { + "description": "Unique name of the CMS Block.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Snippet": { - "description": "Added since version: 6.0.0.0", - "required": [ - "setId", - "translationKey", - "value" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "sectionPosition": { + "description": "Position of the section. It can either be `main` or `sidebar`.", + "type": "string" }, - "setId": { - "description": "Unique identity od snippet set.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "marginTop": { + "description": "Defines the margin area on the top of an element.", + "type": "string" }, - "translationKey": { - "description": "Reference to the snippet in the template.", + "marginBottom": { + "description": "Defines for the margin area on the bottom of an element.", "type": "string" }, - "value": { - "description": "Value of the key.", + "marginLeft": { + "description": "Defines for the margin area on the left of an element.", "type": "string" }, - "customFields": { - "type": "object" + "marginRight": { + "description": "Defines the margin area on the right of an element.", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "backgroundColor": { + "description": "Defines the background color of an element.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SnippetSet": { - "description": "Added since version: 6.0.0.0", - "required": [ - "name", - "iso" - ], - "properties": { - "id": { + "backgroundMediaId": { + "description": "Unique identity of background media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "description": "Name of snippet set.", + "backgroundMediaMode": { + "description": "Background media mode accept values `cover`, `auto`, `contain`.", "type": "string" }, - "iso": { - "description": "ISO nomenclature used to classify languages.", + "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", "type": "string" }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "snippets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Snippet" - } - } - }, - "type": "object" - }, - "StateMachine": { - "description": "Added since version: 6.0.0.0", - "required": [ - "name" - ], - "properties": { - "id": { + "visibility": { + "properties": { + "mobile": { + "type": "boolean" + }, + "desktop": { + "type": "boolean" + }, + "tablet": { + "type": "boolean" + } + }, + "type": "object" + }, + "sectionId": { + "description": "Unique identity of section.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -11236,536 +10786,628 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "backgroundMedia": { + "$ref": "#/components/schemas/Media" }, - "states": { + "slots": { "type": "array", "items": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/CmsSlot" } }, - "transitions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StateMachineTransition" - } + "apiAlias": { + "type": "string", + "enum": [ + "cms_block" + ] } }, "type": "object" }, - "StateMachineHistory": { - "description": "Added since version: 6.0.0.0", + "CartItemsUpdate": { + "type": "object", + "required": [ + "items" + ], "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "fromStateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "toStateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartLineItemUpdate" + } } - }, - "type": "object" + } }, - "StateMachineState": { - "description": "Added since version: 6.0.0.0", + "CartLineItemUpdate": { + "type": "object", "required": [ - "translated", - "technicalName", - "name" + "id" ], "properties": { "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, - "technicalName": { - "description": "Technical name of StateMachineState.", + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" + }, + "quantity": { + "type": "integer" + }, + "referencedId": { "type": "string" }, - "name": { + "label": { "type": "string" }, - "customFields": { + "payload": { "type": "object" }, - "createdAt": { + "stackable": { + "type": "boolean" + }, + "removable": { + "type": "boolean" + }, + "coverId": { + "type": "string" + }, + "priceDefinition": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "price": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "quantity": { + "type": "integer" + }, + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "type": "number" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number" + }, + "percentage": { + "type": "number" + } + } + } + } + } + } + } + }, + "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", - "format": "date-time", - "readOnly": true + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - "updatedAt": { + "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." + } + } + } + } + }, + "AccountNewsletterRecipient": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/NewsletterStatus" + }, + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "account_newsletter_recipient" + ] + } + }, + "required": [ + "status", + "apiAlias" + ] + }, + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "translated": { - "type": "object" + { + "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 + }, + "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 + }, + "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" + } + ] + } + } } - }, - "type": "object" + ] }, - "StateMachineTransition": { - "description": "Added since version: 6.0.0.0", + "CartPriceQuantity": { + "type": "object", "properties": { - "id": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "cart_price_quantity" + ] }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "isCalculated": { + "type": "boolean" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SystemConfig": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "configurationKey", - "configurationValue" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" }, - "configurationKey": { - "description": "Config key for shop configurations.", - "type": "string" + "price": { + "type": "number" }, - "configurationValue": { + "quantity": { + "type": "number" + }, + "regulationPrice": { "properties": { - "_value": { - "type": "object" + "price": { + "type": "number", + "format": "float" } }, "type": "object" }, - "salesChannelId": { - "description": "Unique identity of sales channel.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" + "type": { + "type": "string" } }, - "type": "object" - }, - "Tag": { - "description": "Added since version: 6.0.0.0", "required": [ - "id", - "name" - ], + "apiAlias" + ] + }, + "ProductListingFlags": { + "type": "object", + "description": "Additional flags for product listings", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "only-aggregations": { + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } - }, - "type": "object" + } }, - "Tax": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "taxRate", - "name" - ], + "CartDelivery": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "taxRate": { - "description": "Rate of tax.", - "type": "number", - "format": "float" - }, - "name": { - "description": "Name defined for a Tax.", - "type": "string" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "position": { - "description": "The order of the tabs of your defined taxes in the storefront by entering numerical values like 1,2,3, etc. Added since version: 6.4.0.0.", - "type": "integer", - "format": "int64" + "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" + } + } }, - "customFields": { - "type": "object" + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDeliveryPosition" + } }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } - }, - "type": "object" + } }, - "TaxProvider": { - "description": "Added since version: 6.5.0.0", + "OrderLineItem": { + "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", "id", - "priority", - "name" + "orderId", + "identifier", + "quantity", + "label", + "children", + "states" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "active": { - "description": "When boolean value is `true`, the tax providers are available for selection in the storefront.", - "type": "boolean" - }, - "name": { - "type": "string" - }, - "priority": { - "description": "A numerical value to prioritize one of the tax providers from the list.", - "type": "integer", - "format": "int64" - }, - "processUrl": { - "description": "External URL makes request to get tax info.", - "type": "string" - }, - "appId": { - "description": "Unique identity of app.", + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" - }, - "createdAt": { + "orderId": { + "description": "Unique identity of order.", "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "orderVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "TaxRule": { - "description": "Added since version: 6.1.0.0", - "properties": { - "id": { + "productId": { + "description": "Unique identity of product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "productVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "TaxRuleType": { - "description": "Added since version: 6.1.0.0", - "required": [ - "typeName" - ], - "properties": { - "id": { + "promotionId": { + "description": "Unique identity of product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "parentId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "parentVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "Theme": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "name", - "author", - "active" - ], - "properties": { - "id": { + "coverId": { + "description": "Unique identity of cover image.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "technicalName": { + "identifier": { + "description": "It is a unique identity of an item in cart before its converted to an order.", "type": "string" }, - "name": { + "referencedId": { + "description": "Unique identity of type of entity.", "type": "string" }, - "author": { - "type": "string" + "quantity": { + "description": "Number of items of product.", + "type": "integer", + "format": "int64" }, - "description": { + "label": { + "description": "It is a typical product name given to the line item.", "type": "string" }, - "labels": { - "type": "object" - }, - "helpTexts": { - "type": "object" - }, - "customFields": { - "type": "object" - }, - "previewMediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentThemeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "baseConfig": { - "type": "object" - }, - "configValues": { - "type": "object" - }, - "active": { - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - }, - "media": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Media" + "payload": { + "type": "object", + "properties": { + "categoryIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "customFields": { + "type": "object" + }, + "features": { + "type": "array" + }, + "isCloseout": { + "type": "boolean" + }, + "isNew": { + "type": "boolean" + }, + "manufacturerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "markAsTopseller": { + "type": "boolean" + }, + "optionIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyGroupOption" + } + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productNumber": { + "type": "string" + }, + "propertyIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "releaseDate": { + "type": "string", + "format": "date-time" + }, + "stock": { + "type": "integer", + "format": "int64" + }, + "streamIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "taxId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productType": { + "$ref": "#/components/schemas/Product/properties/type" + } } - } - }, - "type": "object" - }, - "Unit": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "shortCode", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shortCode": { - "type": "string" - }, - "name": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "User": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "good": { + "description": "When set to true, it indicates the line item is physical else it is virtual.", + "type": "boolean" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "removable": { + "description": "Allows the line item to be removable from the cart when set to true.", + "type": "boolean" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserAccessKey": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "stackable": { + "description": "Allows to change the quantity of the line item when set to true.", + "type": "boolean" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "position": { + "description": "Position of line items placed in an order.", + "type": "integer", + "format": "int64" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserConfig": { - "description": "Added since version: 6.3.5.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "priceDefinition": { + "type": "object", + "$ref": "#/components/schemas/CartPriceQuantity" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "unitPrice": { + "description": "Price of product per item (where, quantity=1).", + "type": "number", + "format": "float" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserRecovery": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "totalPrice": { + "description": "Cost of product based on quantity.", + "type": "number", + "format": "float" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "description": { + "description": "Description of line items in an order.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Webhook": { - "description": "Added since version: 6.3.1.0", - "properties": { - "id": { + "type": { + "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "product", + "credit", + "custom", + "promotion", + "container", + "discount", + "quantity" + ] }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "customFields": { + "type": "object" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "WebhookEventLog": { - "description": "Added since version: 6.4.1.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "states": { + "type": "array", + "items": { + "type": "string" + }, + "deprecated": true }, "createdAt": { "type": "string", @@ -11776,678 +11418,901 @@ "type": "string", "format": "date-time", "readOnly": true - } - }, - "type": "object" - }, - "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" + "cover": { + "$ref": "#/components/schemas/Media", + "description": "Line item image or thumbnail" }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "product": { + "$ref": "#/components/schemas/Product", + "description": "Referenced product if this is a product line item" }, - "taxRules": { + "orderDeliveryPositions": { + "description": "Delivery positions for this line item", "type": "array", "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } + "$ref": "#/components/schemas/OrderDeliveryPosition" } }, - "type": { - "type": "string" - } - }, - "required": [ - "apiAlias" - ] - }, - "CrossSellingElement": { - "type": "object", - "properties": { - "crossSelling": { - "$ref": "#/components/schemas/ProductCrossSelling" - }, - "products": { + "downloads": { + "description": "Digital downloads associated with this line item", "type": "array", "items": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/OrderLineItemDownload" } }, - "total": { - "type": "integer", - "format": "int32" + "parent": { + "$ref": "#/components/schemas/OrderLineItem" }, - "streamId": { - "type": "string", - "format": "uuid" + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineItem" + } }, "apiAlias": { "type": "string", "enum": [ - "cross_selling_element" + "order_line_item" ] + }, + "extensions": { + "type": "object" + }, + "translated": { + "type": "object" } }, - "required": [ - "crossSelling", - "products", - "total", - "apiAlias" - ] + "type": "object" }, - "ProductMeasurements": { - "type": "object", - "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, + "CmsPage": { + "description": "Added since version: 6.0.0.0", + "required": [ + "apiAlias", + "sections", + "id", + "type" + ], "properties": { - "width": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "height": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "length": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "name": { + "type": "string" }, - "weight": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg" - }, - "value": { - "type": "number" - } - } - } - } - }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "type": { + "description": "CMS page types can be `landingpage`, `page`, `product_list`, `product_detail`.", + "type": "string" }, - { - "type": "object", - "description": "Additional search parameters for product listings", + "entity": { + "description": "This field will be implemented in the future.", + "type": "string" + }, + "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", + "type": "string" + }, + "config": { "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 - }, - "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 - }, - "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.", + "backgroundColor": { "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" - } - ] } + }, + "type": "object" + }, + "previewMediaId": { + "description": "Unique identity of media to be previewed.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "sections": { + "description": "Content sections within the CMS page (layout blocks containing slots)", + "type": "array", + "items": { + "$ref": "#/components/schemas/CmsSection" + } + }, + "previewMedia": { + "$ref": "#/components/schemas/Media", + "description": "Preview image for the CMS page in admin panel and page selection" + }, + "landingPages": { + "description": "Landing pages using this CMS layout", + "type": "array", + "items": { + "$ref": "#/components/schemas/LandingPage" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "cms_page" + ] + } + }, + "type": "object" + }, + "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" ] }, - "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" - } - } + "CmsSlot": { + "description": "Added since version: 6.0.0.0", + "required": [ + "apiAlias", + "id", + "type", + "slot", + "blockId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsBlockVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "fieldConfig": { + "type": "object" + }, + "type": { + "description": "It indicates the types of content that can be defined within the slot which includes `image`, `text`, `form`, `product-listing`, `category-navigation`, `product-box`, `buy-box`, `sidebar-filter`, etc.", + "type": "string" + }, + "slot": { + "description": "Key-value pair to configure which element to be shown in which slot.", + "type": "string" + }, + "locked": { + "type": "boolean" + }, + "config": { + "type": "object" + }, + "customFields": { + "type": [ + "object" + ], + "properties": { + "_uniqueIdentifier": { + "type": "string" } - }, - "salesChannels": { - "type": "array", - "items": { + } + }, + "data": { + "type": "object", + "readOnly": true + }, + "blockId": { + "description": "Unique identity of CMS block where slot is defined.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": [ + "object" + ], + "properties": { + "config": { "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" + "content": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + } } } } - }, - "availabilityRule": { - "type": "object", - "properties": { - "name": { - "type": "string" + } + }, + "block": { + "$ref": "#/components/schemas/CmsBlock" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cms_slot" + ] + } + }, + "type": [ + "object" + ] + }, + "Criteria": { + "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" + }, + "term": { + "description": "Search term", + "type": "string" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "description": { - "type": "string" + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "query": { + "type": "string", + "description": "The query string to search for" + }, + "associations": { + "$ref": "#/components/schemas/Associations" + }, + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + }, + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" + } + } + }, + "NoneFieldsCriteria": { + "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" + }, + "term": { + "description": "Search term", + "type": "string" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "query": { + "type": "string", + "description": "The query string to search for" + }, + "associations": { + "$ref": "#/components/schemas/Associations" + }, + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" }, - "priority": { - "type": "integer", - "format": "int32" + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "invalid": { - "type": "boolean" + { + "$ref": "#/components/schemas/RangeFilter" } + ] + } + }, + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + }, + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" + } + } + }, + "Associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Excludes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/SubAggregations" } - }, - "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" - } - } + ] + }, + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + } + ] + }, + "SubAggregations": { + "type": "object", + "properties": { + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/AggregationRange" + } + ] + } + } + }, + "TotalCountMode": { + "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", + "type": "string", + "default": "none", + "enum": [ + "none", + "exact", + "next-pages" + ] + }, + "Query": { + "type": "object", + "properties": { + "score": { + "type": "number" + }, + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } + ] + } + }, + "additionalProperties": true + }, + "Sort": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "required": [ + "field", + "order" + ] + }, + "Filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "mediaId": { - "type": "string" + { + "$ref": "#/components/schemas/EqualsFilter" }, - "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" - } - } + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - } + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] } }, - "ProductDetailResponse": { + "SimpleFilter": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "type": { + "type": "string", + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] }, - "configurator": { - "type": "array", - "description": "List of property groups with their corresponding options and information on how to display them.", - "items": { - "$ref": "#/components/schemas/PropertyGroup" + "field": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] + }, + "field": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "MultiNotFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "multi", + "not" + ] + }, + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" + } + }, + "required": [ + "type", + "operator", + "queries" + ] + }, + "RangeFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "type": "string" + }, + "parameters": { + "type": "object", + "properties": { + "gte": { + "type": "number" + }, + "gt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "lt": { + "type": "number" + } } } }, "required": [ - "product" + "type", + "field", + "parameters" ] }, - "ProductPurchaseLimit": { + "CookieGroup": { "type": "object", - "description": "Current quantity purchase limits for a product.", + "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" + ] + } + ] + }, "required": [ - "productId", - "minPurchase", - "purchaseSteps", - "maxPurchase", - "stock", + "name", + "isRequired", "apiAlias" + ] + }, + "ProductMedia": { + "description": "Added since version: 6.0.0.0", + "required": [ + "media", + "id", + "productId", + "mediaId" ], "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "productId": { + "description": "Unique identity of the product.", "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The product ID." + "pattern": "^[0-9a-f]{32}$" }, - "minPurchase": { - "type": "integer", - "description": "Minimum quantity a customer can purchase." + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "purchaseSteps": { - "type": "integer", - "description": "Step increment for quantity selection." + "mediaId": { + "description": "Unique identity of the media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "maxPurchase": { + "position": { + "description": "The order of the images to be displayed for a product.", "type": "integer", - "description": "Maximum quantity a customer can purchase, reflecting current stock for closeout products." + "format": "int64" }, - "stock": { - "type": [ - "integer", - "null" - ], - "description": "Current stock level of the product." + "customFields": { + "type": "object" }, - "apiAlias": { + "createdAt": { "type": "string", - "enum": [ - "product_purchase_limit" - ] + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "media": { + "$ref": "#/components/schemas/Media" } - } + }, + "type": "object" }, "CartDeliveryPosition": { "type": "object", @@ -12477,263 +12342,178 @@ } } }, - "LineItemType": { - "type": "string", - "deprecated": true, - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", - "quantity", - "dsr-line-item-discount", - "dsr-cart-discount" - ] - }, - "LineItem": { - "type": "object", + "StateMachineState": { + "description": "Added since version: 6.0.0.0", + "required": [ + "translated", + "technicalName", + "name" + ], "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" + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "label": { + "technicalName": { + "description": "Technical name of StateMachineState.", "type": "string" }, - "modified": { - "type": "boolean" - }, - "modifiedByApp": { - "type": "boolean" + "name": { + "type": "string" }, - "payload": { - "$ref": "#/components/schemas/ProductJsonApi" + "customFields": { + "type": "object" }, - "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" - ] + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "priceDefinition": { - "$ref": "#/components/schemas/CartPriceQuantity" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "quantity": { + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "ReferencePrice": { + "type": "object", + "properties": { + "purchaseUnit": { "type": "number" }, - "quantityInformation": { - "type": "object", - "properties": { - "maxPurchase": { - "type": "number" - }, - "minPurchase": { - "type": "number" - }, - "purchaseSteps": { - "type": "number" - } - } + "referenceUnit": { + "type": "number" }, - "referencedId": { + "unitName": { "type": "string" }, - "removable": { - "type": "boolean" + "price": { + "type": "number" }, - "stackable": { - "type": "boolean" + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] }, - "states": { - "deprecated": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "is-physical", - "is-download" - ] - } + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "type": "null" + } + ] }, - "type": { - "$ref": "#/components/schemas/OrderLineItem/properties/type" + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "uniqueIdentifier": { - "type": "string" + "hasRange": { + "type": "boolean" }, - "extensions": { + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "OrderRouteResponse": { + "type": "object", + "properties": { + "orders": { "type": "object", - "properties": { - "meta": { + "allOf": [ + { "type": "object", + "required": [ + "elements" + ], "properties": { - "attendees": { + "elements": { "type": "array", "items": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - } - } + "$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": [ - "id", - "type", - "deliveryInformation", - "payload", - "quantity", - "states" + "orders" ] }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" + "WishlistLoadRouteResponse": { + "type": "object", + "required": [ + "products" + ], + "properties": { + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "salesChannelId": { + "type": "string" + } + } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" + } } }, "Sitemap": { @@ -12752,773 +12532,628 @@ "created" ] }, - "CartItems": { - "type": "object", + "SeoUrl": { + "description": "Added since version: 6.0.0.0", "required": [ - "items" + "id", + "languageId", + "foreignKey", + "routeName", + "pathInfo", + "seoPathInfo" ], "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "description": "Unique identity of sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "description": "Unique identity of language.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "foreignKey": { + "description": "The key that references to product or category entity ID.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "routeName": { + "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", + "type": "string", + "enum": [ + "frontend.navigation.page", + "frontend.landing.page", + "frontend.detail.page" + ] + }, + "pathInfo": { + "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", + "type": "string" + }, + "seoPathInfo": { + "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", + "type": "string" + }, + "isCanonical": { + "description": "When set to true, search redirects to the main URL.", + "type": "boolean" + }, + "isModified": { + "description": "When boolean value is `true`, the seo url is changed.", + "type": "boolean" + }, + "isDeleted": { + "description": "When set to true, the URL is deleted and cannot be used any more but it is still available on table and can be restored later.", + "type": "boolean" + }, + "error": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "url": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } - } + }, + "type": "object", + "title": "SeoUrlEntity" + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" + ] }, - "CookieEntry": { - "type": "object", + "Order": { + "description": "Added since version: 6.0.0.0", + "required": [ + "documents", + "orderDate", + "stateMachineState", + "price", + "id", + "billingAddressId", + "currencyId", + "languageId", + "salesChannelId", + "orderDateTime", + "currencyFactor" + ], "properties": { - "cookie": { - "type": "string" - }, - "value": { - "type": "string" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "expiration": { - "type": "integer" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "name": { + "orderNumber": { + "description": "Unique number associated with every order.", "type": "string" }, - "description": { - "type": "string" + "billingAddressId": { + "description": "Unique identity of the billing address.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "hidden": { - "type": "boolean" + "billingAddressVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "apiAlias": { + "primaryOrderDeliveryId": { "type": "string", - "enum": [ - "cookie_entry" - ] - } - }, - "required": [ - "cookie", - "hidden", - "apiAlias" - ] - }, - "CookieRouteResponse": { - "type": "object", - "description": "Response containing cookie groups and their configuration hash.", - "properties": { - "apiAlias": { + "pattern": "^[0-9a-f]{32}$" + }, + "primaryOrderDeliveryVersionId": { "type": "string", - "enum": [ - "cookie_groups_hash" - ] + "pattern": "^[0-9a-f]{32}$" }, - "elements": { - "type": "array", - "description": "Collection of cookie groups", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } + "primaryOrderTransactionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "hash": { + "primaryOrderTransactionVersionId": { "type": "string", - "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", - "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + "pattern": "^[0-9a-f]{32}$" + }, + "currencyId": { + "description": "Unique identity of the currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of the language.", "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" - } - }, - "CartDelivery": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "deliveryDate": { - "type": "object", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "description": "Unique identity of the sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderDateTime": { + "description": "Timestamp when the order was placed.", + "type": "string", + "format": "date-time" + }, + "orderDate": { + "description": "Date when the order was placed.", + "type": "string", + "readOnly": true + }, + "price": { + "required": [ + "netPrice", + "totalPrice", + "positionPrice", + "rawTotal", + "taxStatus" + ], "properties": { - "earliest": { - "type": "string", - "format": "date-time" + "netPrice": { + "type": "number", + "format": "float" }, - "latest": { - "type": "string", - "format": "date-time" + "totalPrice": { + "type": "number", + "format": "float" + }, + "calculatedTaxes": { + "type": "object" + }, + "taxRules": { + "type": "object" + }, + "positionPrice": { + "type": "number", + "format": "float" + }, + "rawTotal": { + "type": "number", + "format": "float" + }, + "taxStatus": { + "type": "string" } - } + }, + "type": "object", + "$ref": "#/components/schemas/CalculatedPrice" + }, + "amountTotal": { + "description": "Gross price of the order.", + "type": "number", + "format": "float", + "readOnly": true + }, + "amountNet": { + "description": "Net price of the order.", + "type": "number", + "format": "float", + "readOnly": true }, - "location": { - "type": "object", + "positionPrice": { + "description": "Price of each line item in the cart multiplied by its quantity excluding charges like shipping cost, rules, taxes etc.", + "type": "number", + "format": "float", + "readOnly": true + }, + "taxStatus": { + "description": "TaxStatus takes `Free`, `Net` or `Gross` as values.", + "type": "string", + "readOnly": true + }, + "shippingCosts": { + "required": [ + "unitPrice", + "totalPrice", + "quantity" + ], "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] + "unitPrice": { + "type": "number", + "format": "float" }, - "country": { - "$ref": "#/components/schemas/Country" + "totalPrice": { + "type": "number", + "format": "float" }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" + "quantity": { + "type": "integer", + "format": "int64" }, - "state": { - "$ref": "#/components/schemas/CountryState" + "calculatedTaxes": { + "type": "object" + }, + "taxRules": { + "type": "object" + }, + "referencePrice": { + "type": "object" + }, + "listPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + }, + "discount": { + "type": "number", + "format": "float" + }, + "percentage": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" } - } + }, + "type": "object" }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } + "shippingTotal": { + "description": "Total shipping cost of the ordered product.", + "type": "number", + "format": "float", + "readOnly": true }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" + "currencyFactor": { + "description": "Rate at which currency is exchanged.", + "type": "number", + "format": "float" }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "CookieEntryCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieEntry" - } - }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" - ] - }, - "SalesChannelContext": { - "type": "object", - "properties": { - "token": { - "description": "Context the user session", + "deepLinkCode": { + "description": "It is a generated special code linked to email. It is used to access orders placed by guest customers.", "type": "string" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", + "type": "string" }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "campaignCode": { + "description": "A campaign code is the globally unique identifier for a campaign.", + "type": "string" }, - "currency": { - "$ref": "#/components/schemas/Currency" + "customerComment": { + "description": "Comments given by comments.", + "type": "string" }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" + "source": { + "description": "Source of orders either via normal order placement or subscriptions.", + "type": "string" }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + "taxCalculationType": { + "type": "string" }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } + "customFields": { + "type": "object" }, - "customer": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/Customer" - } - ] + "createdById": { + "description": "Unique identity of createdBy.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "updatedById": { + "description": "Unique identity of updatedBy.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - } + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState", + "description": "Current order state (e.g., open, in_progress, completed, cancelled)" + }, + "primaryOrderDelivery": { + "$ref": "#/components/schemas/OrderDelivery", + "description": "Primary delivery information for the order" + }, + "primaryOrderTransaction": { + "$ref": "#/components/schemas/OrderTransaction", + "description": "Primary payment transaction for the order" + }, + "orderCustomer": { + "$ref": "#/components/schemas/OrderCustomer", + "description": "Customer information associated with the order" + }, + "currency": { + "$ref": "#/components/schemas/Currency", + "description": "Currency used for the order" + }, + "language": { + "$ref": "#/components/schemas/Language", + "description": "Language used when placing the order" + }, + "addresses": { + "description": "All addresses associated with the order (billing and shipping)", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderAddress" } }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "billingAddress": { + "$ref": "#/components/schemas/OrderAddress", + "description": "Billing address for the order" }, - "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": { - "type": { - "type": "string", - "enum": [ - "sales-channel", - "shop-api" - ] - }, - "salesChannelId": { - "type": "string" - } - } - }, - "taxState": { - "type": "string" - }, - "useCache": { - "type": "boolean" - } + "deliveries": { + "description": "Delivery information including shipping address and tracking", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderDelivery" } }, - "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" - } + "lineItems": { + "description": "Order line items (products, discounts, fees)", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineItem" } }, - "totalRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] - }, - "decimals": { - "type": "integer", - "format": "int32" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } + "transactions": { + "description": "Payment transactions for the order", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderTransaction" } }, - "languageInfo": { - "type": "object", - "required": [ - "localeCode", - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "localeCode": { - "type": "string" - } + "documents": { + "description": "Generated documents (invoices, delivery notes, credit notes)", + "type": "array", + "items": { + "$ref": "#/components/schemas/Document" } }, - "apiAlias": { - "type": "string", - "enum": [ - "sales_channel_context" - ] + "tags": { + "description": "Tags assigned to the order for organization and filtering", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } } }, - "required": [ - "salesChannel", - "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" - ] + "type": "object" }, - "AggregationMetrics": { - "type": "object", + "CustomerAddress": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "customerId", + "countryId", + "firstName", + "lastName", + "city", + "street" + ], "properties": { - "name": { - "type": "string" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "type": { + "customerId": { + "description": "Unique identity of customer.", "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" - ] + "pattern": "^[0-9a-f]{32}$" }, - "field": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } - }, - "ProductListingFlags": { - "type": "object", - "description": "Additional flags for product listings", - "properties": { - "no-aggregations": { - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "only-aggregations": { - "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - } - }, - "Breadcrumb": { - "type": "object", - "properties": { - "name": { + "countryStateId": { + "description": "Unique identity of country's state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", "type": "string" }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "lastName": { + "description": "Last name of the customer.", + "type": "string" }, - "type": { - "$ref": "#/components/schemas/Category/properties/type" + "zipcode": { + "description": "Postal or zip code of customer's address.", + "type": "string" }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" - }, - "linkType": { - "$ref": "#/components/schemas/Category/properties/linkType" - }, - "internalLink": { - "type": "string" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - } - } + "city": { + "description": "Name of customer's city.", + "type": "string" }, - "path": { + "company": { + "description": "Name of customer's company.", "type": "string" }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } + "street": { + "description": "Name of customer's street.", + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "breadcrumb" - ] - } - }, - "required": [ - "name", - "categoryId", - "type", - "translated", - "path", - "apiAlias" - ] - }, - "CartError": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "key": { + "department": { + "description": "Name of customer's department.", "type": "string" }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + "title": { + "description": "Titles given to customer like Dr. , Prof., etc", + "type": "string" }, - "message": { + "phoneNumber": { + "description": "Customer's phone number.", "type": "string" }, - "messageKey": { + "additionalAddressLine1": { + "description": "Additional customer's address information.", "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "CartPriceReference": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" }, - "referenceUnit": { - "type": "number" + "additionalAddressLine2": { + "description": "Additional customer's address information.", + "type": "string" }, - "unitName": { + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" }, - "price": { - "type": "number" + "customFields": { + "type": "object" }, - "apiAlias": { + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "createdAt": { "type": "string", - "enum": [ - "cart_price_reference" - ] + "format": "date-time", + "readOnly": true }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } - ] + "country": { + "$ref": "#/components/schemas/Country" }, - "hasRange": { - "type": "boolean" + "countryState": { + "$ref": "#/components/schemas/CountryState" }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] + "type": "object" }, - "AccountNewsletterRecipient": { + "ListPrice": { "type": "object", + "description": "", "properties": { - "status": { - "type": "string", - "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" - ] + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" }, "apiAlias": { "type": "string", "enum": [ - "account_newsletter_recipient" + "cart_list_price" ] } }, "required": [ - "status", "apiAlias" ] }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "EntitySearchResult": { - "type": "object", + "OrderLineItemDownload": { + "description": "Added since version: 6.4.19.0", + "required": [ + "media", + "id", + "orderLineItemId", + "mediaId", + "position", + "accessGranted" + ], "properties": { - "entity": { - "type": "string" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderLineItemId": { + "description": "Unique identity of Order line item.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "total": { - "type": "integer", - "description": "The total number of found entities" + "orderLineItemVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "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" - } + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "page": { + "position": { + "description": "The order of downloaded digital products displayed in the storefront by mentioning numerical values like 1,2,3, etc.", "type": "integer", - "description": "The actual page. This can be used for pagination." + "format": "int64" }, - "limit": { - "type": "integer", - "description": "The actual limit. This is used for pagination and goes together with the page." + "accessGranted": { + "description": "When boolean value is `true`, the digital product is allowed to download.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "orderLineItem": { + "$ref": "#/components/schemas/OrderLineItem" + }, + "media": { + "$ref": "#/components/schemas/Media" } - } + }, + "type": "object" }, "CalculatedPrice": { "type": "object", @@ -13673,1445 +13308,2005 @@ "taxStatus" ] }, - "CustomerAddressBody": { + "Category": { "description": "Added since version: 6.0.0.0", "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" + "apiAlias", + "breadcrumb", + "children", + "childCount", + "translated", + "type", + "id", + "name" ], "properties": { - "countryId": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryStateId": { + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "salutationId": { + "parentId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "phoneNumber": { - "type": "string" - }, - "additionalAddressLine1": { - "type": "string" - }, - "additionalAddressLine2": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - } - }, - "type": "object" - }, - "ReferencePrice": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/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" - ] - }, - "CustomerAddressRead": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "oneOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "oneOf": [ - { - "$ref": "#/components/schemas/CountryState" - }, - { - "type": "null" - } - ] - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - } - }, - "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" - ] - }, - "Criteria": { - "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", - "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "parentVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "term": { - "description": "Search term", - "type": "string" + "afterCategoryId": { + "description": "Unique identity of the category under which the new category is to be created.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "afterCategoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "mediaId": { + "description": "Unique identity of media added to identify category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "ids": { + "displayNestedProducts": { + "description": "Shows nested categories on a product category page.", + "type": "boolean" + }, + "breadcrumb": { "type": "array", - "description": "List of ids to search for", "items": { - "type": "string" - } + "type": "string", + "additionalProperties": false + }, + "readOnly": true }, - "query": { + "level": { + "description": "An integer value that denotes the level of nesting of a particular category located in an hierarchical category tree.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "path": { + "description": "A relative URL to the category.", "type": "string", - "description": "The query string to search for" + "readOnly": true }, - "associations": { - "$ref": "#/components/schemas/Associations" + "childCount": { + "type": "number", + "format": "int64", + "readOnly": true }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "type": { + "description": "Type of categories like `page`, `folder`, `link`.", + "type": "string", + "enum": [ + "page", + "link", + "folder" + ] }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } + "productAssignmentType": { + "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", + "type": "string" }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } + "visible": { + "description": "Displays categories on category page when true.", + "type": "boolean" }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" - } + "active": { + "description": "When boolean value is `true`, the category is listed for selection.", + "type": "boolean" }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } + "visibleChildCount": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "integer", + "format": "int64" }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "name": { + "type": "string" }, - "includes": { - "$ref": "#/components/schemas/Includes" + "customFields": { + "type": "object" }, - "excludes": { - "$ref": "#/components/schemas/Excludes" - } - } - }, - "NoneFieldsCriteria": { - "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", - "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "linkType": { + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, - "term": { - "description": "Search term", + "internalLink": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "externalLink": { "type": "string" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "linkNewTab": { + "type": "boolean" }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "description": { + "type": "string" }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } + "metaTitle": { + "type": "string" }, - "query": { + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + }, + "cmsPageId": { + "description": "Unique identity of CMS page.", "type": "string", - "description": "The query string to search for" + "pattern": "^[0-9a-f]{32}$" }, - "associations": { - "$ref": "#/components/schemas/Associations" + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" + "customEntityTypeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageIdSwitched": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean", + "deprecated": true + }, + "seoUrl": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object", + "additionalProperties": true, + "properties": { + "breadcrumb": { + "type": "array", + "items": { + "type": "string" } - ] - } + } + }, + "required": [ + "breadcrumb" + ] }, - "sort": { + "parent": { + "$ref": "#/components/schemas/Category", + "description": "Unique identity of category." + }, + "children": { + "description": "Child categories within this category for hierarchical navigation", "type": "array", - "description": "Sorting in the search result.", "items": { - "$ref": "#/components/schemas/Sort" + "$ref": "#/components/schemas/Category" } }, - "aggregations": { + "media": { + "$ref": "#/components/schemas/Media", + "description": "Category image or banner" + }, + "tags": { + "description": "Tags for organizing and filtering categories", "type": "array", "items": { - "$ref": "#/components/schemas/Aggregation" + "$ref": "#/components/schemas/Tag" } }, - "grouping": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the category" + }, + "seoUrls": { + "description": "SEO-friendly URLs for the category across different sales channels", "type": "array", - "description": "Perform groupings over certain fields", "items": { - "type": "string", - "description": "Name of a field" + "$ref": "#/components/schemas/SeoUrl" } }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "apiAlias": { + "type": "string", + "enum": [ + "category" + ] + } + }, + "type": "object" + }, + "CookieEntry": { + "type": "object", + "properties": { + "cookie": { + "type": "string" }, - "includes": { - "$ref": "#/components/schemas/Includes" + "value": { + "type": "string" }, - "excludes": { - "$ref": "#/components/schemas/Excludes" + "expiration": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cookie_entry" + ] } - } + }, + "required": [ + "cookie", + "hidden", + "apiAlias" + ] }, - "Associations": { + "CartListPrice": { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] }, - "Includes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], + "properties": { + "countryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "zipcode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "company": { + "type": "string" + }, + "street": { + "type": "string" + }, + "department": { + "type": "string" + }, + "title": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { + "type": "string" + }, + "additionalAddressLine2": { "type": "string" + }, + "customFields": { + "type": "object" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } - } + }, + "type": "object" }, - "Excludes": { + "MeasurementUnits": { "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" + "description": "Configuration of the measurement system", + "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." + } + } } } }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time" }, - { - "title": "AggregationEntity", - "allOf": [ + "updatedAt": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationEntity" + "type": "string", + "format": "date-time" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "country": { + "$ref": "#/components/schemas/Country" }, - { - "title": "AggregationTerms", - "allOf": [ + "countryState": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationTerms" + "$ref": "#/components/schemas/CountryState" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "required": [ + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" + ] + }, + "ProductJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ { - "title": "AggregationHistogram", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationHistogram" - }, - { - "$ref": "#/components/schemas/SubAggregations" + "$ref": "#/components/schemas/resource", + "required": [ + "options" + ], + "properties": { + "options": { + "type": "array", + "items": { + "type": "object", + "required": [ + "group", + "option", + "translated" + ], + "properties": { + "group": { + "type": "string" + }, + "option": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "option": { + "type": "string" + } + }, + "required": [ + "group", + "option" + ] + } + } + } } - ] + } }, { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" + "required": [ + "id", + "taxId", + "productNumber", + "stock", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - } - ] - }, - "SubAggregations": { - "type": "object", - "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "manufacturerId": { + "description": "Unique identity of the manufacturer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productManufacturerVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "unitId": { + "description": "Unique identity of the unit.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "taxId": { + "description": "Unique identity of tax.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "coverId": { + "description": "Unique identity of a ProductMedia item used as product cover.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productMediaVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "deliveryTimeId": { + "description": "Unique identity of delivery time.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "canonicalProductId": { + "description": "Unique identity of canonical product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "canonicalProductVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageId": { + "description": "Unique identity of CMS page.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "openGraphMediaId": { + "description": "Media used as Open Graph image for social media sharing.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productNumber": { + "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", + "type": "string" + }, + "restockTime": { + "description": "The restock time in days indicates how long it will take until a sold out item is back in stock.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the products are available for selection in the storefront for purchase.", + "type": "boolean" + }, + "available": { + "description": "Indicates weather the product is available or not.", + "type": "boolean", + "readOnly": true + }, + "isCloseout": { + "description": "When the value is set to true, the product is hidden when sold out.", + "type": "boolean" + }, + "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "stock": { + "description": "Indicates the number of products available.", + "type": "integer", + "format": "int64" + }, + "displayGroup": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string", + "readOnly": true + }, + "manufacturerNumber": { + "description": "Unique number that describes the manufacturer.", + "type": "string" + }, + "ean": { + "description": "Indicates EAN of the product.", + "type": "string" + }, + "purchaseSteps": { + "description": "Specifies the scales in which the item is to be offered. For example, a scale of 2 means that your customers can purchase 2, 4, 6 products, etc., but not 1, 3 or 5.", + "type": "integer", + "format": "int64" + }, + "maxPurchase": { + "description": "Maximum number of items that can be purchased.", + "type": "integer", + "format": "int64" + }, + "minPurchase": { + "description": "Minimum number of items that can be purchased.", + "type": "integer", + "format": "int64" + }, + "purchaseUnit": { + "description": "Quantity of the item purchased. For example, 500ml, 2kg, etc.", + "type": "number", + "format": "float" + }, + "referenceUnit": { + "description": "Price of purchased item calculated as per the reference unit. Say, you bought 500ml of milk and the price is calculated in reference to 1000ml.", + "type": "number", + "format": "float" }, - { - "$ref": "#/components/schemas/AggregationEntity" + "shippingFree": { + "description": "Indicates weather the shipping price is free or not.", + "type": "boolean" }, - { - "$ref": "#/components/schemas/AggregationFilter" + "markAsTopseller": { + "description": "Indicates weather the product is top seller or not.", + "type": "boolean" }, - { - "$ref": "#/components/schemas/AggregationTerms" + "weight": { + "description": "The weight of the product.", + "type": "number", + "format": "float" }, - { - "$ref": "#/components/schemas/AggregationHistogram" + "width": { + "description": "The width of the product.", + "type": "number", + "format": "float" }, - { - "$ref": "#/components/schemas/AggregationRange" - } - ] - } - } - }, - "TotalCountMode": { - "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", - "type": "string", - "default": "none", - "enum": [ - "none", - "exact", - "next-pages" - ] - }, - "Query": { - "type": "object", - "properties": { - "score": { - "type": "number" - }, - "query": { - "oneOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" + "height": { + "description": "The height of the product.", + "type": "number", + "format": "float" }, - { - "$ref": "#/components/schemas/EqualsFilter" + "length": { + "description": "The length of the product.", + "type": "number", + "format": "float" }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "releaseDate": { + "description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.", + "type": "string", + "format": "date-time" }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "additionalProperties": true - }, - "Sort": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - }, - "naturalSorting": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "required": [ - "field", - "order" - ] - }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "SimpleFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] - }, - "field": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "EqualsFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] - }, - "field": { - "type": "string" - }, - "value": { - "oneOf": [ - { - "type": "string" + "ratingAverage": { + "description": "Average of all the ratings.", + "type": "number", + "format": "float", + "readOnly": true }, - { - "type": "number" + "categoryTree": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true }, - { - "type": "boolean" + "propertyIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true }, - { - "type": "null" - } - ] - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "MultiNotFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or", - "nor", - "nand" - ] - }, - "queries": { - "$ref": "#/components/schemas/Filters" - } - }, - "required": [ - "type", - "operator", - "queries" - ] - }, - "RangeFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "type": "string" - }, - "parameters": { - "type": "object", - "properties": { - "gte": { - "type": "number" + "optionIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "streamIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true }, - "gt": { - "type": "number" + "tagIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true }, - "lte": { - "type": "number" + "categoryIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true }, - "lt": { - "type": "number" - } - } - } - }, - "required": [ - "type", - "field", - "parameters" - ] - }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" - } - }, - "OrderRouteResponse": { - "type": "object", - "properties": { - "orders": { - "type": "object", - "allOf": [ - { - "type": "object", - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - } - } + "childCount": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "sales": { + "description": "Frequency of the product sales.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "metaDescription": { + "type": "string" }, - { - "$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" - ] - }, - "CartDeliveryInformation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_information" - ] - }, - "freeDelivery": { - "type": "boolean" - }, - "deliveryTime": { - "type": "object", - "properties": { "name": { "type": "string" }, - "min": { - "type": "integer" + "keywords": { + "type": "string" }, - "max": { - "type": "integer" + "description": { + "type": "string" }, - "unit": { + "descriptionTeaser": { + "description": "Read-only, HTML-stripped excerpt of the description, derived on write.", + "type": "string", + "readOnly": true + }, + "metaTitle": { "type": "string" }, - "apiAlias": { + "packUnit": { + "type": "string" + }, + "packUnitPlural": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "ogTitle": { + "type": "string" + }, + "ogDescription": { + "type": "string" + }, + "type": { + "description": "The type of the product, e.g., physical or digital.", "type": "string", "enum": [ - "cart_delivery_time" + "physical", + "digital" ] - } - } - }, - "height": { - "type": "integer" - }, - "length": { - "type": "integer" - }, - "restockTime": { - "type": "integer" - }, - "stock": { - "type": "integer" - }, - "weight": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "required": [ - "apiAlias" - ] - }, - "WishlistLoadRouteResponse": { - "type": "object", - "required": [ - "products" - ], - "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string" }, - "salesChannelId": { - "type": "string" - } - } - }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "AggregationEntity": { - "title": "AggregationEntity", - "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" - ] - }, - "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" - ] - }, - "AggregationFilter": { - "title": "AggregationFilter", - "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": [ - "filter" - ] + "states": { + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true, + "deprecated": true + }, + "calculatedPrice": { + "type": "object" + }, + "calculatedPrices": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false + } + }, + "calculatedMaxPurchase": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "integer", + "format": "int64" + }, + "calculatedCheapestPrice": { + "type": "object" + }, + "isNew": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "sortedProperties": { + "type": "object" + }, + "measurements": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "relationships": { + "properties": { + "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/downloads" + } + } + }, + "data": { + "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" + } + } + } + }, + "type": "object" + }, + "cover": { + "description": "Main product image displayed in listings and detail pages", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/cover" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_media" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "41d0e299ca1abeb2094852da042165c7" + } + } + } + }, + "type": "object" + }, + "openGraphMedia": { + "description": "Open Graph image for social media sharing", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/openGraphMedia" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "media" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "bbda52d941a3452369a00f2880f4f358" + } + } + } + }, + "type": "object" + }, + "cmsPage": { + "description": "Custom CMS page layout for the product detail page", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/cmsPage" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "cms_page" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7b1460918b1abb93311108f3dc021c9b" + } + } + } + }, + "type": "object" + }, + "canonicalProduct": { + "description": "Canonical product reference for variant consolidation and SEO purposes", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/canonicalProduct" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "023995a50b56c0de077323e958b2bbcd" + } + } + } + }, + "type": "object" + }, + "media": { + "description": "Product images and media gallery", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/media" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_media" + }, + "id": { + "type": "string", + "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" + } + } + } + } + }, + "type": "object" + }, + "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/crossSellings" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_cross_selling" + }, + "id": { + "type": "string", + "example": "89936e14544d1b403cecef938101b6b0" + } + } + } + } + }, + "type": "object" + }, + "configuratorSettings": { + "description": "Variant configurator settings defining available options for product variants", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/configuratorSettings" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_configurator_setting" + }, + "id": { + "type": "string", + "example": "c0827fee13725d41f1fd7e292243f5aa" + } + } + } + } + }, + "type": "object" + }, + "productReviews": { + "description": "Customer reviews and ratings for the product", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/productReviews" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_review" + }, + "id": { + "type": "string", + "example": "01e78541ea343ed72424a5222796a4cd" + } + } + } + } + }, + "type": "object" + }, + "mainCategories": { + "description": "Primary category assignments per sales channel for SEO and navigation", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/mainCategories" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "main_category" + }, + "id": { + "type": "string", + "example": "1fb731fc4139cbb575429e28846f0c39" + } + } + } + } + }, + "type": "object" + }, + "seoUrls": { + "description": "SEO-friendly URLs for the product across different sales channels", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/seoUrls" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "seo_url" + }, + "id": { + "type": "string", + "example": "5321b5a71127b8b98cdd4b068ad56c4c" + } + } + } + } + }, + "type": "object" + }, + "options": { + "description": "Product variant options (e.g., size, color) that define different variants", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/options" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "property_group_option" + }, + "id": { + "type": "string", + "example": "93da65a9fd0004d9477aeac024e08e15" + } + } + } + } + }, + "type": "object" + }, + "properties": { + "description": "Product properties and characteristics for filtering", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/properties" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "property_group_option" + }, + "id": { + "type": "string", + "example": "74693d2fc58b46bd06410f278e39aa71" + } + } + } + } + }, + "type": "object" + }, + "categories": { + "description": "Categories this product is assigned to", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/categories" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "category" + }, + "id": { + "type": "string", + "example": "b0b5ccb4a195a07fd3eed14affb8695f" + } + } + } + } + }, + "type": "object" + }, + "streams": { + "description": "Dynamic product streams this product belongs to based on defined filters", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/streams" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_stream" + }, + "id": { + "type": "string", + "example": "2f6f4768f1c2d7c8f1f54823723f1a70" + } + } + } + } + }, + "type": "object" + }, + "categoriesRo": { + "description": "Read-only category tree including all parent categories for optimized queries", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/categoriesRo" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "category" + }, + "id": { + "type": "string", + "example": "7f0702d3a90d965b8c9158c451f43fdb" + } + } + } + } + }, + "type": "object" + }, + "tags": { + "description": "Tags for organizing and filtering products", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/tags" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "tag" + }, + "id": { + "type": "string", + "example": "d57ac45256849d9b13e2422d91580fb9" + } + } + } + } + }, + "type": "object" + }, + "seoCategory": { + "description": "Main category used for SEO URL generation in the current sales channel", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/seoCategory" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "category" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "9354d004d12e03d35ad8292bf0bb234d" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" }, - "filter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Filters" - } + [], + [], + { + "$ref": "#/components/schemas/DiscountLineItemPayload" } - }, - "required": [ - "name", - "type", - "filter" ] }, - "AggregationTerms": { - "title": "AggregationTerms", + "CrossSellingElement": { "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": [ - "terms" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "limit": { - "description": "The number of terms to return", - "type": "number" + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" }, - "sort": { + "products": { "type": "array", - "description": "Sorting the aggregation result.", "items": { - "$ref": "#/components/schemas/Sort" + "$ref": "#/components/schemas/Product" } - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "AggregationHistogram": { - "title": "AggregationHistogram", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "histogram" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "interval": { - "description": "The interval of the histogram", - "type": "number" - }, - "format": { - "description": "The format of the histogram", - "type": "string" - }, - "timeZone": { - "description": "The timezone of the histogram", - "type": "string" - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "AggregationRange": { - "title": "AggregationRange", - "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "total": { + "type": "integer", + "format": "int32" }, - "type": { - "description": "The type of aggregation", + "streamId": { "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "ranges": { - "description": "The ranges of the aggregation", - "type": "array", - "items": { - "type": "object", - "anyOf": [ - { - "type": "object", - "title": "From and to", - "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" - }, - "to": { - "type": "number", - "description": "The upper bound of the range" - } - }, - "required": [ - "from", - "to" - ] - }, - { - "type": "object", - "title": "From only", - "properties": { - "from": { - "type": "string", - "description": "The lower bound of the range" - } - }, - "required": [ - "from" - ] - }, - { - "type": "object", - "title": "To only", - "properties": { - "to": { - "type": "string", - "description": "The upper bound of the range" - } - }, - "required": [ - "to" - ] - } - ] - } - } - }, - "required": [ - "name", - "type", - "field", - "ranges" - ] - }, - "CartListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" + "format": "uuid" }, "apiAlias": { "type": "string", "enum": [ - "cart_list_price" + "cross_selling_element" ] } }, - "required": [ - "apiAlias" - ] - }, - "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": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } - }, - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] - } + "required": [ + "crossSelling", + "products", + "total", + "apiAlias" + ] + }, + "SalesChannelContext": { + "type": "object", + "properties": { + "token": { + "description": "Context the user session", + "type": "string" + }, + "currentCustomerGroup": { + "type": "object", + "description": "Customer group of the current user", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" } - ] + } }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } } }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { "type": "array", + "description": "Currently active tax rules and/or rates", "items": { "type": "object", "properties": { - "paymentMethodId": { - "type": "string" + "taxRate": { + "type": "number", + "format": "float" }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" + "name": { + "type": "string" } } } }, - "modified": { - "type": "boolean" - }, - "customerComment": { - "description": "A comment that can be added to the cart.", + "customer": { "oneOf": [ { - "type": "string" + "type": "null" }, { - "type": "null" + "$ref": "#/components/schemas/Customer" } ] }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - { - "type": "null" + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" } - ] + } }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "context": { + "description": "Core context with general configuration values and state", + "type": "object", + "properties": { + "versionId": { "type": "string" }, - { - "type": "null" + "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": { + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] + }, + "salesChannelId": { + "type": "string" + } + } + }, + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] - } - }, - "required": [ - "price", - "apiAlias" - ] - }, - "CookieGroup": { - "type": "object", - "properties": { - "isRequired": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "cookie": { - "type": "string" + } }, - "value": { - "type": "string" + "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" + } + } }, - "expiration": { - "type": "integer" + "totalRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] + }, + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + } }, - "entries": { - "$ref": "#/components/schemas/CookieEntryCollection" + "languageInfo": { + "type": "object", + "required": [ + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" + } + } }, "apiAlias": { "type": "string", "enum": [ - "cookie_group" + "sales_channel_context" ] } }, - "not": { - "allOf": [ - { - "required": [ - "cookie" - ] - }, - { - "required": [ - "entries" - ] - } - ] - }, "required": [ - "name", - "isRequired", - "apiAlias" + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" ] }, - "MeasurementUnits": { + "SuccessResponse": { "type": "object", - "description": "Configuration of the measurement system", "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." - } - } + "success": { + "type": "boolean" } } }, - "Price": { - "type": "object", - "description": "Price object", + "CustomerGroup": { + "description": "Added since version: 6.0.0.0", + "required": [ + "translated", + "id", + "name" + ], "properties": { - "currencyId": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "gross": { - "description": "", - "type": "number" + "name": { + "type": "string" }, - "net": { - "description": "", - "type": "number" + "displayGross": { + "description": "If boolean value is `true` gross value is displayed else, net value will be displayed to the customer.", + "type": "boolean" }, - "linked": { - "description": "", + "customFields": { + "type": "object" + }, + "registrationActive": { + "description": "To enable the registration of partner customer group.", "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" - ] + "registrationTitle": { + "type": "string" }, - "regulationPrice": { - "description": "", + "registrationIntroduction": { + "type": "string" + }, + "registrationOnlyCompanyRegistration": { + "type": "boolean" + }, + "registrationSeoMetaDescription": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { "type": "object", "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "gross": { - "description": "", - "type": "number" + "registrationIntroduction": { + "type": "string" }, - "net": { - "description": "", - "type": "number" + "registrationSeoMetaDescription": { + "type": "string" }, - "linked": { - "description": "", - "type": "boolean" + "registrationTitle": { + "type": "string" } - }, - "required": [ - "gross", - "net" - ] + } } }, - "required": [ - "currencyId", - "gross", - "net" - ] + "type": "object" }, - "ContextMeasurementSystemInfo": { + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + }, + "CartDeliveryInformation": { "type": "object", - "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "system": { + "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_delivery_information" + ] }, - "units": { + "freeDelivery": { + "type": "boolean" + }, + "deliveryTime": { "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." + "name": { + "type": "string" }, - "weight": { + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "apiAlias": { "type": "string", "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." + "cart_delivery_time" + ] } } + }, + "height": { + "type": "integer" + }, + "length": { + "type": "integer" + }, + "restockTime": { + "type": "integer" + }, + "stock": { + "type": "integer" + }, + "weight": { + "type": "integer" + }, + "width": { + "type": "integer" } - } + }, + "required": [ + "apiAlias" + ] }, "FindProductVariantRouteResponse": { "type": "object", @@ -15133,28 +15328,40 @@ } } }, - "ListPrice": { + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, + "CartError": { "type": "object", - "description": "", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "discount": { - "type": "number" + "key": { + "type": "string" }, - "percentage": { - "type": "number" + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "price": { - "type": "number" + "message": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] + "messageKey": { + "type": "string" } }, "required": [ - "apiAlias" + "key", + "level", + "message", + "messageKey" ] }, "ProductListingResult": { @@ -15217,360 +15424,112 @@ "pattern": "^[0-9a-f]{32}$" } }, - "search": { - "type": "string" - } - }, - "required": [ - "manufacturer", - "navigationId", - "price", - "properties", - "rating", - "shipping-free" - ] - }, - "availableSortings": { - "type": "array", - "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "label": { - "type": "string" - } - }, - "required": [ - "label" - ] - }, - "key": { - "type": "string" - }, - "priority": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_sorting" - ] - } - }, - "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" - ] - } - }, - "sorting": { - "type": "string" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - }, - "entity": { - "type": "string", - "enum": [ - "product" - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_listing" - ] - } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" - ] - } - ] - }, - "DiscountLineItemPayload": { - "type": "object", - "properties": { - "discountType": { - "type": "string", - "enum": [ - "percentage", - "absolute" - ] - }, - "discountValue": { - "type": "number", - "format": "float", - "maximum": 0 - }, - "discountPrice": { - "type": "number", - "format": "float", - "maximum": 0 - } - } - }, - "CreateAppointmentRequestBody": { - "type": "object", - "description": "Includes all data you will need to attend to a appointment.", - "required": [ - "salutationId", - "firstName", - "lastName", - "emailAddress", - "subject" - ], - "properties": { - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id of the salutation" - }, - "firstName": { - "type": "string", - "description": "The first name of the requester" - }, - "lastName": { - "type": "string", - "description": "The last name of the requester" - }, - "emailAddress": { - "type": "string", - "format": "email", - "description": "The email address of the requester" - }, - "companyName": { - "type": "string", - "description": "The company name of the requester" - }, - "phoneNumber": { - "type": "string", - "description": "The phone number of the requester" - }, - "subject": { - "type": "string", - "description": "The subject of the appointment" - }, - "message": { - "type": "string", - "description": "The message of the appointment" - } - }, - "example": { - "id": "2d2c358f1ca04098aacf12873c2eed94", - "appointmentId": "3b3c358f1ca04098aacf12873c2eed94", - "salutationId": "5m6c358f1ca04098aacf12873c2eed94", - "firstName": "John", - "lastName": "Doe", - "emailAddress": "john@example.com", - "companyName": "Example Inc.", - "phoneNumber": "+1234567890", - "subject": "Appointment subject", - "message": "Appointment message", - "requestedById": "7b7c358f1ca04098aacf12873c2eed94" - } - }, - "ScreenSharingToggledPayload": { - "type": "object", - "required": [ - "active" - ], - "properties": { - "active": { - "type": "boolean", - "description": "Whether the screen sharing is active or not" - } - } - }, - "ToggleBroadcastModePayload": { - "type": "object", - "required": [ - "active" - ], - "properties": { - "active": { - "type": "boolean", - "description": "Status if the mode is toggled to active or inactive" - } - } - }, - "DynamicProductListingPageOpenedPayload": { - "required": [ - "page" - ], - "properties": { - "page": { - "type": "integer", - "description": "Current page position in the pagination" - } - } - }, - "StateForClients": { - "type": "object", - "properties": { - "videoClientToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "hoveredElementId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "search": { + "type": "string" + } + }, + "required": [ + "manufacturer", + "navigationId", + "price", + "properties", + "rating", + "shipping-free" + ] }, - { - "type": "null" - } - ] - }, - "extensions": { - "type": "array", - "default": [] - } - } - }, - "AttendeeProductCollectionLastSeenResponse": { - "type": "object", - "properties": { - "collection": { - "type": "object", - "properties": { - "lastSeen": { + "availableSortings": { "type": "array", + "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" + "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" + ] } - } - } - } - }, - "example": { - "collection": { - "lastSeen": [ - "0015b3d83df441e490da7f6880a9c2da", - "60793d25cbab473f92c405ce0525f3ec" - ] - } - } - }, - "AppointmentBasicSettingResponse": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "description": "The API alias of the appointment basic setting" - }, - "mode": { - "type": "string", - "description": "The mode of the interaction", - "enum": [ - "guided", - "self" - ] - }, - "attendeeRestrictionType": { - "type": "string", - "description": "The type of attendee restriction", - "enum": [ - "open", - "customer", - "rules" - ] - }, - "videoAudioSettings": { - "type": "string", - "description": "The video and audio settings", - "enum": [ - "none", - "both", - "audio-only" - ] - }, - "canSendRequestEmail": { - "type": "boolean", - "description": "Indicates if request emails can be sent", - "default": false - }, - "canBookAppointment": { - "type": "boolean", - "description": "Indicates if appointments can be booked", - "default": false - }, - "enableWishlist": { - "type": "boolean", - "description": "Indicates if the wishlist is enabled", - "default": false - }, - "bookingLink": { - "description": "The booking link", - "oneOf": [ - { + }, + "sorting": { "type": "string" }, - { - "type": "null" + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "entity": { + "type": "string", + "enum": [ + "product" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_listing" + ] } + }, + "required": [ + "elements", + "availableSortings", + "currentFilters", + "apiAlias" ] - }, - "appointmentName": { - "type": "string", - "description": "The name of the appointment" - }, - "salesChannelName": { - "type": "string", - "description": "The name of the sales channel" } - }, - "example": { - "apiAlias": "appointment_basic_setting", - "mode": "self", - "attendeeRestrictionType": "open", - "videoAudioSettings": "none", - "canSendRequestEmail": false, - "canBookAppointment": false, - "enableWishlist": false, - "bookingLink": null, - "appointmentName": "dsr11", - "salesChannelName": "Storefront" - } + ] }, - "GuideHoveredPayload": { + "DynamicPageClosedPayload": { "type": "object", "properties": { - "hoveredElementId": { - "anyOf": [ + "pageId": { + "oneOf": [ { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the product which is used in the interaction" + "pattern": "^[a-f0-9]{32}$" }, { "type": "null" } - ] + ], + "pattern": "^[a-f0-9]{32}$", + "description": "The id of the page that was closed" + }, + "all": { + "type": "boolean", + "default": false, + "description": "Whether all pages were closed" } } }, @@ -16592,16 +16551,155 @@ "apiAlias": "pwa_page_result" } }, - "UpdateAttendeeRequestBody": { + "AttendeeRespondInvitationResponse": { + "type": "object", + "properties": { + "appointment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The appointment id" + }, + "accessibleFrom": { + "type": "string", + "format": "date-time", + "description": "The time the client can access the appointment" + }, + "accessibleTo": { + "type": "string", + "format": "date-time", + "description": "The time the appointment will be closed, the client can not access" + }, + "status": { + "anyOf": [ + { + "type": "string", + "enum": [ + "started", + "ended" + ] + }, + { + "type": "null" + } + ], + "description": "The appointment status" + } + } + }, + "answer": { + "type": "string", + "enum": [ + "accepted", + "maybe", + "declined" + ], + "description": "The invitation status that client responded to" + } + } + }, + "DiscountLineItemPayload": { + "type": "object", + "properties": { + "discountType": { + "type": "string", + "enum": [ + "percentage", + "absolute" + ] + }, + "discountValue": { + "type": "number", + "format": "float", + "maximum": 0 + }, + "discountPrice": { + "type": "number", + "format": "float", + "maximum": 0 + } + } + }, + "ViewModeChangedPayload": { "type": "object", "properties": { - "attendeeName": { + "mode": { "type": "string", - "description": "Name of the attendee" + "description": "The view mode of presentation", + "enum": [ + "onlyYou", + "presentation", + "videoGrid" + ], + "default": "presentation" + } + } + }, + "StateForClients": { + "type": "object", + "properties": { + "videoClientToken": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "videoUserId": { - "type": "string", - "description": "Id of the attendee in the video chat tool" + "hoveredElementId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "extensions": { + "type": "array", + "default": [] + } + } + }, + "ScreenSharingToggledPayload": { + "type": "object", + "required": [ + "active" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Whether the screen sharing is active or not" + } + } + }, + "ProductPageResult": { + "type": "object", + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" + }, + "product": { + "$ref": "#/components/schemas/Product" + }, + "configurator": { + "oneOf": [ + { + "$ref": "#/components/schemas/PropertyGroup" + }, + { + "type": "null" + } + ] + }, + "apiAlias": { + "type": "string" } } }, @@ -16649,88 +16747,200 @@ } } }, - "ProductPageResult": { + "EmptyPayload": { + "type": "object", + "properties": [] + }, + "JoinAppointmentResponse": { + "type": "object", + "description": "Includes all data you will need to attend to a appointment.", + "properties": { + "mercureSubscriberTopics": { + "type": "array", + "items": { + "type": "string", + "description": "mercure topic" + }, + "description": "The topics to which the attendee/guide can subscribe for" + }, + "mercurePublisherTopic": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The topic to which the attendee/guide can send updates" + }, + "JWTMercureSubscriberToken": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The JWT mercure token to publish updates" + }, + "mercureHubPublicUrl": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The mercure hub url to connect for subscribing and updating" + }, + "JWTMercurePublisherToken": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The JWT mercure token to subscribe for updates" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The appointment id" + }, + "newContextToken": { + "type": "string", + "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" + }, + "attendeeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The created Id for the attendee" + }, + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The id of the current sales channel" + }, + "salesChannelName": { + "type": "string", + "description": "The name of the current sales channel" + }, + "appointmentName": { + "type": "string", + "description": "The name of the appointment" + }, + "presentationGuideMode": { + "type": "string", + "enum": [ + "self", + "guided" + ], + "description": "The type of the appointment" + }, + "isPreview": { + "type": "boolean", + "description": "To see if it's a preview appointment" + }, + "attendeeName": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The name of the attendee" + }, + "videoUserId": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The video user id that attendee could use" + }, + "b2bFeatures": { + "type": "object", + "description": "The b2b features that available for the appointment", + "properties": { + "quoteManagement": { + "type": "boolean", + "description": "To know if the quote management is enabled for current customer" + } + } + } + }, + "example": { + "mercureSubscriberTopics": [ + "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" + ], + "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", + "JWTMercureSubscriberToken": "jwt token for subscribing to updates", + "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", + "JWTMercurePublisherToken": "jwt token for publishing updates", + "attendeeName": "attendee name", + "videoUserId": null, + "b2bFeatures": { + "feature1": false, + "feature2": true + }, + "id": "2d2c358f1ca04098aacf12873c2eed82", + "newContextToken": "new context token to call the other routes", + "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", + "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", + "salesChannelName": "Storefront", + "appointmentName": "Test Appointment", + "presentationGuideMode": "guided", + "isPreview": false, + "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" + } + }, + "PageViewedPayload": { "type": "object", + "required": [ + "pageId", + "sectionId", + "slideAlias" + ], "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "pageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the page which was viewed" }, - "product": { - "$ref": "#/components/schemas/Product" + "sectionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the section within the page which was viewed" }, - "configurator": { + "slideAlias": { + "type": "number", + "description": "the alias of the slide which was viewed" + }, + "pageNumber": { "oneOf": [ { - "$ref": "#/components/schemas/PropertyGroup" + "type": "integer", + "description": "the number of the page which was viewed" }, { "type": "null" } ] - }, - "apiAlias": { - "type": "string" } } }, - "ViewModeChangedPayload": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "description": "The view mode of presentation", - "enum": [ - "onlyYou", - "presentation", - "videoGrid" - ], - "default": "presentation" - } - } - }, - "ClientPresentationStateResponse": { - "type": "object", - "properties": { - "stateForAll": { - "$ref": "#/components/schemas/StateForAll" - }, - "stateForClients": { - "$ref": "#/components/schemas/StateForClients" - } - }, - "example": { - "stateForAll": { - "currentGuideProductId": null, - "lastActiveGuideSection": null, - "currentPageId": null, - "currentSectionId": null, - "currentSlideAlias": 0, - "currentDynamicPage": null, - "started": false, - "running": false, - "ended": false, - "startedAt": null, - "endedAt": null, - "accessibleFrom": null, - "accessibleTo": null, - "appointmentMode": "guided", - "videoAudioSettings": "both", - "videoRoomUrl": "", - "attendeeRestrictionType": "open", - "productDetailDefaultPageId": "bea211b5099241719830df8026624f7f", - "quickviewPageId": "182d3f7f988044adbba449b70c8bc472", - "productListingDefaultPageId": "33e88c7994fa4cf79a1265e5105b93b2", - "broadcastMode": false, - "extensions": [] - }, - "stateForClients": { - "videoClientToken": null, - "hoveredElementId": null, - "extensions": [] - }, - "apiAlias": "swag_digital_sales_rooms_content_presentation_state_sales_channel_get_get_client_presentation_state_struct" - } - }, "StateForAll": { "type": "object", "properties": { @@ -16942,29 +17152,6 @@ } } }, - "DynamicPageClosedPayload": { - "type": "object", - "properties": { - "pageId": { - "oneOf": [ - { - "type": "string", - "pattern": "^[a-f0-9]{32}$" - }, - { - "type": "null" - } - ], - "pattern": "^[a-f0-9]{32}$", - "description": "The id of the page that was closed" - }, - "all": { - "type": "boolean", - "default": false, - "description": "Whether all pages were closed" - } - } - }, "DynamicInteractionBody": { "oneOf": [ { @@ -17263,55 +17450,6 @@ "CreateInteractionRequestBody": { "$ref": "#/components/schemas/DynamicInteractionBody" }, - "AttendeeRespondInvitationResponse": { - "type": "object", - "properties": { - "appointment": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The appointment id" - }, - "accessibleFrom": { - "type": "string", - "format": "date-time", - "description": "The time the client can access the appointment" - }, - "accessibleTo": { - "type": "string", - "format": "date-time", - "description": "The time the appointment will be closed, the client can not access" - }, - "status": { - "anyOf": [ - { - "type": "string", - "enum": [ - "started", - "ended" - ] - }, - { - "type": "null" - } - ], - "description": "The appointment status" - } - } - }, - "answer": { - "type": "string", - "enum": [ - "accepted", - "maybe", - "declined" - ], - "description": "The invitation status that client responded to" - } - } - }, "ProductPayload": { "type": "object", "required": [ @@ -17325,46 +17463,14 @@ } } }, - "AbstractDynamicPageOpenedPayload": { - "type": "object", + "DynamicProductListingPageOpenedPayload": { "required": [ - "pageId", - "type" + "page" ], "properties": { - "pageId": { - "type": "string", - "pattern": "^[a-f0-9]{32}$", - "description": "The id of the current dynamic page" - }, - "type": { - "type": "string", - "description": "The type of the current dynamic page" - }, - "opened": { - "type": "boolean", - "default": true - }, - "position": { + "page": { "type": "integer", - "description": "The position of the dynamic page in the list of dynamic pages" - } - } - }, - "DynamicProductPageOpenedPayload": { - "allOf": [ - { - "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" - } - ], - "required": [ - "productId" - ], - "properties": { - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the product which is shown on the dynamic page" + "description": "Current page position in the pagination" } } }, @@ -17868,141 +17974,208 @@ "apiAlias": "pwa_page_result" } }, - "PresentationCmsPage": { - "allOf": [ - { - "$ref": "#/components/schemas/DsrPresentationCmsPage" - }, - { - "type": "object", - "properties": { - "pickedProductIds": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product id" - } - }, - { - "type": "null" - } - ], - "description": "The product id is assigned to presentation if it's product listing or instant listing" - } - } - } - ] - }, - "JoinAppointmentResponse": { + "GuideHoveredPayload": { "type": "object", - "description": "Includes all data you will need to attend to a appointment.", "properties": { - "mercureSubscriberTopics": { - "type": "array", - "items": { - "type": "string", - "description": "mercure topic" - }, - "description": "The topics to which the attendee/guide can subscribe for" - }, - "mercurePublisherTopic": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The topic to which the attendee/guide can send updates" - }, - "JWTMercureSubscriberToken": { - "oneOf": [ + "hoveredElementId": { + "anyOf": [ { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the product which is used in the interaction" }, { "type": "null" } - ], - "description": "The JWT mercure token to publish updates" + ] + } + } + }, + "AbstractDynamicPageOpenedPayload": { + "type": "object", + "required": [ + "pageId", + "type" + ], + "properties": { + "pageId": { + "type": "string", + "pattern": "^[a-f0-9]{32}$", + "description": "The id of the current dynamic page" }, - "mercureHubPublicUrl": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The mercure hub url to connect for subscribing and updating" + "type": { + "type": "string", + "description": "The type of the current dynamic page" }, - "JWTMercurePublisherToken": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The JWT mercure token to subscribe for updates" + "opened": { + "type": "boolean", + "default": true }, - "id": { + "position": { + "type": "integer", + "description": "The position of the dynamic page in the list of dynamic pages" + } + } + }, + "UpdateAttendeeRequestBody": { + "type": "object", + "properties": { + "attendeeName": { + "type": "string", + "description": "Name of the attendee" + }, + "videoUserId": { + "type": "string", + "description": "Id of the attendee in the video chat tool" + } + } + }, + "CreateAppointmentRequestBody": { + "type": "object", + "description": "Includes all data you will need to attend to a appointment.", + "required": [ + "salutationId", + "firstName", + "lastName", + "emailAddress", + "subject" + ], + "properties": { + "salutationId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "The appointment id" + "description": "The id of the salutation" }, - "newContextToken": { + "firstName": { "type": "string", - "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" + "description": "The first name of the requester" }, - "attendeeId": { + "lastName": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The created Id for the attendee" + "description": "The last name of the requester" }, - "salesChannelId": { + "emailAddress": { + "type": "string", + "format": "email", + "description": "The email address of the requester" + }, + "companyName": { + "type": "string", + "description": "The company name of the requester" + }, + "phoneNumber": { + "type": "string", + "description": "The phone number of the requester" + }, + "subject": { + "type": "string", + "description": "The subject of the appointment" + }, + "message": { + "type": "string", + "description": "The message of the appointment" + } + }, + "example": { + "id": "2d2c358f1ca04098aacf12873c2eed94", + "appointmentId": "3b3c358f1ca04098aacf12873c2eed94", + "salutationId": "5m6c358f1ca04098aacf12873c2eed94", + "firstName": "John", + "lastName": "Doe", + "emailAddress": "john@example.com", + "companyName": "Example Inc.", + "phoneNumber": "+1234567890", + "subject": "Appointment subject", + "message": "Appointment message", + "requestedById": "7b7c358f1ca04098aacf12873c2eed94" + } + }, + "DynamicPageOpenedPayload": { + "allOf": [ + { + "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" + } + ] + }, + "ToggleBroadcastModePayload": { + "type": "object", + "required": [ + "active" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Status if the mode is toggled to active or inactive" + } + } + }, + "DynamicProductPageOpenedPayload": { + "allOf": [ + { + "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" + } + ], + "required": [ + "productId" + ], + "properties": { + "productId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "The id of the current sales channel" + "description": "the id from the product which is shown on the dynamic page" + } + } + }, + "AppointmentBasicSettingResponse": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "description": "The API alias of the appointment basic setting" }, - "salesChannelName": { + "mode": { "type": "string", - "description": "The name of the current sales channel" + "description": "The mode of the interaction", + "enum": [ + "guided", + "self" + ] }, - "appointmentName": { + "attendeeRestrictionType": { "type": "string", - "description": "The name of the appointment" + "description": "The type of attendee restriction", + "enum": [ + "open", + "customer", + "rules" + ] }, - "presentationGuideMode": { + "videoAudioSettings": { "type": "string", + "description": "The video and audio settings", "enum": [ - "self", - "guided" - ], - "description": "The type of the appointment" + "none", + "both", + "audio-only" + ] }, - "isPreview": { + "canSendRequestEmail": { "type": "boolean", - "description": "To see if it's a preview appointment" + "description": "Indicates if request emails can be sent", + "default": false }, - "attendeeName": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The name of the attendee" + "canBookAppointment": { + "type": "boolean", + "description": "Indicates if appointments can be booked", + "default": false }, - "videoUserId": { + "enableWishlist": { + "type": "boolean", + "description": "Indicates if the wishlist is enabled", + "default": false + }, + "bookingLink": { + "description": "The booking link", "oneOf": [ { "type": "string" @@ -18010,89 +18183,123 @@ { "type": "null" } - ], - "description": "The video user id that attendee could use" + ] }, - "b2bFeatures": { - "type": "object", - "description": "The b2b features that available for the appointment", - "properties": { - "quoteManagement": { - "type": "boolean", - "description": "To know if the quote management is enabled for current customer" - } - } + "appointmentName": { + "type": "string", + "description": "The name of the appointment" + }, + "salesChannelName": { + "type": "string", + "description": "The name of the sales channel" + } + }, + "example": { + "apiAlias": "appointment_basic_setting", + "mode": "self", + "attendeeRestrictionType": "open", + "videoAudioSettings": "none", + "canSendRequestEmail": false, + "canBookAppointment": false, + "enableWishlist": false, + "bookingLink": null, + "appointmentName": "dsr11", + "salesChannelName": "Storefront" + } + }, + "ClientPresentationStateResponse": { + "type": "object", + "properties": { + "stateForAll": { + "$ref": "#/components/schemas/StateForAll" + }, + "stateForClients": { + "$ref": "#/components/schemas/StateForClients" } }, "example": { - "mercureSubscriberTopics": [ - "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" - ], - "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", - "JWTMercureSubscriberToken": "jwt token for subscribing to updates", - "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", - "JWTMercurePublisherToken": "jwt token for publishing updates", - "attendeeName": "attendee name", - "videoUserId": null, - "b2bFeatures": { - "feature1": false, - "feature2": true + "stateForAll": { + "currentGuideProductId": null, + "lastActiveGuideSection": null, + "currentPageId": null, + "currentSectionId": null, + "currentSlideAlias": 0, + "currentDynamicPage": null, + "started": false, + "running": false, + "ended": false, + "startedAt": null, + "endedAt": null, + "accessibleFrom": null, + "accessibleTo": null, + "appointmentMode": "guided", + "videoAudioSettings": "both", + "videoRoomUrl": "", + "attendeeRestrictionType": "open", + "productDetailDefaultPageId": "bea211b5099241719830df8026624f7f", + "quickviewPageId": "182d3f7f988044adbba449b70c8bc472", + "productListingDefaultPageId": "33e88c7994fa4cf79a1265e5105b93b2", + "broadcastMode": false, + "extensions": [] }, - "id": "2d2c358f1ca04098aacf12873c2eed82", - "newContextToken": "new context token to call the other routes", - "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", - "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", - "salesChannelName": "Storefront", - "appointmentName": "Test Appointment", - "presentationGuideMode": "guided", - "isPreview": false, - "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" + "stateForClients": { + "videoClientToken": null, + "hoveredElementId": null, + "extensions": [] + }, + "apiAlias": "swag_digital_sales_rooms_content_presentation_state_sales_channel_get_get_client_presentation_state_struct" } }, - "DynamicPageOpenedPayload": { + "PresentationCmsPage": { "allOf": [ { - "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" + "$ref": "#/components/schemas/DsrPresentationCmsPage" + }, + { + "type": "object", + "properties": { + "pickedProductIds": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product id" + } + }, + { + "type": "null" + } + ], + "description": "The product id is assigned to presentation if it's product listing or instant listing" + } + } } ] }, - "EmptyPayload": { - "type": "object", - "properties": [] - }, - "PageViewedPayload": { + "AttendeeProductCollectionLastSeenResponse": { "type": "object", - "required": [ - "pageId", - "sectionId", - "slideAlias" - ], "properties": { - "pageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the page which was viewed" - }, - "sectionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the section within the page which was viewed" - }, - "slideAlias": { - "type": "number", - "description": "the alias of the slide which was viewed" - }, - "pageNumber": { - "oneOf": [ - { - "type": "integer", - "description": "the number of the page which was viewed" - }, - { - "type": "null" + "collection": { + "type": "object", + "properties": { + "lastSeen": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product ids from the collection" + } } + } + } + }, + "example": { + "collection": { + "lastSeen": [ + "0015b3d83df441e490da7f6880a9c2da", + "60793d25cbab473f92c405ce0525f3ec" ] } } @@ -18231,143 +18438,65 @@ } } }, - "204": { - "description": "No Content" - }, - "CurrencyListResponse": { - "description": "Entity search result containing currencies.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Currency" - } - } - } - } - }, - "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" - } - ] - } - } - } - }, - "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" - } - ] - } - } - } - }, - "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" - } - ] - } - } - } - }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", + "429": { + "description": "Too Many Requests", "content": { - "application/json": { + "application/vnd.api+json": { "schema": { - "allOf": [ + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Language" - } - } - }, - "required": [ - "elements" - ], - "type": "object" - }, + "status": "429", + "title": "Too Many Requests", + "description": "Rate limit exceeded. Please wait before retrying." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "$ref": "#/components/schemas/EntitySearchResult" + "status": "429", + "title": "Too Many Requests", + "description": "Rate limit exceeded. Please wait before retrying." } ] } } } }, - "CountryStateListResponse": { - "description": "Entity search result containing countries.", + "204": { + "description": "No Content" + }, + "ShippingMethodListResponse": { + "description": "Entity search result containing shipping methods.", "content": { "application/json": { "schema": { "allOf": [ { + "required": [ + "elements" + ], "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/CountryState" + "$ref": "#/components/schemas/ShippingMethod" } } }, @@ -18381,32 +18510,8 @@ } } }, - "ContextTokenResponse": { - "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" - } - } - } - } - } - }, - "SalutationListResponse": { - "description": "Entity search result containing salutations.", + "CountryStateListResponse": { + "description": "Entity search result containing countries.", "content": { "application/json": { "schema": { @@ -18416,7 +18521,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Salutation" + "$ref": "#/components/schemas/CountryState" } } }, @@ -18430,33 +18535,25 @@ } } }, - "ShippingMethodListResponse": { - "description": "Entity search result containing shipping methods.", + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", "content": { "application/json": { "schema": { "allOf": [ { - "required": [ - "elements" - ], "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/SeoUrl" } } }, - "type": "object" + "type": "object", + "required": [ + "elements" + ] }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -18466,27 +18563,28 @@ } } }, - "CountryListResponse": { - "description": "Entity search result containing countries.", + "PaymentMethodListResponse": { + "description": "", "content": { "application/json": { "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Country" - } - } - }, + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", "type": "object" }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } } - ] + }, + "type": "object" } } } @@ -18666,42 +18764,184 @@ "format": "uri" } }, - "required": [ - "url" - ] + "required": [ + "url" + ] + } + }, + "type": "object", + "required": [ + "openapi", + "info" + ] + } + } + } + }, + "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": { + "sw-context-token": { + "description": "Contains sw-context-token value", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } + } + } + } + } + }, + "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" + } + ] + } + } + } + }, + "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" + } + ] + } + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + } + } + }, + "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" } - }, - "type": "object", - "required": [ - "openapi", - "info" ] } } } }, - "PaymentMethodListResponse": { - "description": "", + "ProductListResponse": { + "description": "Entity search result containing products", "content": { "application/json": { "schema": { - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", + "allOf": [ + { + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + }, "type": "object" }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "type": "object" + ] } } } @@ -18728,36 +18968,14 @@ "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.", + "swLanguageId": { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", "required": false, "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "criteriaPage": { @@ -18956,6 +19174,38 @@ "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": { @@ -18987,7 +19237,11 @@ "summary": "Update customer default info", "description": "Mark the customer who was created by admin from DSR has already updated the default info when the customer first login", "operationId": "dsrAccountUpdateDefaultInfo", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "responses": { "200": { "description": "", @@ -19016,7 +19270,11 @@ "summary": "Load customer wishlist product ids", "description": "Load customer wishlist product ids", "operationId": "dsrLoadCustomerWishlistProductIds", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "responses": { "200": { "description": "", @@ -19101,6 +19359,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -19137,6 +19400,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -19164,6 +19432,51 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] + } + }, + "/dsr/shop-pages/{layoutName}": { + "get": { + "tags": [ + "Shop pages" + ], + "summary": "Get shop pages", + "description": "Get shop pages by layout name", + "operationId": "dsrReadShopPage", + "parameters": [ + { + "name": "layoutName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CmsPage" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } ] } }, @@ -19175,7 +19488,11 @@ "summary": "Fetch presentation structure and flat navigation", "description": "Resolves the presentation structure and navigation by using the attendeeContext information. There will be NO Slot-Data inside call store-api.dsr.presentation-data for that", "operationId": "getPresentationStructure", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "responses": { "200": { "description": "", @@ -19224,6 +19541,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -19274,6 +19594,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -19325,7 +19648,11 @@ "summary": "Get the current presentation state", "description": "Returns the presentation state for all and the client", "operationId": "getClientPresentationState", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "responses": { "200": { "description": "", @@ -19374,6 +19701,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -19427,6 +19757,9 @@ "schema": { "type": "string" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -19486,6 +19819,9 @@ "schema": { "type": "string" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -19515,7 +19851,11 @@ "summary": "Get the last seen products for the current attendee", "description": "Returns the the last seen products for the requesting client", "operationId": "getLastSeenProducts", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "responses": { "200": { "description": "", @@ -19567,6 +19907,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -19649,6 +19992,9 @@ "disliked" ] } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -19689,6 +20035,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -19746,6 +20095,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -19804,7 +20156,11 @@ "summary": "Update attendee information", "description": "Update attendee information", "operationId": "updateAttendee", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -19863,7 +20219,11 @@ "summary": "Add a interaction to log", "description": "Create a interaction log entry in a specific appointment", "operationId": "addInteraction", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -19895,7 +20255,11 @@ "summary": "Create appointment request", "description": "Create a appointment request for a specific appointment", "operationId": "createAppointmentRequest", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": true, "content": { @@ -19958,6 +20322,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { @@ -20004,43 +20371,6 @@ ] } }, - "/dsr/shop-pages/{layoutName}": { - "get": { - "tags": [ - "Shop pages" - ], - "summary": "Get shop pages", - "description": "Get shop pages by layout name", - "operationId": "dsrReadShopPage", - "parameters": [ - { - "name": "layoutName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CmsPage" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, "/dsr/product-listing": { "post": { "tags": [ @@ -20049,7 +20379,11 @@ "summary": "Fetch a product listing by criteria", "description": "Fetches a product listing for a given criteria. It also provides filters, sortings and property aggregations, analogous to the /product-listing endpoint.", "operationId": "dsrProductListing", - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], "requestBody": { "required": false, "content": { @@ -20143,6 +20477,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { diff --git a/SwagDigitalSalesRooms-storeapi.summary.json b/SwagDigitalSalesRooms-storeapi.summary.json index 1ab3a9e..c1d892b 100644 --- a/SwagDigitalSalesRooms-storeapi.summary.json +++ b/SwagDigitalSalesRooms-storeapi.summary.json @@ -42,6 +42,9 @@ "AppCmsBlock", "AppFlowAction", "AppFlowEvent", + "AppMcpPrompt", + "AppMcpResource", + "AppMcpTool", "AppPaymentMethod", "AppScriptCondition", "AppShippingMethod", @@ -62,6 +65,8 @@ "CartDeliveryPosition", "CartError", "CartItems", + "CartItemsUpdate", + "CartLineItemUpdate", "CartListPrice", "CartPriceQuantity", "CartPriceReference", @@ -175,6 +180,7 @@ "NavigationType", "NewsletterRecipient", "NewsletterRecipientJsonApi", + "NewsletterStatus", "NoneFieldsCriteria", "Notification", "NumberRange", @@ -249,6 +255,7 @@ "SalesChannelAnalytics", "SalesChannelContext", "SalesChannelDomain", + "SalesChannelFile", "SalesChannelTrackingCustomer", "SalesChannelTrackingOrder", "SalesChannelType", diff --git a/storeapi.json b/storeapi.json index 2a179cb..a9dd749 100644 --- a/storeapi.json +++ b/storeapi.json @@ -561,7 +561,7 @@ "type": "object" }, "AppMcpPrompt": { - "description": "Added since version: 6.7.0.0", + "description": "Added since version: 6.7.11.0", "required": [ "label" ], @@ -587,7 +587,7 @@ "type": "object" }, "AppMcpResource": { - "description": "Added since version: 6.7.0.0", + "description": "Added since version: 6.7.11.0", "required": [ "label" ], @@ -613,7 +613,7 @@ "type": "object" }, "AppMcpTool": { - "description": "Added since version: 6.7.0.0", + "description": "Added since version: 6.7.11.0", "required": [ "label" ], @@ -6290,9 +6290,6 @@ }, "readOnly": true }, - "purchasePrices": { - "type": "string" - }, "releaseDate": { "type": "string", "format": "date-time" @@ -7728,6 +7725,11 @@ "description": { "type": "string" }, + "descriptionTeaser": { + "description": "Read-only, HTML-stripped excerpt of the description, derived on write.", + "type": "string", + "readOnly": true + }, "metaTitle": { "type": "string" }, @@ -8847,6 +8849,11 @@ "type": "string", "description": "Description of the product." }, + "descriptionTeaser": { + "description": "Read-only, HTML-stripped excerpt of the description, derived on write.", + "type": "string", + "readOnly": true + }, "metaTitle": { "type": "string", "description": "A page title indexed by search engines and appears in search results listings." @@ -10300,6 +10307,10 @@ "measurementUnits": { "$ref": "#/components/schemas/MeasurementUnits" }, + "businessTimeZone": { + "description": "Business timezone used for sales-channel-specific rendering. Added since version: 6.7.13.0.", + "type": "string" + }, "name": { "type": "string", "description": "Name of the sales channel." @@ -10484,6 +10495,26 @@ }, "type": "object" }, + "SalesChannelFile": { + "description": "Added since version: 6.7.12.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, "SalesChannelTrackingCustomer": { "description": "Added since version: 6.7.9.0", "properties": { @@ -12038,2229 +12069,1940 @@ }, "type": "object" }, - "BreadcrumbCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Breadcrumb" - } + "NewsletterStatus": { + "type": "string", + "enum": [ + "notSet", + "optIn", + "optOut", + "direct", + "undefined" + ], + "description": "The subscription status. Possible values are: notSet, optIn, optOut, direct, undefined." }, - "EntitySearchResult": { + "Breadcrumb": { "type": "object", "properties": { - "entity": { + "name": { "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." - } - } - }, - "SalesChannelContext": { - "type": "object", - "properties": { - "token": { - "description": "Context the user session", - "type": "string" + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string", - "description": "Name of customer group to which the customer belongs within the specific sales channel they are currently interacting with." - }, - "displayGross": { - "type": "boolean", - "description": "When `true`, product's gross price is displayed for that customer group who belongs to the specific sales channel they are currently interacting with." - } - } + "type": { + "$ref": "#/components/schemas/Category/properties/type" }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", + "translated": { "type": "object", + "additionalProperties": true, "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } - }, - "currency": { - "$ref": "#/components/schemas/Currency", - "properties": { - "isoCode": { - "description": "Standard international three digit code to represent currency in a given sales channel. For example, USD." - }, - "factor": { - "description": "Currency exchange rate in a specific sales channel the customer is currently interacting with." - }, - "symbol": { - "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $ in a given sales channel." - }, - "shortName": { - "description": "Acronym for international currencies, for example, USD in a given sales channel." - }, - "name": { - "description": "Full name of the currency in a given sales channel. For example, US-Dollar." - }, - "position": { - "description": "The order of the tabs for multiple currencies defined in a given sales channel." - }, - "decimalPrecision": { - "description": "It defines the round off value for currency to the nearest decimal point in a given sales channel. If set to 2, it rounds off to two significant decimal points." - }, - "isSystemDefault": { - "description": "Runtime field, cannot be used as part of the criteria." - } - } - }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel", - "properties": { - "typeId": { - "description": "Unique identity of a sales channel's type within a specific sales channel." - }, - "languageId": { - "description": "Unique identity of a sales channel's language within a specific sales channel." - }, - "currencyId": { - "description": "Unique identity of a sales channel's currency within a specific sales channel." - }, - "paymentMethodId": { - "description": "Unique identity of a sales channel's payment method within a specific sales channel." - }, - "shippingMethodId": { - "description": "Unique identity of a sales channel's shipping method within a specific sales channel." - }, - "countryId": { - "description": "Unique identity of a sales channel's country within a specific sales channel." - }, - "navigationCategoryId": { - "description": "Unique identity of a sales channel's navigation category within a specific sales channel." - }, - "navigationCategoryDepth": { - "description": "It determines the number of levels of subcategories in the storefront category menu within a specific sales channel." - }, - "footerCategoryId": { - "description": "Unique identity of a sales channel's footer category within a specific sales channel." - }, - "serviceCategoryId": { - "description": "Unique identity of a sales channel's service category within a specific sales channel." - }, - "name": { - "description": "Name of the sales channel." - }, - "shortName": { - "description": "A short name for sales channel." + "customFields": { + "type": "object" }, - "accessKey": { - "description": "Access key to store api." + "slotConfig": { + "type": "object" }, - "active": { - "description": "When `true`, the sales channel is enabled." + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" }, - "maintenance": { - "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." + "internalLink": { + "type": "string" }, - "maintenanceIpWhitelist": { - "description": "Array of IP address allowed to access the sales channel." + "externalLink": { + "type": "string" }, - "mailHeaderFooterId": { - "description": "Unique identity of a sales channel's mail header and footer within a specific sales channel." + "linkNewTab": { + "type": "boolean" }, - "customerGroupId": { - "description": "Unique identity of a sales channel's customer group within a specific sales channel." + "description": { + "type": "string" }, - "hreflangActive": { - "description": "When `true`, the sales channel pages are available in different languages within a specific sales channel." + "metaTitle": { + "type": "string" }, - "hreflangDefaultDomainId": { - "description": "Unique identity of a sales channel's hreflangDefaultDomain within a specific sales channel." + "metaDescription": { + "type": "string" }, - "analyticsId": { - "description": "Unique identity of a sales channel's analytics within a specific sales channel." + "keywords": { + "type": "string" } } }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + "path": { + "type": "string" }, - "taxRules": { + "seoUrls": { "type": "array", - "description": "Currently active tax rules and/or rates", "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - }, - "properties": { - "taxRate": { - "description": "Rate of tax within a specific sales channel." - }, - "name": { - "description": "Name defined for a Tax within a specific sales channel." - } + "$ref": "#/components/schemas/SeoUrl" } }, - "customer": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/Customer" - } - ], - "properties": { - "groupId": { - "description": "Unique identity of a customer's group within a specific sales channel." - }, - "defaultPaymentMethodId": { - "description": "Unique identity of a customer's default payment method within a specific sales channel." - }, - "salesChannelId": { - "description": "Unique identity of sales channel the customer is currently interacting with." - }, - "languageId": { - "description": "Unique identity of language within a specific sales channel the customer is interacting." - }, - "lastPaymentMethodId": { - "description": "Unique identity of customer's last payment method within a specific sales channel." - }, - "defaultBillingAddressId": { - "description": "Unique identity of customer's default billing address within a specific sales channel." - }, - "defaultShippingAddressId": { - "description": "Unique identity of customer's default shipping address within a specific sales channel." - }, - "customerNumber": { - "description": "Name of the customer within a specific sales channel the customer is interacting." - }, - "salutationId": { - "description": "Unique identity of customer's default shipping address within a specific sales channel." + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] + } + }, + "required": [ + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" + ] + }, + "ProductPurchaseLimit": { + "type": "object", + "description": "Current quantity purchase limits for a product.", + "required": [ + "productId", + "minPurchase", + "purchaseSteps", + "maxPurchase", + "stock", + "apiAlias" + ], + "properties": { + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The product ID." + }, + "minPurchase": { + "type": "integer", + "description": "Minimum quantity a customer can purchase." + }, + "purchaseSteps": { + "type": "integer", + "description": "Step increment for quantity selection." + }, + "maxPurchase": { + "type": "integer", + "description": "Maximum quantity a customer can purchase, reflecting current stock for closeout products." + }, + "stock": { + "type": [ + "integer", + "null" + ], + "description": "Current stock level of the product." + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_purchase_limit" + ] + } + } + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] + }, + "field": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "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", + "description": "Description of line items in an order." + }, + "good": { + "type": "boolean", + "description": "When set to true, it indicates the line item is physical else it is virtual." + }, + "id": { + "type": "string", + "description": "Unique identity of line item." + }, + "label": { + "type": "string", + "description": "It is a typical product name given to the line item." + }, + "modified": { + "type": "boolean", + "description": "When boolean value is `true`, line items are said to be modified." + }, + "modifiedByApp": { + "type": "boolean" + }, + "payload": { + "$ref": "#/components/schemas/ProductJsonApi" + }, + "price": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] }, - "firstName": { - "description": "First name of the customer within a specific sales channel." + "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" + ] + } }, - "lastName": { - "description": "Last name of the customer within a specific sales channel." + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - "company": { - "description": "Company name of the customer within a specific sales channel." + "quantity": { + "type": "number" }, - "password": { - "description": "Password of the customer within a specific sales channel." + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] }, - "email": { - "description": "Email of the customer within a specific sales channel." + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "title": { - "description": "Customer's title or honorifics like Mr, Mrs, etc within a specific sales channel." + "totalPrice": { + "type": "number" }, - "affiliateCode": { - "description": "An affiliate code is an identification option with which website operators can mark outgoing links within a specific sales channel." + "unitPrice": { + "type": "number" }, - "campaignCode": { - "description": "A unique identifier for a campaign within a specific sales channel." - }, - "active": { - "description": "When `true`, the status of the customer is set active within a specific sales channel." - }, - "doubleOptInRegistration": { - "description": "When `true`, user subscriptions to an email marketing list is allowed within a specific sales channel." - }, - "doubleOptInEmailSentDate": { - "description": "Date and time when the double opt-in email was sent within a specific sales channel." - }, - "doubleOptInConfirmDate": { - "description": "Date and time when the double opt-in email was confirmed within a specific sales channel." - }, - "hash": { - "description": "Password hash for account recovery within a specific sales channel." - }, - "guest": { - "description": "Boolean value is `true` for a guest account within a specific sales channel." - }, - "firstLogin": { - "description": "Captures date and time of customer's first login within a specific sales channel." - }, - "lastLogin": { - "description": "Captures date and time of customer's last login within a specific sales channel." - }, - "newsletter": { - "description": "When `true`, then the customer gets subscribe to the newsletter" - }, - "birthday": { - "description": "Captures customer's birthday details within a specific sales channel." - }, - "lastOrderDate": { - "description": "Captures customer's last order date within a specific sales channel." - }, - "orderCount": { - "description": "Captures the number of orders placed by a customer within a specific sales channel." - }, - "legacyEncoder": { - "description": "encapsulates shop credentials when needed to migrate shop system from old instance to new instance" - }, - "legacyPassword": { - "description": "Hashed password of the old shop system" - }, - "autoIncrement": { - "description": "Internal field. " - }, - "remoteAddress": { - "description": "Anonymous IP address of the customer for last session." + "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" + ] }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod", + "priceDefinition": { + "$ref": "#/components/schemas/CartPriceQuantity" + }, + "quantity": { + "type": "number", + "description": "Number of items of product." + }, + "quantityInformation": { + "type": "object", "properties": { - "pluginId": { - "description": "Unique identity of payment plugin within a specific sales channel." - }, - "handlerIdentifier": { - "description": "Internal field that contains system identifier details for payment methods like Paypal." - }, - "name": { - "description": "Name of the payment method within a specific sales channel." - }, - "description": { - "description": "A short description about the payment method within a specific sales channel." - }, - "position": { - "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc within a specific sales channel." - }, - "active": { - "description": "When `true`, the payment method is available for usage within a specific sales channel." - }, - "availabilityRuleId": { - "description": "Unique identity of the rule for the payment method." + "maxPurchase": { + "type": "number" }, - "mediaId": { - "description": "Unique identity of media used in payment method within a specific sales channel." + "minPurchase": { + "type": "number" }, - "formattedHandlerIdentifier": { - "description": "Internal field that contains system identifier details for payment methods like Paypal." + "purchaseSteps": { + "type": "number" } } }, - "shippingLocation": { + "referencedId": { + "type": "string", + "description": "Unique identity of type of entity." + }, + "removable": { + "type": "boolean", + "description": "Allows the line item to be removable from the cart when set to true." + }, + "stackable": { + "type": "boolean", + "description": "Allows to change the quantity of the line item when set to true." + }, + "states": { + "deprecated": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } + }, + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type", + "description": "Type refers to the entity type of an item whether it is product or promotion for instance." + }, + "uniqueIdentifier": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ] + }, + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "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": { - "apiAlias": { + "unit": { "type": "string", "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" + "value": { + "type": "number" } } }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod", + "height": { + "type": "object", "properties": { - "name": { - "description": "Name of the shipping method within a specific sales channel." - }, - "active": { - "description": "When `true`, the shipping method is available for usage within a specific sales channel." - }, - "description": { - "description": "A short description about the shipping method within a specific sales channel." - }, - "trackingUrl": { - "description": "URL that allows to track packages for a specific sales channel." - }, - "deliveryTimeId": { - "description": "Unique identity of deliveryTime within a specific sales channel." - }, - "availabilityRuleId": { - "description": "Unique identity of the rule for the payment method." + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" }, - "mediaId": { - "description": "Unique identity of media used in shipping method within a specific sales channel." + "value": { + "type": "number" } } }, - "context": { - "description": "Core context with general configuration values and state", + "length": { "type": "object", "properties": { - "versionId": { + "unit": { "type": "string", - "description": "Unique identity of context's version in a specific sales channel." + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" }, - "currencyId": { + "value": { + "type": "number" + } + } + }, + "weight": { + "type": "object", + "properties": { + "unit": { "type": "string", - "description": "Unique identity of currency context in a specific sales channel." - }, - "currencyFactor": { - "type": "integer", - "description": "Unique identity of currency factor context in a specific sales channel." - }, - "currencyPrecision": { - "type": "integer", - "format": "int32", - "description": "It defines the round off value of currency to the nearest decimal point. If set to 2, it rounds off to two significant decimal points." + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg" }, - "languageIdChain": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string", - "description": "Scope defines if its related to system or user context." - }, - "source": { - "type": "object", - "required": [ - "salesChannelId", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "sales-channel", - "shop-api" - ] - }, - "salesChannelId": { - "type": "string" - } - }, - "description": "When context is related to user in the source, then there is userId." - }, - "taxState": { - "type": "string", - "description": "Tax state can either be `gross` or `net`." - }, - "useCache": { - "type": "boolean", - "description": "When boolean value is `true`, caching is used." + "value": { + "type": "number" } } + } + } + }, + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "EntitySearchResult": { + "type": "object", + "properties": { + "entity": { + "type": "string" }, - "itemRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" + "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." + } + } + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "Gross price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net prices are linked through the tax configuration.", + "type": "boolean" + }, + "percentage": { + "description": "Discount percentage relative to the list price for the gross and net amounts. `null` when no list price is set.", + "type": [ + "object", + "null" ], "properties": { - "apiAlias": { + "gross": { + "description": "Discount percentage relative to the gross list price.", + "type": "number" + }, + "net": { + "description": "Discount percentage relative to the net list price.", + "type": "number" + } + }, + "required": [ + "gross", + "net" + ] + }, + "listPrice": { + "description": "Reference list price for displaying discounts.", + "type": "object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] + "pattern": "^[0-9a-f]{32}$" }, - "decimals": { - "type": "integer", - "format": "int32" + "gross": { + "description": "Gross list price for the associated currency.", + "type": "number" }, - "interval": { - "type": "number", - "format": "float" + "net": { + "description": "Net list price for the associated currency.", + "type": "number" }, - "roundForNet": { + "linked": { + "description": "Whether gross and net list prices are linked through the tax configuration.", "type": "boolean" } - } + }, + "required": [ + "gross", + "net" + ] }, - "totalRounding": { + "regulationPrice": { + "description": "Reference price used for legal price disclosures.", "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], "properties": { - "apiAlias": { + "currencyId": { + "description": "Unique identity of the associated currency.", "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] + "pattern": "^[0-9a-f]{32}$" }, - "decimals": { - "type": "integer", - "format": "int32" + "gross": { + "description": "Gross regulation price for the associated currency.", + "type": "number" }, - "interval": { - "type": "number", - "format": "float" + "net": { + "description": "Net regulation price for the associated currency.", + "type": "number" }, - "roundForNet": { + "linked": { + "description": "Whether gross and net regulation prices are linked through the tax configuration.", "type": "boolean" } - } - }, - "languageInfo": { - "type": "object", + }, "required": [ - "localeCode", - "name" - ], + "gross", + "net" + ] + } + }, + "required": [ + "currencyId", + "gross", + "net" + ] + }, + "CartItems": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + }, "properties": { - "name": { - "type": "string" + "id": { + "description": "Unique identity of cart item." }, - "localeCode": { - "type": "string" + "modified": { + "description": "When boolean value is `true`, the cart is said to be modified." } } - }, + } + } + }, + "CookieRouteResponse": { + "type": "object", + "description": "Response containing cookie groups and their configuration hash.", + "properties": { "apiAlias": { "type": "string", "enum": [ - "sales_channel_context" + "cookie_groups_hash" ] + }, + "elements": { + "type": "array", + "description": "Collection of cookie groups", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "hash": { + "type": "string", + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + }, + "languageId": { + "type": "string", + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" } }, "required": [ - "salesChannel", - "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" - ] - }, - "CartError": { - "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" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "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." - } + "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" } }, - "CustomerAddressRead": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "oneOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" + "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" + } } - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "oneOf": [ - { - "$ref": "#/components/schemas/CountryState" - }, - { - "type": "null" + }, + "translations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "shippingMethodId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + } } - ] - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - } - }, - "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" - ] - }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "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 - }, - "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 - }, - "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": [ - { + }, + "orderDeliveries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "orderId": { "type": "string" }, - { - "type": "null" + "shippingOrderAddressId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "shippingDateEarliest": { + "type": "string", + "format": "date-time" + }, + "shippingDateLatest": { + "type": "string", + "format": "date-time" + }, + "stateId": { + "type": "string" } - ] - } - } - } - ], - "properties": { - "filter": { - "properties": { - "type": { - "description": "To filter the results and aggregations with filter types like ==, >=, etc." - }, - "field": { - "description": "To filter the results and aggregations by field like an property identifier." - }, - "value": { - "description": "To filter the results and aggregations by value." - } - } - }, - "sort": { - "properties": { - "field": { - "description": "Sort the search results by field like an property identifier." - }, - "order": { - "description": "Sort the search results of orders by ascending or descending." - }, - "naturalSorting": { - "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." - } - } - }, - "post-filter": { - "properties": { - "type": { - "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." - }, - "field": { - "description": "To filter only the results but not the aggregations by field like an property identifier." - }, - "value": { - "description": "To filter only the results but not the aggregations by value." - } - } - } - } - }, - "WishlistLoadRouteResponse": { - "type": "object", - "required": [ - "products" - ], - "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string", - "description": "Unique identity of the customer." - }, - "salesChannelId": { - "type": "string", - "description": "Unique identity of the sales channel." - } - } - }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "Sitemap": { - "type": "object", - "properties": { - "filename": { - "type": "string", - "description": "Name of the file which holds a list of all URL's." - }, - "created": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "filename", - "created" - ] - }, - "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" - ] - }, - "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" - } - }, - "id": { - "description": "Unique identity of product detail response." - }, - "available": { - "description": "When boolean value is true, the product is available for purchase." - }, - "isCloseout": { - "description": "Boolean value to check if the product is still buyable when stock value is 0." - }, - "displayGroup": { - "description": "Internal field." - }, - "manufacturerNumber": { - "description": "Unique number of the product manufacturer." - }, - "stock": { - "description": "Quantity of product available." - }, - "sortedProperties": { - "description": "Properties of the product that are sorted" - } - }, - "required": [ - "product" - ] - }, - "NewsletterStatus": { - "type": "string", - "enum": [ - "notSet", - "optIn", - "optOut", - "direct", - "undefined" - ], - "description": "The subscription status. Possible values are: notSet, optIn, optOut, direct, undefined." - }, - "CartDelivery": { - "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" - } - } - }, - "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" - } - } - }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } - }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "ReferencePrice": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/ListPrice" - }, - { - "type": "null" - } - ] - }, - "regulationPrice": { - "oneOf": [ - { + }, + "salesChannelDefaultAssignments": { + "type": "array", + "items": { "type": "object", "properties": { - "price": { - "type": "number" + "typeId": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] + "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" + }, + "maintenanceIpAllowlist": { + "type": "string" + }, + "maintenanceIpWhitelist": { + "deprecated": true, + "type": "string" + }, + "mailHeaderFooterId": { + "type": "string" + }, + "customerGroupId": { + "type": "string" + }, + "hreflangActive": { + "type": "boolean" + }, + "hreflangDefaultDomainId": { + "type": "string" } } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" } - ] - } - }, - "required": [ - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] - }, - "CartDeliveryInformation": { - "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" - ] - }, - "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": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } - }, - { + }, + "salesChannels": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } + "properties": { + "typeId": { + "type": "string" }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] + "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" + }, + "maintenanceIpAllowlist": { + "type": "string" + }, + "maintenanceIpWhitelist": { + "deprecated": true, + "type": "string" + }, + "mailHeaderFooterId": { + "type": "string" + }, + "customerGroupId": { + "type": "string" + }, + "hreflangActive": { + "type": "boolean" + }, + "hreflangDefaultDomainId": { + "type": "string" + } } } - ], - "properties": { - "key": { - "description": "Unique key for every message." - }, - "level": { - "description": "Types of level - Notice, warning and error. " - }, - "message": { - "description": "A persistent error passed from the shopping cart calculation processes to the user end." - } - } - }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" - } - }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", - "type": "array", - "items": { + }, + "availabilityRule": { "type": "object", "properties": { - "paymentMethodId": { + "name": { "type": "string" }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" + "description": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "invalid": { + "type": "boolean" } } }, - "properties": { - "paymentMethodId": { - "description": "Unique identity of payment method." - } - } - }, - "modified": { - "type": "boolean", - "description": "It signifies any changes to cart." - }, - "customerComment": { - "description": "A comment that can be added to the cart.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + "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" + } + } } - ] - }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "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" + } } - ] - }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] - }, - "id": { - "description": "Unique identity of cart." + } } }, - "required": [ - "price", - "apiAlias" - ] - }, - "AccountNewsletterRecipient": { - "type": "object", "properties": { - "status": { - "$ref": "#/components/schemas/NewsletterStatus" + "name": { + "description": "Name of the shipping method." }, - "apiAlias": { - "type": "string", - "enum": [ - "account_newsletter_recipient" - ] - } - }, - "required": [ - "status", - "apiAlias" - ] - }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - }, - "properties": { - "total": { - "description": "Number of cross selling elements found." - } - } - }, - "Criteria": { - "type": "object", - "description": "Criteria to query entities.", - "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront." }, - "term": { - "description": "Search term", - "type": "string" + "description": { + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc." }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "deliveryTimeId": { + "description": "Unique identity of the delivery time." }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - }, + "deliveryTime": { "properties": { - "type": { - "description": "To filter the results and aggregations with filter types like ==, >=, etc." + "name": { + "description": "Name given to delivery time." }, - "field": { - "description": "To filter the results and aggregations by field like an property identifier." + "min": { + "description": "Minimum delivery time taken." }, - "value": { - "description": "To filter the results and aggregations by value." + "max": { + "description": "Maximum delivery time taken." + }, + "unit": { + "description": "Unit in which the delivery time is defined. For example, days or hours." } } }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } - }, - "query": { - "type": "string", - "description": "The query string to search for" - }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - }, + "translations": { "properties": { - "type": { - "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + "shippingMethodId": { + "description": "Unique identity of shipping method." }, - "field": { - "description": "To filter only the results but not the aggregations by field like an property identifier." + "name": { + "description": "Name of the shipping method." }, - "value": { - "description": "To filter only the results but not the aggregations by value." + "description": { + "description": "A short description of the shipping method." } } }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - }, + "orderDeliveries": { "properties": { - "field": { - "description": "Sort the search results by field like an property identifier." + "orderId": { + "description": "Unique identity of order." }, - "order": { - "description": "Sort the search results of orders by ascending or descending." + "shippingOrderAddressId": { + "description": "Unique identity of shipping order address." }, - "naturalSorting": { - "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + "shippingMethodId": { + "description": "Unique identity of shipping method." + }, + "shippingDateEarliest": { + "description": "Date and time of earliest delivery of products." + }, + "shippingDateLatest": { + "description": "Date and time of latest delivery of products." + }, + "stateId": { + "description": "Unique identity of state." } } }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" + "salesChannelDefaultAssignments": { + "properties": { + "stateId": { + "description": "Unique identity of state." + }, + "languageId": { + "description": "Unique identity of language." + }, + "currencyId": { + "description": "Unique identity of currency." + }, + "paymentMethodId": { + "description": "Unique identity of payment method." + }, + "shippingMethodId": { + "description": "Unique identity of shipping method." + }, + "countryId": { + "description": "Unique identity of country." + }, + "navigationCategoryId": { + "description": "Unique identity of navigation category." + }, + "navigationCategoryDepth": { + "description": "It determines the number of levels of subcategories in the storefront category menu." + }, + "footerCategoryId": { + "description": "Unique identity of footer category." + }, + "serviceCategoryId": { + "description": "Unique identity of service category." + }, + "name": { + "description": "Name of the sales channel." + }, + "shortName": { + "description": "A short name for sales channel." + }, + "accessKey": { + "description": "Access key to store api." + }, + "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the sales channel's storefront." + }, + "maintenance": { + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." + }, + "maintenanceIpWhitelist": { + "description": "Array of IP address allowed to access the sales channel." + }, + "mailHeaderFooterId": { + "description": "Unique identity of mail header and footer." + }, + "customerGroupId": { + "description": "Unique identity of customer group." + }, + "hreflangActive": { + "description": "When boolean value is `true`, the sales channel pages are available in different languages." + }, + "hreflangDefaultDomainId": { + "description": "Unique identity of hreflangDefaultDomain." + } } }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" + "salesChannels": { + "properties": { + "stateId": { + "description": "Unique identity of state." + }, + "languageId": { + "description": "Unique identity of language." + }, + "currencyId": { + "description": "Unique identity of currency." + }, + "paymentMethodId": { + "description": "Unique identity of payment method." + }, + "shippingMethodId": { + "description": "Unique identity of shipping method." + }, + "countryId": { + "description": "Unique identity of country." + }, + "navigationCategoryId": { + "description": "Unique identity of navigation category." + }, + "navigationCategoryDepth": { + "description": "It determines the number of levels of subcategories in the storefront category menu." + }, + "footerCategoryId": { + "description": "Unique identity of footer category." + }, + "serviceCategoryId": { + "description": "Unique identity of service category." + }, + "name": { + "description": "Name of the sales channel." + }, + "shortName": { + "description": "A short name for sales channel." + }, + "accessKey": { + "description": "Access key to store api." + }, + "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront." + }, + "maintenance": { + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." + }, + "maintenanceIpWhitelist": { + "description": "Array of IP address allowed to access the sales channel." + }, + "mailHeaderFooterId": { + "description": "Unique identity of mail header and footer." + }, + "customerGroupId": { + "description": "Unique identity of customer group." + }, + "hreflangActive": { + "description": "When boolean value is `true``, the sales channel pages are available in different languages." + }, + "hreflangDefaultDomainId": { + "description": "Unique identity of hreflangDefaultDomain." + } } }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "availabilityRule": { + "properties": { + "name": { + "description": "Unique name for the rule." + }, + "description": { + "description": "A short description about the rule." + }, + "priority": { + "description": "A numerical value to prioritize one of the rules from the list." + }, + "invalid": { + "description": "When the boolean value is `true`, the rule is no more available for usage." + } + } }, - "includes": { - "$ref": "#/components/schemas/Includes" + "availabilityRuleId": { + "description": "Unique identity of availability rule." }, - "excludes": { - "$ref": "#/components/schemas/Excludes" + "prices": { + "properties": { + "shippingMethodId": { + "description": "Unique identity of shipping method." + }, + "currencyId": { + "description": "Unique identity of currency." + }, + "ruleId": { + "description": "Unique identity of rule." + }, + "calculation": { + "description": "Shipping price calculated based on quantity, price, weight or volume of items." + }, + "quantityStart": { + "description": "Starting range of quantity of an item." + }, + "quantityEnd": { + "description": "Ending range of quantity of an item." + }, + "price": { + "description": "Shipping method price after applied rules." + }, + "calculationRuleId": { + "description": "Unique identity of calculation rule." + } + } + }, + "mediaId": { + "description": "Unique identity of media." + }, + "media": { + "properties": { + "userId": { + "description": "Unique identity of user." + }, + "mimeType": { + "description": "A string sent along with a file indicating the type of the file. For example: image/jpeg." + }, + "fileExtension": { + "description": "Type of file indication. For example: jpeg, png." + }, + "fileSize": { + "description": "Size of the file media file uploaded." + }, + "title": { + "description": "Title name give to the media." + }, + "metaDataRaw": { + "description": "Details of the media file uploaded." + }, + "alt": { + "description": "Alternate text for media." + }, + "url": { + "description": "Runtime field, cannot be used as part of the criteria." + }, + "fileName": { + "description": "Name of the media file uploaded." + }, + "mediaFolderId": { + "description": "Unique identity of media folder." + }, + "private": { + "description": "Boolean value is `true` to keep the media display private." + } + } + }, + "tags": { + "properties": { + "name": { + "description": "Name of the tag." + } + } } } }, - "NoneFieldsCriteria": { + "CartPriceReference": { "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "purchaseUnit": { + "type": "number" }, - "term": { - "description": "Search term", + "referenceUnit": { + "type": "number" + }, + "unitName": { "type": "string" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "price": { + "type": "number" }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } - }, - "query": { + "apiAlias": { "type": "string", - "description": "The query string to search for" - }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } - }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Includes" - }, - "excludes": { - "$ref": "#/components/schemas/Excludes" - } - } - }, - "Associations": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Includes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Excludes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "title": "AggregationEntity", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } + "enum": [ + "cart_price_reference" ] }, - { - "title": "AggregationTerms", - "allOf": [ + "listPrice": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationTerms" + "$ref": "#/components/schemas/CartListPrice" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, - { - "title": "AggregationHistogram", - "allOf": [ + "regulationPrice": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationHistogram" + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - } - ] - }, - "SubAggregations": { - "type": "object", - "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/AggregationHistogram" - }, - { - "$ref": "#/components/schemas/AggregationRange" - } - ] - } - } - }, - "TotalCountMode": { - "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", - "type": "string", - "default": "none", - "enum": [ - "none", - "exact", - "next-pages" - ] - }, - "Query": { - "type": "object", - "properties": { - "score": { - "type": "number" + "hasRange": { + "type": "boolean" }, - "query": { + "variantId": { "oneOf": [ { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "type": "string", + "format": "^[0-9a-f]{32}$" }, { - "$ref": "#/components/schemas/RangeFilter" + "type": "null" } ] } }, - "additionalProperties": true + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] }, - "Sort": { + "AggregationEntity": { + "title": "AggregationEntity", "type": "object", "properties": { - "field": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, - "order": { + "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "ASC", - "DESC" + "entity" ] }, - "naturalSorting": { - "type": "boolean" + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "type": { + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", "type": "string" } }, "required": [ + "name", + "type", "field", - "order" + "definition" ] }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "SimpleFilter": { + "AggregationFilter": { + "title": "AggregationFilter", "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": [ - "contains", - "equalsAny", - "prefix", - "suffix" + "filter" ] }, - "field": { - "type": "string" - }, - "value": { - "type": "string" + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } } }, "required": [ + "name", "type", - "field", - "value" + "filter" ] }, - "EqualsFilter": { + "AggregationTerms": { + "title": "AggregationTerms", "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": [ - "equals" + "terms" ] }, "field": { + "description": "The field you want to aggregate over.", "type": "string" }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] + "limit": { + "description": "The number of terms to return", + "type": "number" + }, + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" + } } }, "required": [ + "name", "type", - "field", - "value" + "field" ] }, - "MultiNotFilter": { + "AggregationHistogram": { + "title": "AggregationHistogram", "type": "object", "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, "type": { + "description": "The type of aggregation", "type": "string", "enum": [ - "multi", - "not" + "histogram" ] }, - "operator": { - "type": "string", - "enum": [ - "and", - "or", - "nor", - "nand" - ] + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "queries": { - "$ref": "#/components/schemas/Filters" + "interval": { + "description": "The interval of the histogram", + "type": "number" + }, + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" } }, "required": [ + "name", "type", - "operator", - "queries" + "field" ] }, - "RangeFilter": { + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", "type": "object", "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, "type": { + "description": "The type of aggregation", "type": "string", "enum": [ "range" ] }, "field": { + "description": "The field you want to aggregate over.", "type": "string" }, - "parameters": { - "type": "object", - "properties": { - "gte": { - "type": "number" - }, - "gt": { - "type": "number" - }, - "lte": { - "type": "number" - }, - "lt": { - "type": "number" - } + "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", - "parameters" + "ranges" ] }, - "FindProductVariantRouteResponse": { + "Cart": { "type": "object", "properties": { - "foundCombination": { + "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", - "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of a variant." - }, - "options": { + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "anyOf": [ + { "type": "array", "items": { - "type": "string" - }, - "description": "Available product variant options. For example, for variant `Size`, option would be `XS`, `S`, `M`, `L`, `XL`." - } - } - } - } - }, - "Price": { - "type": "object", - "description": "Price object", - "properties": { - "currencyId": { - "description": "Unique identity of the associated currency.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "$ref": "#/components/schemas/CartError" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "code", + "key", + "level", + "message", + "messageKey" + ] + } + } + ], + "properties": { + "key": { + "description": "Unique key for every message." + }, + "level": { + "description": "Types of level - Notice, warning and error. " + }, + "message": { + "description": "A persistent error passed from the shopping cart calculation processes to the user end." + } + } }, - "gross": { - "description": "Gross price for the associated currency.", - "type": "number" + "deliveries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDelivery" + } }, - "net": { - "description": "Net price for the associated currency.", - "type": "number" + "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" + } + } + }, + "properties": { + "paymentMethodId": { + "description": "Unique identity of payment method." + } + } }, - "linked": { - "description": "Whether gross and net prices are linked through the tax configuration.", - "type": "boolean" + "modified": { + "type": "boolean", + "description": "It signifies any changes to cart." }, - "percentage": { - "description": "Discount percentage relative to the list price for the gross and net amounts. `null` when no list price is set.", - "type": [ - "object", - "null" - ], - "properties": { - "gross": { - "description": "Discount percentage relative to the gross list price.", - "type": "number" + "customerComment": { + "description": "A comment that can be added to the cart.", + "oneOf": [ + { + "type": "string" }, - "net": { - "description": "Discount percentage relative to the net list price.", - "type": "number" + { + "type": "null" } - }, - "required": [ - "gross", - "net" ] }, - "listPrice": { - "description": "Reference list price for displaying discounts.", - "type": "object", - "properties": { - "currencyId": { - "description": "Unique identity of the associated currency.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "Gross list price for the associated currency.", - "type": "number" - }, - "net": { - "description": "Net list price for the associated currency.", - "type": "number" + "affiliateCode": { + "description": "An affiliate tracking code", + "oneOf": [ + { + "type": "string" }, - "linked": { - "description": "Whether gross and net list prices are linked through the tax configuration.", - "type": "boolean" + { + "type": "null" } - }, - "required": [ - "gross", - "net" ] }, - "regulationPrice": { - "description": "Reference price used for legal price disclosures.", - "type": "object", - "properties": { - "currencyId": { - "description": "Unique identity of the associated currency.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "Gross regulation price for the associated currency.", - "type": "number" - }, - "net": { - "description": "Net regulation price for the associated currency.", - "type": "number" + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ + { + "type": "string" }, - "linked": { - "description": "Whether gross and net regulation prices are linked through the tax configuration.", - "type": "boolean" + { + "type": "null" } - }, - "required": [ - "gross", - "net" ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart" + ] + }, + "id": { + "description": "Unique identity of cart." } }, "required": [ - "currencyId", - "gross", - "net" - ] - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" + "price", + "apiAlias" ] }, - "OrderRouteResponse": { + "CartItemsUpdate": { "type": "object", + "required": [ + "items" + ], "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" + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartLineItemUpdate" } } - }, - "required": [ - "orders" - ] + } }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" + "CartLineItemUpdate": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string" }, - { - "type": "object", - "properties": { - "currentFilters": { - "type": "object", - "description": "Contains the state of the filters. These can be used to create listing filters.", - "properties": { - "navigationId": { - "type": "string" - }, - "manufacturer": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "price": { - "type": "object", - "properties": { - "min": { - "type": "integer", - "default": 0 - }, - "max": { - "type": "integer", - "default": 0 - } - }, - "required": [ - "min", - "max" - ] - }, - "rating": { - "oneOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "shipping-free": { - "type": "boolean", - "default": false - }, - "properties": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "search": { - "type": "string" - } - }, - "required": [ - "manufacturer", - "navigationId", - "price", - "properties", - "rating", - "shipping-free" - ] + "type": { + "$ref": "#/components/schemas/OrderLineItem/properties/type" + }, + "quantity": { + "type": "integer" + }, + "referencedId": { + "type": "string" + }, + "label": { + "type": "string" + }, + "payload": { + "type": "object" + }, + "stackable": { + "type": "boolean" + }, + "removable": { + "type": "boolean" + }, + "coverId": { + "type": "string" + }, + "priceDefinition": { + "type": "object", + "properties": { + "type": { + "type": "string" }, - "availableSortings": { + "price": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "quantity": { + "type": "integer" + }, + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "type": "number" + }, + "taxRules": { "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": { + "taxRate": { "type": "number" }, - "apiAlias": { - "type": "string", - "enum": [ - "product_sorting" - ] + "percentage": { + "type": "number" } - }, - "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" - ] - } - }, - "sorting": { - "type": "string" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" + } } - }, - "entity": { - "type": "string", - "enum": [ - "product" - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_listing" - ] } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" - ] + } } - ] + } }, - "ProductMeasurements": { + "ContextMeasurementSystemInfo": { "type": "object", - "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", + "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "width": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } - }, - "height": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - "length": { + "units": { "type": "object", + "description": "Units used in the measurement system.", "properties": { - "unit": { + "length": { "type": "string", "enum": [ "mm", @@ -14269,17 +14011,10 @@ "in", "ft" ], - "default": "mm" + "default": "mm", + "description": "Unit of length." }, - "value": { - "type": "number" - } - } - }, - "weight": { - "type": "object", - "properties": { - "unit": { + "weight": { "type": "string", "enum": [ "g", @@ -14287,266 +14022,250 @@ "oz", "lb" ], - "default": "kg" - }, - "value": { - "type": "number" + "default": "kg", + "description": "Unit of weight." } } } } }, - "CookieEntryCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieEntry" - } - }, - "CrossSellingElement": { + "AccountNewsletterRecipient": { "type": "object", "properties": { - "crossSelling": { - "$ref": "#/components/schemas/ProductCrossSelling" - }, - "products": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - }, - "total": { - "type": "integer", - "format": "int32" - }, - "streamId": { - "type": "string", - "format": "uuid" + "status": { + "$ref": "#/components/schemas/NewsletterStatus" }, "apiAlias": { "type": "string", "enum": [ - "cross_selling_element" + "account_newsletter_recipient" ] } }, "required": [ - "crossSelling", - "products", - "total", + "status", "apiAlias" ] }, - "CookieEntry": { - "type": "object", - "properties": { - "cookie": { - "type": "string" - }, - "value": { - "type": "string" - }, - "expiration": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "hidden": { - "type": "boolean" + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "apiAlias": { - "type": "string", - "enum": [ - "cookie_entry" - ] + { + "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 + }, + "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 + }, + "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": [ - "cookie", - "hidden", - "apiAlias" - ] - }, - "MeasurementUnits": { - "type": "object", - "description": "Configuration of the measurement system", + ], "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." + "filter": { + "properties": { + "type": { + "description": "To filter the results and aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter the results and aggregations by field like an property identifier." + }, + "value": { + "description": "To filter the results and aggregations by value." + } + } }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", + "sort": { "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." + "field": { + "description": "Sort the search results by field like an property identifier." }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." + "order": { + "description": "Sort the search results of orders by ascending or descending." + }, + "naturalSorting": { + "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + } + } + }, + "post-filter": { + "properties": { + "type": { + "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter only the results but not the aggregations by field like an property identifier." + }, + "value": { + "description": "To filter only the results but not the aggregations by value." } } } } }, - "CartListPrice": { + "CartPriceQuantity": { "type": "object", - "description": "", "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" - }, "apiAlias": { "type": "string", "enum": [ - "cart_list_price" + "cart_price_quantity" ] - } - }, - "required": [ - "apiAlias" - ] - }, - "CookieGroup": { - "type": "object", - "properties": { - "isRequired": { - "type": "boolean" }, - "name": { - "type": "string" + "isCalculated": { + "type": "boolean" }, - "description": { - "type": "string" + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" }, - "cookie": { - "type": "string" + "price": { + "type": "number" }, - "value": { - "type": "string" + "quantity": { + "type": "number" }, - "expiration": { - "type": "integer" + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" }, - "entries": { - "$ref": "#/components/schemas/CookieEntryCollection" + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } }, - "apiAlias": { - "type": "string", - "enum": [ - "cookie_group" - ] + "type": { + "type": "string" } }, - "not": { - "allOf": [ - { - "required": [ - "cookie" - ] - }, - { - "required": [ - "entries" - ] - } - ] - }, "required": [ - "name", - "isRequired", "apiAlias" ] }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "CartItems": { + "ProductListingFlags": { "type": "object", - "required": [ - "items" - ], + "description": "Additional flags for product listings", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - }, - "properties": { - "id": { - "description": "Unique identity of cart item." + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" }, - "modified": { - "description": "When boolean value is `true`, the cart is said to be modified." + { + "type": "null" } - } - } - } - }, - "AggregationMetrics": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" ] }, - "field": { - "type": "string" + "only-aggregations": { + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } - }, - "required": [ - "name", - "type", - "field" - ] + } }, - "CartDeliveryPosition": { + "CartDelivery": { "type": "object", "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { @@ -14563,1787 +14282,2107 @@ } } }, - "identifier": { - "type": "string" + "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" + } + } }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDeliveryPosition" + } }, - "price": { + "shippingCosts": { "$ref": "#/components/schemas/CalculatedPrice" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } } }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", - "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, + "ProductDetailResponse": { + "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" - }, - "department": { - "type": "string" + "product": { + "$ref": "#/components/schemas/Product" }, - "title": { - "type": "string" + "configurator": { + "type": "array", + "description": "List of property groups with their corresponding options and information on how to display them.", + "items": { + "$ref": "#/components/schemas/PropertyGroup" + } }, - "phoneNumber": { - "type": "string" + "id": { + "description": "Unique identity of product detail response." }, - "additionalAddressLine1": { - "type": "string" + "available": { + "description": "When boolean value is true, the product is available for purchase." }, - "additionalAddressLine2": { - "type": "string" + "isCloseout": { + "description": "Boolean value to check if the product is still buyable when stock value is 0." }, - "customFields": { - "type": "object" + "displayGroup": { + "description": "Internal field." }, - "country": { - "$ref": "#/components/schemas/Country" + "manufacturerNumber": { + "description": "Unique number of the product manufacturer." }, - "countryState": { - "$ref": "#/components/schemas/CountryState" + "stock": { + "description": "Quantity of product available." }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "sortedProperties": { + "description": "Properties of the product that are sorted" } }, - "type": "object" + "required": [ + "product" + ] }, - "ProductPurchaseLimit": { + "Criteria": { "type": "object", - "description": "Current quantity purchase limits for a product.", - "required": [ - "productId", - "minPurchase", - "purchaseSteps", - "maxPurchase", - "stock", - "apiAlias" - ], + "description": "Criteria to query entities.", "properties": { - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The product ID." - }, - "minPurchase": { - "type": "integer", - "description": "Minimum quantity a customer can purchase." - }, - "purchaseSteps": { - "type": "integer", - "description": "Step increment for quantity selection." + "page": { + "description": "Search result page", + "type": "integer" }, - "maxPurchase": { - "type": "integer", - "description": "Maximum quantity a customer can purchase, reflecting current stock for closeout products." + "term": { + "description": "Search term", + "type": "string" }, - "stock": { - "type": [ - "integer", - "null" - ], - "description": "Current stock level of the product." + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "apiAlias": { - "type": "string", - "enum": [ - "product_purchase_limit" - ] - } - } - }, - "CookieRouteResponse": { - "type": "object", - "description": "Response containing cookie groups and their configuration hash.", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cookie_groups_hash" - ] + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + }, + "properties": { + "type": { + "description": "To filter the results and aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter the results and aggregations by field like an property identifier." + }, + "value": { + "description": "To filter the results and aggregations by value." + } + } }, - "elements": { + "ids": { "type": "array", - "description": "Collection of cookie groups", + "description": "List of ids to search for", "items": { - "$ref": "#/components/schemas/CookieGroup" + "type": "string" } }, - "hash": { + "query": { "type": "string", - "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", - "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + "description": "The query string to search for" }, - "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": [ + "associations": { + "$ref": "#/components/schemas/Associations" + }, + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ { - "name": "Session", - "hidden": false, - "cookie": "session-", - "apiAlias": "cookie_entry" + "$ref": "#/components/schemas/SimpleFilter" }, { - "name": "Timezone", - "hidden": false, - "cookie": "timezone", - "apiAlias": "cookie_entry" + "$ref": "#/components/schemas/EqualsFilter" }, { - "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": [ + "$ref": "#/components/schemas/MultiNotFilter" + }, { - "value": "1", - "expiration": 30, - "name": "Google Analytics", - "hidden": false, - "cookie": "google-analytics-enabled", - "apiAlias": "cookie_entry" + "$ref": "#/components/schemas/RangeFilter" } - ], - "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" + "properties": { + "type": { + "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter only the results but not the aggregations by field like an property identifier." + }, + "value": { + "description": "To filter only the results but not the aggregations by value." + } + } + }, + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" }, - { - "isRequired": false, - "name": "Comfort features", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "YouTube video", - "hidden": false, - "cookie": "youtube-video", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" + "properties": { + "field": { + "description": "Sort the search results by field like an property identifier." + }, + "order": { + "description": "Sort the search results of orders by ascending or descending." + }, + "naturalSorting": { + "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + } } - ], - "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", - "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" - } - }, - "CartItemsUpdate": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { + }, + "aggregations": { "type": "array", "items": { - "$ref": "#/components/schemas/CartLineItemUpdate" + "$ref": "#/components/schemas/Aggregation" } + }, + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } } }, - "CartLineItemUpdate": { + "NoneFieldsCriteria": { "type": "object", - "required": [ - "id" - ], + "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": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/OrderLineItem/properties/type" - }, - "quantity": { + "page": { + "description": "Search result page", "type": "integer" }, - "referencedId": { + "term": { + "description": "Search term", "type": "string" }, - "label": { - "type": "string" + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "payload": { - "type": "object" + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } }, - "stackable": { - "type": "boolean" + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "removable": { - "type": "boolean" + "query": { + "type": "string", + "description": "The query string to search for" }, - "coverId": { - "type": "string" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "priceDefinition": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "price": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "quantity": { - "type": "integer" - }, - "isCalculated": { - "type": "boolean" - }, - "listPrice": { - "type": "number" - }, - "taxRules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number" - }, - "percentage": { - "type": "number" - } - } + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] + } + }, + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" } + }, + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } } }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - }, - "properties": { - "id": { - "description": "Unique identity of navigation route response." - } + "Associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" } }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } } }, - "ProductListingFlags": { + "Excludes": { "type": "object", - "description": "Additional flags for product listings", - "properties": { - "no-aggregations": { - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", - "oneOf": [ + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "title": "AggregationEntity", + "allOf": [ { - "type": "string" + "$ref": "#/components/schemas/AggregationEntity" }, { - "type": "null" + "$ref": "#/components/schemas/SubAggregations" } ] }, - "only-aggregations": { - "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", - "oneOf": [ + { + "title": "AggregationFilter", + "allOf": [ { - "type": "string" + "$ref": "#/components/schemas/AggregationFilter" }, { - "type": "null" + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + } + ] + }, + "SubAggregations": { + "type": "object", + "properties": { + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/AggregationRange" } ] } } }, - "ShippingMethodPageRouteResponse": { + "TotalCountMode": { + "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", + "type": "string", + "default": "none", + "enum": [ + "none", + "exact", + "next-pages" + ] + }, + "Query": { + "type": "object", + "properties": { + "score": { + "type": "number" + }, + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "additionalProperties": true + }, + "Sort": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "required": [ + "field", + "order" + ] + }, + "Filters": { "type": "array", "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "deliveryTimeId": { - "type": "string" + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer", - "format": "int32" - }, - "max": { - "type": "integer", - "format": "int32" - }, - "unit": { - "type": "string" - } - } + { + "$ref": "#/components/schemas/EqualsFilter" }, - "translations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "shippingMethodId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - } - } + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "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" - } - } + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "SimpleFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] + }, + "field": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] + }, + "field": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" } - }, - "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" - } - } + ] + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "MultiNotFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "multi", + "not" + ] + }, + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" + } + }, + "required": [ + "type", + "operator", + "queries" + ] + }, + "RangeFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "type": "string" + }, + "parameters": { + "type": "object", + "properties": { + "gte": { + "type": "number" + }, + "gt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "lt": { + "type": "number" } + } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "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" + ] }, - "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" - } - } + { + "required": [ + "entries" + ] + } + ] + }, + "required": [ + "name", + "isRequired", + "apiAlias" + ] + }, + "CartDeliveryPosition": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" } - }, - "availabilityRule": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "priority": { - "type": "integer", - "format": "int32" - }, - "invalid": { - "type": "boolean" - } + } + }, + "identifier": { + "type": "string" + }, + "lineItem": { + "$ref": "#/components/schemas/LineItem" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } + }, + "ReferencePrice": { + "type": "object", + "properties": { + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { + "type": "string" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "type": "null" } - }, - "availabilityRuleId": { - "type": "string" - }, - "prices": { - "type": "array", - "items": { + ] + }, + "regulationPrice": { + "oneOf": [ + { "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" + "type": "number" }, - "calculationRuleId": { - "type": "string" + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] } } + }, + { + "type": "null" } - }, - "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" - } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" } - }, - "tags": { - "type": "array", - "items": { + ] + } + }, + "required": [ + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "OrderRouteResponse": { + "type": "object", + "properties": { + "orders": { + "type": "object", + "allOf": [ + { "type": "object", + "required": [ + "elements" + ], "properties": { - "name": { - "type": "string" + "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" + ] + }, + "WishlistLoadRouteResponse": { + "type": "object", + "required": [ + "products" + ], + "properties": { + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "Unique identity of the customer." + }, + "salesChannelId": { + "type": "string", + "description": "Unique identity of the sales channel." } } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + }, + "Sitemap": { + "type": "object", + "properties": { + "filename": { + "type": "string", + "description": "Name of the file which holds a list of all URL's." + }, + "created": { + "type": "string", + "format": "date-time" } }, + "required": [ + "filename", + "created" + ] + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" + ] + }, + "ListPrice": { + "type": "object", + "description": "", "properties": { - "name": { - "description": "Name of the shipping method." + "discount": { + "type": "number" }, - "active": { - "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront." + "percentage": { + "type": "number" }, - "description": { - "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc." + "price": { + "type": "number" }, - "deliveryTimeId": { - "description": "Unique identity of the delivery time." + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] + }, + "CalculatedPrice": { + "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", + "properties": { + "unitPrice": { + "type": "number" }, - "deliveryTime": { - "properties": { - "name": { - "description": "Name given to delivery time." - }, - "min": { - "description": "Minimum delivery time taken." - }, - "max": { - "description": "Maximum delivery time taken." - }, - "unit": { - "description": "Unit in which the delivery time is defined. For example, days or hours." - } - } + "quantity": { + "type": "number" }, - "translations": { - "properties": { - "shippingMethodId": { - "description": "Unique identity of shipping method." - }, - "name": { - "description": "Name of the shipping method." - }, - "description": { - "description": "A short description of the shipping method." - } - } + "rawTotal": { + "type": "number" }, - "orderDeliveries": { - "properties": { - "orderId": { - "description": "Unique identity of order." - }, - "shippingOrderAddressId": { - "description": "Unique identity of shipping order address." - }, - "shippingMethodId": { - "description": "Unique identity of shipping method." - }, - "shippingDateEarliest": { - "description": "Date and time of earliest delivery of products." - }, - "shippingDateLatest": { - "description": "Date and time of latest delivery of products." - }, - "stateId": { - "description": "Unique identity of state." - } - } + "totalPrice": { + "type": "number" }, - "salesChannelDefaultAssignments": { - "properties": { - "stateId": { - "description": "Unique identity of state." - }, - "languageId": { - "description": "Unique identity of language." - }, - "currencyId": { - "description": "Unique identity of currency." - }, - "paymentMethodId": { - "description": "Unique identity of payment method." - }, - "shippingMethodId": { - "description": "Unique identity of shipping method." - }, - "countryId": { - "description": "Unique identity of country." - }, - "navigationCategoryId": { - "description": "Unique identity of navigation category." - }, - "navigationCategoryDepth": { - "description": "It determines the number of levels of subcategories in the storefront category menu." - }, - "footerCategoryId": { - "description": "Unique identity of footer category." - }, - "serviceCategoryId": { - "description": "Unique identity of service category." - }, - "name": { - "description": "Name of the sales channel." - }, - "shortName": { - "description": "A short name for sales channel." - }, - "accessKey": { - "description": "Access key to store api." - }, - "active": { - "description": "When boolean value is `true`, the shipping methods are available for selection in the sales channel's storefront." - }, - "maintenance": { - "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." - }, - "maintenanceIpWhitelist": { - "description": "Array of IP address allowed to access the sales channel." - }, - "mailHeaderFooterId": { - "description": "Unique identity of mail header and footer." - }, - "customerGroupId": { - "description": "Unique identity of customer group." - }, - "hreflangActive": { - "description": "When boolean value is `true`, the sales channel pages are available in different languages." - }, - "hreflangDefaultDomainId": { - "description": "Unique identity of hreflangDefaultDomain." - } - } + "taxStatus": { + "type": "string", + "enum": [ + "net", + "tax-free" + ] }, - "salesChannels": { - "properties": { - "stateId": { - "description": "Unique identity of state." - }, - "languageId": { - "description": "Unique identity of language." - }, - "currencyId": { - "description": "Unique identity of currency." - }, - "paymentMethodId": { - "description": "Unique identity of payment method." - }, - "shippingMethodId": { - "description": "Unique identity of shipping method." - }, - "countryId": { - "description": "Unique identity of country." - }, - "navigationCategoryId": { - "description": "Unique identity of navigation category." - }, - "navigationCategoryDepth": { - "description": "It determines the number of levels of subcategories in the storefront category menu." - }, - "footerCategoryId": { - "description": "Unique identity of footer category." - }, - "serviceCategoryId": { - "description": "Unique identity of service category." - }, - "name": { - "description": "Name of the sales channel." - }, - "shortName": { - "description": "A short name for sales channel." - }, - "accessKey": { - "description": "Access key to store api." - }, - "active": { - "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront." - }, - "maintenance": { - "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." - }, - "maintenanceIpWhitelist": { - "description": "Array of IP address allowed to access the sales channel." - }, - "mailHeaderFooterId": { - "description": "Unique identity of mail header and footer." - }, - "customerGroupId": { - "description": "Unique identity of customer group." - }, - "hreflangActive": { - "description": "When boolean value is `true``, the sales channel pages are available in different languages." + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } }, - "hreflangDefaultDomainId": { - "description": "Unique identity of hreflangDefaultDomain." - } + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] } }, - "availabilityRule": { - "properties": { - "name": { - "description": "Unique name for the rule." - }, - "description": { - "description": "A short description about the rule." + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" }, - "priority": { - "description": "A numerical value to prioritize one of the rules from the list." + { + "type": "null" + } + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" }, - "invalid": { - "description": "When the boolean value is `true`, the rule is no more available for usage." + { + "type": "null" } - } + ] }, - "availabilityRuleId": { - "description": "Unique identity of availability rule." + "positionPrice": { + "type": "number" }, - "prices": { - "properties": { - "shippingMethodId": { - "description": "Unique identity of shipping method." - }, - "currencyId": { - "description": "Unique identity of currency." - }, - "ruleId": { - "description": "Unique identity of rule." - }, - "calculation": { - "description": "Shipping price calculated based on quantity, price, weight or volume of items." - }, - "quantityStart": { - "description": "Starting range of quantity of an item." - }, - "quantityEnd": { - "description": "Ending range of quantity of an item." + "netPrice": { + "type": "number" + }, + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, - "price": { - "description": "Shipping method price after applied rules." + { + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" }, - "calculationRuleId": { - "description": "Unique identity of calculation rule." + { + "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" + ] + }, + "CookieEntry": { + "type": "object", + "properties": { + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cookie_entry" + ] + } + }, + "required": [ + "cookie", + "hidden", + "apiAlias" + ] + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] + }, + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], + "properties": { + "countryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "zipcode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "company": { + "type": "string" + }, + "street": { + "type": "string" + }, + "department": { + "type": "string" + }, + "title": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { + "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "country": { + "$ref": "#/components/schemas/Country" }, - "mediaId": { - "description": "Unique identity of media." + "countryState": { + "$ref": "#/components/schemas/CountryState" }, - "media": { - "properties": { - "userId": { - "description": "Unique identity of user." - }, - "mimeType": { - "description": "A string sent along with a file indicating the type of the file. For example: image/jpeg." - }, - "fileExtension": { - "description": "Type of file indication. For example: jpeg, png." - }, - "fileSize": { - "description": "Size of the file media file uploaded." - }, - "title": { - "description": "Title name give to the media." - }, - "metaDataRaw": { - "description": "Details of the media file uploaded." - }, - "alt": { - "description": "Alternate text for media." - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria." - }, - "fileName": { - "description": "Name of the media file uploaded." - }, - "mediaFolderId": { - "description": "Unique identity of media folder." - }, - "private": { - "description": "Boolean value is `true` to keep the media display private." - } - } + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "type": "object" + }, + "MeasurementUnits": { + "type": "object", + "description": "Configuration of the measurement system", + "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." }, - "tags": { + "units": { + "type": "object", + "description": "Units used in the measurement system.", "properties": { - "name": { - "description": "Name of the tag." + "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." } } } } }, - "CartPriceReference": { + "CustomerAddressRead": { "type": "object", "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "price": { - "type": "number" + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "apiAlias": { + "createdAt": { "type": "string", - "enum": [ - "cart_price_reference" - ] + "format": "date-time" }, - "listPrice": { + "updatedAt": { "oneOf": [ { - "$ref": "#/components/schemas/CartListPrice" + "type": "string", + "format": "date-time" }, { "type": "null" } ] }, - "regulationPrice": { + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { "oneOf": [ { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "$ref": "#/components/schemas/CountryState" }, { "type": "null" } ] }, - "hasRange": { - "type": "boolean" + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "required": [ + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" + ] + }, + "CrossSellingElement": { + "type": "object", + "properties": { + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "total": { + "type": "integer", + "format": "int32" + }, + "streamId": { + "type": "string", + "format": "uuid" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cross_selling_element" ] } }, "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "crossSelling", + "products", + "total", + "apiAlias" ] }, - "Breadcrumb": { + "SalesChannelContext": { "type": "object", "properties": { - "name": { + "token": { + "description": "Context the user session", "type": "string" }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "currentCustomerGroup": { + "type": "object", + "description": "Customer group of the current user", + "properties": { + "name": { + "type": "string", + "description": "Name of customer group to which the customer belongs within the specific sales channel they are currently interacting with." + }, + "displayGross": { + "type": "boolean", + "description": "When `true`, product's gross price is displayed for that customer group who belongs to the specific sales channel they are currently interacting with." + } + } }, - "type": { - "$ref": "#/components/schemas/Category/properties/type" + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } + } + }, + "currency": { + "$ref": "#/components/schemas/Currency", + "properties": { + "isoCode": { + "description": "Standard international three digit code to represent currency in a given sales channel. For example, USD." + }, + "factor": { + "description": "Currency exchange rate in a specific sales channel the customer is currently interacting with." + }, + "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $ in a given sales channel." + }, + "shortName": { + "description": "Acronym for international currencies, for example, USD in a given sales channel." + }, + "name": { + "description": "Full name of the currency in a given sales channel. For example, US-Dollar." + }, + "position": { + "description": "The order of the tabs for multiple currencies defined in a given sales channel." + }, + "decimalPrecision": { + "description": "It defines the round off value for currency to the nearest decimal point in a given sales channel. If set to 2, it rounds off to two significant decimal points." + }, + "isSystemDefault": { + "description": "Runtime field, cannot be used as part of the criteria." + } + } }, - "translated": { - "type": "object", - "additionalProperties": true, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel", "properties": { - "customFields": { - "type": "object" + "typeId": { + "description": "Unique identity of a sales channel's type within a specific sales channel." }, - "slotConfig": { - "type": "object" + "languageId": { + "description": "Unique identity of a sales channel's language within a specific sales channel." }, - "linkType": { - "$ref": "#/components/schemas/Category/properties/linkType" + "currencyId": { + "description": "Unique identity of a sales channel's currency within a specific sales channel." }, - "internalLink": { - "type": "string" + "paymentMethodId": { + "description": "Unique identity of a sales channel's payment method within a specific sales channel." }, - "externalLink": { - "type": "string" + "shippingMethodId": { + "description": "Unique identity of a sales channel's shipping method within a specific sales channel." }, - "linkNewTab": { - "type": "boolean" + "countryId": { + "description": "Unique identity of a sales channel's country within a specific sales channel." }, - "description": { - "type": "string" + "navigationCategoryId": { + "description": "Unique identity of a sales channel's navigation category within a specific sales channel." }, - "metaTitle": { - "type": "string" + "navigationCategoryDepth": { + "description": "It determines the number of levels of subcategories in the storefront category menu within a specific sales channel." }, - "metaDescription": { - "type": "string" + "footerCategoryId": { + "description": "Unique identity of a sales channel's footer category within a specific sales channel." }, - "keywords": { - "type": "string" + "serviceCategoryId": { + "description": "Unique identity of a sales channel's service category within a specific sales channel." + }, + "name": { + "description": "Name of the sales channel." + }, + "shortName": { + "description": "A short name for sales channel." + }, + "accessKey": { + "description": "Access key to store api." + }, + "active": { + "description": "When `true`, the sales channel is enabled." + }, + "maintenance": { + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." + }, + "maintenanceIpWhitelist": { + "description": "Array of IP address allowed to access the sales channel." + }, + "mailHeaderFooterId": { + "description": "Unique identity of a sales channel's mail header and footer within a specific sales channel." + }, + "customerGroupId": { + "description": "Unique identity of a sales channel's customer group within a specific sales channel." + }, + "hreflangActive": { + "description": "When `true`, the sales channel pages are available in different languages within a specific sales channel." + }, + "hreflangDefaultDomainId": { + "description": "Unique identity of a sales channel's hreflangDefaultDomain within a specific sales channel." + }, + "analyticsId": { + "description": "Unique identity of a sales channel's analytics within a specific sales channel." } } }, - "path": { - "type": "string" - }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "breadcrumb" - ] - } - }, - "required": [ - "name", - "categoryId", - "type", - "translated", - "path", - "apiAlias" - ] - }, - "CalculatedPrice": { - "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", - "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "taxStatus": { - "type": "string", - "enum": [ - "net", - "tax-free" - ] + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" }, - "calculatedTaxes": { + "taxRules": { "type": "array", + "description": "Currently active tax rules and/or rates", "items": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] - }, - "tax": { - "type": "number" - }, "taxRate": { - "type": "number" + "type": "number", + "format": "float" }, - "price": { - "type": "number" + "name": { + "type": "string" } + } + }, + "properties": { + "taxRate": { + "description": "Rate of tax within a specific sales channel." + }, + "name": { + "description": "Name defined for a Tax within a specific sales channel." + } + } + }, + "customer": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Customer" + } + ], + "properties": { + "groupId": { + "description": "Unique identity of a customer's group within a specific sales channel." + }, + "defaultPaymentMethodId": { + "description": "Unique identity of a customer's default payment method within a specific sales channel." + }, + "salesChannelId": { + "description": "Unique identity of sales channel the customer is currently interacting with." + }, + "languageId": { + "description": "Unique identity of language within a specific sales channel the customer is interacting." + }, + "lastPaymentMethodId": { + "description": "Unique identity of customer's last payment method within a specific sales channel." + }, + "defaultBillingAddressId": { + "description": "Unique identity of customer's default billing address within a specific sales channel." + }, + "defaultShippingAddressId": { + "description": "Unique identity of customer's default shipping address within a specific sales channel." + }, + "customerNumber": { + "description": "Name of the customer within a specific sales channel the customer is interacting." + }, + "salutationId": { + "description": "Unique identity of customer's default shipping address within a specific sales channel." + }, + "firstName": { + "description": "First name of the customer within a specific sales channel." + }, + "lastName": { + "description": "Last name of the customer within a specific sales channel." + }, + "company": { + "description": "Company name of the customer within a specific sales channel." + }, + "password": { + "description": "Password of the customer within a specific sales channel." + }, + "email": { + "description": "Email of the customer within a specific sales channel." + }, + "title": { + "description": "Customer's title or honorifics like Mr, Mrs, etc within a specific sales channel." + }, + "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links within a specific sales channel." + }, + "campaignCode": { + "description": "A unique identifier for a campaign within a specific sales channel." + }, + "active": { + "description": "When `true`, the status of the customer is set active within a specific sales channel." + }, + "doubleOptInRegistration": { + "description": "When `true`, user subscriptions to an email marketing list is allowed within a specific sales channel." + }, + "doubleOptInEmailSentDate": { + "description": "Date and time when the double opt-in email was sent within a specific sales channel." + }, + "doubleOptInConfirmDate": { + "description": "Date and time when the double opt-in email was confirmed within a specific sales channel." + }, + "hash": { + "description": "Password hash for account recovery within a specific sales channel." + }, + "guest": { + "description": "Boolean value is `true` for a guest account within a specific sales channel." + }, + "firstLogin": { + "description": "Captures date and time of customer's first login within a specific sales channel." + }, + "lastLogin": { + "description": "Captures date and time of customer's last login within a specific sales channel." + }, + "newsletter": { + "description": "When `true`, then the customer gets subscribe to the newsletter" + }, + "birthday": { + "description": "Captures customer's birthday details within a specific sales channel." + }, + "lastOrderDate": { + "description": "Captures customer's last order date within a specific sales channel." + }, + "orderCount": { + "description": "Captures the number of orders placed by a customer within a specific sales channel." + }, + "legacyEncoder": { + "description": "encapsulates shop credentials when needed to migrate shop system from old instance to new instance" }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" + "legacyPassword": { + "description": "Hashed password of the old shop system" }, - { - "type": "null" - } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" + "autoIncrement": { + "description": "Internal field. " }, - { - "type": "null" + "remoteAddress": { + "description": "Anonymous IP address of the customer for last session." } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" + } }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod", + "properties": { + "pluginId": { + "description": "Unique identity of payment plugin within a specific sales channel." }, - { - "type": "null" + "handlerIdentifier": { + "description": "Internal field that contains system identifier details for payment methods like Paypal." + }, + "name": { + "description": "Name of the payment method within a specific sales channel." + }, + "description": { + "description": "A short description about the payment method within a specific sales channel." + }, + "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc within a specific sales channel." + }, + "active": { + "description": "When `true`, the payment method is available for usage within a specific sales channel." + }, + "availabilityRuleId": { + "description": "Unique identity of the rule for the payment method." + }, + "mediaId": { + "description": "Unique identity of media used in payment method within a specific sales channel." + }, + "formattedHandlerIdentifier": { + "description": "Internal field that contains system identifier details for payment methods like Paypal." } - ] - }, - "hasRange": { - "type": "boolean" + } }, - "variantId": { - "oneOf": [ - { + "shippingLocation": { + "type": "object", + "properties": { + "apiAlias": { "type": "string", - "format": "^[0-9a-f]{32}$" + "enum": [ + "cart_delivery_shipping_location" + ] }, - { - "type": "null" + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" } - ] - }, - "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" - } + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod", + "properties": { + "name": { + "description": "Name of the shipping method within a specific sales channel." + }, + "active": { + "description": "When `true`, the shipping method is available for usage within a specific sales channel." + }, + "description": { + "description": "A short description about the shipping method within a specific sales channel." + }, + "trackingUrl": { + "description": "URL that allows to track packages for a specific sales channel." + }, + "deliveryTimeId": { + "description": "Unique identity of deliveryTime within a specific sales channel." + }, + "availabilityRuleId": { + "description": "Unique identity of the rule for the payment method." + }, + "mediaId": { + "description": "Unique identity of media used in shipping method within a specific sales channel." } } - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules", - "rawTotal", - "taxStatus" - ] - }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" - } - }, - "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", - "description": "Description of line items in an order." - }, - "good": { - "type": "boolean", - "description": "When set to true, it indicates the line item is physical else it is virtual." - }, - "id": { - "type": "string", - "description": "Unique identity of line item." - }, - "label": { - "type": "string", - "description": "It is a typical product name given to the line item." }, - "modified": { - "type": "boolean", - "description": "When boolean value is `true`, line items are said to be modified." - }, - "modifiedByApp": { - "type": "boolean" - }, - "payload": { - "$ref": "#/components/schemas/ProductJsonApi" - }, - "price": { + "context": { + "description": "Core context with general configuration values and state", "type": "object", "properties": { - "apiAlias": { + "versionId": { "type": "string", - "enum": [ - "calculated_price" - ] + "description": "Unique identity of context's version in a specific sales channel." + }, + "currencyId": { + "type": "string", + "description": "Unique identity of currency context in a specific sales channel." + }, + "currencyFactor": { + "type": "integer", + "description": "Unique identity of currency factor context in a specific sales channel." + }, + "currencyPrecision": { + "type": "integer", + "format": "int32", + "description": "It defines the round off value of currency to the nearest decimal point. If set to 2, it rounds off to two significant decimal points." }, - "calculatedTaxes": { + "languageIdChain": { "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" - ] + "type": "string" } }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "quantity": { - "type": "number" + "scope": { + "type": "string", + "description": "Scope defines if its related to system or user context." }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" + "source": { + "type": "object", + "required": [ + "salesChannelId", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] }, - { - "type": "null" + "salesChannelId": { + "type": "string" } - ] + }, + "description": "When context is related to user in the source, then there is userId." }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } + "taxState": { + "type": "string", + "description": "Tax state can either be `gross` or `net`." + }, + "useCache": { + "type": "boolean", + "description": "When boolean value is `true`, caching is used." + } + } + }, + "itemRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" ] }, - "totalPrice": { - "type": "number" + "decimals": { + "type": "integer", + "format": "int32" }, - "unitPrice": { - "type": "number" + "interval": { + "type": "number", + "format": "float" }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } + "roundForNet": { + "type": "boolean" } - }, - "required": [ - "apiAlias", - "totalPrice", - "quantity", - "unitPrice" - ] - }, - "priceDefinition": { - "$ref": "#/components/schemas/CartPriceQuantity" - }, - "quantity": { - "type": "number", - "description": "Number of items of product." + } }, - "quantityInformation": { + "totalRounding": { "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], "properties": { - "maxPurchase": { - "type": "number" + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] }, - "minPurchase": { - "type": "number" + "decimals": { + "type": "integer", + "format": "int32" }, - "purchaseSteps": { - "type": "number" + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" } } }, - "referencedId": { - "type": "string", - "description": "Unique identity of type of entity." - }, - "removable": { - "type": "boolean", - "description": "Allows the line item to be removable from the cart when set to true." - }, - "stackable": { - "type": "boolean", - "description": "Allows to change the quantity of the line item when set to true." - }, - "states": { - "deprecated": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "is-physical", - "is-download" - ] - } - }, - "type": { - "$ref": "#/components/schemas/OrderLineItem/properties/type", - "description": "Type refers to the entity type of an item whether it is product or promotion for instance." - }, - "uniqueIdentifier": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ] - }, - "ListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] - } - }, - "required": [ - "apiAlias" - ] - }, - "AggregationEntity": { - "title": "AggregationEntity", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "languageInfo": { + "type": "object", + "required": [ + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" + } + } }, - "type": { - "description": "The type of aggregation", + "apiAlias": { "type": "string", "enum": [ - "entity" + "sales_channel_context" ] - }, - "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" + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" ] }, - "AggregationFilter": { - "title": "AggregationFilter", + "SuccessResponse": { "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": [ - "filter" - ] - }, - "filter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Filters" - } + "success": { + "type": "boolean" } + } + }, + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" }, - "required": [ - "name", - "type", - "filter" - ] + "properties": { + "id": { + "description": "Unique identity of navigation route response." + } + } }, - "AggregationTerms": { - "title": "AggregationTerms", + "CartDeliveryInformation": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", + "apiAlias": { "type": "string", "enum": [ - "terms" + "cart_delivery_information" ] }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "limit": { - "description": "The number of terms to return", - "type": "number" + "freeDelivery": { + "type": "boolean" }, - "sort": { - "type": "array", - "description": "Sorting the aggregation result.", - "items": { - "$ref": "#/components/schemas/Sort" + "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": [ - "name", - "type", - "field" + "apiAlias" ] }, - "AggregationHistogram": { - "title": "AggregationHistogram", + "FindProductVariantRouteResponse": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + "foundCombination": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of a variant." + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Available product variant options. For example, for variant `Size`, option would be `XS`, `S`, `M`, `L`, `XL`." + } + } + } + } + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + }, + "properties": { + "total": { + "description": "Number of cross selling elements found." + } + } + }, + "CartError": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "key": { "type": "string" }, - "type": { - "description": "The type of aggregation", - "type": "string", + "level": { + "type": "number", "enum": [ - "histogram" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "interval": { - "description": "The interval of the histogram", - "type": "number" + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "format": { - "description": "The format of the histogram", + "message": { "type": "string" }, - "timeZone": { - "description": "The timezone of the histogram", + "messageKey": { "type": "string" } }, "required": [ - "name", - "type", - "field" + "key", + "level", + "message", + "messageKey" ] }, - "AggregationRange": { - "title": "AggregationRange", - "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "ProductListingResult": { + "allOf": [ + { + "$ref": "#/components/schemas/EntitySearchResult" }, - "ranges": { - "description": "The ranges of the aggregation", - "type": "array", - "items": { - "type": "object", - "anyOf": [ - { - "type": "object", - "title": "From and to", - "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" - }, - "to": { - "type": "number", - "description": "The upper bound of the range" + { + "type": "object", + "properties": { + "currentFilters": { + "type": "object", + "description": "Contains the state of the filters. These can be used to create listing filters.", + "properties": { + "navigationId": { + "type": "string" + }, + "manufacturer": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, - "required": [ - "from", - "to" - ] - }, - { - "type": "object", - "title": "From only", + "price": { + "type": "object", + "properties": { + "min": { + "type": "integer", + "default": 0 + }, + "max": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "min", + "max" + ] + }, + "rating": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "shipping-free": { + "type": "boolean", + "default": false + }, "properties": { - "from": { + "type": "array", + "items": { "type": "string", - "description": "The lower bound of the range" + "pattern": "^[0-9a-f]{32}$" } }, - "required": [ - "from" - ] + "search": { + "type": "string" + } }, - { + "required": [ + "manufacturer", + "navigationId", + "price", + "properties", + "rating", + "shipping-free" + ] + }, + "availableSortings": { + "type": "array", + "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", + "items": { "type": "object", - "title": "To only", "properties": { - "to": { + "label": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "label": { + "type": "string" + } + }, + "required": [ + "label" + ] + }, + "key": { + "type": "string" + }, + "priority": { + "type": "number" + }, + "apiAlias": { "type": "string", - "description": "The upper bound of the range" + "enum": [ + "product_sorting" + ] } }, "required": [ - "to" + "label", + "translated", + "key", + "priority", + "apiAlias" ] } - ] - } + }, + "sorting": { + "type": "string" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "entity": { + "type": "string", + "enum": [ + "product" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_listing" + ] + } + }, + "required": [ + "elements", + "availableSortings", + "currentFilters", + "apiAlias" + ] } - }, - "required": [ - "name", - "type", - "field", - "ranges" ] }, + "BreadcrumbCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Breadcrumb" + } + }, "AccountNewsletterRecipientResult": { "properties": { "status": { @@ -16999,144 +17038,69 @@ } } }, - "204": { - "description": "No Content" - }, - "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" - } - ] - } - } - } - }, - "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" - } - ] - } - } - } - }, - "CurrencyListResponse": { - "description": "Entity search result containing currencies.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Currency" - } - } - } - } - }, - "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.", + "429": { + "description": "Too Many Requests", "content": { - "application/json": { + "application/vnd.api+json": { "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Salutation" - } - } - }, - "type": "object" - }, + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "$ref": "#/components/schemas/EntitySearchResult" + "status": "429", + "title": "Too Many Requests", + "description": "Rate limit exceeded. Please wait before retrying." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "429", + "title": "Too Many Requests", + "description": "Rate limit exceeded. Please wait before retrying." } ] } } } }, - "CategoryListResponse": { - "description": "Entity search result containing categories.", + "204": { + "description": "No Content" + }, + "ShippingMethodListResponse": { + "description": "Entity search result containing shipping methods.", "content": { "application/json": { "schema": { "allOf": [ { - "type": "object", + "required": [ + "elements" + ], "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/ShippingMethod" } } - } + }, + "type": "object" }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -17171,8 +17135,8 @@ } } }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", "content": { "application/json": { "schema": { @@ -17182,14 +17146,14 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/SeoUrl" } } }, + "type": "object", "required": [ "elements" - ], - "type": "object" + ] }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -17199,26 +17163,28 @@ } } }, - "ContextTokenResponse": { - "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value", - "schema": { - "type": "string" - } - } - }, + "PaymentMethodListResponse": { + "description": "", "content": { "application/json": { "schema": { - "type": "object", "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } } - } + }, + "type": "object" } } } @@ -17412,34 +17378,148 @@ } } }, - "PaymentMethodListResponse": { - "description": "", + "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": { + "sw-context-token": { + "description": "Contains sw-context-token value", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "total": { - "description": "Total amount", - "type": "integer" + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } + } + } + } + } + }, + "SalutationListResponse": { + "description": "Entity search result containing salutations.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Salutation" + } + } + }, + "type": "object" }, - "aggregations": { - "description": "aggregation result", + { + "$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" }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "type": "object" + ] } } } }, - "ShippingMethodListResponse": { - "description": "Entity search result containing shipping methods.", + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + } + } + }, + "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" + } + ] + } + } + } + }, + "ProductListResponse": { + "description": "Entity search result containing products", "content": { "application/json": { "schema": { @@ -17449,18 +17529,10 @@ "elements" ], "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/Product" } } }, @@ -17492,40 +17564,18 @@ "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" - } - ] + "type": "string", + "default": "application/json" } }, - "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.", + "swLanguageId": { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", "required": false, "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "criteriaPage": { @@ -17625,128 +17675,424 @@ { "$ref": "#/components/schemas/RangeFilter" } - ] + ] + } + } + }, + "criteriaSort": { + "name": "sort[]", + "in": "query", + "description": "Sorting in the search result.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sort" + } + } + }, + "criteriaAggregations": { + "name": "aggregations[]", + "in": "query", + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + } + }, + "criteriaFields": { + "name": "fields[]", + "in": "query", + "description": "Fields which should be returned in the search result.", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" + } + } + }, + "criteriaGrouping": { + "name": "grouping[]", + "in": "query", + "description": "Perform groupings over certain fields", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" + } + } + }, + "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": { + "/navigation/{activeId}/{rootId}": { + "post": { + "tags": [ + "Category", + "Endpoints supporting Criteria " + ], + "summary": "Fetch a navigation menu", + "description": "This endpoint returns categories that can be used as a page navigation. You can either return them as a tree or as a flat list. You can also control the depth of the tree.\n\n Instead of passing uuids, you can also use one of the following aliases for the activeId and rootId parameters to get the respective navigations of your sales channel.\n\n * main-navigation\n * service-navigation\n * footer-navigation", + "operationId": "readNavigation", + "parameters": [ + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + }, + { + "name": "activeId", + "in": "path", + "description": "Identifier of the active category in the navigation tree (if not used, just set to the same as rootId).", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } + }, + { + "name": "rootId", + "in": "path", + "description": "Identifier of the root category for your desired navigation tree. You can use it to fetch sub-trees of your navigation tree.", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NoneFieldsCriteria" + }, + { + "properties": { + "depth": { + "description": "Determines the depth of fetched navigation levels.", + "type": "integer", + "format": "int32" + }, + "buildTree": { + "description": "Return the categories as a tree or as a flat list.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "type": "object" + } + ] + } + } } - } - }, - "criteriaSort": { - "name": "sort[]", - "in": "query", - "description": "Sorting in the search result.", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sort" + }, + "responses": { + "200": { + "description": "All available navigations", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NavigationRouteResponse" + } + } + } } - } - }, - "criteriaAggregations": { - "name": "aggregations[]", - "in": "query", - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" + }, + "security": [ + { + "ApiKey": [] } - } + ] }, - "criteriaFields": { - "name": "fields[]", - "in": "query", - "description": "Fields which should be returned in the search result.", - "schema": { - "type": "array", - "items": { - "type": "string", - "description": "Name of a field" + "get": { + "tags": [ + "Category", + "Endpoints supporting Criteria " + ], + "summary": "Fetch a navigation menu", + "description": "This endpoint returns categories that can be used as a page navigation. You can either return them as a tree or as a flat list. You can also control the depth of the tree.\n\n Instead of passing uuids, you can also use one of the following aliases for the activeId and rootId parameters to get the respective navigations of your sales channel.\n\n * main-navigation\n * service-navigation\n * footer-navigation", + "operationId": "readNavigationGet", + "parameters": [ + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "activeId", + "in": "path", + "description": "Identifier of the active category in the navigation tree (if not used, just set to the same as rootId).", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } + }, + { + "name": "rootId", + "in": "path", + "description": "Identifier of the root category for your desired navigation tree. You can use it to fetch sub-trees of your navigation tree.", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } + }, + { + "name": "depth", + "in": "query", + "description": "Determines the depth of fetched navigation levels.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "buildTree", + "in": "query", + "description": "Return the categories as a tree or as a flat list.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + }, + "style": "deepObject", + "explode": true + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" } - } - }, - "criteriaGrouping": { - "name": "grouping[]", - "in": "query", - "description": "Perform groupings over certain fields", - "schema": { - "type": "array", - "items": { - "type": "string", - "description": "Name of a field" + ], + "responses": { + "200": { + "description": "All available navigations", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NavigationRouteResponse" + } + } + } } - } - }, - "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" - } + "security": [ + { + "ApiKey": [] + } + ] } }, - "securitySchemes": { - "ApiKey": { - "type": "apiKey", - "description": "Identifies the sales channel you want to access the API through", - "name": "sw-access-key", - "in": "header" - }, - "ContextToken": { - "type": "apiKey", - "description": "Identifies an anonymous or identified user session", - "name": "sw-context-token", - "in": "header" - } - } - }, - "security": [ - { - "ApiKey": [] - } - ], - "paths": { "/revocation-request-form": { "post": { "tags": [ @@ -17757,14 +18103,7 @@ "operationId": "sendRevocationRequestMail", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -17833,33 +18172,239 @@ ] } }, - "/landing-page/{landingPageId}": { + "/payment-method": { "post": { "tags": [ - "Content", + "Payment Method", "Endpoints supporting Criteria " ], - "summary": "Fetch a landing page with the resolved CMS page", - "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", - "operationId": "readLandingPage", + "summary": "Loads all available payment methods", + "operationId": "readPaymentMethod", "parameters": [ { - "name": "landingPageId", + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + }, + { + "properties": { + "onlyAvailable": { + "description": "List only available", + "type": "boolean" + } + }, + "type": "object" + } + ] + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/PaymentMethodListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "tags": [ + "Payment Method", + "Endpoints supporting Criteria " + ], + "summary": "Loads all available payment methods", + "operationId": "readPaymentMethodGet", + "parameters": [ + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PaymentMethodListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/sitemap": { + "get": { + "tags": [ + "Sitemap & Routes" + ], + "summary": "Fetch sitemaps", + "description": "Fetches a list of compressed sitemap files, which are often used by search engines.", + "operationId": "readSitemap", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "Returns a list of available sitemaps.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sitemap" + } + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/sitemap/{filePath}": { + "get": { + "tags": [ + "Sitemap & Routes" + ], + "summary": "Download sitemap file", + "description": "Downloads the sitemap file from the configured sitemap storage.", + "operationId": "getSitemapFile", + "parameters": [ + { + "name": "filePath", "in": "path", - "description": "Identifier of the landing page.", + "description": "The path to the sitemap file", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": ".*\\.(xml|gz)$" } }, { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "Returns the blob to download.", + "content": { + "application/xml": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/gzip": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/search-suggest": { + "post": { + "tags": [ + "Product" + ], + "summary": "Search for products (suggest)", + "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", + "operationId": "searchSuggest", + "parameters": [ + { + "name": "p", + "in": "query", + "description": "The page number to fetch.", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "integer" } }, { @@ -17875,31 +18420,34 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "required": [ + "search" + ], + "properties": { + "search": { + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", + "type": "string" + } + }, + "type": "object" }, { - "allOf": [ - { - "properties": { - "slots": { - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - } - ] + "$ref": "#/components/schemas/ProductListingCriteria" + }, + { + "$ref": "#/components/schemas/ProductListingFlags" } ] } @@ -17908,17 +18456,14 @@ }, "responses": { "200": { - "description": "The loaded landing page with cms page", + "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LandingPage" + "$ref": "#/components/schemas/ProductListingResult" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -17929,46 +18474,21 @@ }, "get": { "tags": [ - "Content", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch a landing page with the resolved CMS page", - "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", - "operationId": "readLandingPageGet", + "summary": "Search for products (suggest)", + "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", + "operationId": "searchSuggestGet", "parameters": [ { - "name": "landingPageId", - "in": "path", - "description": "Identifier of the landing page.", + "name": "search", + "in": "query", + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", "required": true, "schema": { "type": "string" } }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, @@ -18074,80 +18594,257 @@ } }, { - "name": "shipping-free", + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + { + "$ref": "#/components/parameters/noAggregations" + }, + { + "$ref": "#/components/parameters/onlyAggregations" + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/media": { + "post": { + "tags": [ + "Content" + ], + "summary": "Fetch and resolve Media Entities", + "description": "Fetch one or multiple Media Entities with the corresponding Identifier.", + "operationId": "readMedia", + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "ids": { + "description": "Identifier (UUID) of the media entity to be fetched.", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + }, + "type": "object", + "required": [ + "ids" + ] + } + } + } + }, + "responses": { + "200": { + "description": "The loaded MediaCollection containing the requested Media Entities.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Media" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/404" + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] + }, + "get": { + "tags": [ + "Content" + ], + "summary": "Fetch and resolve Media Entities", + "description": "Fetch one or multiple Media Entities with the corresponding Identifier.", + "operationId": "readMediaGet", + "parameters": [ + { + "name": "ids[]", + "in": "query", + "description": "Identifier (UUID) of the media entity to be fetched.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "The loaded MediaCollection containing the requested Media Entities.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Media" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/404" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/_info/openapi3.json": { + "get": { + "tags": [ + "System Info & Health Check" + ], + "summary": "Get OpenAPI Specification", + "description": "Get information about the store API in OpenAPI format.", + "operationId": "api-info", + "parameters": [ + { + "name": "type", "in": "query", - "description": "Filters products that are marked as shipping-free.", + "description": "Type of the api", "schema": { - "type": "boolean", - "default": false + "type": "string", + "enum": [ + "jsonapi", + "json" + ] } - }, + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OpenApi3" + } + } + } + }, + "/customer/wishlist/add/{productId}": { + "post": { + "tags": [ + "Wishlist" + ], + "summary": "Add a product to a wishlist", + "description": "Adds a product to a customers wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", + "operationId": "addProductOnWishlist", + "parameters": [ { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "name": "productId", + "in": "path", + "description": "Identifier of the product to be added.", + "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "The loaded landing page with cms page", + "description": "Returns a success response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LandingPage" + "$ref": "#/components/schemas/SuccessResponse" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/shipping-method": { + "/customer/wishlist": { "post": { "tags": [ - "Payment & Shipping", + "Wishlist", "Endpoints supporting Criteria " ], - "summary": "Fetch shipping methods", - "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (based on current cart and context)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\n**Example with associations:**\n```json\n{\n \"associations\": {\n \"prices\": {},\n \"deliveryTime\": {}\n }\n}\n```\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", - "operationId": "readShippingMethod", + "summary": "Fetch a wishlist", + "description": "Fetch a customer's wishlist. Products on the wishlist can be filtered using a criteria object.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", + "operationId": "readCustomerWishlist", "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -18163,12 +18860,7 @@ } }, { - "name": "onlyAvailable", - "in": "query", - "description": "List only available shipping methods. This filters shipping methods methods which can not be used in the actual context because of their availability rule.", - "schema": { - "type": "boolean" - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -18191,33 +18883,7 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "required": [ - "elements" - ], - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/WishlistLoadRouteResponse" } } } @@ -18225,119 +18891,34 @@ }, "security": [ { - "ApiKey": [] - } - ] - }, - "get": { - "tags": [ - "Payment & Shipping", - "Endpoints supporting Criteria " - ], - "summary": "Fetch shipping methods", - "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (graduated prices, quantity-based pricing)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", - "operationId": "readShippingMethodGet", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "$ref": "#/components/parameters/CompressedCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/ShippingMethodListResponse" - } - }, - "security": [ - { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/handle-payment": { + "/customer/wishlist/merge": { "post": { "tags": [ - "Payment & Shipping" + "Wishlist" ], - "summary": "Initiate a payment for an order", - "description": "This generic endpoint is should be called to initiate a payment flow after an order has been created. The details of the payment flow can differ depending on the payment integration and might require calling additional operations or the setup of webhooks.\n\nThe endpoint internally calls the payment handler of the payment method currently set for the order.", - "operationId": "handlePaymentMethod", + "summary": "Create a wishlist for a customer", + "description": "Create a new wishlist for a logged in customer or extend the existing wishlist given a set of products.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * A customer can only have a single wishlist.\n * The wishlist feature has to be activated.", + "operationId": "mergeProductOnWishlist", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "required": [ - "orderId" - ], "properties": { - "orderId": { - "description": "Identifier of an order", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "finishUrl": { - "description": "URL to which the client should be redirected after successful payment", - "type": "string" - }, - "errorUrl": { - "description": "URL to which the client should be redirected after erroneous payment", - "type": "string" + "productIds": { + "description": "List product id", + "type": "array", + "items": { + "description": "product id", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } }, "type": "object" @@ -18347,19 +18928,11 @@ }, "responses": { "200": { - "description": "Redirect to external payment provider", + "description": "Returns a success response.", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "type": "string" - } - }, - "required": [ - "redirectUrl" - ] + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -18367,60 +18940,54 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } - ] - }, - "get": { + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] + } + }, + "/customer/wishlist/delete/{productId}": { + "delete": { "tags": [ - "Payment & Shipping" + "Wishlist" ], - "summary": "Initiate a payment for an order", - "description": "This generic endpoint is should be called to initiate a payment flow after an order has been created. The details of the payment flow can differ depending on the payment integration and might require calling additional operations or the setup of webhooks.\n\nThe endpoint internally calls the payment handler of the payment method currently set for the order. Please prefer the POST version of this endpoint.", - "operationId": "handlePaymentMethodGet", + "summary": "Remove a product from a wishlist", + "description": "Removes a product from a customer's wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", + "operationId": "deleteProductOnWishlist", "parameters": [ { - "name": "orderId", - "in": "query", + "name": "productId", + "in": "path", + "description": "The identifier of the product to be removed from the wishlist.", "required": true, - "description": "Identifier of an order", "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } - }, - { - "name": "finishUrl", - "in": "query", - "description": "URL to which the client should be redirected after successful payment", - "schema": { - "type": "string" - } - }, - { - "name": "errorUrl", - "in": "query", - "description": "URL to which the client should be redirected after erroneous payment", - "schema": { - "type": "string" - } } ], "responses": { "200": { - "description": "Redirect to external payment provider", + "description": "Returns a success response indicating a successful removal.", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "type": "string" - } - }, - "required": [ - "redirectUrl" - ] + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + }, + "404": { + "description": "The removal of the product failed. Probably because the product could not be found on the wishlist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" } } } @@ -18428,39 +18995,22 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/search-suggest": { + "/category": { "post": { "tags": [ - "Product" + "Category", + "Endpoints supporting Criteria " ], - "summary": "Search for products (suggest)", - "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", - "operationId": "searchSuggest", + "summary": "Fetch a list of categories", + "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategoryList", "parameters": [ - { - "name": "p", - "in": "query", - "description": "The page number to fetch.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -18474,31 +19024,19 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "required": [ - "search" - ], - "properties": { - "search": { - "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" + "$ref": "#/components/schemas/Criteria" } ] } @@ -18507,14 +19045,7 @@ }, "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - } + "$ref": "#/components/responses/CategoryListResponse" } }, "security": [ @@ -18525,42 +19056,18 @@ }, "get": { "tags": [ - "Product" + "Category", + "Endpoints supporting Criteria " ], - "summary": "Search for products (suggest)", - "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", - "operationId": "searchSuggestGet", + "summary": "Fetch a list of categories", + "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategoryListGet", "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "search", - "in": "query", - "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", - "required": true, - "schema": { - "type": "string" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } + "$ref": "#/components/parameters/criteriaLimit" }, { "$ref": "#/components/parameters/criteriaTerm" @@ -18602,107 +19109,15 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "name": "order", - "in": "query", - "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.", - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", - "schema": { - "type": "integer" - } - }, - { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - { - "$ref": "#/components/parameters/noAggregations" + "$ref": "#/components/parameters/CompressedCriteria" }, { - "$ref": "#/components/parameters/onlyAggregations" - } - ], - "responses": { - "200": { - "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - } + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CategoryListResponse" } }, "security": [ @@ -18712,24 +19127,23 @@ ] } }, - "/country": { + "/category/{navigationId}": { "post": { "tags": [ - "System & Context", + "Category", "Endpoints supporting Criteria " ], - "summary": "Fetch countries", - "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", - "operationId": "readCountry", + "summary": "Fetch a single category", + "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategory", "parameters": [ { - "name": "sw-language-id", + "name": "sw-include-seo-urls", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean" } }, { @@ -18745,16 +19159,36 @@ ], "default": "1" } + }, + { + "name": "navigationId", + "in": "path", + "description": "Identifier of the category to be fetched", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "slots", + "in": "query", + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "$ref": "#/components/schemas/ProductListingCriteria" } ] } @@ -18763,7 +19197,14 @@ }, "responses": { "200": { - "$ref": "#/components/responses/CountryListResponse" + "description": "The loaded category with cms page", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Category" + } + } + } } }, "security": [ @@ -18774,28 +19215,51 @@ }, "get": { "tags": [ - "System & Context", + "Category", "Endpoints supporting Criteria " ], - "summary": "Fetch countries", - "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", - "operationId": "readCountryGet", + "summary": "Fetch a single category", + "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategoryGet", "parameters": [ { - "name": "sw-language-id", + "name": "sw-include-seo-urls", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "navigationId", + "in": "path", + "description": "Identifier of the category to be fetched", + "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, + { + "name": "slots", + "in": "query", + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", + "schema": { + "type": "string" + } + }, { "$ref": "#/components/parameters/criteriaPage" }, { - "$ref": "#/components/parameters/criteriaLimit" + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } }, { "$ref": "#/components/parameters/criteriaTerm" @@ -18837,221 +19301,104 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/CountryListResponse" - } - }, - "security": [ + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, { - "ApiKey": [] - } - ] - } - }, - "/newsletter/confirm": { - "post": { - "tags": [ - "Newsletter" - ], - "summary": "Confirm a newsletter registration", - "description": "You have to use the hash from the link sent out via email to confirm the user registration.", - "operationId": "confirmNewsletter", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "hash", - "em" - ], - "properties": { - "hash": { - "description": "Hash parameter from link the in the confirmation mail", - "type": "string" - }, - "em": { - "description": "Email hash parameter from the link in the confirmation mail", - "type": "string" - } - }, - "type": "object" - } + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 } - } - }, - "responses": { - "200": { - "description": "The newsletter confirmation was successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" } }, - "400": { - "$ref": "#/components/responses/400" - } - }, - "security": [ { - "ApiKey": [] - } - ] - } - }, - "/newsletter/subscribe": { - "post": { - "tags": [ - "Newsletter" - ], - "summary": "Create or remove a newsletter subscription", - "description": "This route is used to create/remove/confirm a newsletter subscription.\n\nThe `option` property controls what should happen:\n* `direct`: The subscription is directly active and does not need a confirmation.\n* `subscribe`: An email will be send to the provided email address containing a link to the /newsletter/confirm route.\nThe subscription is only successful, if the /newsletter/confirm route is called with the generated hashes.\n* `unsubscribe`: The email address will be removed from the newsletter subscriptions.\n* `confirmSubscribe`: Confirms the newsletter subscription for the provided email address.", - "operationId": "subscribeToNewsletter", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "email", - "option", - "storefrontUrl" - ], - "properties": { - "email": { - "description": "Email address that will receive the confirmation and the newsletter.", - "type": "string" - }, - "option": { - "description": "Defines what should be done.", - "type": "string" - }, - "storefrontUrl": { - "description": "Url of the storefront of the shop. This will be used for generating the link to the /newsletter/confirm inside the confirm email.", - "type": "string" - }, - "salutationId": { - "description": "Identifier of the salutation.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "description": "First name", - "type": "string" - }, - "lastName": { - "description": "Last name", - "type": "string" - }, - "street": { - "description": "Street", - "type": "string" - }, - "city": { - "description": "City", - "type": "string" - }, - "zipCode": { - "description": "Zip code", - "type": "string" - }, - "languageId": { - "description": "Identifier of the language.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customFields": { - "description": "Custom field data that should be added to the subscription.", - "type": "string" - } - }, - "type": "object" - } + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "required": [ - "success", - "status" - ], - "properties": { - "success": { - "description": "Indicates whether the subscribe request was successful.", - "type": "boolean" - }, - "status": { - "$ref": "#/components/schemas/NewsletterStatus" - } - }, - "type": "object" - } - } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" } }, - "400": { - "$ref": "#/components/responses/400" - } - }, - "security": [ { - "ApiKey": [] - } - ] - } - }, - "/newsletter/unsubscribe": { - "post": { - "tags": [ - "Newsletter" - ], - "summary": "Remove a newsletter subscription", - "description": "Removes a newsletter recipient from the mailing lists.", - "operationId": "unsubscribeToNewsletter", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "email" - ], - "properties": { - "email": { - "description": "Email address that should be removed from the mailing lists.", - "type": "string" - } + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" }, - "type": "object" - } + { + "type": "null" + } + ] } + }, + { + "$ref": "#/components/parameters/swLanguageId" } - }, + ], "responses": { "200": { - "description": "Unsubscribing was successful.", + "description": "The loaded category with cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "$ref": "#/components/schemas/Category" } } } - }, - "400": { - "$ref": "#/components/responses/400" } }, "security": [ @@ -19061,26 +19408,16 @@ ] } }, - "/category": { + "/seo-url": { "post": { "tags": [ - "Category", + "Sitemap & Routes", "Endpoints supporting Criteria " ], - "summary": "Fetch a list of categories", - "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategoryList", + "summary": "Fetch SEO routes", + "description": "Perform a filtered search for seo urls.", + "operationId": "readSeoUrl", "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -19094,6 +19431,9 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -19112,7 +19452,10 @@ }, "responses": { "200": { - "$ref": "#/components/responses/CategoryListResponse" + "$ref": "#/components/responses/SeoUrlListResponse" + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -19123,23 +19466,13 @@ }, "get": { "tags": [ - "Category", + "Sitemap & Routes", "Endpoints supporting Criteria " ], - "summary": "Fetch a list of categories", - "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategoryListGet", + "summary": "Fetch SEO routes", + "description": "Perform a filtered search for seo urls.", + "operationId": "readSeoUrlGet", "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, @@ -19187,11 +19520,17 @@ }, { "$ref": "#/components/parameters/CompressedCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "$ref": "#/components/responses/CategoryListResponse" + "$ref": "#/components/responses/SeoUrlListResponse" + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -19201,33 +19540,40 @@ ] } }, - "/category/{navigationId}": { + "/product-listing/{categoryId}": { "post": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch a single category", - "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategory", + "summary": "Fetch a product listing by category", + "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductListing", "parameters": [ { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "name": "categoryId", + "in": "path", + "description": "Identifier of a category.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "The page number to fetch.", "required": false, "schema": { - "type": "boolean" + "type": "integer" } }, { - "name": "sw-language-id", + "name": "sw-include-seo-urls", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "Determines if the response must contain a SeoUrl entity for a product entity", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean" } }, { @@ -19245,22 +19591,7 @@ } }, { - "name": "navigationId", - "in": "path", - "description": "Identifier of the category to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "slots", - "in": "query", - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -19270,6 +19601,9 @@ "allOf": [ { "$ref": "#/components/schemas/ProductListingCriteria" + }, + { + "$ref": "#/components/schemas/ProductListingFlags" } ] } @@ -19278,11 +19612,11 @@ }, "responses": { "200": { - "description": "The loaded category with cms page", + "description": "Returns a product listing containing all products and additional fields to display a listing.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/ProductListingResult" } } } @@ -19296,48 +19630,28 @@ }, "get": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch a single category", - "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategoryGet", + "summary": "Fetch a product listing by category", + "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductListingGet", "parameters": [ { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "navigationId", + "name": "categoryId", "in": "path", - "description": "Identifier of the category to be fetched", + "description": "Identifier of a category.", "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } }, - { - "name": "slots", - "in": "query", - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Determines if the response must contain a SeoUrl entity for a product entity", + "required": false, "schema": { - "type": "string" + "type": "boolean" } }, { @@ -19459,278 +19773,46 @@ "description": "Filters products by their properties. List of property identifiers separated by a `|`.", "schema": { "type": "string" - } - }, - { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - } - ], - "responses": { - "200": { - "description": "The loaded category with cms page", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Category" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/sitemap": { - "get": { - "tags": [ - "Sitemap & Routes" - ], - "summary": "Fetch sitemaps", - "description": "Fetches a list of compressed sitemap files, which are often used by search engines.", - "operationId": "readSitemap", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Returns a list of available sitemaps.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sitemap" - } - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/sitemap/{filePath}": { - "get": { - "tags": [ - "Sitemap & Routes" - ], - "summary": "Download sitemap file", - "description": "Downloads the sitemap file from the configured sitemap storage.", - "operationId": "getSitemapFile", - "parameters": [ - { - "name": "filePath", - "in": "path", - "description": "The path to the sitemap file", - "required": true, - "schema": { - "type": "string", - "pattern": ".*\\.(xml|gz)$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Returns the blob to download.", - "content": { - "application/xml": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/gzip": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/seo-url": { - "post": { - "tags": [ - "Sitemap & Routes", - "Endpoints supporting Criteria " - ], - "summary": "Fetch SEO routes", - "description": "Perform a filtered search for seo urls.", - "operationId": "readSeoUrl", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/SeoUrlListResponse" - }, - "404": { - "$ref": "#/components/responses/404" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "get": { - "tags": [ - "Sitemap & Routes", - "Endpoints supporting Criteria " - ], - "summary": "Fetch SEO routes", - "description": "Perform a filtered search for seo urls.", - "operationId": "readSeoUrlGet", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" + } }, { - "$ref": "#/components/parameters/criteriaGrouping" + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } }, { - "$ref": "#/components/parameters/criteriaTotalCountMode" + "$ref": "#/components/parameters/noAggregations" }, { - "$ref": "#/components/parameters/criteriaIncludes" + "$ref": "#/components/parameters/onlyAggregations" }, { - "$ref": "#/components/parameters/criteriaExcludes" + "$ref": "#/components/parameters/CompressedCriteria" }, { - "$ref": "#/components/parameters/CompressedCriteria" + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "$ref": "#/components/responses/SeoUrlListResponse" - }, - "404": { - "$ref": "#/components/responses/404" + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } } }, "security": [ @@ -19740,122 +19822,57 @@ ] } }, - "/navigation/{activeId}/{rootId}": { + "/app-system/{name}/generate-token": { "post": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "App system" ], - "summary": "Fetch a navigation menu", - "description": "This endpoint returns categories that can be used as a page navigation. You can either return them as a tree or as a flat list. You can also control the depth of the tree.\n\n Instead of passing uuids, you can also use one of the following aliases for the activeId and rootId parameters to get the respective navigations of your sales channel.\n\n * main-navigation\n * service-navigation\n * footer-navigation", - "operationId": "readNavigation", + "summary": "Generate JWT token for app system backend", + "description": "Generate JWT token for authenticated communication with the app server", + "operationId": "generateJWTAppSystemAppServer", "parameters": [ { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - }, - { - "name": "activeId", "in": "path", - "description": "Identifier of the active category in the navigation tree (if not used, just set to the same as rootId).", + "name": "name", "required": true, + "description": "Name of the app", "schema": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] + "type": "string" } }, { - "name": "rootId", - "in": "path", - "description": "Identifier of the root category for your desired navigation tree. You can use it to fetch sub-trees of your navigation tree.", - "required": true, - "schema": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/NoneFieldsCriteria" - }, - { - "properties": { - "depth": { - "description": "Determines the depth of fetched navigation levels.", - "type": "integer", - "format": "int32" - }, - "buildTree": { - "description": "Return the categories as a tree or as a flat list.", - "type": "array", - "items": { - "type": "object" - } - } - }, - "type": "object" - } - ] + "type": "object" } } } }, "responses": { "200": { - "description": "All available navigations", + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NavigationRouteResponse" + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "expires": { + "type": "string", + "format": "date-time" + }, + "shopId": { + "type": "string" + } + } } } } @@ -19866,93 +19883,70 @@ "ApiKey": [] } ] - }, - "get": { + } + }, + "/country": { + "post": { "tags": [ - "Category", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch a navigation menu", - "description": "This endpoint returns categories that can be used as a page navigation. You can either return them as a tree or as a flat list. You can also control the depth of the tree.\n\n Instead of passing uuids, you can also use one of the following aliases for the activeId and rootId parameters to get the respective navigations of your sales channel.\n\n * main-navigation\n * service-navigation\n * footer-navigation", - "operationId": "readNavigationGet", + "summary": "Fetch countries", + "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", + "operationId": "readCountry", "parameters": [ { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "sw-language-id", + "name": "sw-include-search-info", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", "required": false, "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "activeId", - "in": "path", - "description": "Identifier of the active category in the navigation tree (if not used, just set to the same as rootId).", - "required": true, - "schema": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] - } - }, - { - "name": "rootId", - "in": "path", - "description": "Identifier of the root category for your desired navigation tree. You can use it to fetch sub-trees of your navigation tree.", - "required": true, - "schema": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] - } - }, - { - "name": "depth", - "in": "query", - "description": "Determines the depth of fetched navigation levels.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" + "enum": [ + "0", + "1" + ], + "default": "1" } }, { - "name": "buildTree", - "in": "query", - "description": "Return the categories as a tree or as a flat list.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "object" + "$ref": "#/components/parameters/swLanguageId" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] } - }, - "style": "deepObject", - "explode": true - }, + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/CountryListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "tags": [ + "System & Context", + "Endpoints supporting Criteria " + ], + "summary": "Fetch countries", + "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", + "operationId": "readCountryGet", + "parameters": [ { "$ref": "#/components/parameters/criteriaPage" }, @@ -19983,6 +19977,9 @@ { "$ref": "#/components/parameters/criteriaAggregations" }, + { + "$ref": "#/components/parameters/criteriaFields" + }, { "$ref": "#/components/parameters/criteriaGrouping" }, @@ -19996,19 +19993,15 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" + "$ref": "#/components/parameters/CompressedCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "All available navigations", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NavigationRouteResponse" - } - } - } + "$ref": "#/components/responses/CountryListResponse" } }, "security": [ @@ -20018,47 +20011,88 @@ ] } }, - "/customer-group-registration/config/{customerGroupId}": { - "get": { + "/contact-form": { + "post": { "tags": [ - "Login & Registration" + "Content" ], - "summary": "Fetch registration settings for customer group", - "operationId": "getCustomerGroupRegistrationInfo", + "summary": "Submit a contact form message", + "description": "Used for submitting contact forms. Be aware that there can be more required fields, depending on the system settings.", + "operationId": "sendContactMail", "parameters": [ { - "name": "customerGroupId", - "in": "path", - "description": "Customer group id", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/swLanguageId" } ], - "responses": { - "200": { - "description": "Returns the customer group including registration settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomerGroup" - } + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "email", + "subject", + "comment" + ], + "properties": { + "salutationId": { + "description": "Identifier of the salutation. Use `/api/salutation` endpoint to fetch possible values.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "Firstname. This field may be required depending on the system settings.", + "type": "string" + }, + "lastName": { + "description": "Lastname. This field may be required depending on the system settings.", + "type": "string" + }, + "email": { + "description": "Email address", + "type": "string" + }, + "phone": { + "description": "Phone. This field may be required depending on the system settings.", + "type": "string" + }, + "subject": { + "description": "The subject of the contact form.", + "type": "string" + }, + "comment": { + "description": "The message of the contact form", + "type": "string" + }, + "navigationId": { + "description": "Identifier of the navigation page. Can be used to override the configuration.\nTake a look at the settings of a category containing a concat form in the administration.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "slotId": { + "description": "Identifier of the cms element", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageType": { + "description": "Type of the content management page", + "type": "string" + }, + "entityName": { + "description": "Entity name for slot config", + "type": "string" + } + }, + "type": "object" } } } }, + "responses": { + "200": { + "description": "Message sent successful." + } + }, "security": [ { "ApiKey": [] @@ -20066,24 +20100,31 @@ ] } }, - "/language": { + "/search": { "post": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch languages", - "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", - "operationId": "readLanguages", + "summary": "Search for products", + "description": "Performs a search for products which can be used to display a product listing.", + "operationId": "searchPage", "parameters": [ { - "name": "sw-language-id", + "name": "p", + "in": "query", + "description": "The page number to fetch.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "name": "sw-include-seo-urls", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean" } }, { @@ -20099,16 +20140,30 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "properties": { + "search": { + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", + "type": "string" + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/ProductListingCriteria" + }, + { + "$ref": "#/components/schemas/ProductListingFlags" } ] } @@ -20117,7 +20172,14 @@ }, "responses": { "200": { - "$ref": "#/components/responses/LanguageListResponse" + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } } }, "security": [ @@ -20128,28 +20190,41 @@ }, "get": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch languages", - "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", - "operationId": "readLanguagesGet", + "summary": "Search for products", + "description": "Performs a search for products which can be used to display a product listing.", + "operationId": "searchPageGet", "parameters": [ { - "name": "sw-language-id", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "name": "sw-include-seo-urls", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean" + } + }, + { + "name": "search", + "in": "query", + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", + "required": false, + "schema": { + "type": "string" } }, { "$ref": "#/components/parameters/criteriaPage" }, { - "$ref": "#/components/parameters/criteriaLimit" + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } }, { "$ref": "#/components/parameters/criteriaTerm" @@ -20161,42 +20236,140 @@ "$ref": "#/components/parameters/criteriaIds" }, { - "$ref": "#/components/parameters/criteriaQuery" + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } }, { - "$ref": "#/components/parameters/criteriaAssociations" + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/criteriaPostFilter" + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } }, { - "$ref": "#/components/parameters/criteriaSort" + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } }, { - "$ref": "#/components/parameters/criteriaAggregations" + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/criteriaFields" + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } }, { - "$ref": "#/components/parameters/criteriaGrouping" + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/criteriaTotalCountMode" + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } }, { - "$ref": "#/components/parameters/criteriaIncludes" + "$ref": "#/components/parameters/noAggregations" }, { - "$ref": "#/components/parameters/criteriaExcludes" + "$ref": "#/components/parameters/onlyAggregations" }, { - "$ref": "#/components/parameters/CompressedCriteria" + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "$ref": "#/components/responses/LanguageListResponse" + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } } }, "security": [ @@ -20262,6 +20435,9 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ] } @@ -20383,6 +20559,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -20440,6 +20621,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -20487,6 +20673,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -20544,6 +20735,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -20591,6 +20787,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -20659,6 +20860,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -20717,6 +20923,9 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ] }, @@ -20790,6 +20999,9 @@ "schema": { "type": "string" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -20901,6 +21113,9 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ] } @@ -20956,6 +21171,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -21015,6 +21235,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -21039,6 +21264,11 @@ "ApiKey": [], "ContextToken": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -21089,6 +21319,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -21252,6 +21487,11 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, @@ -21306,50 +21546,173 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] + } + }, + "/account/recovery-password": { + "post": { + "tags": [ + "Profile" + ], + "summary": "Send a password recovery mail", + "description": "This operation is Step 1 of the password reset flow. Make sure to implement Step 2 \"Reset password with recovery credentials\" in order to allow for the complete flow in your application. Sends a recovery mail containing a link with credentials that allows a customer to reset their password.", + "operationId": "sendRecoveryMail", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "email", + "storefrontUrl" + ], + "properties": { + "email": { + "description": "E-Mail address to identify the customer", + "type": "string" + }, + "storefrontUrl": { + "description": "URL of the storefront to use for the generated reset link. It has to be a domain that is configured in the sales channel domain settings.", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "If email corresponds to an existing customer, a mail will be sent out to that customer containing a link assembled using the following schema:\n\nReturns a success indicating a successful initialisation of the reset flow.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] + } + }, + "/account/address/default-shipping/{addressId}": { + "patch": { + "tags": [ + "Address" + ], + "summary": "Change a customer's default shipping address", + "description": "Updates the default (preselected) shipping addresses of a customer.", + "operationId": "defaultShippingAddress", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "Address ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/account/address/default-billing/{addressId}": { + "patch": { + "tags": [ + "Address" + ], + "summary": "Change a customer's default billing address", + "description": "Updates the default (preselected) billing addresses of a customer.", + "operationId": "defaultBillingAddress", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "Address ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] } ] } }, - "/account/recovery-password": { + "/account/address": { "post": { "tags": [ - "Profile" + "Address" ], - "summary": "Send a password recovery mail", - "description": "This operation is Step 1 of the password reset flow. Make sure to implement Step 2 \"Reset password with recovery credentials\" in order to allow for the complete flow in your application. Sends a recovery mail containing a link with credentials that allows a customer to reset their password.", - "operationId": "sendRecoveryMail", + "summary": "Create a new address for a customer", + "description": "Creates a new address for a customer.", + "operationId": "createCustomerAddress", "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "required": [ - "email", - "storefrontUrl" - ], - "properties": { - "email": { - "description": "E-Mail address to identify the customer", - "type": "string" - }, - "storefrontUrl": { - "description": "URL of the storefront to use for the generated reset link. It has to be a domain that is configured in the sales channel domain settings.", - "type": "string" - } - }, - "type": "object" + "$ref": "#/components/schemas/CustomerAddressBody" } } } }, "responses": { "200": { - "description": "If email corresponds to an existing customer, a mail will be sent out to that customer containing a link assembled using the following schema:\n\nReturns a success indicating a successful initialisation of the reset flow.", + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "allOf": [ + { + "$ref": "#/components/schemas/CustomerAddress" + }, + { + "$ref": "#/components/schemas/CustomerAddressRead" + } + ] } } } @@ -21357,106 +21720,260 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" } ] } }, - "/account/address/default-shipping/{addressId}": { - "patch": { + "/shipping-cost/product/{productId}": { + "get": { "tags": [ - "Address" + "Cart", + "Endpoints supporting Criteria " ], - "summary": "Change a customer's default shipping address", - "description": "Updates the default (preselected) shipping addresses of a customer.", - "operationId": "defaultShippingAddress", + "summary": "Calculate shipping costs for a product", + "description": "Calculates shipping costs for a single product using criteria-based shipping method selection.", + "operationId": "readShippingCostByProduct", "parameters": [ { - "name": "addressId", + "name": "productId", "in": "path", - "description": "Address ID", + "description": "The product identifier.", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { "200": { - "description": "" + "description": "The calculated shipping costs.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "shippingCost", + "deliveryDate", + "shippingMethod" + ], + "properties": { + "shippingCost": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + } + } + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/account/address/default-billing/{addressId}": { - "patch": { + "/shipping-cost/cart": { + "get": { "tags": [ - "Address" + "Cart" ], - "summary": "Change a customer's default billing address", - "description": "Updates the default (preselected) billing addresses of a customer.", - "operationId": "defaultBillingAddress", + "summary": "Calculate shipping costs for the cart", + "description": "Calculates shipping costs for the current cart across available shipping methods.", + "operationId": "readShippingCostsByCart", "parameters": [ { - "name": "addressId", - "in": "path", - "description": "Address ID", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "responses": { + "200": { + "description": "The calculated shipping costs.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "shippingCost", + "deliveryDate", + "shippingMethod" + ], + "properties": { + "shippingCost": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + } + } + } + } + } } } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/checkout/cart": { + "get": { + "tags": [ + "Cart" + ], + "summary": "Fetch or create a cart", + "description": "Used to fetch the current cart or for creating a new one.", + "operationId": "readCart", + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ], "responses": { "200": { - "description": "" + "description": "Cart", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Cart" + } + } + } } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - } - }, - "/account/address": { - "post": { + }, + "delete": { "tags": [ - "Address" + "Cart" ], - "summary": "Create a new address for a customer", - "description": "Creates a new address for a customer.", - "operationId": "createCustomerAddress", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomerAddressBody" - } - } - } - }, + "summary": "Delete a cart", + "description": "This route deletes the cart of the customer.", + "operationId": "deleteCart", "responses": { - "200": { - "description": "", + "204": { + "description": "Successfully deleted the cart", "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/CustomerAddress" - }, - { - "$ref": "#/components/schemas/CustomerAddressRead" - } - ] + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -21464,64 +21981,46 @@ }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/salutation": { + "/checkout/cart/line-item": { "post": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Cart" ], - "summary": "Fetch salutations", - "description": "Fetches salutations with a criteria obj.", - "operationId": "readSalutation", + "summary": "Add items to the cart", + "description": "This route adds items to the cart. An item can be a product or promotion for example. They are referenced by the `referencedId`-parameter.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#adding-new-items-to-the-cart)", + "operationId": "addLineItem", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "required": false, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] + "$ref": "#/components/schemas/CartItems" } } } }, "responses": { "200": { - "$ref": "#/components/responses/SalutationListResponse" + "description": "The updated cart.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Cart" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ @@ -21530,77 +22029,39 @@ } ] }, - "get": { + "delete": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Cart" ], - "summary": "Fetch salutations", - "description": "Perform a filtered search for salutations.", - "operationId": "readSalutationGet", + "summary": "Remove items from the cart", + "description": "DEPRECATED: use removeLineItem instead. This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", + "operationId": "removeLineItemDeprecated", + "deprecated": true, "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "ids", + "in": "query", + "description": "A list of product identifiers.", + "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { "200": { - "$ref": "#/components/responses/SalutationListResponse" + "description": "The updated cart.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Cart" + } + } + } } }, "security": [ @@ -21608,248 +22069,147 @@ "ApiKey": [] } ] - } - }, - "/document/download/{documentId}/{deepLinkCode}": { - "post": { + }, + "patch": { "tags": [ - "Document" + "Cart" ], - "summary": "Download generated document", - "description": "Returns generated document to download.", - "operationId": "download", + "summary": "Update items in the cart", + "description": "This route updates items in the cart. A typical example is updating the quantity of an item.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#updating-items-in-the-cart)", + "operationId": "updateLineItem", "parameters": [ { - "name": "documentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "deepLinkCode", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "required": false, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "zipcode": { - "type": "string" - } - }, - "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + "$ref": "#/components/schemas/CartItemsUpdate" } } } }, "responses": { "200": { - "description": "Success", - "content": { - "application/pdf": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/html": { - "schema": { - "type": "string" - } - }, - "application/xml": { + "description": "The updated cart.", + "content": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/Cart" } } } - }, - "204": { - "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." - }, - "403": { - "description": "Forbidden." - }, - "404": { - "description": "Document not found." - }, - "406": { - "description": "The requested mime type is not supported." } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - }, - "get": { + } + }, + "/checkout/cart/line-item/delete": { + "post": { "tags": [ - "Document" + "Cart" ], - "summary": "Download generated document", - "description": "Returns generated document to download.", - "operationId": "downloadGet", + "summary": "Remove items from the cart", + "description": "This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", + "operationId": "removeLineItem", "parameters": [ { - "name": "documentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "deepLinkCode", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "required": false, - "in": "query", - "schema": { - "type": "string" - }, - "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." - }, - { - "name": "zipcode", - "required": false, - "in": "query", - "schema": { - "type": "string" - }, - "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." - }, - { - "name": "sw-language-id", - "in": "header", - "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/swLanguageId" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "ids" + ], + "properties": { + "ids": { + "description": "A list of product identifiers.", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + }, + "type": "object" + } + } + } + }, "responses": { "200": { - "description": "Success", + "description": "The updated cart.", "content": { - "application/pdf": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/html": { - "schema": { - "type": "string" - } - }, - "application/xml": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/Cart" } } } - }, - "204": { - "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." - }, - "403": { - "description": "Forbidden." - }, - "404": { - "description": "Document not found." - }, - "406": { - "description": "The requested mime type is not supported." } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/product/{productId}/cross-selling": { + "/checkout/order": { "post": { "tags": [ - "Product" + "Order" ], - "summary": "Fetch cross-selling groups of a product", - "description": "This route is used to load the cross sellings for a product. A product has several cross selling definitions in which several products are linked. The route returns the cross sellings together with the linked products", - "operationId": "readProductCrossSellings", + "summary": "Create an order from a cart", + "description": "Creates a new order from the current cart and deletes the cart.\n\nIf you are using the [prepared payment flow](https://developer.shopware.com/docs/concepts/commerce/checkout-concept/payments#2.1-prepare-payment-optional), this endpoint also receives additional transaction details. The exact name of the parameters depends on the implementation of the corresponding *payment handler*.", + "operationId": "createOrder", "parameters": [ { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "required": false, - "schema": { - "type": "boolean" - } + "$ref": "#/components/parameters/swLanguageId" } ], + "requestBody": { + "description": "Contains additional metadata which is stored together with the order. It can also contain payment transaction details.", + "content": { + "application/json": { + "schema": { + "properties": { + "customerComment": { + "description": "Adds a comment from the customer to the order.", + "type": "string" + }, + "affiliateCode": { + "description": "The affiliate code can be used to track which referrer the customer came through. An example could be `Price-comparison-company-XY`.", + "type": "string" + }, + "campaignCode": { + "description": "The campaign code is used to track which action the customer came from. An example could be `Summer-Deals`", + "type": "string" + } + }, + "type": "object" + } + } + } + }, "responses": { "200": { - "description": "Found cross sellings", + "description": "Order", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CrossSellingElementCollection" + "$ref": "#/components/schemas/Order" } } } @@ -21857,54 +22217,85 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] - }, + } + }, + "/checkout/gateway": { "get": { "tags": [ - "Product" - ], - "summary": "Fetch cross-selling groups of a product", - "description": "This route is used to load the cross sellings for a product. A product has several cross selling definitions in which several products are linked. The route returns the cross sellings together with the linked products", - "operationId": "readProductCrossSellingsGet", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "required": false, - "schema": { - "type": "boolean" - } - } + "Gateway" ], + "summary": "Call the checkout gateway", + "description": "Call the checkout gateway, which is used to manipulate certain aspects of the checkout process (e.g. available payment methods).", + "operationId": "checkoutGateway", "responses": { "200": { - "description": "Found cross sellings", + "description": "Checkout gateway response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CrossSellingElementCollection" + "properties": { + "paymentMethods": { + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } + } + }, + "type": "object" + }, + "shippingMethods": { + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethod" + } + } + }, + "type": "object" + }, + "errors": { + "type": "array", + "items": { + "properties": { + "code": { + "description": "Error code", + "type": "string" + }, + "detail": { + "description": "Error detail", + "type": "string" + }, + "blocking": { + "description": "If the error is blocking", + "type": "boolean" + } + } + } + } + } } } } @@ -21914,47 +22305,33 @@ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] } }, - "/product/{productId}": { + "/country-state/{countryId}": { "post": { "tags": [ - "Product" + "System & Context", + "Endpoints supporting Criteria " ], - "summary": "Fetch a single product", - "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductDetail", + "summary": "Fetch the states of a country", + "description": "Perform a filtered search the states for a country", + "operationId": "readCountryState", "parameters": [ { - "name": "productId", + "name": "countryId", "in": "path", - "description": "Product ID", "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$'" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, - { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -21970,22 +22347,7 @@ } }, { - "description": "Instructs Shopware to skip loading the configurator data", - "in": "query", - "name": "skipConfigurator", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "Instructs Shopware to skip loading the CMS page data", - "in": "query", - "name": "skipCmsPage", - "required": false, - "schema": { - "type": "boolean" - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -21995,7 +22357,7 @@ "schema": { "allOf": [ { - "$ref": "#/components/schemas/NoneFieldsCriteria" + "$ref": "#/components/schemas/Criteria" } ] } @@ -22004,14 +22366,7 @@ }, "responses": { "200": { - "description": "Product information along with variant groups and options", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProductDetailResponse" - } - } - } + "$ref": "#/components/responses/CountryStateListResponse" } }, "security": [ @@ -22022,59 +22377,22 @@ }, "get": { "tags": [ - "Product" + "System & Context", + "Endpoints supporting Criteria " ], - "summary": "Fetch a single product", - "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductDetailGet", + "summary": "Fetch the states of a country", + "description": "Perform a filtered search the states for a country", + "operationId": "readCountryStateGet", "parameters": [ { - "name": "productId", + "name": "countryId", "in": "path", - "description": "Product ID", "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$'" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, - { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "Instructs Shopware to skip loading the configurator data", - "in": "query", - "name": "skipConfigurator", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "Instructs Shopware to skip loading the CMS page data", - "in": "query", - "name": "skipCmsPage", - "required": false, - "schema": { - "type": "boolean" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, @@ -22105,29 +22423,160 @@ { "$ref": "#/components/parameters/criteriaAggregations" }, + { + "$ref": "#/components/parameters/criteriaFields" + }, { "$ref": "#/components/parameters/criteriaGrouping" }, { - "$ref": "#/components/parameters/criteriaTotalCountMode" + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CountryStateListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/handle-payment": { + "post": { + "tags": [ + "Payment & Shipping" + ], + "summary": "Initiate a payment for an order", + "description": "This generic endpoint is should be called to initiate a payment flow after an order has been created. The details of the payment flow can differ depending on the payment integration and might require calling additional operations or the setup of webhooks.\n\nThe endpoint internally calls the payment handler of the payment method currently set for the order.", + "operationId": "handlePaymentMethod", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "orderId" + ], + "properties": { + "orderId": { + "description": "Identifier of an order", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "finishUrl": { + "description": "URL to which the client should be redirected after successful payment", + "type": "string" + }, + "errorUrl": { + "description": "URL to which the client should be redirected after erroneous payment", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Redirect to external payment provider", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "type": "string" + } + }, + "required": [ + "redirectUrl" + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] + }, + "get": { + "tags": [ + "Payment & Shipping" + ], + "summary": "Initiate a payment for an order", + "description": "This generic endpoint is should be called to initiate a payment flow after an order has been created. The details of the payment flow can differ depending on the payment integration and might require calling additional operations or the setup of webhooks.\n\nThe endpoint internally calls the payment handler of the payment method currently set for the order. Please prefer the POST version of this endpoint.", + "operationId": "handlePaymentMethodGet", + "parameters": [ + { + "name": "orderId", + "in": "query", + "required": true, + "description": "Identifier of an order", + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } }, { - "$ref": "#/components/parameters/criteriaIncludes" + "name": "finishUrl", + "in": "query", + "description": "URL to which the client should be redirected after successful payment", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/criteriaExcludes" + "name": "errorUrl", + "in": "query", + "description": "URL to which the client should be redirected after erroneous payment", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "Product information along with variant groups and options", + "description": "Redirect to external payment provider", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductDetailResponse" + "type": "object", + "properties": { + "redirectUrl": { + "type": "string" + } + }, + "required": [ + "redirectUrl" + ] } } } @@ -22140,26 +22589,16 @@ ] } }, - "/product": { + "/currency": { "post": { "tags": [ - "Product", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch a list of products", - "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProduct", + "summary": "Fetch currencies", + "description": "Perform a filtered search for currencies.", + "operationId": "readCurrency", "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -22173,6 +22612,9 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -22182,7 +22624,7 @@ "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "$ref": "#/components/schemas/NoneFieldsCriteria" } ] } @@ -22191,7 +22633,7 @@ }, "responses": { "200": { - "$ref": "#/components/responses/ProductListResponse" + "$ref": "#/components/responses/CurrencyListResponse" } }, "security": [ @@ -22202,23 +22644,13 @@ }, "get": { "tags": [ - "Product", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch a list of products", - "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductGet", + "summary": "Fetch currencies", + "description": "Perform a filtered search for currencies.", + "operationId": "readCurrencyGet", "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, @@ -22249,9 +22681,6 @@ { "$ref": "#/components/parameters/criteriaAggregations" }, - { - "$ref": "#/components/parameters/criteriaFields" - }, { "$ref": "#/components/parameters/criteriaGrouping" }, @@ -22265,12 +22694,15 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedCriteria" + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "$ref": "#/components/responses/ProductListResponse" + "$ref": "#/components/responses/CurrencyListResponse" } }, "security": [ @@ -22280,35 +22712,104 @@ ] } }, - "/product/{productId}/reviews": { - "post": { + "/customer-group-registration/config/{customerGroupId}": { + "get": { "tags": [ - "Product", - "Endpoints supporting Criteria " + "Login & Registration" ], - "summary": "Fetch product reviews", - "description": "Perform a filtered search for product reviews.", - "operationId": "readProductReviews", + "summary": "Fetch registration settings for customer group", + "operationId": "getCustomerGroupRegistrationInfo", "parameters": [ { - "name": "productId", + "name": "customerGroupId", "in": "path", - "description": "Identifier of the product.", + "description": "Customer group id", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, + { + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "Returns the customer group including registration settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomerGroup" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/_info/routes": { + "get": { + "summary": "Get API routes", + "operationId": "getRoutes", + "tags": [ + "System Info & Health Check" + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "endpoints" + ], + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "object", + "required": [ + "methods", + "path" + ], + "properties": { + "methods": { + "type": "array", + "items": { + "type": "string" + } + }, + "path": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + }, + "/shipping-method": { + "post": { + "tags": [ + "Payment & Shipping", + "Endpoints supporting Criteria " + ], + "summary": "Fetch shipping methods", + "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (based on current cart and context)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\n**Example with associations:**\n```json\n{\n \"associations\": {\n \"prices\": {},\n \"deliveryTime\": {}\n }\n}\n```\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", + "operationId": "readShippingMethod", + "parameters": [ { "name": "sw-include-search-info", "in": "header", @@ -22322,6 +22823,17 @@ ], "default": "1" } + }, + { + "name": "onlyAvailable", + "in": "query", + "description": "List only available shipping methods. This filters shipping methods methods which can not be used in the actual context because of their availability rule.", + "schema": { + "type": "boolean" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -22340,17 +22852,28 @@ }, "responses": { "200": { - "description": "Entity search result containing product reviews", + "description": "", "content": { "application/json": { "schema": { "allOf": [ { + "required": [ + "elements" + ], "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/ProductReview" + "$ref": "#/components/schemas/ShippingMethod" } } }, @@ -22368,37 +22891,18 @@ "security": [ { "ApiKey": [] - } - ] - }, - "get": { - "tags": [ - "Product", - "Endpoints supporting Criteria " - ], - "summary": "Fetch product reviews", - "description": "Perform a filtered search for product reviews.", - "operationId": "readProductReviewsGet", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Identifier of the product.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, + } + ] + }, + "get": { + "tags": [ + "Payment & Shipping", + "Endpoints supporting Criteria " + ], + "summary": "Fetch shipping methods", + "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (graduated prices, quantity-based pricing)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", + "operationId": "readShippingMethodGet", + "parameters": [ { "$ref": "#/components/parameters/criteriaPage" }, @@ -22446,33 +22950,14 @@ }, { "$ref": "#/components/parameters/CompressedCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "Entity search result containing product reviews", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductReview" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + "$ref": "#/components/responses/ShippingMethodListResponse" } }, "security": [ @@ -22482,206 +22967,171 @@ ] } }, - "/product/{productId}/review": { + "/order/state/cancel": { "post": { "tags": [ - "Product" + "Order" ], - "summary": "Save a product review", - "description": "Saves a review for a product. Reviews have to be activated in the settings.", - "operationId": "saveProductReview", + "summary": "Cancel an order", + "description": "Cancels an order. The order state will be set to 'cancelled'.", + "operationId": "cancelOrder", "parameters": [ { - "name": "productId", - "in": "path", - "description": "Identifier of the product which is reviewed.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "required": [ - "title", - "content", - "points" - ], "properties": { - "name": { - "description": "The name of the review author. If not set, the first name of the customer is chosen.", - "type": "string" - }, - "email": { - "description": "The email address of the review author. If not set, the email of the customer is chosen.", - "type": "string" - }, - "title": { - "description": "The title of the review.", - "type": "string" - }, - "content": { - "description": "The content of review.", - "type": "string" - }, - "points": { - "description": "The review rating for the product.", - "type": "number", - "format": "double" + "orderId": { + "description": "The identifier of the order to be canceled.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, - "type": "object" + "type": "object", + "required": [ + "orderId" + ] } } } }, "responses": { "200": { - "description": "Success response indicating the review was saved successfully." - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/product/purchase-limit": { - "get": { - "tags": [ - "Product" - ], - "summary": "Fetch current purchase quantity limits for products", - "description": "Returns the current min/max/step purchase constraints for the given products, reflecting live stock or configured limitations. Intended for use on PDP to show actual values on product pages.", - "operationId": "readProductsPurchaseLimit", - "parameters": [ - { - "name": "ids[]", - "in": "query", - "description": "List of product IDs to fetch quantity limits for.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - } - ], - "responses": { - "200": { - "description": "Current quantity limits for the requested products", + "description": "Returns the state of the state machine\n\n example: More information about the state machine can be found in the corresponding guide: [Using the state machine](https://developer.shopware.com/docs/guides/plugins/plugins/checkout/order/using-the-state-machine)", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductPurchaseLimit" - } + "$ref": "#/components/schemas/StateMachineState" } } } - }, - "400": { - "$ref": "#/components/responses/400" } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/product/{productId}/find-variant": { + "/order": { "post": { "tags": [ - "Product" + "Order", + "Endpoints supporting Criteria " ], - "summary": "Search for a matching variant by product options.", - "description": "Performs a search for product variants and returns the best matching variant.", - "operationId": "searchProductVariantIds", + "summary": "Fetch a list of orders", + "description": "List orders of a customer.\n\n**Available Associations:**\n- `stateMachineState` - Current order state (e.g., open, in_progress, completed, cancelled)\n- `primaryOrderDelivery` - Primary delivery information for the order\n- `primaryOrderTransaction` - Primary payment transaction for the order\n- `orderCustomer` - Customer information associated with the order\n- `currency` - Currency used for the order\n- `language` - Language used when placing the order\n- `addresses` - All addresses associated with the order (billing and shipping)\n- `billingAddress` - Billing address for the order\n- `deliveries` - Delivery information including shipping address and tracking\n- `lineItems` - Order line items (products, discounts, fees)\n- `transactions` - Payment transactions for the order\n- `documents` - Generated documents (invoices, delivery notes, credit notes)\n- `tags` - Tags assigned to the order for organization and filtering", + "operationId": "readOrder", "parameters": [ { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", + "name": "sw-include-search-info", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", "required": false, "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "0", + "1" + ], + "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "required": [ - "options" - ], - "properties": { - "options": { - "oneOf": [ - { - "description": "The options parameter for the variant to find.", + "allOf": [ + { + "$ref": "#/components/schemas/NoneFieldsCriteria" + }, + { + "properties": { + "checkPromotion": { + "description": "Check if the payment method of the order is still changeable.", + "type": "boolean" + }, + "filter": { "type": "array", + "description": "Pass the deepLinkCode criteria filter to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", "items": { - "type": "string" + "allOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] + }, + "field": { + "type": "string", + "enum": [ + "deepLinkCode" + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + } + ] } }, - { - "description": "The options parameter as a map of groupId => optionId.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "email": { + "description": "The email address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", + "type": "string", + "format": "email" + }, + "zipcode": { + "description": "The zip/postal code of the billing address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", + "type": "string" + }, + "login": { + "description": "If set and when handling a guest order, a context token will be returned in the response header with a logged-in session.", + "type": "boolean" } - ] - }, - "switchedGroup": { - "description": "The id of the option group that has been switched.", - "type": "string" + }, + "type": "object" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Returns an FoundCombination struct containing the ids matching the search.", + "description": "An array of orders and an indicator if the payment of the order can be changed.", + "headers": { + "sw-context-token": { + "description": "Contains sw-context-token value, if login parameter is set to true and a guest order was found and the correct credentials were provided.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FindProductVariantRouteResponse" + "$ref": "#/components/schemas/OrderRouteResponse" } } } @@ -22689,66 +23139,58 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] - }, - "get": { + } + }, + "/order/payment": { + "post": { "tags": [ - "Product" + "Order" ], - "summary": "Search for a matching variant by product options.", - "description": "Performs a search for product variants and returns the best matching variant.", - "operationId": "searchProductVariantIdsGet", + "summary": "Update the payment method of an order", + "description": "Changes the payment method of a specific order. You can use the /order route to find out if the payment method of an order can be changed - take a look at the `paymentChangeable`- array in the response.", + "operationId": "orderSetPayment", "parameters": [ { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "options[]", - "in": "query", - "description": "The options parameter for the variant to find. Array of option IDs.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" + "$ref": "#/components/parameters/swLanguageId" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "paymentMethodId", + "orderId" + ], + "properties": { + "paymentMethodId": { + "description": "The identifier of the paymentMethod to be set", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderId": { + "description": "The identifier of the order.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "type": "object" } } - }, - { - "name": "switchedGroup", - "in": "query", - "description": "The id of the option group that has been switched.", - "required": false, - "schema": { - "type": "string" - } } - ], + }, "responses": { "200": { - "description": "Returns an FoundCombination struct containing the ids matching the search.", + "description": "Successfully updated the payment method of the order.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FindProductVariantRouteResponse" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -22756,210 +23198,114 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/script/{hook}": { + "/order/download/{orderId}/{downloadId}": { "get": { "tags": [ - "API", - "Script", - "App" + "Order" ], - "summary": "Access point for different api logics which are provided by apps over script hooks", - "operationId": "getScriptStoreApiRoute", + "summary": "Download a purchased file", + "description": "Download a file included in the given order and with the given id. Access must be granted.", + "operationId": "orderDownloadFile", "parameters": [ { - "name": "hook", + "name": "orderId", "in": "path", - "description": "Dynamic hook which used to build the hook name", "required": true, "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Returns different structures of results based on the called script.", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] - } - }, - "application/vnd.api+json": { - "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] - } - } + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, - "204": { - "description": "No data by default" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "post": { - "tags": [ - "API", - "Script", - "App" - ], - "summary": "Access point for different api logics which are provided by apps over script hooks", - "operationId": "postScriptStoreApiRoute", - "parameters": [ { - "name": "hook", + "name": "downloadId", "in": "path", - "description": "Dynamic hook which used to build the hook name", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "Returns different structures of results based on the called script.", + "description": "An arbitrary binary file.", "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] - } - }, - "application/vnd.api+json": { + "application/octet-stream": { "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] + "type": "string", + "format": "binary" } } } - }, - "204": { - "description": "No data by default" } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/order/state/cancel": { - "post": { + "/cookie-groups": { + "get": { "tags": [ - "Order" - ], - "summary": "Cancel an order", - "description": "Cancels an order. The order state will be set to 'cancelled'.", - "operationId": "cancelOrder", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Experimental", + "Cookies" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "orderId": { - "description": "The identifier of the order to be canceled.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "type": "object", - "required": [ - "orderId" - ] - } - } - } - }, + "summary": "Fetch all cookie groups", + "description": "Fetch all cookie groups available in the system with configuration hash. Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", + "operationId": "readCookieGroups", "responses": { "200": { - "description": "Returns the state of the state machine\n\n example: More information about the state machine can be found in the corresponding guide: [Using the state machine](https://developer.shopware.com/docs/guides/plugins/plugins/checkout/order/using-the-state-machine)", + "description": "Successful response with a collection of cookie groups and their configuration hash.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/CookieRouteResponse" } } } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" } ] } }, - "/order": { + "/cms/{id}": { "post": { "tags": [ - "Order", - "Endpoints supporting Criteria " + "Content" ], - "summary": "Fetch a list of orders", - "description": "List orders of a customer.\n\n**Available Associations:**\n- `stateMachineState` - Current order state (e.g., open, in_progress, completed, cancelled)\n- `primaryOrderDelivery` - Primary delivery information for the order\n- `primaryOrderTransaction` - Primary payment transaction for the order\n- `orderCustomer` - Customer information associated with the order\n- `currency` - Currency used for the order\n- `language` - Language used when placing the order\n- `addresses` - All addresses associated with the order (billing and shipping)\n- `billingAddress` - Billing address for the order\n- `deliveries` - Delivery information including shipping address and tracking\n- `lineItems` - Order line items (products, discounts, fees)\n- `transactions` - Payment transactions for the order\n- `documents` - Generated documents (invoices, delivery notes, credit notes)\n- `tags` - Tags assigned to the order for organization and filtering", - "operationId": "readOrder", + "summary": "Fetch and resolve a CMS page", + "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", + "operationId": "readCms", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "id", + "in": "path", + "description": "Identifier of the CMS page to be resolved", + "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -22978,71 +23324,27 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "required": true, "content": { "application/json": { "schema": { "allOf": [ - { - "$ref": "#/components/schemas/NoneFieldsCriteria" - }, { "properties": { - "checkPromotion": { - "description": "Check if the payment method of the order is still changeable.", - "type": "boolean" - }, - "filter": { - "type": "array", - "description": "Pass the deepLinkCode criteria filter to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] - }, - "field": { - "type": "string", - "enum": [ - "deepLinkCode" - ] - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - } - ] - } - }, - "email": { - "description": "The email address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", - "type": "string", - "format": "email" - }, - "zipcode": { - "description": "The zip/postal code of the billing address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", + "slots": { + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", "type": "string" - }, - "login": { - "description": "If set and when handling a guest order, a context token will be returned in the response header with a logged-in session.", - "type": "boolean" } }, "type": "object" + }, + { + "$ref": "#/components/schemas/ProductListingCriteria" } ] } @@ -23051,186 +23353,223 @@ }, "responses": { "200": { - "description": "An array of orders and an indicator if the payment of the order can be changed.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value, if login parameter is set to true and a guest order was found and the correct credentials were provided.", - "schema": { - "type": "string" - } - } - }, + "description": "The loaded cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrderRouteResponse" + "$ref": "#/components/schemas/CmsPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - } - }, - "/order/payment": { - "post": { + }, + "get": { "tags": [ - "Order" + "Content" ], - "summary": "Update the payment method of an order", - "description": "Changes the payment method of a specific order. You can use the /order route to find out if the payment method of an order can be changed - take a look at the `paymentChangeable`- array in the response.", - "operationId": "orderSetPayment", + "summary": "Fetch and resolve a CMS page", + "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", + "operationId": "readCmsGet", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "id", + "in": "path", + "description": "Identifier of the CMS page to be resolved", + "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "paymentMethodId", - "orderId" - ], - "properties": { - "paymentMethodId": { - "description": "The identifier of the paymentMethod to be set", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderId": { - "description": "The identifier of the order.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "type": "object" - } + }, + { + "name": "slots", + "in": "query", + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", + "schema": { + "type": "string" } - } - }, - "responses": { - "200": { - "description": "Successfully updated the payment method of the order.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 } - } - }, - "security": [ + }, { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/order/download/{orderId}/{downloadId}": { - "get": { - "tags": [ - "Order" - ], - "summary": "Download a purchased file", - "description": "Download a file included in the given order and with the given id. Access must be granted.", - "operationId": "orderDownloadFile", - "parameters": [ + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, { - "name": "orderId", - "in": "path", - "required": true, + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "integer" } }, { - "name": "downloadId", - "in": "path", - "required": true, + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean", + "default": false } }, { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "An arbitrary binary file.", + "description": "The loaded cms page", "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/CmsPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/country-state/{countryId}": { + "/salutation": { "post": { "tags": [ "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch the states of a country", - "description": "Perform a filtered search the states for a country", - "operationId": "readCountryState", + "summary": "Fetch salutations", + "description": "Fetches salutations with a criteria obj.", + "operationId": "readSalutation", "parameters": [ - { - "name": "countryId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -23244,6 +23583,9 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -23262,7 +23604,7 @@ }, "responses": { "200": { - "$ref": "#/components/responses/CountryStateListResponse" + "$ref": "#/components/responses/SalutationListResponse" } }, "security": [ @@ -23276,29 +23618,10 @@ "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch the states of a country", - "description": "Perform a filtered search the states for a country", - "operationId": "readCountryStateGet", + "summary": "Fetch salutations", + "description": "Perform a filtered search for salutations.", + "operationId": "readSalutationGet", "parameters": [ - { - "name": "countryId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, @@ -23346,11 +23669,14 @@ }, { "$ref": "#/components/parameters/CompressedCriteria" + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "$ref": "#/components/responses/CountryStateListResponse" + "$ref": "#/components/responses/SalutationListResponse" } }, "security": [ @@ -23360,63 +23686,127 @@ ] } }, - "/breadcrumb/{id}": { + "/script/{hook}": { "get": { "tags": [ - "Experimental", - "Breadcrumb" + "API", + "Script", + "App" ], - "summary": "Fetch a breadcrumb", - "description": "Perform search to get category or product breadcrumb. \n\nExperimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", - "operationId": "readBreadcrumb", + "summary": "Access point for different api logics which are provided by apps over script hooks", + "operationId": "getScriptStoreApiRoute", "parameters": [ { - "name": "id", + "name": "hook", "in": "path", - "description": "UUID for product or category", + "description": "Dynamic hook which used to build the hook name", "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } }, { - "name": "type", - "in": "query", - "description": "Type: category or product (optional - default: product)", - "required": false, - "schema": { - "type": "string", - "enum": [ - "product", - "category" - ] + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "Returns different structures of results based on the called script.", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] + } + }, + "application/vnd.api+json": { + "schema": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] + } + } } }, + "204": { + "description": "No data by default" + } + }, + "security": [ { - "name": "referrerCategoryId", - "in": "query", - "description": "UUID for referrer category only used for product breadcrumb", - "required": false, + "ApiKey": [] + } + ] + }, + "post": { + "tags": [ + "API", + "Script", + "App" + ], + "summary": "Access point for different api logics which are provided by apps over script hooks", + "operationId": "postScriptStoreApiRoute", + "parameters": [ + { + "name": "hook", + "in": "path", + "description": "Dynamic hook which used to build the hook name", + "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "Search result containing SeoUrl\\'s to be used as breadcrumb.", + "description": "Returns different structures of results based on the called script.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BreadcrumbCollection" + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] + } + }, + "application/vnd.api+json": { + "schema": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] } } } }, - "400": { - "$ref": "#/components/responses/400" + "204": { + "description": "No data by default" } }, "security": [ @@ -23426,35 +23816,16 @@ ] } }, - "/cms/{id}": { + "/language": { "post": { "tags": [ - "Content" + "System & Context", + "Endpoints supporting Criteria " ], - "summary": "Fetch and resolve a CMS page", - "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", - "operationId": "readCms", + "summary": "Fetch languages", + "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", + "operationId": "readLanguages", "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the CMS page to be resolved", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -23468,24 +23839,19 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "properties": { - "slots": { - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" + "$ref": "#/components/schemas/Criteria" } ] } @@ -23494,17 +23860,7 @@ }, "responses": { "200": { - "description": "The loaded cms page", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CmsPage" - } - } - } - }, - "404": { - "$ref": "#/components/responses/404" + "$ref": "#/components/responses/LanguageListResponse" } }, "security": [ @@ -23515,51 +23871,18 @@ }, "get": { "tags": [ - "Content" + "System & Context", + "Endpoints supporting Criteria " ], - "summary": "Fetch and resolve a CMS page", - "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", - "operationId": "readCmsGet", + "summary": "Fetch languages", + "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", + "operationId": "readLanguagesGet", "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the CMS page to be resolved", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "slots", - "in": "query", - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", - "schema": { - "type": "string" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } + "$ref": "#/components/parameters/criteriaLimit" }, { "$ref": "#/components/parameters/criteriaTerm" @@ -23601,209 +23924,39 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "name": "order", - "in": "query", - "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.", - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", - "schema": { - "type": "integer" - } - }, - { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - } - ], - "responses": { - "200": { - "description": "The loaded cms page", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CmsPage" - } - } - } + "$ref": "#/components/parameters/CompressedCriteria" }, - "404": { - "$ref": "#/components/responses/404" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/customer/wishlist/add/{productId}": { - "post": { - "tags": [ - "Wishlist" - ], - "summary": "Add a product to a wishlist", - "description": "Adds a product to a customers wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", - "operationId": "addProductOnWishlist", - "parameters": [ { - "name": "productId", - "in": "path", - "description": "Identifier of the product to be added.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Returns a success response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LanguageListResponse" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/customer/wishlist": { - "post": { + "/context": { + "get": { "tags": [ - "Wishlist", - "Endpoints supporting Criteria " - ], - "summary": "Fetch a wishlist", - "description": "Fetch a customer's wishlist. Products on the wishlist can be filtered using a criteria object.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", - "operationId": "readCustomerWishlist", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - } + "System & Context" ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } - } - }, + "summary": "Fetch the current context", + "description": "Fetches the current context. This includes for example the `customerGroup`, `currency`, `taxRules` and many more.", + "operationId": "readContext", "responses": { "200": { - "description": "", + "description": "Returns the current context.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WishlistLoadRouteResponse" + "$ref": "#/components/schemas/SalesChannelContext" } } } @@ -23811,34 +23964,67 @@ }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" } ] - } - }, - "/customer/wishlist/merge": { - "post": { + }, + "patch": { "tags": [ - "Wishlist" + "System & Context" ], - "summary": "Create a wishlist for a customer", - "description": "Create a new wishlist for a logged in customer or extend the existing wishlist given a set of products.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * A customer can only have a single wishlist.\n * The wishlist feature has to be activated.", - "operationId": "mergeProductOnWishlist", + "summary": "Modify the current context", + "description": "Used for switching the context. A typical example would be changing the language or changing the currency.", + "operationId": "updateContext", "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "productIds": { - "description": "List product id", - "type": "array", - "items": { - "description": "product id", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "currencyId": { + "description": "Currency", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "description": "Language", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "billingAddressId": { + "description": "Billing Address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingAddressId": { + "description": "Shipping Address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "paymentMethodId": { + "description": "Payment Method", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingMethodId": { + "description": "Shipping Method", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Country", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "description": "Country State", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "type": "object" @@ -23848,156 +24034,109 @@ }, "responses": { "200": { - "description": "Returns a success response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } + "$ref": "#/components/responses/ContextTokenResponse" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } - ] - } - }, - "/customer/wishlist/delete/{productId}": { - "delete": { - "tags": [ - "Wishlist" ], - "summary": "Remove a product from a wishlist", - "description": "Removes a product from a customer's wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", - "operationId": "deleteProductOnWishlist", "parameters": [ { - "name": "productId", - "in": "path", - "description": "The identifier of the product to be removed from the wishlist.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Returns a success response indicating a successful removal.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } - }, - "404": { - "description": "The removal of the product failed. Probably because the product could not be found on the wishlist.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] + "$ref": "#/components/parameters/swLanguageId" } ] } }, - "/app-system/{name}/generate-token": { + "/context/gateway": { "post": { - "tags": [ - "App system" - ], - "summary": "Generate JWT token for app system backend", - "description": "Generate JWT token for authenticated communication with the app server", - "operationId": "generateJWTAppSystemAppServer", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "description": "Name of the app", - "schema": { - "type": "string" - } - } - ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { + "required": [ + "appName" + ], + "properties": { + "appName": { + "type": "string" + }, + "data": { + "type": "object" + } + }, "type": "object" } } } }, + "tags": [ + "Gateway" + ], + "summary": "Call the context gateway", + "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.).", + "operationId": "contextGateway", "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "expires": { - "type": "string", - "format": "date-time" - }, - "shopId": { - "type": "string" - } - } - } - } - } + "$ref": "#/components/responses/ContextTokenResponse" + }, + "400": { + "description": "App server communication error" + }, + "422": { + "description": "Error provided by App Server with message to show customer" } }, "security": [ { "ApiKey": [] } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } ] - } - }, - "/cookie-groups": { + }, "get": { "tags": [ - "Experimental", - "Cookies" + "Gateway" + ], + "summary": "Call the context gateway", + "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.). Please prefer using the POST version of this endpoint.", + "operationId": "contextGatewayGet", + "parameters": [ + { + "name": "appName", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "data", + "in": "query", + "schema": { + "type": "object" + }, + "style": "deepObject" + }, + { + "$ref": "#/components/parameters/swLanguageId" + } ], - "summary": "Fetch all cookie groups", - "description": "Fetch all cookie groups available in the system with configuration hash. Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", - "operationId": "readCookieGroups", "responses": { "200": { - "description": "Successful response with a collection of cookie groups and their configuration hash.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CookieRouteResponse" - } - } - } + "$ref": "#/components/responses/ContextTokenResponse" }, "400": { - "$ref": "#/components/responses/400" + "description": "App server communication error" + }, + "422": { + "description": "Error provided by App Server with message to show customer" } }, "security": [ @@ -24007,46 +24146,43 @@ ] } }, - "/product-listing/{categoryId}": { - "post": { + "/breadcrumb/{id}": { + "get": { "tags": [ - "Product" + "Experimental", + "Breadcrumb" ], - "summary": "Fetch a product listing by category", - "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductListing", + "summary": "Fetch a breadcrumb", + "description": "Perform search to get category or product breadcrumb. \n\nExperimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", + "operationId": "readBreadcrumb", "parameters": [ { - "name": "categoryId", + "name": "id", "in": "path", - "description": "Identifier of a category.", + "description": "UUID for product or category", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "name": "p", + "name": "type", "in": "query", - "description": "The page number to fetch.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Determines if the response must contain a SeoUrl entity for a product entity", + "description": "Type: category or product (optional - default: product)", "required": false, "schema": { - "type": "boolean" + "type": "string", + "enum": [ + "product", + "category" + ] } }, { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "name": "referrerCategoryId", + "in": "query", + "description": "UUID for referrer category only used for product breadcrumb", "required": false, "schema": { "type": "string", @@ -24054,46 +24190,22 @@ } }, { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } + "$ref": "#/components/parameters/swLanguageId" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" - } - ] - } - } - } - }, "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields to display a listing.", + "description": "Search result containing SeoUrl\\'s to be used as breadcrumb.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "$ref": "#/components/schemas/BreadcrumbCollection" } } } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ @@ -24101,468 +24213,1128 @@ "ApiKey": [] } ] - }, - "get": { + } + }, + "/document/download/{documentId}/{deepLinkCode}": { + "post": { "tags": [ - "Product" + "Document" ], - "summary": "Fetch a product listing by category", - "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductListingGet", + "summary": "Download generated document", + "description": "Returns generated document to download.", + "operationId": "download", "parameters": [ { - "name": "categoryId", + "name": "documentId", "in": "path", - "description": "Identifier of a category.", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Determines if the response must contain a SeoUrl entity for a product entity", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "name": "limit", - "in": "query", - "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.", + "name": "deepLinkCode", + "required": true, + "in": "path", "schema": { - "type": "integer", - "minimum": 0 + "type": "string" } }, { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" + "$ref": "#/components/parameters/swLanguageId" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "zipcode": { + "type": "string" + } + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/pdf": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "text/html": { + "schema": { + "type": "string" + } + }, + "application/xml": { + "schema": { + "type": "string" + } + } + } }, - { - "$ref": "#/components/parameters/criteriaGrouping" + "204": { + "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" + "403": { + "description": "Forbidden." }, - { - "$ref": "#/components/parameters/criteriaIncludes" + "404": { + "description": "Document not found." }, + "406": { + "description": "The requested mime type is not supported." + } + }, + "security": [ { - "$ref": "#/components/parameters/criteriaExcludes" - }, + "ApiKey": [], + "ContextToken": [] + } + ] + }, + "get": { + "tags": [ + "Document" + ], + "summary": "Download generated document", + "description": "Returns generated document to download.", + "operationId": "downloadGet", + "parameters": [ { - "name": "order", - "in": "query", - "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.", + "name": "documentId", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "name": "p", - "in": "query", - "description": "Search result page", + "name": "deepLinkCode", + "required": true, + "in": "path", "schema": { - "type": "integer", - "default": 1 + "type": "string" } }, { - "name": "manufacturer", + "name": "email", + "required": false, "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", "schema": { "type": "string" - } + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." }, { - "name": "min-price", + "name": "zipcode", + "required": false, "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } + "type": "string" + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." }, { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/pdf": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "text/html": { + "schema": { + "type": "string" + } + }, + "application/xml": { + "schema": { + "type": "string" + } + } } }, - { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", - "schema": { - "type": "integer" - } + "204": { + "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." }, - { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", - "schema": { - "type": "boolean", - "default": false - } + "403": { + "description": "Forbidden." }, - { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "schema": { - "type": "string" - } + "404": { + "description": "Document not found." }, + "406": { + "description": "The requested mime type is not supported." + } + }, + "security": [ { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/newsletter/confirm": { + "post": { + "tags": [ + "Newsletter" + ], + "summary": "Confirm a newsletter registration", + "description": "You have to use the hash from the link sent out via email to confirm the user registration.", + "operationId": "confirmNewsletter", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "hash", + "em" + ], + "properties": { + "hash": { + "description": "Hash parameter from link the in the confirmation mail", + "type": "string" + }, + "em": { + "description": "Email hash parameter from the link in the confirmation mail", + "type": "string" + } }, - { - "type": "null" + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "The newsletter confirmation was successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" } - ] + } + } + }, + "400": { + "$ref": "#/components/responses/400" + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/swLanguageId" + } + ] + } + }, + "/newsletter/subscribe": { + "post": { + "tags": [ + "Newsletter" + ], + "summary": "Create or remove a newsletter subscription", + "description": "This route is used to create/remove/confirm a newsletter subscription.\n\nThe `option` property controls what should happen:\n* `direct`: The subscription is directly active and does not need a confirmation.\n* `subscribe`: An email will be send to the provided email address containing a link to the /newsletter/confirm route.\nThe subscription is only successful, if the /newsletter/confirm route is called with the generated hashes.\n* `unsubscribe`: The email address will be removed from the newsletter subscriptions.\n* `confirmSubscribe`: Confirms the newsletter subscription for the provided email address.", + "operationId": "subscribeToNewsletter", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "email", + "option", + "storefrontUrl" + ], + "properties": { + "email": { + "description": "Email address that will receive the confirmation and the newsletter.", + "type": "string" + }, + "option": { + "description": "Defines what should be done.", + "type": "string" + }, + "storefrontUrl": { + "description": "Url of the storefront of the shop. This will be used for generating the link to the /newsletter/confirm inside the confirm email.", + "type": "string" + }, + "salutationId": { + "description": "Identifier of the salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name", + "type": "string" + }, + "lastName": { + "description": "Last name", + "type": "string" + }, + "street": { + "description": "Street", + "type": "string" + }, + "city": { + "description": "City", + "type": "string" + }, + "zipCode": { + "description": "Zip code", + "type": "string" + }, + "languageId": { + "description": "Identifier of the language.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "description": "Custom field data that should be added to the subscription.", + "type": "string" + } + }, + "type": "object" + } } - }, - { - "$ref": "#/components/parameters/noAggregations" - }, - { - "$ref": "#/components/parameters/onlyAggregations" } - ], + }, "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields to display a listing.", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "required": [ + "success", + "status" + ], + "properties": { + "success": { + "description": "Indicates whether the subscribe request was successful.", + "type": "boolean" + }, + "status": { + "$ref": "#/components/schemas/NewsletterStatus" + } + }, + "type": "object" } } } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ { "ApiKey": [] } - ] - } - }, - "/_info/openapi3.json": { - "get": { - "tags": [ - "System Info & Health Check" ], - "summary": "Get OpenAPI Specification", - "description": "Get information about the store API in OpenAPI format.", - "operationId": "api-info", "parameters": [ { - "name": "type", - "in": "query", - "description": "Type of the api", - "schema": { - "type": "string", - "enum": [ - "jsonapi", - "json" - ] - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/OpenApi3" + "$ref": "#/components/parameters/swLanguageId" } - } + ] } }, - "/payment-method": { + "/newsletter/unsubscribe": { "post": { "tags": [ - "Payment Method", - "Endpoints supporting Criteria " - ], - "summary": "Loads all available payment methods", - "operationId": "readPaymentMethod", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - } + "Newsletter" ], + "summary": "Remove a newsletter subscription", + "description": "Removes a newsletter recipient from the mailing lists.", + "operationId": "unsubscribeToNewsletter", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "properties": { - "onlyAvailable": { - "description": "List only available", - "type": "boolean" - } - }, - "type": "object" + "required": [ + "email" + ], + "properties": { + "email": { + "description": "Email address that should be removed from the mailing lists.", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "$ref": "#/components/responses/PaymentMethodListResponse" + "description": "Unsubscribing was successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ { "ApiKey": [] } - ] - }, - "get": { - "tags": [ - "Payment Method", - "Endpoints supporting Criteria " ], - "summary": "Loads all available payment methods", - "operationId": "readPaymentMethodGet", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "$ref": "#/components/parameters/CompressedCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/PaymentMethodListResponse" - } - }, - "security": [ - { - "ApiKey": [] + "$ref": "#/components/parameters/swLanguageId" } ] } }, - "/contact-form": { + "/_mcp": { "post": { "tags": [ - "Content" + "MCP", + "Experimental" ], - "summary": "Submit a contact form message", - "description": "Used for submitting contact forms. Be aware that there can be more required fields, depending on the system settings.", - "operationId": "sendContactMail", + "summary": "MCP JSON-RPC endpoint (Store API)", + "description": "Handles Model Context Protocol (MCP) requests using the Streamable HTTP transport for the Store API. Accepts JSON-RPC 2.0 messages. Requires a valid Store API access key. Streaming responses are delivered as a `text/event-stream` body on this POST operation; a standalone GET SSE stream is not supported. Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", + "operationId": "storeApiMcpPost", "parameters": [ { - "name": "sw-language-id", + "name": "mcp-session-id", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", "required": false, + "description": "Session ID returned by the server in the `mcp-session-id` response header after a successful `initialize` request. Required for all subsequent requests within the same session.", "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "uuid" + } + }, + { + "name": "sw-context-token", + "in": "header", + "required": false, + "description": "Standard Store API context token identifying the customer session. When provided, MCP tools operate in the context of that customer. Same semantics as all other Store API endpoints.", + "schema": { + "type": "string" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { "required": true, + "description": "A JSON-RPC 2.0 request object. Omit `id` for notifications (no response expected). The `params` shape depends on the `method`; extensions may register additional methods beyond the variants listed here.", "content": { "application/json": { "schema": { + "type": "object", "required": [ - "email", - "subject", - "comment" + "jsonrpc", + "method" ], "properties": { - "salutationId": { - "description": "Identifier of the salutation. Use `/api/salutation` endpoint to fetch possible values.", + "jsonrpc": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "2.0" + ] }, - "firstName": { - "description": "Firstname. This field may be required depending on the system settings.", - "type": "string" + "id": { + "description": "Request identifier. Omit for notifications (fire-and-forget). Present for requests that expect a response.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] }, - "lastName": { - "description": "Lastname. This field may be required depending on the system settings.", - "type": "string" + "method": { + "type": "string", + "description": "MCP method name." + }, + "params": { + "type": "object", + "description": "Method-specific parameters, see the request variants." + } + }, + "oneOf": [ + { + "title": "initialize", + "properties": { + "method": { + "const": "initialize" + }, + "params": { + "type": "object", + "required": [ + "protocolVersion", + "capabilities", + "clientInfo" + ], + "properties": { + "protocolVersion": { + "type": "string", + "description": "MCP protocol version the client supports, e.g. `2025-03-26`." + }, + "capabilities": { + "type": "object", + "description": "Capabilities the client supports.", + "additionalProperties": true + }, + "clientInfo": { + "type": "object", + "required": [ + "name", + "version" + ], + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "params" + ] }, - "email": { - "description": "Email address", - "type": "string" + { + "title": "tools/list", + "properties": { + "method": { + "const": "tools/list" + }, + "params": { + "type": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Opaque pagination cursor from a previous `tools/list` result." + } + } + } + } }, - "phone": { - "description": "Phone. This field may be required depending on the system settings.", - "type": "string" + { + "title": "tools/call", + "properties": { + "method": { + "const": "tools/call" + }, + "params": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the tool to invoke, as returned by `tools/list`." + }, + "arguments": { + "type": "object", + "description": "Tool arguments matching the tool's `inputSchema`.", + "additionalProperties": true + } + } + } + }, + "required": [ + "params" + ] }, - "subject": { - "description": "The subject of the contact form.", - "type": "string" + { + "title": "resources/list", + "properties": { + "method": { + "const": "resources/list" + }, + "params": { + "type": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Opaque pagination cursor from a previous `resources/list` result." + } + } + } + } }, - "comment": { - "description": "The message of the contact form", - "type": "string" + { + "title": "resources/read", + "properties": { + "method": { + "const": "resources/read" + }, + "params": { + "type": "object", + "required": [ + "uri" + ], + "properties": { + "uri": { + "type": "string", + "description": "URI of the resource to read, as returned by `resources/list`." + } + } + } + }, + "required": [ + "params" + ] }, - "navigationId": { - "description": "Identifier of the navigation page. Can be used to override the configuration.\nTake a look at the settings of a category containing a concat form in the administration.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + { + "title": "prompts/list", + "properties": { + "method": { + "const": "prompts/list" + }, + "params": { + "type": "object", + "properties": { + "cursor": { + "type": "string", + "description": "Opaque pagination cursor from a previous `prompts/list` result." + } + } + } + } }, - "slotId": { - "description": "Identifier of the cms element", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + { + "title": "prompts/get", + "properties": { + "method": { + "const": "prompts/get" + }, + "params": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the prompt, as returned by `prompts/list`." + }, + "arguments": { + "type": "object", + "description": "Prompt arguments as string values.", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "required": [ + "params" + ] }, - "cmsPageType": { - "description": "Type of the content management page", - "type": "string" + { + "title": "ping", + "properties": { + "method": { + "const": "ping" + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "JSON-RPC response or Server-Sent Events stream for streaming responses. Contains either a `result` (success) or an `error` (failure), never both.", + "headers": { + "mcp-session-id": { + "description": "Session ID assigned by the server. Returned on the `initialize` response and echoed on subsequent responses. Send it as a request header on all following requests.", + "schema": { + "type": "string", + "format": "uuid" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "jsonrpc", + "id" + ], + "properties": { + "jsonrpc": { + "type": "string", + "enum": [ + "2.0" + ] + }, + "id": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ] + } }, - "entityName": { - "description": "Entity name for slot config", - "type": "string" + "oneOf": [ + { + "required": [ + "result" + ], + "properties": { + "result": { + "description": "Method-specific result payload, one of the variants below depending on the requested method.", + "oneOf": [ + { + "title": "initialize result", + "type": "object", + "required": [ + "protocolVersion", + "capabilities", + "serverInfo" + ], + "properties": { + "protocolVersion": { + "type": "string" + }, + "capabilities": { + "type": "object", + "description": "Capabilities the server supports (tools, resources, prompts, logging, ...).", + "additionalProperties": true + }, + "serverInfo": { + "type": "object", + "required": [ + "name", + "version" + ], + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "instructions": { + "type": "string", + "description": "Usage instructions for the client / model." + } + }, + "additionalProperties": true + }, + { + "title": "tools/list result", + "type": "object", + "required": [ + "tools" + ], + "properties": { + "tools": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name", + "inputSchema" + ], + "properties": { + "name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "inputSchema": { + "type": "object", + "description": "JSON Schema describing the tool arguments.", + "additionalProperties": true + } + }, + "additionalProperties": true + } + }, + "nextCursor": { + "type": "string", + "description": "Pagination cursor for the next page, absent on the last page." + } + }, + "additionalProperties": true + }, + { + "title": "tools/call result", + "type": "object", + "required": [ + "content" + ], + "properties": { + "content": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type" + ], + "description": "Content block. `type` is one of `text` (with `text`), `image`/`audio` (with base64 `data` and `mimeType`) or `resource` (with embedded `resource`).", + "properties": { + "type": { + "type": "string", + "enum": [ + "text", + "image", + "audio", + "resource" + ] + }, + "text": { + "type": "string" + }, + "data": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "resource": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": true + } + }, + "structuredContent": { + "type": "object", + "description": "Structured tool output matching the tool's declared output schema.", + "additionalProperties": true + }, + "isError": { + "type": "boolean", + "description": "True when the tool execution failed; error details are in `content`." + } + }, + "additionalProperties": true + }, + { + "title": "resources/list result", + "type": "object", + "required": [ + "resources" + ], + "properties": { + "resources": { + "type": "array", + "items": { + "type": "object", + "required": [ + "uri", + "name" + ], + "properties": { + "uri": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "mimeType": { + "type": "string" + } + }, + "additionalProperties": true + } + }, + "nextCursor": { + "type": "string", + "description": "Pagination cursor for the next page, absent on the last page." + } + }, + "additionalProperties": true + }, + { + "title": "resources/read result", + "type": "object", + "required": [ + "contents" + ], + "properties": { + "contents": { + "type": "array", + "items": { + "type": "object", + "required": [ + "uri" + ], + "description": "Resource content with either `text` or base64 `blob`.", + "properties": { + "uri": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "text": { + "type": "string" + }, + "blob": { + "type": "string" + } + }, + "additionalProperties": true + } + } + }, + "additionalProperties": true + }, + { + "title": "prompts/list result", + "type": "object", + "required": [ + "prompts" + ], + "properties": { + "prompts": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "arguments": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "required": { + "type": "boolean" + } + }, + "additionalProperties": true + } + } + }, + "additionalProperties": true + } + }, + "nextCursor": { + "type": "string", + "description": "Pagination cursor for the next page, absent on the last page." + } + }, + "additionalProperties": true + }, + { + "title": "prompts/get result", + "type": "object", + "required": [ + "messages" + ], + "properties": { + "description": { + "type": "string" + }, + "messages": { + "type": "array", + "items": { + "type": "object", + "required": [ + "role", + "content" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "user", + "assistant" + ] + }, + "content": { + "type": "object", + "description": "Content block, same shape as in `tools/call` results.", + "additionalProperties": true + } + }, + "additionalProperties": true + } + } + }, + "additionalProperties": true + }, + { + "title": "ping result", + "type": "object", + "description": "Empty object.", + "additionalProperties": false + } + ] + } + } + }, + { + "required": [ + "error" + ], + "properties": { + "error": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "description": "JSON-RPC error code, e.g. -32700 parse error, -32600 invalid request, -32601 method not found, -32602 invalid params, -32603 internal error." + }, + "message": { + "type": "string" + }, + "data": { + "description": "Optional additional error information." + } + } + } + } + } + ] + } + }, + "text/event-stream": { + "schema": { + "type": "string", + "description": "Server-Sent Events stream. Each `message` event carries a JSON-RPC response object as defined for `application/json`." + } + } + } + }, + "202": { + "description": "Notification accepted. Returned with an empty body for JSON-RPC notifications (requests without an `id`)." + }, + "400": { + "description": "Invalid request, e.g. malformed JSON-RPC payload or malformed `mcp-session-id` header.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "jsonrpc": { + "type": "string", + "enum": [ + "2.0" + ] + }, + "id": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "error": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + } + } + } } - }, - "type": "object" + } } } - } - }, - "responses": { - "200": { - "description": "Message sent successful." + }, + "401": { + "$ref": "#/components/responses/401" + }, + "429": { + "$ref": "#/components/responses/429" } }, "security": [ @@ -24570,26 +25342,72 @@ "ApiKey": [] } ] - } - }, - "/context": { - "get": { + }, + "delete": { "tags": [ - "System & Context" + "MCP", + "Experimental" + ], + "summary": "Close MCP session (Store API)", + "description": "Terminates the active MCP session identified by the `mcp-session-id` header. Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", + "operationId": "storeApiMcpDelete", + "parameters": [ + { + "name": "mcp-session-id", + "in": "header", + "required": true, + "description": "Session ID of the session to close. Obtained from the `mcp-session-id` response header of the `initialize` request.", + "schema": { + "type": "string", + "format": "uuid" + } + } ], - "summary": "Fetch the current context", - "description": "Fetches the current context. This includes for example the `customerGroup`, `currency`, `taxRules` and many more.", - "operationId": "readContext", "responses": { "200": { - "description": "Returns the current context.", + "description": "Session closed successfully." + }, + "400": { + "description": "Missing or malformed `mcp-session-id` header. Returns a JSON-RPC error object.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SalesChannelContext" + "type": "object", + "properties": { + "jsonrpc": { + "type": "string", + "enum": [ + "2.0" + ] + }, + "id": { + "type": "null" + }, + "error": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + } + } + } + } } } } + }, + "401": { + "$ref": "#/components/responses/401" + }, + "429": { + "$ref": "#/components/responses/429" } }, "security": [ @@ -24598,157 +25416,54 @@ } ] }, - "patch": { + "options": { "tags": [ - "System & Context" + "MCP", + "Experimental" ], - "summary": "Modify the current context", - "description": "Used for switching the context. A typical example would be changing the language or changing the currency.", - "operationId": "updateContext", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "currencyId": { - "description": "Currency", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "description": "Language", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "billingAddressId": { - "description": "Billing Address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingAddressId": { - "description": "Shipping Address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "paymentMethodId": { - "description": "Payment Method", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingMethodId": { - "description": "Shipping Method", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "description": "Country", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "description": "Country State", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "type": "object" - } - } - } - }, + "summary": "MCP CORS preflight (Store API)", + "description": "Handles CORS preflight requests for the Store API MCP endpoint. Answered before routing; the response carries the `Access-Control-Allow-*` headers including `mcp-session-id` and `mcp-protocol-version`. Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", + "operationId": "storeApiMcpOptions", "responses": { "200": { - "$ref": "#/components/responses/ContextTokenResponse" - } - }, - "security": [ - { - "ApiKey": [] + "description": "CORS preflight accepted." } - ] + } } }, - "/context/gateway": { - "post": { - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "appName" - ], - "properties": { - "appName": { - "type": "string" - }, - "data": { - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "tags": [ - "Gateway" - ], - "summary": "Call the context gateway", - "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.).", - "operationId": "contextGateway", - "responses": { - "200": { - "$ref": "#/components/responses/ContextTokenResponse" - }, - "400": { - "description": "App server communication error" - }, - "422": { - "description": "Error provided by App Server with message to show customer" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, + "/product-export/{accessKey}/{fileName}": { "get": { "tags": [ - "Gateway" + "Product" ], - "summary": "Call the context gateway", - "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.). Please prefer using the POST version of this endpoint.", - "operationId": "contextGatewayGet", + "summary": "Export product export", + "operationId": "readProductExport", "parameters": [ { - "name": "appName", - "in": "query", + "name": "accessKey", + "in": "path", + "description": "Access Key", "required": true, "schema": { "type": "string" } }, { - "name": "data", - "in": "query", + "name": "fileName", + "in": "path", + "description": "File Name", + "required": true, "schema": { - "type": "object" - }, - "style": "deepObject" + "type": "string" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "$ref": "#/components/responses/ContextTokenResponse" - }, - "400": { - "description": "App server communication error" - }, - "422": { - "description": "Error provided by App Server with message to show customer" + "description": "" } }, "security": [ @@ -24758,52 +25473,47 @@ ] } }, - "/media": { + "/product/{productId}/cross-selling": { "post": { "tags": [ - "Content" + "Product" ], - "summary": "Fetch and resolve Media Entities", - "description": "Fetch one or multiple Media Entities with the corresponding Identifier.", - "operationId": "readMedia", - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "ids": { - "description": "Identifier (UUID) of the media entity to be fetched.", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - }, - "type": "object", - "required": [ - "ids" - ] - } + "summary": "Fetch cross-selling groups of a product", + "description": "This route is used to load the cross sellings for a product. A product has several cross selling definitions in which several products are linked. The route returns the cross sellings together with the linked products", + "operationId": "readProductCrossSellings", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "required": false, + "schema": { + "type": "boolean" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } - }, + ], "responses": { "200": { - "description": "The loaded MediaCollection containing the requested Media Entities.", + "description": "Found cross sellings", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Media" - } + "$ref": "#/components/schemas/CrossSellingElementCollection" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -24814,42 +25524,44 @@ }, "get": { "tags": [ - "Content" + "Product" ], - "summary": "Fetch and resolve Media Entities", - "description": "Fetch one or multiple Media Entities with the corresponding Identifier.", - "operationId": "readMediaGet", + "summary": "Fetch cross-selling groups of a product", + "description": "This route is used to load the cross sellings for a product. A product has several cross selling definitions in which several products are linked. The route returns the cross sellings together with the linked products", + "operationId": "readProductCrossSellingsGet", "parameters": [ { - "name": "ids[]", - "in": "query", - "description": "Identifier (UUID) of the media entity to be fetched.", + "name": "productId", + "in": "path", + "description": "Product ID", "required": true, "schema": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "type": "string" + } + }, + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "required": false, + "schema": { + "type": "boolean" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "The loaded MediaCollection containing the requested Media Entities.", + "description": "Found cross sellings", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Media" - } + "$ref": "#/components/schemas/CrossSellingElementCollection" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -24859,24 +25571,32 @@ ] } }, - "/currency": { + "/product/{productId}": { "post": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch currencies", - "description": "Perform a filtered search for currencies.", - "operationId": "readCurrency", + "summary": "Fetch a single product", + "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductDetail", "parameters": [ { - "name": "sw-language-id", + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$'" + } + }, + { + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "name": "sw-include-seo-urls", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean" } }, { @@ -24892,6 +25612,27 @@ ], "default": "1" } + }, + { + "description": "Instructs Shopware to skip loading the configurator data", + "in": "query", + "name": "skipConfigurator", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Instructs Shopware to skip loading the CMS page data", + "in": "query", + "name": "skipCmsPage", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { @@ -24910,7 +25651,14 @@ }, "responses": { "200": { - "$ref": "#/components/responses/CurrencyListResponse" + "description": "Product information along with variant groups and options", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductDetailResponse" + } + } + } } }, "security": [ @@ -24921,21 +25669,47 @@ }, "get": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch currencies", - "description": "Perform a filtered search for currencies.", - "operationId": "readCurrencyGet", + "summary": "Fetch a single product", + "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductDetailGet", "parameters": [ { - "name": "sw-language-id", + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$'" + } + }, + { + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "name": "sw-include-seo-urls", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean" + } + }, + { + "description": "Instructs Shopware to skip loading the configurator data", + "in": "query", + "name": "skipConfigurator", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Instructs Shopware to skip loading the CMS page data", + "in": "query", + "name": "skipCmsPage", + "required": false, + "schema": { + "type": "boolean" } }, { @@ -24982,143 +25756,40 @@ }, { "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/CurrencyListResponse" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/product-export/{accessKey}/{fileName}": { - "get": { - "tags": [ - "Product" - ], - "summary": "Export product export", - "operationId": "readProductExport", - "parameters": [ - { - "name": "accessKey", - "in": "path", - "description": "Access Key", - "required": true, - "schema": { - "type": "string" - } }, { - "name": "fileName", - "in": "path", - "description": "File Name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - } - }, - "security": [ - { - "ApiKey": [] + "$ref": "#/components/parameters/swLanguageId" } - ] - } - }, - "/_info/routes": { - "get": { - "summary": "Get API routes", - "operationId": "getRoutes", - "tags": [ - "System Info & Health Check" - ], - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "endpoints" - ], - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "object", - "required": [ - "methods", - "path" - ], - "properties": { - "methods": { - "type": "array", - "items": { - "type": "string" - } - }, - "path": { - "type": "string" - } - } - } - } - } + ], + "responses": { + "200": { + "description": "Product information along with variant groups and options", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductDetailResponse" } } } } - } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "/search": { + "/product": { "post": { "tags": [ - "Product" + "Product", + "Endpoints supporting Criteria " ], - "summary": "Search for products", - "description": "Performs a search for products which can be used to display a product listing.", - "operationId": "searchPage", + "summary": "Fetch a list of products", + "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProduct", "parameters": [ - { - "name": "p", - "in": "query", - "description": "The page number to fetch.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -25132,27 +25803,19 @@ ], "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "properties": { - "search": { - "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" + "$ref": "#/components/schemas/Criteria" } ] } @@ -25161,14 +25824,7 @@ }, "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields to display a listing.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - } + "$ref": "#/components/responses/ProductListResponse" } }, "security": [ @@ -25179,51 +25835,18 @@ }, "get": { "tags": [ - "Product" + "Product", + "Endpoints supporting Criteria " ], - "summary": "Search for products", - "description": "Performs a search for products which can be used to display a product listing.", - "operationId": "searchPageGet", + "summary": "Fetch a list of products", + "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `openGraphMedia` - Open Graph image for social media sharing\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductGet", "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "search", - "in": "query", - "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", - "required": false, - "schema": { - "type": "string" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } + "$ref": "#/components/parameters/criteriaLimit" }, { "$ref": "#/components/parameters/criteriaTerm" @@ -25265,104 +25888,97 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "name": "order", - "in": "query", - "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.", - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } + "$ref": "#/components/parameters/CompressedCriteria" }, { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", - "schema": { - "type": "integer" - } - }, + "$ref": "#/components/parameters/swLanguageId" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ProductListResponse" + } + }, + "security": [ { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", - "schema": { - "type": "boolean", - "default": false - } - }, + "ApiKey": [] + } + ] + } + }, + "/product/{productId}/reviews": { + "post": { + "tags": [ + "Product", + "Endpoints supporting Criteria " + ], + "summary": "Fetch product reviews", + "description": "Perform a filtered search for product reviews.", + "operationId": "readProductReviews", + "parameters": [ { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "name": "productId", + "in": "path", + "description": "Identifier of the product.", + "required": true, "schema": { "type": "string" } }, { - "name": "reduce-aggregations", - "in": "query", - "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.", + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" } }, { - "$ref": "#/components/parameters/noAggregations" - }, - { - "$ref": "#/components/parameters/onlyAggregations" + "$ref": "#/components/parameters/swLanguageId" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] + } + } + } + }, "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields to display a listing.", + "description": "Entity search result containing product reviews", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductReview" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -25373,36 +25989,23 @@ "ApiKey": [] } ] - } - }, - "/shipping-cost/product/{productId}": { + }, "get": { "tags": [ - "Cart", + "Product", "Endpoints supporting Criteria " ], - "summary": "Calculate shipping costs for a product", - "description": "Calculates shipping costs for a single product using criteria-based shipping method selection.", - "operationId": "readShippingCostByProduct", + "summary": "Fetch product reviews", + "description": "Perform a filtered search for product reviews.", + "operationId": "readProductReviewsGet", "parameters": [ { "name": "productId", "in": "path", - "description": "The product identifier.", + "description": "Identifier of the product.", "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } }, { @@ -25452,179 +26055,33 @@ }, { "$ref": "#/components/parameters/CompressedCriteria" - } - ], - "responses": { - "200": { - "description": "The calculated shipping costs.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object", - "required": [ - "shippingCost", - "deliveryDate", - "shippingMethod" - ], - "properties": { - "shippingCost": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - } - } - } - } }, - "400": { - "$ref": "#/components/responses/400" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/shipping-cost/cart": { - "get": { - "tags": [ - "Cart" - ], - "summary": "Calculate shipping costs for the cart", - "description": "Calculates shipping costs for the current cart across available shipping methods.", - "operationId": "readShippingCostsByCart", - "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "The calculated shipping costs.", + "description": "Entity search result containing product reviews", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "object", - "required": [ - "shippingCost", - "deliveryDate", - "shippingMethod" - ], - "properties": { - "shippingCost": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductReview" } } }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - } + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - } - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/checkout/cart": { - "get": { - "tags": [ - "Cart" - ], - "summary": "Fetch or create a cart", - "description": "Used to fetch the current cart or for creating a new one.", - "operationId": "readCart", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Cart", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Cart" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "delete": { - "tags": [ - "Cart" - ], - "summary": "Delete a cart", - "description": "This route deletes the cart of the customer.", - "operationId": "deleteCart", - "responses": { - "204": { - "description": "Successfully deleted the cart", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" + ] } } } @@ -25637,69 +26094,92 @@ ] } }, - "/checkout/cart/line-item": { + "/product/{productId}/review": { "post": { "tags": [ - "Cart" + "Product" ], - "summary": "Add items to the cart", - "description": "This route adds items to the cart. An item can be a product or promotion for example. They are referenced by the `referencedId`-parameter.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#adding-new-items-to-the-cart)", - "operationId": "addLineItem", + "summary": "Save a product review", + "description": "Saves a review for a product. Reviews have to be activated in the settings.", + "operationId": "saveProductReview", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "productId", + "in": "path", + "description": "Identifier of the product which is reviewed.", + "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CartItems" + "required": [ + "title", + "content", + "points" + ], + "properties": { + "name": { + "description": "The name of the review author. If not set, the first name of the customer is chosen.", + "type": "string" + }, + "email": { + "description": "The email address of the review author. If not set, the email of the customer is chosen.", + "type": "string" + }, + "title": { + "description": "The title of the review.", + "type": "string" + }, + "content": { + "description": "The content of review.", + "type": "string" + }, + "points": { + "description": "The review rating for the product.", + "type": "number", + "format": "double" + } + }, + "type": "object" } } } }, "responses": { "200": { - "description": "The updated cart.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Cart" - } - } - } - }, - "400": { - "$ref": "#/components/responses/400" + "description": "Success response indicating the review was saved successfully." } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] - }, - "delete": { + } + }, + "/product/purchase-limit": { + "get": { "tags": [ - "Cart" + "Product" ], - "summary": "Remove items from the cart", - "description": "DEPRECATED: use removeLineItem instead. This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", - "operationId": "removeLineItemDeprecated", - "deprecated": true, + "summary": "Fetch current purchase quantity limits for products", + "description": "Returns the current min/max/step purchase constraints for the given products, reflecting live stock or configured limitations. Intended for use on PDP to show actual values on product pages.", + "operationId": "readProductsPurchaseLimit", "parameters": [ { - "name": "ids", + "name": "ids[]", "in": "query", - "description": "A list of product identifiers.", + "description": "List of product IDs to fetch quantity limits for.", "required": true, "schema": { "type": "array", @@ -25710,26 +26190,25 @@ } }, { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/swLanguageId" } ], "responses": { "200": { - "description": "The updated cart.", + "description": "Current quantity limits for the requested products", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cart" + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductPurchaseLimit" + } } } } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ @@ -25737,42 +26216,73 @@ "ApiKey": [] } ] - }, - "patch": { + } + }, + "/product/{productId}/find-variant": { + "post": { "tags": [ - "Cart" + "Product" ], - "summary": "Update items in the cart", - "description": "This route updates items in the cart. A typical example is updating the quantity of an item.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#updating-items-in-the-cart)", - "operationId": "updateLineItem", + "summary": "Search for a matching variant by product options.", + "description": "Performs a search for product variants and returns the best matching variant.", + "operationId": "searchProductVariantIds", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CartItemsUpdate" + "required": [ + "options" + ], + "properties": { + "options": { + "oneOf": [ + { + "description": "The options parameter for the variant to find.", + "type": "array", + "items": { + "type": "string" + } + }, + { + "description": "The options parameter as a map of groupId => optionId.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + ] + }, + "switchedGroup": { + "description": "The id of the option group that has been switched.", + "type": "string" + } + }, + "type": "object" } } } }, "responses": { "200": { - "description": "The updated cart.", + "description": "Returns an FoundCombination struct containing the ids matching the search.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cart" + "$ref": "#/components/schemas/FindProductVariantRouteResponse" } } } @@ -25783,59 +26293,56 @@ "ApiKey": [] } ] - } - }, - "/checkout/cart/line-item/delete": { - "post": { + }, + "get": { "tags": [ - "Cart" + "Product" ], - "summary": "Remove items from the cart", - "description": "This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", - "operationId": "removeLineItem", + "summary": "Search for a matching variant by product options.", + "description": "Performs a search for product variants and returns the best matching variant.", + "operationId": "searchProductVariantIdsGet", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "ids" - ], - "properties": { - "ids": { - "description": "A list of product identifiers.", - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - }, - "type": "object" + }, + { + "name": "options[]", + "in": "query", + "description": "The options parameter for the variant to find. Array of option IDs.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" } } + }, + { + "name": "switchedGroup", + "in": "query", + "description": "The id of the option group that has been switched.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/swLanguageId" } - }, + ], "responses": { "200": { - "description": "The updated cart.", + "description": "Returns an FoundCombination struct containing the ids matching the search.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cart" + "$ref": "#/components/schemas/FindProductVariantRouteResponse" } } } @@ -25848,146 +26355,278 @@ ] } }, - "/checkout/order": { + "/landing-page/{landingPageId}": { "post": { "tags": [ - "Order" + "Content", + "Endpoints supporting Criteria " ], - "summary": "Create an order from a cart", - "description": "Creates a new order from the current cart and deletes the cart.\n\nIf you are using the [prepared payment flow](https://developer.shopware.com/docs/concepts/commerce/checkout-concept/payments#2.1-prepare-payment-optional), this endpoint also receives additional transaction details. The exact name of the parameters depends on the implementation of the corresponding *payment handler*.", - "operationId": "createOrder", + "summary": "Fetch a landing page with the resolved CMS page", + "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", + "operationId": "readLandingPage", "parameters": [ { - "name": "sw-language-id", + "name": "landingPageId", + "in": "path", + "description": "Identifier of the landing page.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-include-search-info", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", "required": false, "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "0", + "1" + ], + "default": "1" } + }, + { + "$ref": "#/components/parameters/swLanguageId" } ], "requestBody": { - "description": "Contains additional metadata which is stored together with the order. It can also contain payment transaction details.", "content": { "application/json": { "schema": { - "properties": { - "customerComment": { - "description": "Adds a comment from the customer to the order.", - "type": "string" - }, - "affiliateCode": { - "description": "The affiliate code can be used to track which referrer the customer came through. An example could be `Price-comparison-company-XY`.", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "campaignCode": { - "description": "The campaign code is used to track which action the customer came from. An example could be `Summer-Deals`", - "type": "string" + { + "allOf": [ + { + "properties": { + "slots": { + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", + "type": "string" + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/ProductListingCriteria" + } + ] } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Order", + "description": "The loaded landing page with cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Order" + "$ref": "#/components/schemas/LandingPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - } - }, - "/checkout/gateway": { + }, "get": { "tags": [ - "Gateway" + "Content", + "Endpoints supporting Criteria " + ], + "summary": "Fetch a landing page with the resolved CMS page", + "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", + "operationId": "readLandingPageGet", + "parameters": [ + { + "name": "landingPageId", + "in": "path", + "description": "Identifier of the landing page.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } + }, + { + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + { + "$ref": "#/components/parameters/swLanguageId" + } ], - "summary": "Call the checkout gateway", - "description": "Call the checkout gateway, which is used to manipulate certain aspects of the checkout process (e.g. available payment methods).", - "operationId": "checkoutGateway", "responses": { "200": { - "description": "Checkout gateway response", + "description": "The loaded landing page with cms page", "content": { "application/json": { "schema": { - "properties": { - "paymentMethods": { - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } - } - }, - "type": "object" - }, - "shippingMethods": { - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "type": "object" - }, - "errors": { - "type": "array", - "items": { - "properties": { - "code": { - "description": "Error code", - "type": "string" - }, - "detail": { - "description": "Error detail", - "type": "string" - }, - "blocking": { - "description": "If the error is blocking", - "type": "boolean" - } - } - } - } - } + "$ref": "#/components/schemas/LandingPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ diff --git a/storeapi.summary.json b/storeapi.summary.json index db49a8b..cc31123 100644 --- a/storeapi.summary.json +++ b/storeapi.summary.json @@ -2,6 +2,7 @@ "paths": [ "/_info/openapi3.json", "/_info/routes", + "/_mcp", "/account/address", "/account/address/default-billing/{addressId}", "/account/address/default-shipping/{addressId}", @@ -280,6 +281,7 @@ "SalesChannelAnalytics", "SalesChannelContext", "SalesChannelDomain", + "SalesChannelFile", "SalesChannelTrackingCustomer", "SalesChannelTrackingOrder", "SalesChannelType",