From 346d1dc46f6ebd30c74ec6a78552291508d86145 Mon Sep 17 00:00:00 2001 From: shopwareBot Date: Fri, 24 Jan 2025 09:06:02 +0000 Subject: [PATCH] [create-pull-request] automated change --- SwagDigitalSalesRooms-storeapi.json | 6300 ++++++++++--------- SwagDigitalSalesRooms-storeapi.summary.json | 1 + 2 files changed, 3169 insertions(+), 3132 deletions(-) diff --git a/SwagDigitalSalesRooms-storeapi.json b/SwagDigitalSalesRooms-storeapi.json index 5dadf28..75dd6b3 100644 --- a/SwagDigitalSalesRooms-storeapi.json +++ b/SwagDigitalSalesRooms-storeapi.json @@ -2815,10 +2815,10 @@ "required": [ "id", "documentTypeId", - "fileType", "orderId", "config", - "deepLinkCode" + "deepLinkCode", + "fileType" ], "properties": { "id": { @@ -2829,9 +2829,6 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "fileType": { - "type": "string" - }, "referencedDocumentId": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -2844,6 +2841,10 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "documentA11yMediaFileId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "orderVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -2878,6 +2879,9 @@ "customFields": { "type": "object" }, + "fileType": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -2905,6 +2909,9 @@ }, "documentMediaFile": { "$ref": "#/components/schemas/Media" + }, + "documentA11yMediaFile": { + "$ref": "#/components/schemas/Media" } }, "type": "object" @@ -10563,385 +10570,57 @@ }, "type": "object" }, - "CrossSellingElementCollection": { + "ShippingMethodPageRouteResponse": { "type": "array", "items": { - "$ref": "#/components/schemas/CrossSellingElement" - } - }, - "FindProductVariantRouteResponse": { - "type": "object", - "properties": { - "foundCombination": { - "type": "object", - "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "Breadcrumb": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "type": { - "type": "string", - "enum": [ - "page", - "link", - "folder" - ] - }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" - }, - "linkType": { - "type": "string", - "enum": [ - "external", - "category", - "product", - "landing_page" - ] - }, - "internalLink": { - "type": "string" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - } - } - }, - "path": { - "type": "string" - }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - }, - "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" - }, - "calculatedTaxes": { - "type": "array", - "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "deliveryTimeId": { + "type": "string" + }, + "deliveryTime": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] + "name": { + "type": "string" }, - "tax": { - "type": "number" + "min": { + "type": "integer", + "format": "int32" }, - "taxRate": { - "type": "number" + "max": { + "type": "integer", + "format": "int32" }, - "price": { - "type": "number" + "unit": { + "type": "string" } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - }, - "nullable": true - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "type": "string", - "format": "^[0-9a-f]{32}$", - "nullable": true - }, - "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" - ] - }, - "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" - ] - }, - "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" - } - } - }, - "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" - } - } + }, + "translations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "shippingMethodId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + } } }, "orderDeliveries": { @@ -11233,73 +10912,259 @@ } } }, - "CartDeliveryPosition": { + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + }, + "CartPriceReference": { "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" - } - } + "purchaseUnit": { + "type": "number" }, - "identifier": { - "type": "string" + "referenceUnit": { + "type": "number" }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" + "unitName": { + "type": "string" }, "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "CustomerAddressRead": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "type": "number" }, - "customerId": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "enum": [ + "cart_price_reference" + ] }, - "createdAt": { - "type": "string", - "format": "date-time" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - "updatedAt": { - "type": "string", - "format": "date-time", + "regulationPrice": { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + }, "nullable": true }, - "country": { - "$ref": "#/components/schemas/Country" + "hasRange": { + "type": "boolean" }, - "countryState": { - "$ref": "#/components/schemas/CountryState", + "variantId": { + "type": "string", + "format": "^[0-9a-f]{32}$", "nullable": true - }, - "salutation": { + } + }, + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "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" + ] + }, + "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" + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] + }, + "field": { + "type": "string" + } + }, "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" + "name", + "type", + "field" + ] + }, + "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" + } + } + }, + "SuccessResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + } + } + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" ] }, "EntitySearchResult": { @@ -11329,467 +11194,438 @@ } } }, - "Sitemap": { + "ProductListingFlags": { "type": "object", + "description": "Additional flags for product listings", "properties": { - "filename": { - "type": "string" + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "type": "string", + "nullable": true }, - "created": { + "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.", "type": "string", - "format": "date-time" - } - }, - "required": [ - "filename", - "created" - ] - }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" + "nullable": true } } }, - "Criteria": { + "Cart": { "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" + "name": { + "description": "Name of the cart - for example `guest-cart`", + "type": "string" }, - "term": { - "description": "Search term", + "token": { + "description": "Context token identifying the cart and the user session", "type": "string" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "price": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "filter": { + "lineItems": { + "description": "All items within the cart", "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" - } - ] + "$ref": "#/components/schemas/LineItem" } }, - "ids": { + "errors": { "type": "array", - "description": "List of ids to search for", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "items": { - "type": "string" + "$ref": "#/components/schemas/CartError" } }, - "query": { + "deliveries": { "type": "array", - "description": "List of queries to restrict the search result. For more information, see [Search Queries > Query](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#query)", "items": { - "$ref": "#/components/schemas/Query" + "$ref": "#/components/schemas/CartDelivery" } }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "post-filter": { + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", "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" + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" }, - { - "$ref": "#/components/schemas/RangeFilter" + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" } - ] - } - }, - "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" - } + "modified": { + "type": "boolean" }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } + "customerComment": { + "type": "string", + "description": "A comment that can be added to the cart.", + "nullable": true }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "affiliateCode": { + "type": "string", + "description": "An affiliate tracking code", + "nullable": true }, - "includes": { - "$ref": "#/components/schemas/Includes" + "campaignCode": { + "type": "string", + "description": "A campaign tracking code", + "nullable": true } } }, - "Associations": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Includes": { + "CartPriceQuantity": { "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" - } + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" ] }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "isCalculated": { + "type": "boolean" }, - { - "title": "AggregationTerms", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" }, - { - "title": "AggregationHistogram", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationHistogram" - }, - { - "$ref": "#/components/schemas/SubAggregations" + "price": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" } - ] + }, + "type": "object" }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" - }, - { - "$ref": "#/components/schemas/SubAggregations" + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } } - ] + } + }, + "type": { + "type": "string" } + }, + "required": [ + "apiAlias" ] }, - "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)", + "LineItemType": { "type": "string", - "default": "none", "enum": [ - "none", - "exact", - "next-pages" + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity", + "dsr-line-item-discount", + "dsr-cart-discount" ] }, - "Query": { + "LineItem": { "type": "object", "properties": { - "score": { - "type": "number" + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } }, - "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": { + "cover": { + "$ref": "#/components/schemas/ProductMedia" + }, + "dataContextHash": { "type": "string" }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] + "dataTimestamp": { + "type": "string" }, - "naturalSorting": { - "type": "boolean" + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" }, - "type": { + "description": { "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" + "good": { + "type": "boolean" }, - "value": { + "id": { "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "EqualsFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] }, - "field": { + "label": { "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" - ] + "modified": { + "type": "boolean" }, - "queries": { - "$ref": "#/components/schemas/Filters" - } - }, - "required": [ - "type", - "operator", - "queries" - ] - }, - "RangeFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] + "modifiedByApp": { + "type": "boolean" }, - "field": { - "type": "string" + "payload": { + "$ref": "#/components/schemas/ProductJsonApi" }, - "parameters": { + "price": { "type": "object", "properties": { - "gte": { - "type": "number" + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] }, - "gt": { + "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" }, - "lte": { + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] + }, + "regulationPrice": { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + }, + "nullable": true + }, + "totalPrice": { "type": "number" }, - "lt": { + "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": [ - "type", - "field", - "parameters" + }, + "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": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } + }, + "type": { + "$ref": "#/components/schemas/LineItemType" + }, + "uniqueIdentifier": { + "type": "string" + }, + "extensions": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "attendees": { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": [ + "id", + "type" ] }, - "CartPriceReference": { + "CalculatedPrice": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "purchaseUnit": { + "unitPrice": { "type": "number" }, - "referenceUnit": { + "quantity": { "type": "number" }, - "unitName": { - "type": "string" + "rawTotal": { + "type": "number" }, - "price": { + "totalPrice": { "type": "number" }, - "apiAlias": { - "type": "string", - "enum": [ - "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": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } ] }, "listPrice": { @@ -11802,6 +11638,12 @@ } ] }, + "positionPrice": { + "type": "number" + }, + "netPrice": { + "type": "number" + }, "regulationPrice": { "type": "object", "properties": { @@ -11824,51 +11666,16 @@ "type": "string", "format": "^[0-9a-f]{32}$", "nullable": true - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] - }, - "CartPriceQuantity": { - "type": "object", - "properties": { + }, "apiAlias": { "type": "string", "enum": [ - "cart_price_quantity" + "calculated_price" ] }, - "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": { @@ -11881,2115 +11688,1976 @@ } } } - }, - "type": { - "type": "string" } }, "required": [ - "apiAlias" - ] - }, - "LineItemType": { - "type": "string", - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", "quantity", - "dsr-line-item-discount", - "dsr-cart-discount" + "unitPrice", + "positionPrice", + "netPrice", + "taxRules" ] }, - "LineItem": { + "FindProductVariantRouteResponse": { "type": "object", "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" + "foundCombination": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "options": { + "type": "array", + "items": { + "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" }, - "cover": { - "$ref": "#/components/schemas/ProductMedia" - }, - "dataContextHash": { - "type": "string" - }, - "dataTimestamp": { + "term": { + "description": "Search term", "type": "string" }, - "deliveryInformation": { - "$ref": "#/components/schemas/CartDeliveryInformation" - }, - "description": { - "type": "string" - }, - "good": { - "type": "boolean" - }, - "id": { - "type": "string" + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "label": { - "type": "string" + "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" + } + ] + } }, - "modified": { - "type": "boolean" + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "modifiedByApp": { - "type": "boolean" + "query": { + "type": "array", + "description": "List of queries to restrict the search result. For more information, see [Search Queries > Query](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#query)", + "items": { + "$ref": "#/components/schemas/Query" + } }, - "payload": { - "$ref": "#/components/schemas/ProductJsonApi" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "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": { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } + "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" }, - "nullable": true - }, - "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" - } - } + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } - }, - "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" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } }, - "removable": { - "type": "boolean" + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } }, - "stackable": { - "type": "boolean" + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "states": { + "grouping": { "type": "array", + "description": "Perform groupings over certain fields", "items": { "type": "string", - "enum": [ - "is-physical", - "is-download" - ] + "description": "Name of a field" } }, - "type": { - "$ref": "#/components/schemas/LineItemType" + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" }, - "uniqueIdentifier": { + "includes": { + "$ref": "#/components/schemas/Includes" + } + } + }, + "Associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "extensions": { - "type": "object", - "properties": { - "meta": { - "type": "object", - "properties": { - "attendees": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - } - } - } - } - } + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/SubAggregations" } - } + ] + }, + { + "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" + } + ] } - }, - "required": [ - "id", - "type" ] }, - "AggregationMetrics": { + "SubAggregations": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" + "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" + } ] - }, - "field": { - "type": "string" } - }, - "required": [ - "name", - "type", - "field" + } + }, + "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" ] }, - "CartError": { + "Query": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "items": { - "type": "object", - "properties": { - "key": { - "type": "string" + "score": { + "type": "number" + }, + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + { + "$ref": "#/components/schemas/EqualsFilter" }, - "message": { - "type": "string" + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "messageKey": { - "type": "string" + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] } - } + }, + "additionalProperties": true }, - "ProductDetailResponse": { + "Sort": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "field": { + "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" - } + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + }, + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" } }, "required": [ - "product" + "field", + "order" ] }, - "NavigationRouteResponse": { + "Filters": { "type": "array", "items": { - "$ref": "#/components/schemas/Category" + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "Cart": { + "SimpleFilter": { "type": "object", "properties": { - "name": { - "description": "Name of the cart - for example `guest-cart`", + "type": { + "type": "string", + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] + }, + "field": { "type": "string" }, - "token": { - "description": "Context token identifying the cart and the user session", + "value": { "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" + "field": { + "type": "string" }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } - }, - "errors": { - "type": "array", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "items": { - "$ref": "#/components/schemas/CartError" - } - }, - "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" - } + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" } - } - }, - "modified": { - "type": "boolean" - }, - "customerComment": { - "type": "string", - "description": "A comment that can be added to the cart.", - "nullable": true - }, - "affiliateCode": { - "type": "string", - "description": "An affiliate tracking code", - "nullable": true - }, - "campaignCode": { - "type": "string", - "description": "A campaign tracking code", - "nullable": true + ] } - } + }, + "required": [ + "type", + "field", + "value" + ] }, - "AccountNewsletterRecipient": { + "MultiNotFilter": { "type": "object", "properties": { - "status": { + "type": { "type": "string", "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" + "multi", + "not" ] }, - "apiAlias": { + "operator": { "type": "string", "enum": [ - "account_newsletter_recipient" + "and", + "or", + "nor", + "nand" ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" } }, "required": [ - "status", - "apiAlias" + "type", + "operator", + "queries" ] }, - "OrderRouteResponse": { + "RangeFilter": { "type": "object", "properties": { - "orders": { - "allOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } + "type": { + "type": "string", + "enum": [ + "range" ] }, - "paymentChangeable": { + "field": { + "type": "string" + }, + "parameters": { "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" + "properties": { + "gte": { + "type": "number" + }, + "gt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "lt": { + "type": "number" + } } } }, "required": [ - "orders" + "type", + "field", + "parameters" ] }, - "ProductListingFlags": { + "CartItems": { "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.", - "type": "string", - "nullable": 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.", - "type": "string", - "nullable": true + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } } } }, - "CartDeliveryInformation": { + "CartDeliveryPosition": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_information" - ] - }, - "freeDelivery": { - "type": "boolean" - }, - "deliveryTime": { + "deliveryDate": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer" - }, - "max": { - "type": "integer" - }, - "unit": { - "type": "string" + "earliest": { + "type": "string", + "format": "date-time" }, - "apiAlias": { + "latest": { "type": "string", - "enum": [ - "cart_delivery_time" - ] + "format": "date-time" } } }, - "height": { - "type": "integer" + "identifier": { + "type": "string" }, - "length": { - "type": "integer" + "lineItem": { + "$ref": "#/components/schemas/LineItem" }, - "restockTime": { - "type": "integer" + "price": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } + }, + "AggregationEntity": { + "title": "AggregationEntity", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "stock": { - "type": "integer" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "entity" + ] }, - "weight": { - "type": "integer" + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "width": { - "type": "integer" + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" } }, "required": [ - "apiAlias" + "name", + "type", + "field", + "definition" ] }, - "WishlistLoadRouteResponse": { + "AggregationFilter": { + "title": "AggregationFilter", "type": "object", "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string" - }, - "salesChannelId": { - "type": "string" - } - } + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" - }, - { - "type": "object", - "properties": { - "currentFilters": { - "type": "object", - "description": "Contains the state of the filters. These can be used to create listing filters.", - "properties": { - "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": { - "type": "integer", - "nullable": true - }, - "shipping-free": { - "type": "boolean", - "default": false - }, - "properties": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "search": { - "type": "string" - } - }, - "required": [ - "manufacturer", - "navigationId", - "price", - "properties", - "rating", - "shipping-free" - ] - }, - "availableSortings": { - "type": "array", - "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "label": { - "type": "string" - } - }, - "required": [ - "label" - ] - }, - "key": { - "type": "string" - }, - "priority": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_sorting" - ] - } - }, - "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" - ] - } - }, - "sorting": { - "type": "string" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - }, - "entity": { - "type": "string", - "enum": [ - "product" - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_listing" - ] - } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "filter" ] + }, + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } } + }, + "required": [ + "name", + "type", + "filter" ] }, - "Price": { + "AggregationTerms": { + "title": "AggregationTerms", "type": "object", - "description": "Price object", "properties": { - "currencyId": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "terms" + ] }, - "gross": { - "description": "", - "type": "number" + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "net": { - "description": "", + "limit": { + "description": "The number of terms to return", "type": "number" }, - "linked": { - "description": "", - "type": "boolean" - }, - "listPrice": { - "description": "", - "type": "object", - "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" - }, - "net": { - "description": "", - "type": "number" - }, - "linked": { - "description": "", - "type": "boolean" - } - }, - "required": [ - "gross", - "net" - ] - }, - "regulationPrice": { - "description": "", - "type": "object", - "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" - }, - "net": { - "description": "", - "type": "number" - }, - "linked": { - "description": "", - "type": "boolean" - } - }, - "required": [ - "gross", - "net" - ] + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" + } } }, "required": [ - "currencyId", - "gross", - "net" + "name", + "type", + "field" ] }, - "SalesChannelContext": { + "AggregationHistogram": { + "title": "AggregationHistogram", "type": "object", "properties": { - "token": { - "description": "Context the user session", + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "histogram" + ] }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "currency": { - "$ref": "#/components/schemas/Currency" + "interval": { + "description": "The interval of the histogram", + "type": "number" }, - "salesChannel": { - "description": "Information about the current sales channel", - "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" - }, - "analyticsId": { - "type": "string" - } - } + "format": { + "description": "The format of the histogram", + "type": "string" }, - "taxRules": { + "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", - "description": "Currently active tax rules and/or rates", "items": { "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" + "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" + ] }, - "name": { - "type": "string" + { + "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" + ] + }, + "AccountNewsletterRecipient": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "undefined", + "notSet", + "direct", + "optIn", + "optOut" + ] }, - "customer": { - "$ref": "#/components/schemas/Customer" - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "apiAlias": { + "type": "string", + "enum": [ + "account_newsletter_recipient" + ] + } + }, + "required": [ + "status", + "apiAlias" + ] + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - } - } + "percentage": { + "type": "number" }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "price": { + "type": "number" }, - "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": "string" - }, - "taxState": { - "type": "string" - }, - "useCache": { - "type": "boolean" - } - } + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] } + }, + "required": [ + "apiAlias" + ] + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" } }, - "CartItems": { + "CrossSellingElement": { "type": "object", "properties": { - "items": { + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" + }, + "products": { "type": "array", "items": { - "$ref": "#/components/schemas/LineItem" + "$ref": "#/components/schemas/Product" } - } - } - }, - "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}$" + "total": { + "type": "integer", + "format": "int32" }, - "salutationId": { + "streamId": { "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" + "format": "uuid" }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "apiAlias": { + "type": "string", + "enum": [ + "cross_selling_element" + ] } }, - "type": "object" + "required": [ + "crossSelling", + "products", + "total", + "apiAlias" + ] }, - "CartListPrice": { + "Price": { "type": "object", - "description": "", + "description": "Price object", "properties": { - "discount": { - "type": "number" + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "percentage": { + "gross": { + "description": "", "type": "number" }, - "price": { + "net": { + "description": "", "type": "number" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" + "linked": { + "description": "", + "type": "boolean" + }, + "listPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] + }, + "regulationPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" ] } }, "required": [ - "apiAlias" + "currencyId", + "gross", + "net" ] }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "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", - "description": "Additional search parameters for product listings", + "additionalProperties": true, "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 + "customFields": { + "type": "object" }, - "p": { - "description": "Search result page", - "type": "integer", - "default": 1 + "slotConfig": { + "type": "object" }, - "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 + "linkType": { + "type": "string", + "enum": [ + "external", + "category", + "product", + "landing_page" + ] }, - "properties": { - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "internalLink": { "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 + "externalLink": { + "type": "string" }, - "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 + "linkNewTab": { + "type": "boolean" }, - "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 + "description": { + "type": "string" }, - "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 + "metaTitle": { + "type": "string" }, - "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.", + "metaDescription": { "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.", - "type": "string", - "nullable": true + "keywords": { + "type": "string" } } - } - ] - }, - "AggregationEntity": { - "title": "AggregationEntity", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + }, + "path": { "type": "string" }, - "type": { - "description": "The type of aggregation", + "seoUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } + }, + "apiAlias": { "type": "string", "enum": [ - "entity" + "breadcrumb" ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", - "type": "string" } }, "required": [ "name", + "categoryId", "type", - "field", - "definition" + "translated", + "path", + "apiAlias" ] }, - "AggregationFilter": { - "title": "AggregationFilter", + "CartError": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "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" + "items": { + "type": "object", + "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" + } + } + } + } + }, + "OrderRouteResponse": { + "type": "object", + "properties": { + "orders": { + "allOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } ] }, - "filter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Filters" + "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": [ - "name", - "type", - "filter" + "orders" ] }, - "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", + "CustomerAddressRead": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", + "id": { "type": "string", - "enum": [ - "histogram" - ] + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "interval": { - "description": "The interval of the histogram", - "type": "number" + "createdAt": { + "type": "string", + "format": "date-time" }, - "format": { - "description": "The format of the histogram", - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "nullable": true }, - "timeZone": { - "description": "The timezone of the histogram", - "type": "string" + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState", + "nullable": true + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "required": [ - "name", - "type", - "field" + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" ] }, - "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": { + "type": "integer", + "nullable": true + }, + "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" - ] - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" ] }, - "DynamicProductListingPageOpenedPayload": { - "required": [ - "page" - ], - "properties": { - "page": { - "type": "integer", - "description": "Current page position in the pagination" - } - } - }, - "ToggleBroadcastModePayload": { - "type": "object", - "required": [ - "active" - ], - "properties": { - "active": { - "type": "boolean", - "description": "Status if the mode is toggled to active or inactive" - } - } - }, - "DynamicPageOpenedPayload": { + "ProductListingCriteria": { "allOf": [ { - "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" - } - ] - }, - "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", - "allowUserActionsForGuide": true, - "broadcastMode": false, - "extensions": [] - }, - "stateForClients": { - "videoClientToken": null, - "hoveredElementId": null, - "extensions": [] + "$ref": "#/components/schemas/Criteria" }, - "apiAlias": "swag_digital_sales_rooms_content_presentation_state_sales_channel_get_get_client_presentation_state_struct" - } - }, - "AttendeeProductCollectionLastSeenResponse": { - "type": "object", - "properties": { - "collection": { + { "type": "object", + "description": "Additional search parameters for product listings", "properties": { - "lastSeen": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" - } + "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.", + "type": "string", + "nullable": true } } } - }, - "example": { - "collection": { - "lastSeen": [ - "0015b3d83df441e490da7f6880a9c2da", - "60793d25cbab473f92c405ce0525f3ec" - ] - } - } + ] }, - "StateForAll": { + "SalesChannelContext": { "type": "object", "properties": { - "currentGuideProductId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - }, - "lastActiveGuideSection": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] + "token": { + "description": "Context the user session", + "type": "string" }, - "currentPageId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "currentCustomerGroup": { + "type": "object", + "description": "Customer group of the current user", + "properties": { + "name": { + "type": "string" }, - { - "type": "null" + "displayGross": { + "type": "boolean" } - ] + } }, - "currentSectionId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "null" + "displayGross": { + "type": "boolean" } - ] + } }, - "currentSlideAlias": { - "type": "integer", - "default": 0 + "currency": { + "$ref": "#/components/schemas/Currency" }, - "currentSlideData": { - "anyOf": [ - { - "$ref": "#/components/schemas/DynamicProductListingPageOpenedPayload" + "salesChannel": { + "description": "Information about the current sales channel", + "type": "object", + "properties": { + "typeId": { + "type": "string" }, - { - "type": "null" - } - ] - }, - "currentDynamicPage": { - "$ref": "#/components/schemas/DynamicPageOpenedPayload" - }, - "started": { - "type": "boolean", - "default": false - }, - "running": { - "type": "boolean", - "default": false - }, - "ended": { - "type": "boolean", - "default": false - }, - "startedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" + "languageId": { + "type": "string" }, - { - "type": "null" - } - ] - }, - "endedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" + "currencyId": { + "type": "string" }, - { - "type": "null" - } - ] - }, - "accessibleFrom": { - "anyOf": [ - { - "type": "string", - "format": "date-time" + "paymentMethodId": { + "type": "string" }, - { - "type": "null" - } - ] - }, - "accessibleTo": { - "anyOf": [ - { - "type": "string", - "format": "date-time" + "shippingMethodId": { + "type": "string" }, - { - "type": "null" + "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" + }, + "analyticsId": { + "type": "string" } - ] + } }, - "appointmentMode": { - "type": "string", - "enum": [ - "guided", - "self" - ] + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } }, - "videoAudioSettings": { - "type": "string", - "enum": [ - "both", - "none", - "audio-only" - ], - "default": "none" + "customer": { + "$ref": "#/components/schemas/Customer" }, - "videoRoomUrl": { - "type": "string", - "default": "" + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" }, - "attendeeRestrictionType": { - "anyOf": [ - { + "shippingLocation": { + "type": "object", + "properties": { + "apiAlias": { "type": "string", "enum": [ - "open", - "customer", - "rules" + "cart_delivery_shipping_location" ] }, - { - "type": "null" - } - ] - }, - "productDetailDefaultPageId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "country": { + "$ref": "#/components/schemas/Country" }, - { - "type": "null" + "address": { + "$ref": "#/components/schemas/CustomerAddress" } - ] + } }, - "quickviewPageId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" }, - "productListingDefaultPageId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "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": "string" + }, + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" } - ] - }, - "allowUserActionsForGuide": { - "type": "boolean", - "default": false - }, - "broadcastMode": { - "type": "boolean", - "default": false - }, - "viewMode": { - "type": "string", - "enum": [ - "onlyYou", - "presentation", - "videoGrid" - ], - "default": "presentation" - }, - "allowScreenSharing": { - "type": "boolean", - "default": false - }, - "extensions": { - "type": "array", - "default": [] + } } } }, - "ProductPageResult": { + "WishlistLoadRouteResponse": { "type": "object", "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "configurator": { - "oneOf": [ - { - "$ref": "#/components/schemas/PropertyGroup" + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" }, - { - "type": "null" + "salesChannelId": { + "type": "string" } - ] + } }, - "apiAlias": { - "type": "string" + "products": { + "$ref": "#/components/schemas/ProductListingResult" } } }, - "DynamicInteractionBody": { - "oneOf": [ - { - "$ref": "#/components/schemas/EmptyInteraction" - }, - { - "$ref": "#/components/schemas/ProductInteraction" - }, - { - "$ref": "#/components/schemas/DynamicPageOpenedInteraction" - }, - { - "$ref": "#/components/schemas/DynamicPageClosedInteraction" - }, - { - "$ref": "#/components/schemas/DynamicProductPageOpenedInteraction" - }, - { - "$ref": "#/components/schemas/PageViewedInteraction" - }, - { - "$ref": "#/components/schemas/GuideHoveredInteraction" - }, - { - "$ref": "#/components/schemas/ToggleBroadcastModeInteraction" - }, - { - "$ref": "#/components/schemas/ViewModeChangedInteraction" + "Sitemap": { + "type": "object", + "properties": { + "filename": { + "type": "string" }, - { - "$ref": "#/components/schemas/ScreenSharingToggledInteraction" - } - ], - "discriminator": { - "propertyName": "name", - "mapping": { - "keep.alive": "#/components/schemas/EmptyInteraction", - "quickview.opened": "#/components/schemas/EmptyInteraction", - "quickview.closed": "#/components/schemas/EmptyInteraction", - "attendee.leave": "#/components/schemas/EmptyInteraction", - "remote.checkout.accepted": "#/components/schemas/EmptyInteraction", - "remote.checkout.denied": "#/components/schemas/EmptyInteraction", - "product.viewed": "#/components/schemas/ProductInteraction", - "attendee.product.collection.liked": "#/components/schemas/ProductInteraction", - "attendee.product.collection.disliked": "#/components/schemas/ProductInteraction", - "attendee.product.collection.removed": "#/components/schemas/ProductInteraction", - "dynamicPage.opened": "#/components/schemas/DynamicPageOpenedInteraction", - "dynamicPage.closed": "#/components/schemas/DynamicPageClosedInteraction", - "dynamicProductPage.opened": "#/components/schemas/DynamicProductPageOpenedInteraction", - "page.viewed": "#/components/schemas/PageViewedInteraction", - "guide.hovered": "#/components/schemas/GuideHoveredInteraction", - "broadcastMode.toggled": "#/components/schemas/ToggleBroadcastModeInteraction", - "viewMode.changed": "#/components/schemas/ViewModeChangedInteraction", - "screenSharing.toggled": "#/components/schemas/ScreenSharingToggledInteraction" + "created": { + "type": "string", + "format": "date-time" } - } + }, + "required": [ + "filename", + "created" + ] }, - "BaseInteraction": { + "ScreenSharingToggledPayload": { "type": "object", + "required": [ + "active" + ], "properties": { - "triggeredAt": { - "type": "string", - "description": "The time when the interaction was triggered", - "default": "now" - }, - "lifeTimeInSeconds": { - "type": "integer", - "description": "The time in seconds how long the interaction should be stored in the database", - "default": -1 + "active": { + "type": "boolean", + "description": "Whether the screen sharing is active or not" } } }, - "EmptyInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { + "AttendeeProductCollectionResponse": { + "type": "object", + "properties": { + "collection": { "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "liked": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product ids from the collection" + } + } + } }, - "payload": { + { "type": "object", - "additionalProperties": false, - "minProperties": 0, - "maxProperties": 0 + "properties": { + "disliked": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product ids from the collection" + } + } + } } - } + ] } - ] + }, + "example": { + "collection": { + "liked": [ + "0015b3d83df441e490da7f6880a9c2da", + "60793d25cbab473f92c405ce0525f3ec" + ] + } + } }, - "ProductInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "StateForAll": { + "type": "object", + "properties": { + "currentGuideProductId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "payload": { - "$ref": "#/components/schemas/ProductPayload" + { + "type": "null" } - } - } - ] - }, - "DynamicPageOpenedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "lastActiveGuideSection": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "payload": { - "$ref": "#/components/schemas/DynamicPageOpenedPayload" + { + "type": "null" } - } - } - ] - }, - "DynamicProductPageOpenedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "currentPageId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "payload": { - "$ref": "#/components/schemas/DynamicProductPageOpenedPayload" + { + "type": "null" } - } - } - ] - }, - "DynamicPageClosedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "currentSectionId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "payload": { - "$ref": "#/components/schemas/DynamicPageClosedPayload" + { + "type": "null" } - } - } - ] - }, - "PageViewedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/PageViewedPayload" - } - } - } - ] - }, - "GuideHoveredInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + "currentSlideAlias": { + "type": "integer", + "default": 0 }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "currentSlideData": { + "anyOf": [ + { + "$ref": "#/components/schemas/DynamicProductListingPageOpenedPayload" }, - "payload": { - "$ref": "#/components/schemas/GuideHoveredPayload" + { + "type": "null" } - } - } - ] - }, - "ToggleBroadcastModeInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "currentDynamicPage": { + "$ref": "#/components/schemas/DynamicPageOpenedPayload" + }, + "started": { + "type": "boolean", + "default": false + }, + "running": { + "type": "boolean", + "default": false + }, + "ended": { + "type": "boolean", + "default": false + }, + "startedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, - "payload": { - "$ref": "#/components/schemas/ToggleBroadcastModePayload" + { + "type": "null" } - } - } - ] - }, - "ViewModeChangedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "endedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, - "payload": { - "$ref": "#/components/schemas/ViewModeChangedPayload" + { + "type": "null" } - } - } - ] - }, - "ScreenSharingToggledInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "accessibleFrom": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, - "payload": { - "$ref": "#/components/schemas/ScreenSharingToggledPayload" + { + "type": "null" } - } - } - ] - }, - "CreateInteractionRequestBody": { - "$ref": "#/components/schemas/DynamicInteractionBody" - }, - "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" + ] }, - "guideCartPermissionsGranted": { - "type": "boolean", - "description": "The permission for guide cart actions" - } - } - }, - "DynamicPageClosedPayload": { - "type": "object", - "properties": { - "pageId": { - "oneOf": [ + "accessibleTo": { + "anyOf": [ { "type": "string", - "pattern": "^[a-f0-9]{32}$" + "format": "date-time" }, { "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" - } - } - }, - "ViewModeChangedPayload": { - "type": "object", - "properties": { - "mode": { + "appointmentMode": { "type": "string", - "description": "The view mode of presentation", "enum": [ - "onlyYou", - "presentation", - "videoGrid" + "guided", + "self" + ] + }, + "videoAudioSettings": { + "type": "string", + "enum": [ + "both", + "none", + "audio-only" ], - "default": "presentation" - } - } - }, - "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" + "default": "none" }, - "mercurePublisherTopic": { - "oneOf": [ + "videoRoomUrl": { + "type": "string", + "default": "" + }, + "attendeeRestrictionType": { + "anyOf": [ { - "type": "string" + "type": "string", + "enum": [ + "open", + "customer", + "rules" + ] }, { "type": "null" } - ], - "description": "The topic to which the attendee/guide can send updates" + ] }, - "JWTMercureSubscriberToken": { - "oneOf": [ + "productDetailDefaultPageId": { + "anyOf": [ { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, { "type": "null" } - ], - "description": "The JWT mercure token to publish updates" + ] }, - "mercureHubPublicUrl": { - "oneOf": [ + "quickviewPageId": { + "anyOf": [ { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, { "type": "null" } - ], - "description": "The mercure hub url to connect for subscribing and updating" + ] }, - "JWTMercurePublisherToken": { - "oneOf": [ + "productListingDefaultPageId": { + "anyOf": [ { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "allowUserActionsForGuide": { + "type": "boolean", + "default": false + }, + "broadcastMode": { + "type": "boolean", + "default": false + }, + "viewMode": { + "type": "string", + "enum": [ + "onlyYou", + "presentation", + "videoGrid" + ], + "default": "presentation" + }, + "allowScreenSharing": { + "type": "boolean", + "default": false + }, + "extensions": { + "type": "array", + "default": [] + } + } + }, + "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 + }, + "bookingLink": { + "description": "The booking link", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "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, + "bookingLink": null, + "appointmentName": "dsr11", + "salesChannelName": "Storefront" + } + }, + "DynamicPageOpenedPayload": { + "allOf": [ + { + "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" + } + ] + }, + "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" @@ -14096,110 +13764,52 @@ "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" } }, - "DiscountLineItemPayload": { + "ViewModeChangedPayload": { "type": "object", "properties": { - "discountType": { + "mode": { "type": "string", + "description": "The view mode of presentation", "enum": [ - "percentage", - "absolute" - ] - }, - "discountValue": { - "type": "number", - "format": "float", - "maximum": 0 - }, - "discountPrice": { - "type": "number", - "format": "float", - "maximum": 0 + "onlyYou", + "presentation", + "videoGrid" + ], + "default": "presentation" } } }, - "AttendeeRespondInvitationResponse": { + "EmptyPayload": { + "type": "object", + "properties": [] + }, + "AttendeeProductCollectionLastSeenResponse": { "type": "object", "properties": { - "appointment": { + "collection": { "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" + "lastSeen": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product ids from the collection" + } } } - }, - "answer": { - "type": "string", - "enum": [ - "accepted", - "maybe", - "declined" - ], - "description": "The invitation status that client responded to" + } + }, + "example": { + "collection": { + "lastSeen": [ + "0015b3d83df441e490da7f6880a9c2da", + "60793d25cbab473f92c405ce0525f3ec" + ] } } }, - "EmptyPayload": { - "type": "object", - "properties": [] - }, - "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" - } - } - } - ] - }, - "AbstractDynamicPageOpenedPayload": { + "AbstractDynamicPageOpenedPayload": { "type": "object", "required": [ "pageId", @@ -14225,153 +13835,6 @@ } } }, - "ScreenSharingToggledPayload": { - "type": "object", - "required": [ - "active" - ], - "properties": { - "active": { - "type": "boolean", - "description": "Whether the screen sharing is active or not" - } - } - }, - "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 - }, - "bookingLink": { - "description": "The booking link", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "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, - "bookingLink": null, - "appointmentName": "dsr11", - "salesChannelName": "Storefront" - } - }, - "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" - } - }, "BasePresentationSlideData": { "properties": { "cmsPage": { @@ -14827,49 +14290,511 @@ "customFields": null, "apiAlias": "cms_page" }, - "category": { - "versionId": null, - "translated": { - "breadcrumb": [] - }, - "createdAt": null, - "updatedAt": null, - "afterCategoryId": null, - "parentId": null, - "mediaId": null, - "name": null, - "breadcrumb": [], - "path": null, - "level": null, - "active": null, - "childCount": null, - "visibleChildCount": 0, - "displayNestedProducts": null, - "parent": null, - "children": null, - "translations": null, - "media": null, - "cmsPageId": null, - "cmsPageIdSwitched": false, - "cmsPage": null, - "linkType": null, - "linkNewTab": null, - "internalLink": null, - "externalLink": null, - "visible": null, - "type": null, - "productAssignmentType": null, - "description": null, - "metaTitle": null, - "metaDescription": null, - "keywords": null, - "seoUrls": null, - "customEntityTypeId": null, - "id": "34f21c5eb6d54a939f10973204aa5f08", - "customFields": null, - "apiAlias": "category" + "category": { + "versionId": null, + "translated": { + "breadcrumb": [] + }, + "createdAt": null, + "updatedAt": null, + "afterCategoryId": null, + "parentId": null, + "mediaId": null, + "name": null, + "breadcrumb": [], + "path": null, + "level": null, + "active": null, + "childCount": null, + "visibleChildCount": 0, + "displayNestedProducts": null, + "parent": null, + "children": null, + "translations": null, + "media": null, + "cmsPageId": null, + "cmsPageIdSwitched": false, + "cmsPage": null, + "linkType": null, + "linkNewTab": null, + "internalLink": null, + "externalLink": null, + "visible": null, + "type": null, + "productAssignmentType": null, + "description": null, + "metaTitle": null, + "metaDescription": null, + "keywords": null, + "seoUrls": null, + "customEntityTypeId": null, + "id": "34f21c5eb6d54a939f10973204aa5f08", + "customFields": null, + "apiAlias": "category" + }, + "apiAlias": "pwa_page_result" + } + }, + "DynamicInteractionBody": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmptyInteraction" + }, + { + "$ref": "#/components/schemas/ProductInteraction" + }, + { + "$ref": "#/components/schemas/DynamicPageOpenedInteraction" + }, + { + "$ref": "#/components/schemas/DynamicPageClosedInteraction" + }, + { + "$ref": "#/components/schemas/DynamicProductPageOpenedInteraction" + }, + { + "$ref": "#/components/schemas/PageViewedInteraction" + }, + { + "$ref": "#/components/schemas/GuideHoveredInteraction" + }, + { + "$ref": "#/components/schemas/ToggleBroadcastModeInteraction" + }, + { + "$ref": "#/components/schemas/ViewModeChangedInteraction" + }, + { + "$ref": "#/components/schemas/ScreenSharingToggledInteraction" + } + ], + "discriminator": { + "propertyName": "name", + "mapping": { + "keep.alive": "#/components/schemas/EmptyInteraction", + "quickview.opened": "#/components/schemas/EmptyInteraction", + "quickview.closed": "#/components/schemas/EmptyInteraction", + "attendee.leave": "#/components/schemas/EmptyInteraction", + "remote.checkout.accepted": "#/components/schemas/EmptyInteraction", + "remote.checkout.denied": "#/components/schemas/EmptyInteraction", + "product.viewed": "#/components/schemas/ProductInteraction", + "attendee.product.collection.liked": "#/components/schemas/ProductInteraction", + "attendee.product.collection.disliked": "#/components/schemas/ProductInteraction", + "attendee.product.collection.removed": "#/components/schemas/ProductInteraction", + "dynamicPage.opened": "#/components/schemas/DynamicPageOpenedInteraction", + "dynamicPage.closed": "#/components/schemas/DynamicPageClosedInteraction", + "dynamicProductPage.opened": "#/components/schemas/DynamicProductPageOpenedInteraction", + "page.viewed": "#/components/schemas/PageViewedInteraction", + "guide.hovered": "#/components/schemas/GuideHoveredInteraction", + "broadcastMode.toggled": "#/components/schemas/ToggleBroadcastModeInteraction", + "viewMode.changed": "#/components/schemas/ViewModeChangedInteraction", + "screenSharing.toggled": "#/components/schemas/ScreenSharingToggledInteraction" + } + } + }, + "BaseInteraction": { + "type": "object", + "properties": { + "triggeredAt": { + "type": "string", + "description": "The time when the interaction was triggered", + "default": "now" + }, + "lifeTimeInSeconds": { + "type": "integer", + "description": "The time in seconds how long the interaction should be stored in the database", + "default": -1 + } + } + }, + "EmptyInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "type": "object", + "additionalProperties": false, + "minProperties": 0, + "maxProperties": 0 + } + } + } + ] + }, + "ProductInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ProductPayload" + } + } + } + ] + }, + "DynamicPageOpenedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/DynamicPageOpenedPayload" + } + } + } + ] + }, + "DynamicProductPageOpenedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/DynamicProductPageOpenedPayload" + } + } + } + ] + }, + "DynamicPageClosedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/DynamicPageClosedPayload" + } + } + } + ] + }, + "PageViewedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/PageViewedPayload" + } + } + } + ] + }, + "GuideHoveredInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/GuideHoveredPayload" + } + } + } + ] + }, + "ToggleBroadcastModeInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ToggleBroadcastModePayload" + } + } + } + ] + }, + "ViewModeChangedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ViewModeChangedPayload" + } + } + } + ] + }, + "ScreenSharingToggledInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ScreenSharingToggledPayload" + } + } + } + ] + }, + "CreateInteractionRequestBody": { + "$ref": "#/components/schemas/DynamicInteractionBody" + }, + "DiscountLineItemPayload": { + "type": "object", + "properties": { + "discountType": { + "type": "string", + "enum": [ + "percentage", + "absolute" + ] + }, + "discountValue": { + "type": "number", + "format": "float", + "maximum": 0 + }, + "discountPrice": { + "type": "number", + "format": "float", + "maximum": 0 + } + } + }, + "GuideHoveredPayload": { + "type": "object", + "properties": { + "hoveredElementId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the product which is used in the interaction" + }, + { + "type": "null" + } + ] + } + } + }, + "ToggleBroadcastModePayload": { + "type": "object", + "required": [ + "active" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Status if the mode is toggled to active or inactive" + } + } + }, + "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" + } + } + }, + "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" + }, + "guideCartPermissionsGranted": { + "type": "boolean", + "description": "The permission for guide cart actions" + } + } + }, + "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" + } + } + }, + "ProductPageResult": { + "type": "object", + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" + }, + "product": { + "$ref": "#/components/schemas/Product" }, - "apiAlias": "pwa_page_result" + "configurator": { + "oneOf": [ + { + "$ref": "#/components/schemas/PropertyGroup" + }, + { + "type": "null" + } + ] + }, + "apiAlias": { + "type": "string" + } } }, "PresentationStructure": { @@ -15890,47 +15815,91 @@ "apiAlias": "pwa_page_result" } }, - "AttendeeProductCollectionResponse": { + "DynamicProductListingPageOpenedPayload": { + "required": [ + "page" + ], + "properties": { + "page": { + "type": "integer", + "description": "Current page position in the pagination" + } + } + }, + "CreateAppointmentRequestBody": { "type": "object", + "description": "Includes all data you will need to attend to a appointment.", + "required": [ + "salutationId", + "firstName", + "lastName", + "emailAddress", + "subject" + ], "properties": { - "collection": { - "type": "object", - "anyOf": [ - { - "type": "object", - "properties": { - "liked": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" - } - } - } - }, - { - "type": "object", - "properties": { - "disliked": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" - } - } - } - } - ] + "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": { - "collection": { - "liked": [ - "0015b3d83df441e490da7f6880a9c2da", - "60793d25cbab473f92c405ce0525f3ec" - ] + "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" + } + }, + "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" } } }, @@ -15982,6 +15951,34 @@ } } }, + "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" + } + } + } + ] + }, "StateForClients": { "type": "object", "properties": { @@ -16012,38 +16009,48 @@ } } }, - "GuideHoveredPayload": { + "ClientPresentationStateResponse": { "type": "object", "properties": { - "hoveredElementId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the product which is used in the interaction" - }, - { - "type": "null" - } - ] - } - } - }, - "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" + "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", + "allowUserActionsForGuide": true, + "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" } } }, @@ -16183,30 +16190,6 @@ "204": { "description": "No Content" }, - "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": { @@ -16395,6 +16378,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" + } + } + } + } + } } }, "parameters": { @@ -16440,43 +16447,6 @@ } ], "paths": { - "/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/appointment/presentation": { "get": { "tags": [ @@ -16607,179 +16577,30 @@ } } }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/dsr/appointment/presentation/state": { - "get": { - "tags": [ - "Presentation" - ], - "summary": "Get the current presentation state", - "description": "Returns the presentation state for all and the client", - "operationId": "getClientPresentationState", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ClientPresentationStateResponse" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/dsr/quickview/{productId}/{cmsPageLayoutId}": { - "get": { - "tags": [ - "Presentation" - ], - "summary": "Fetch a cms page for quickview with product data", - "description": "Takes a product identifier and returns the preconfigured quickview CMS layout (defined in SwagDigitalSalesRooms.config.quickviewPageId ) hydrated with the product specific data", - "operationId": "resolveQuickviewPage", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "The product id", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "cmsPageLayoutId", - "in": "path", - "description": "The cms page id using as product quick view", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "configurator": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } - } - } - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/dsr/product-listing": { - "post": { - "tags": [ - "Product" - ], - "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": [], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ], - "anyOf": [ - { - "properties": { - "interaction": { - "type": "boolean", - "default": false, - "description": "Load interaction (like & dislike) to product of attendee. It will be added into product extensions named interaction" - }, - "useIdSorting": { - "type": "boolean", - "default": false, - "description": "Use id sorting instead of other sorting fields" - }, - "loadVariants": { - "type": "boolean", - "default": false, - "description": "load all variants following the main products" - }, - "loadAllIds": { - "type": "boolean", - "default": false, - "description": "Load all product ids, you can access it from `extensions.allIds` of the response" - } - } - } - ] - } - } - } - }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/appointment/presentation/state": { + "get": { + "tags": [ + "Presentation" + ], + "summary": "Get the current presentation state", + "description": "Returns the presentation state for all and the client", + "operationId": "getClientPresentationState", + "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/ClientPresentationStateResponse" } } } @@ -16793,18 +16614,29 @@ ] } }, - "/dsr/product/{productId}": { + "/dsr/quickview/{productId}/{cmsPageLayoutId}": { "get": { "tags": [ - "Shop pages" + "Presentation" ], - "summary": "Load product detail page", - "description": "Load product detail page with product id", - "operationId": "dsrReadProductDetailPage", + "summary": "Fetch a cms page for quickview with product data", + "description": "Takes a product identifier and returns the preconfigured quickview CMS layout (defined in SwagDigitalSalesRooms.config.quickviewPageId ) hydrated with the product specific data", + "operationId": "resolveQuickviewPage", "parameters": [ { "name": "productId", "in": "path", + "description": "The product id", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "cmsPageLayoutId", + "in": "path", + "description": "The cms page id using as product quick view", "required": true, "schema": { "type": "string", @@ -16818,7 +16650,50 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductPageResult" + "type": "object", + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" + }, + "product": { + "$ref": "#/components/schemas/Product" + }, + "configurator": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyGroup" + } + } + } + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/account/update-default-info": { + "post": { + "tags": [ + "Customer account" + ], + "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": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -17362,6 +17237,167 @@ } ] } + }, + "/dsr/product-listing": { + "post": { + "tags": [ + "Product" + ], + "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": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ], + "anyOf": [ + { + "properties": { + "interaction": { + "type": "boolean", + "default": false, + "description": "Load interaction (like & dislike) to product of attendee. It will be added into product extensions named interaction" + }, + "useIdSorting": { + "type": "boolean", + "default": false, + "description": "Use id sorting instead of other sorting fields" + }, + "loadVariants": { + "type": "boolean", + "default": false, + "description": "load all variants following the main products" + }, + "loadAllIds": { + "type": "boolean", + "default": false, + "description": "Load all product ids, you can access it from `extensions.allIds` of the response" + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/product/{productId}": { + "get": { + "tags": [ + "Shop pages" + ], + "summary": "Load product detail page", + "description": "Load product detail page with product id", + "operationId": "dsrReadProductDetailPage", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductPageResult" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/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": [] + } + ] + } } }, "tags": [ diff --git a/SwagDigitalSalesRooms-storeapi.summary.json b/SwagDigitalSalesRooms-storeapi.summary.json index bc5a2fd..d9fe3d3 100644 --- a/SwagDigitalSalesRooms-storeapi.summary.json +++ b/SwagDigitalSalesRooms-storeapi.summary.json @@ -1,5 +1,6 @@ { "paths": [ + "/dsr/account/update-default-info", "/dsr/appointment/attendee", "/dsr/appointment/collection/last-seen", "/dsr/appointment/collection/{alias}",