From 86bdb57f7ab2f461659cde0c1510c65fa70a46b7 Mon Sep 17 00:00:00 2001 From: shopwareBot Date: Wed, 22 Jan 2025 09:05:31 +0000 Subject: [PATCH] [create-pull-request] automated change --- SwagDigitalSalesRooms-storeapi.json | 6089 ++++++++++--------- SwagDigitalSalesRooms-storeapi.summary.json | 1 + 2 files changed, 3060 insertions(+), 3030 deletions(-) diff --git a/SwagDigitalSalesRooms-storeapi.json b/SwagDigitalSalesRooms-storeapi.json index 5dadf28..43f713e 100644 --- a/SwagDigitalSalesRooms-storeapi.json +++ b/SwagDigitalSalesRooms-storeapi.json @@ -10563,384 +10563,56 @@ }, "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" + } } } }, @@ -11233,76 +10905,262 @@ } } }, - "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": { - "$ref": "#/components/schemas/Salutation" } }, "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" ] }, - "EntitySearchResult": { + "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": [ + "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": { "type": "object", "properties": { "entity": { @@ -11329,467 +11187,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" }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - } - ] - }, - "SubAggregations": { - "type": "object", - "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/AggregationHistogram" - }, - { - "$ref": "#/components/schemas/AggregationRange" - } - ] - } - } - }, - "TotalCountMode": { - "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", - "type": "string", - "default": "none", - "enum": [ - "none", - "exact", - "next-pages" - ] - }, - "Query": { - "type": "object", - "properties": { - "score": { + "quantity": { "type": "number" }, - "query": { - "oneOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" } - ] - } - }, - "additionalProperties": true - }, - "Sort": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] + }, + "type": "object" }, - "naturalSorting": { - "type": "boolean" + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } }, "type": { "type": "string" } }, "required": [ - "field", - "order" + "apiAlias" ] }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "LineItemType": { + "type": "string", + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity", + "dsr-line-item-discount", + "dsr-cart-discount" + ] }, - "SimpleFilter": { + "LineItem": { "type": "object", "properties": { - "type": { - "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } }, - "field": { + "cover": { + "$ref": "#/components/schemas/ProductMedia" + }, + "dataContextHash": { "type": "string" }, - "value": { + "dataTimestamp": { "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "EqualsFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] }, - "field": { + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" + }, + "description": { "type": "string" }, - "value": { - "oneOf": [ - { - "type": "string" + "good": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "modified": { + "type": "boolean" + }, + "modifiedByApp": { + "type": "boolean" + }, + "payload": { + "$ref": "#/components/schemas/ProductJsonApi" + }, + "price": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] }, - { + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] + } + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] + }, + "quantity": { "type": "number" }, - { - "type": "boolean" + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] }, - { - "type": "null" + "regulationPrice": { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + }, + "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" + } + } + } } - ] - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "MultiNotFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or", - "nor", - "nand" + }, + "required": [ + "apiAlias", + "totalPrice", + "quantity", + "unitPrice" ] }, - "queries": { - "$ref": "#/components/schemas/Filters" - } - }, - "required": [ - "type", - "operator", - "queries" - ] - }, - "RangeFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] + "priceDefinition": { + "$ref": "#/components/schemas/CartPriceQuantity" }, - "field": { - "type": "string" + "quantity": { + "type": "number" }, - "parameters": { + "quantityInformation": { "type": "object", "properties": { - "gte": { + "maxPurchase": { "type": "number" }, - "gt": { + "minPurchase": { "type": "number" }, - "lte": { - "type": "number" - }, - "lt": { + "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": [ - "type", - "field", - "parameters" + "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 +11631,12 @@ } ] }, + "positionPrice": { + "type": "number" + }, + "netPrice": { + "type": "number" + }, "regulationPrice": { "type": "object", "properties": { @@ -11824,51 +11659,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,703 +11681,815 @@ } } } - }, - "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" - } - }, - "cover": { - "$ref": "#/components/schemas/ProductMedia" - }, - "dataContextHash": { - "type": "string" - }, - "dataTimestamp": { - "type": "string" - }, - "deliveryInformation": { - "$ref": "#/components/schemas/CartDeliveryInformation" - }, - "description": { - "type": "string" - }, - "good": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "modified": { - "type": "boolean" - }, - "modifiedByApp": { - "type": "boolean" - }, - "payload": { - "$ref": "#/components/schemas/ProductJsonApi" - }, - "price": { + "foundCombination": { "type": "object", "properties": { - "apiAlias": { + "variantId": { "type": "string", - "enum": [ - "calculated_price" - ] + "pattern": "^[0-9a-f]{32}$" }, - "calculatedTaxes": { + "options": { "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" - ] - } - }, - "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" - } - } + "type": "string" } } - }, - "required": [ - "apiAlias", - "totalPrice", - "quantity", - "unitPrice" - ] + } + } + } + }, + "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" }, - "priceDefinition": { - "$ref": "#/components/schemas/CartPriceQuantity" + "term": { + "description": "Search term", + "type": "string" }, - "quantity": { - "type": "number" + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "quantityInformation": { - "type": "object", - "properties": { - "maxPurchase": { - "type": "number" - }, - "minPurchase": { - "type": "number" - }, - "purchaseSteps": { - "type": "number" - } + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "referencedId": { - "type": "string" + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "removable": { - "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" + } }, - "stackable": { - "type": "boolean" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "states": { + "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": { - "type": "string", - "enum": [ - "is-physical", - "is-download" + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } ] } }, - "type": { - "$ref": "#/components/schemas/LineItemType" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } }, - "uniqueIdentifier": { - "type": "string" + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } }, - "extensions": { - "type": "object", - "properties": { - "meta": { - "type": "object", - "properties": { - "attendees": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - } - } - } - } - } - } + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" } - }, - "required": [ - "id", - "type" - ] + } }, - "AggregationMetrics": { + "Associations": { "type": "object", - "properties": { - "name": { + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "type": { - "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } ] }, - "field": { - "type": "string" + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] } - }, - "required": [ - "name", - "type", - "field" ] }, - "CartError": { + "SubAggregations": { "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" + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + { + "$ref": "#/components/schemas/AggregationEntity" }, - "message": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationFilter" }, - "messageKey": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/AggregationRange" } - } + ] } } }, - "ProductDetailResponse": { + "TotalCountMode": { + "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", + "type": "string", + "default": "none", + "enum": [ + "none", + "exact", + "next-pages" + ] + }, + "Query": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "score": { + "type": "number" }, - "configurator": { - "type": "array", - "description": "List of property groups with their corresponding options and information on how to display them.", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "required": [ - "product" - ] - }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } + "additionalProperties": true }, - "Cart": { + "Sort": { "type": "object", "properties": { - "name": { - "description": "Name of the cart - for example `guest-cart`", - "type": "string" - }, - "token": { - "description": "Context token identifying the cart and the user session", + "field": { "type": "string" }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "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" - } - } - } - }, - "modified": { - "type": "boolean" - }, - "customerComment": { + "order": { "type": "string", - "description": "A comment that can be added to the cart.", - "nullable": true + "enum": [ + "ASC", + "DESC" + ] }, - "affiliateCode": { - "type": "string", - "description": "An affiliate tracking code", - "nullable": true + "naturalSorting": { + "type": "boolean" }, - "campaignCode": { - "type": "string", - "description": "A campaign tracking code", - "nullable": true + "type": { + "type": "string" } + }, + "required": [ + "field", + "order" + ] + }, + "Filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "AccountNewsletterRecipient": { + "SimpleFilter": { "type": "object", "properties": { - "status": { + "type": { "type": "string", "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "account_newsletter_recipient" + "contains", + "equalsAny", + "prefix", + "suffix" ] + }, + "field": { + "type": "string" + }, + "value": { + "type": "string" } }, "required": [ - "status", - "apiAlias" + "type", + "field", + "value" ] }, - "OrderRouteResponse": { + "EqualsFilter": { "type": "object", "properties": { - "orders": { - "allOf": [ + "type": { + "type": "string", + "enum": [ + "equals" + ] + }, + "field": { + "type": "string" + }, + "value": { + "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } + "type": "string" }, { - "$ref": "#/components/schemas/EntitySearchResult" + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" } ] - }, - "paymentChangeable": { - "type": "object", - "description": "The key-value pairs contain the uuid of the order as key and a boolean as value, indicating that the payment method can still be changed.", - "additionalProperties": { - "type": "boolean" - } } }, "required": [ - "orders" + "type", + "field", + "value" ] }, - "ProductListingFlags": { + "MultiNotFilter": { "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": { "type": "string", - "nullable": true + "enum": [ + "multi", + "not" + ] }, - "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.", + "operator": { "type": "string", - "nullable": true + "enum": [ + "and", + "or", + "nor", + "nand" + ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" } - } + }, + "required": [ + "type", + "operator", + "queries" + ] }, - "CartDeliveryInformation": { + "RangeFilter": { "type": "object", "properties": { - "apiAlias": { + "type": { "type": "string", "enum": [ - "cart_delivery_information" + "range" ] }, - "freeDelivery": { - "type": "boolean" + "field": { + "type": "string" }, - "deliveryTime": { + "parameters": { "type": "object", "properties": { - "name": { - "type": "string" + "gte": { + "type": "number" }, - "min": { - "type": "integer" + "gt": { + "type": "number" }, - "max": { - "type": "integer" + "lte": { + "type": "number" }, - "unit": { - "type": "string" + "lt": { + "type": "number" + } + } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "CartItems": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + } + } + }, + "CartDeliveryPosition": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" }, - "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" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "filter" + ] + }, + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } } - } + }, + "required": [ + "name", + "type", + "filter" + ] }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" + "AggregationTerms": { + "title": "AggregationTerms", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - { - "type": "object", - "properties": { - "currentFilters": { - "type": "object", - "description": "Contains the state of the filters. These can be used to create listing filters.", - "properties": { - "navigationId": { - "type": "string" - }, - "manufacturer": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "price": { - "type": "object", - "properties": { - "min": { - "type": "integer", - "default": 0 - }, - "max": { - "type": "integer", - "default": 0 - } + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "terms" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "limit": { + "description": "The number of terms to return", + "type": "number" + }, + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationHistogram": { + "title": "AggregationHistogram", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "histogram" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "interval": { + "description": "The interval of the histogram", + "type": "number" + }, + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" }, - "required": [ - "min", - "max" - ] - }, - "rating": { - "type": "integer", - "nullable": true - }, - "shipping-free": { - "type": "boolean", - "default": false + "to": { + "type": "number", + "description": "The upper bound of the range" + } }, + "required": [ + "from", + "to" + ] + }, + { + "type": "object", + "title": "From only", "properties": { - "type": "array", - "items": { + "from": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "description": "The lower bound of the range" } }, - "search": { - "type": "string" - } + "required": [ + "from" + ] }, - "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": { - "label": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "label": { - "type": "string" - } - }, - "required": [ - "label" - ] - }, - "key": { - "type": "string" - }, - "priority": { - "type": "number" - }, - "apiAlias": { + "to": { "type": "string", - "enum": [ - "product_sorting" - ] + "description": "The upper bound of the range" } }, "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" + "to" ] } - }, - "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" ] }, - "Price": { + "AccountNewsletterRecipient": { "type": "object", - "description": "Price object", "properties": { - "currencyId": { + "status": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" + "enum": [ + "undefined", + "notSet", + "direct", + "optIn", + "optOut" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "account_newsletter_recipient" + ] + } + }, + "required": [ + "status", + "apiAlias" + ] + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, + "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" + ] + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" }, "net": { "description": "", @@ -12646,341 +12558,432 @@ "net" ] }, - "SalesChannelContext": { + "Breadcrumb": { "type": "object", "properties": { - "token": { - "description": "Context the user session", + "name": { "type": "string" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } - }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "currency": { - "$ref": "#/components/schemas/Currency" + "type": { + "type": "string", + "enum": [ + "page", + "link", + "folder" + ] }, - "salesChannel": { - "description": "Information about the current sales channel", + "translated": { "type": "object", + "additionalProperties": true, "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" + "customFields": { + "type": "object" }, - "serviceCategoryId": { - "type": "string" + "slotConfig": { + "type": "object" }, - "name": { - "type": "string" + "linkType": { + "type": "string", + "enum": [ + "external", + "category", + "product", + "landing_page" + ] }, - "shortName": { + "internalLink": { "type": "string" }, - "accessKey": { + "externalLink": { "type": "string" }, - "active": { - "type": "boolean" - }, - "maintenance": { + "linkNewTab": { "type": "boolean" }, - "maintenanceIpWhitelist": { - "type": "string" - }, - "mailHeaderFooterId": { + "description": { "type": "string" }, - "customerGroupId": { + "metaTitle": { "type": "string" }, - "hreflangActive": { - "type": "boolean" - }, - "hreflangDefaultDomainId": { + "metaDescription": { "type": "string" }, - "analyticsId": { + "keywords": { "type": "string" } } }, - "taxRules": { + "path": { + "type": "string" + }, + "seoUrls": { "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/SeoUrl" } }, - "customer": { - "$ref": "#/components/schemas/Customer" - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "shippingLocation": { + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] + } + }, + "required": [ + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" + ] + }, + "CartError": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "items": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" + "key": { + "type": "string" }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - } - } - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - }, - "context": { - "description": "Core context with general configuration values and state", - "type": "object", - "properties": { - "versionId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "currencyFactor": { - "type": "integer" - }, - "currencyPrecision": { - "type": "integer", - "format": "int32" - }, - "languageIdChain": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "source": { + "message": { "type": "string" }, - "taxState": { + "messageKey": { "type": "string" - }, - "useCache": { - "type": "boolean" } } } } }, - "CartItems": { + "OrderRouteResponse": { "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" + "orders": { + "allOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + }, + "paymentChangeable": { + "type": "object", + "description": "The key-value pairs contain the uuid of the order as key and a boolean as value, indicating that the payment method can still be changed.", + "additionalProperties": { + "type": "boolean" } } - } - }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", + }, "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], + "orders" + ] + }, + "CartDeliveryInformation": { + "type": "object", "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" + "enum": [ + "cart_delivery_information" + ] }, - "lastName": { - "type": "string" + "freeDelivery": { + "type": "boolean" }, - "zipcode": { - "type": "string" + "deliveryTime": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_time" + ] + } + } }, - "city": { - "type": "string" + "height": { + "type": "integer" }, - "company": { - "type": "string" + "length": { + "type": "integer" }, - "street": { - "type": "string" + "restockTime": { + "type": "integer" }, - "department": { - "type": "string" + "stock": { + "type": "integer" }, - "title": { - "type": "string" + "weight": { + "type": "integer" }, - "phoneNumber": { - "type": "string" + "width": { + "type": "integer" + } + }, + "required": [ + "apiAlias" + ] + }, + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "additionalAddressLine1": { - "type": "string" + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "additionalAddressLine2": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time" }, - "customFields": { - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "nullable": true }, "country": { "$ref": "#/components/schemas/Country" }, "countryState": { - "$ref": "#/components/schemas/CountryState" + "$ref": "#/components/schemas/CountryState", + "nullable": true }, "salutation": { "$ref": "#/components/schemas/Salutation" } }, - "type": "object" - }, - "CartListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] - } - }, "required": [ - "apiAlias" + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" ] }, - "ProductListingCriteria": { + "ProductListingResult": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "$ref": "#/components/schemas/EntitySearchResult" }, { "type": "object", - "description": "Additional search parameters for product listings", "properties": { - "order": { - "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", - "type": "string" - }, - "limit": { - "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", - "type": "integer", - "minimum": 0 - }, - "p": { - "description": "Search result page", - "type": "integer", - "default": 1 - }, - "manufacturer": { - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "type": "string" - }, - "min-price": { - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "type": "integer", - "minimum": 0, - "default": 0 - }, - "max-price": { - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "type": "integer", - "minimum": 0, - "default": 0 - }, - "rating": { - "description": "Filter products with a minimum average rating.", - "type": "integer" - }, - "shipping-free": { - "description": "Filters products that are marked as shipping-free.", + "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" + ] + } + ] + }, + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + }, + { + "type": "object", + "description": "Additional search parameters for product listings", + "properties": { + "order": { + "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", + "type": "string" + }, + "limit": { + "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", + "type": "integer", + "minimum": 0 + }, + "p": { + "description": "Search result page", + "type": "integer", + "default": 1 + }, + "manufacturer": { + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "type": "string" + }, + "min-price": { + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "max-price": { + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "rating": { + "description": "Filter products with a minimum average rating.", + "type": "integer" + }, + "shipping-free": { + "description": "Filters products that are marked as shipping-free.", "type": "boolean", "default": false }, @@ -13026,323 +13029,276 @@ } ] }, - "AggregationEntity": { - "title": "AggregationEntity", + "SalesChannelContext": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + "token": { + "description": "Context the user session", "type": "string" }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "entity" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "currentCustomerGroup": { + "type": "object", + "description": "Customer group of the current user", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } + } }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", - "type": "string" - } - }, - "required": [ - "name", - "type", - "field", - "definition" - ] - }, - "AggregationFilter": { - "title": "AggregationFilter", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } + } }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "filter" - ] + "currency": { + "$ref": "#/components/schemas/Currency" }, - "filter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Filters" - } - } - }, - "required": [ - "name", - "type", - "filter" - ] - }, - "AggregationTerms": { - "title": "AggregationTerms", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "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" + } + } }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "terms" - ] + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "customer": { + "$ref": "#/components/schemas/Customer" }, - "limit": { - "description": "The number of terms to return", - "type": "number" + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" }, - "sort": { - "type": "array", - "description": "Sorting the aggregation result.", - "items": { - "$ref": "#/components/schemas/Sort" + "shippingLocation": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" + } + } + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "context": { + "description": "Core context with general configuration values and state", + "type": "object", + "properties": { + "versionId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "currencyFactor": { + "type": "integer" + }, + "currencyPrecision": { + "type": "integer", + "format": "int32" + }, + "languageIdChain": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "source": { + "type": "string" + }, + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" + } } } - }, - "required": [ - "name", - "type", - "field" - ] + } }, - "AggregationHistogram": { - "title": "AggregationHistogram", + "WishlistLoadRouteResponse": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "histogram" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "interval": { - "description": "The interval of the histogram", - "type": "number" + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "salesChannelId": { + "type": "string" + } + } }, - "format": { - "description": "The format of the histogram", + "products": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + }, + "Sitemap": { + "type": "object", + "properties": { + "filename": { "type": "string" }, - "timeZone": { - "description": "The timezone of the histogram", - "type": "string" + "created": { + "type": "string", + "format": "date-time" } }, "required": [ - "name", - "type", - "field" + "filename", + "created" ] }, - "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)", + "ScreenSharingToggledPayload": { "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "ranges": { - "description": "The ranges of the aggregation", - "type": "array", - "items": { - "type": "object", - "anyOf": [ - { - "type": "object", - "title": "From and to", - "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" - }, - "to": { - "type": "number", - "description": "The upper bound of the range" - } - }, - "required": [ - "from", - "to" - ] - }, - { - "type": "object", - "title": "From only", - "properties": { - "from": { - "type": "string", - "description": "The lower bound of the range" - } - }, - "required": [ - "from" - ] - }, - { - "type": "object", - "title": "To only", - "properties": { - "to": { - "type": "string", - "description": "The upper bound of the range" - } - }, - "required": [ - "to" - ] - } - ] - } - } - }, - "required": [ - "name", - "type", - "field", - "ranges" - ] - }, - "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" - ], + "required": [ + "active" + ], "properties": { "active": { "type": "boolean", - "description": "Status if the mode is toggled to active or inactive" - } - } - }, - "DynamicPageOpenedPayload": { - "allOf": [ - { - "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" - } - ] - }, - "ClientPresentationStateResponse": { - "type": "object", - "properties": { - "stateForAll": { - "$ref": "#/components/schemas/StateForAll" - }, - "stateForClients": { - "$ref": "#/components/schemas/StateForClients" + "description": "Whether the screen sharing is active or not" } - }, - "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" } }, - "AttendeeProductCollectionLastSeenResponse": { + "AttendeeProductCollectionResponse": { "type": "object", "properties": { "collection": { "type": "object", - "properties": { - "lastSeen": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" + "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" + } + } } } - } + ] } }, "example": { "collection": { - "lastSeen": [ + "liked": [ "0015b3d83df441e490da7f6880a9c2da", "60793d25cbab473f92c405ce0525f3ec" ] @@ -13564,883 +13520,383 @@ } } }, - "ProductPageResult": { + "AppointmentBasicSettingResponse": { "type": "object", "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "apiAlias": { + "type": "string", + "description": "The API alias of the appointment basic setting" }, - "product": { - "$ref": "#/components/schemas/Product" + "mode": { + "type": "string", + "description": "The mode of the interaction", + "enum": [ + "guided", + "self" + ] }, - "configurator": { + "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": [ { - "$ref": "#/components/schemas/PropertyGroup" + "type": "string" }, { "type": "null" } ] }, - "apiAlias": { - "type": "string" + "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" } }, - "DynamicInteractionBody": { - "oneOf": [ - { - "$ref": "#/components/schemas/EmptyInteraction" - }, - { - "$ref": "#/components/schemas/ProductInteraction" - }, - { - "$ref": "#/components/schemas/DynamicPageOpenedInteraction" - }, - { - "$ref": "#/components/schemas/DynamicPageClosedInteraction" - }, + "DynamicPageOpenedPayload": { + "allOf": [ { - "$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" + "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" } - } + ] }, - "BaseInteraction": { + "JoinAppointmentResponse": { "type": "object", + "description": "Includes all data you will need to attend to a appointment.", "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" + "mercureSubscriberTopics": { + "type": "array", + "items": { + "type": "string", + "description": "mercure topic" + }, + "description": "The topics to which the attendee/guide can subscribe for" }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { + "mercurePublisherTopic": { + "oneOf": [ + { "type": "string" }, - "payload": { - "type": "object", - "additionalProperties": false, - "minProperties": 0, - "maxProperties": 0 + { + "type": "null" } - } - } - ] - }, - "ProductInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" ], - "properties": { - "name": { + "description": "The topic to which the attendee/guide can send updates" + }, + "JWTMercureSubscriberToken": { + "oneOf": [ + { "type": "string" }, - "payload": { - "$ref": "#/components/schemas/ProductPayload" + { + "type": "null" } - } - } - ] - }, - "DynamicPageOpenedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ], + "description": "The JWT mercure token to publish updates" }, - { - "type": "object", - "required": [ - "name", - "payload" + "mercureHubPublicUrl": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } ], - "properties": { - "name": { + "description": "The mercure hub url to connect for subscribing and updating" + }, + "JWTMercurePublisherToken": { + "oneOf": [ + { "type": "string" }, - "payload": { - "$ref": "#/components/schemas/DynamicPageOpenedPayload" + { + "type": "null" } - } - } - ] - }, - "DynamicProductPageOpenedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ], + "description": "The JWT mercure token to subscribe for updates" }, - { - "type": "object", - "required": [ - "name", - "payload" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The appointment id" + }, + "newContextToken": { + "type": "string", + "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" + }, + "attendeeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The created Id for the attendee" + }, + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The id of the current sales channel" + }, + "salesChannelName": { + "type": "string", + "description": "The name of the current sales channel" + }, + "appointmentName": { + "type": "string", + "description": "The name of the appointment" + }, + "presentationGuideMode": { + "type": "string", + "enum": [ + "self", + "guided" ], - "properties": { - "name": { + "description": "The type of the appointment" + }, + "isPreview": { + "type": "boolean", + "description": "To see if it's a preview appointment" + }, + "attendeeName": { + "oneOf": [ + { "type": "string" }, - "payload": { - "$ref": "#/components/schemas/DynamicProductPageOpenedPayload" + { + "type": "null" } - } - } - ] - }, - "DynamicPageClosedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" ], - "properties": { - "name": { + "description": "The name of the attendee" + }, + "videoUserId": { + "oneOf": [ + { "type": "string" }, - "payload": { - "$ref": "#/components/schemas/DynamicPageClosedPayload" + { + "type": "null" } - } - } - ] - }, - "PageViewedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + ], + "description": "The video user id that attendee could use" }, - { + "b2bFeatures": { "type": "object", - "required": [ - "name", - "payload" - ], + "description": "The b2b features that available for the appointment", "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/PageViewedPayload" + "quoteManagement": { + "type": "boolean", + "description": "To know if the quote management is enabled for current customer" } } } - ] - }, - "GuideHoveredInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + }, + "example": { + "mercureSubscriberTopics": [ + "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" + ], + "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", + "JWTMercureSubscriberToken": "jwt token for subscribing to updates", + "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", + "JWTMercurePublisherToken": "jwt token for publishing updates", + "attendeeName": "attendee name", + "videoUserId": null, + "b2bFeatures": { + "feature1": false, + "feature2": true }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/GuideHoveredPayload" - } - } - } - ] + "id": "2d2c358f1ca04098aacf12873c2eed82", + "newContextToken": "new context token to call the other routes", + "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", + "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", + "salesChannelName": "Storefront", + "appointmentName": "Test Appointment", + "presentationGuideMode": "guided", + "isPreview": false, + "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" + } }, - "ToggleBroadcastModeInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" + "ViewModeChangedPayload": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "description": "The view mode of presentation", + "enum": [ + "onlyYou", + "presentation", + "videoGrid" ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/ToggleBroadcastModePayload" - } - } + "default": "presentation" } - ] + } }, - "ViewModeChangedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/ViewModeChangedPayload" - } - } - } - ] + "EmptyPayload": { + "type": "object", + "properties": [] }, - "ScreenSharingToggledInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { + "AttendeeProductCollectionLastSeenResponse": { + "type": "object", + "properties": { + "collection": { "type": "object", - "required": [ - "name", - "payload" - ], "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/ScreenSharingToggledPayload" + "lastSeen": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product ids from the collection" + } } } } - ] - }, - "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" + }, + "example": { + "collection": { + "lastSeen": [ + "0015b3d83df441e490da7f6880a9c2da", + "60793d25cbab473f92c405ce0525f3ec" + ] } } }, - "DynamicPageClosedPayload": { + "AbstractDynamicPageOpenedPayload": { "type": "object", + "required": [ + "pageId", + "type" + ], "properties": { "pageId": { - "oneOf": [ - { - "type": "string", - "pattern": "^[a-f0-9]{32}$" - }, - { - "type": "null" - } - ], + "type": "string", "pattern": "^[a-f0-9]{32}$", - "description": "The id of the page that was closed" + "description": "The id of the current dynamic page" }, - "all": { + "type": { + "type": "string", + "description": "The type of the current dynamic page" + }, + "opened": { "type": "boolean", - "default": false, - "description": "Whether all pages were closed" + "default": true + }, + "position": { + "type": "integer", + "description": "The position of the dynamic page in the list of dynamic pages" } } }, - "ViewModeChangedPayload": { - "type": "object", + "BasePresentationSlideData": { "properties": { - "mode": { - "type": "string", - "description": "The view mode of presentation", - "enum": [ - "onlyYou", - "presentation", - "videoGrid" - ], - "default": "presentation" + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" + }, + "extensions": { + "type": "object", + "properties": { + "cmsPageRelation": { + "$ref": "#/components/schemas/PresentationCmsPage" + } + } } } }, - "JoinAppointmentResponse": { + "PresentationSlideData": { "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" + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" }, - "mercurePublisherTopic": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + "extensions": { + "type": "object", + "properties": { + "cmsPageRelation": { + "$ref": "#/components/schemas/PresentationCmsPage" } - ], - "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" + "product": { + "$ref": "#/components/schemas/Product" }, - "mercureHubPublicUrl": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The mercure hub url to connect for subscribing and updating" - }, - "JWTMercurePublisherToken": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The JWT mercure token to subscribe for updates" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The appointment id" - }, - "newContextToken": { - "type": "string", - "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" - }, - "attendeeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The created Id for the attendee" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id of the current sales channel" - }, - "salesChannelName": { - "type": "string", - "description": "The name of the current sales channel" - }, - "appointmentName": { - "type": "string", - "description": "The name of the appointment" - }, - "presentationGuideMode": { - "type": "string", - "enum": [ - "self", - "guided" - ], - "description": "The type of the appointment" - }, - "isPreview": { - "type": "boolean", - "description": "To see if it's a preview appointment" - }, - "attendeeName": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The name of the attendee" - }, - "videoUserId": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The video user id that attendee could use" + "category": { + "$ref": "#/components/schemas/Category" }, - "b2bFeatures": { - "type": "object", - "description": "The b2b features that available for the appointment", - "properties": { - "quoteManagement": { - "type": "boolean", - "description": "To know if the quote management is enabled for current customer" - } + "configurator": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyGroup" } } }, "example": { - "mercureSubscriberTopics": [ - "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" - ], - "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", - "JWTMercureSubscriberToken": "jwt token for subscribing to updates", - "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", - "JWTMercurePublisherToken": "jwt token for publishing updates", - "attendeeName": "attendee name", - "videoUserId": null, - "b2bFeatures": { - "feature1": false, - "feature2": true - }, - "id": "2d2c358f1ca04098aacf12873c2eed82", - "newContextToken": "new context token to call the other routes", - "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", - "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", - "salesChannelName": "Storefront", - "appointmentName": "Test Appointment", - "presentationGuideMode": "guided", - "isPreview": false, - "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" - } - }, - "DiscountLineItemPayload": { - "type": "object", - "properties": { - "discountType": { - "type": "string", - "enum": [ - "percentage", - "absolute" - ] - }, - "discountValue": { - "type": "number", - "format": "float", - "maximum": 0 - }, - "discountPrice": { - "type": "number", - "format": "float", - "maximum": 0 - } - } - }, - "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" + "extensions": { + "cmsPageRelation": { + "translated": { + "title": null }, - "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" - } - } - }, - "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": { - "type": "object", - "required": [ - "pageId", - "type" - ], - "properties": { - "pageId": { - "type": "string", - "pattern": "^[a-f0-9]{32}$", - "description": "The id of the current dynamic page" - }, - "type": { - "type": "string", - "description": "The type of the current dynamic page" - }, - "opened": { - "type": "boolean", - "default": true - }, - "position": { - "type": "integer", - "description": "The position of the dynamic page in the list of dynamic pages" - } - } - }, - "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": { - "$ref": "#/components/schemas/CmsPage" - }, - "extensions": { - "type": "object", - "properties": { - "cmsPageRelation": { - "$ref": "#/components/schemas/PresentationCmsPage" - } - } - } - } - }, - "PresentationSlideData": { - "type": "object", - "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "extensions": { - "type": "object", - "properties": { - "cmsPageRelation": { - "$ref": "#/components/schemas/PresentationCmsPage" - } - } - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "category": { - "$ref": "#/components/schemas/Category" - }, - "configurator": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } - } - }, - "example": { - "extensions": { - "cmsPageRelation": { - "translated": { - "title": null - }, - "createdAt": "2023-08-09T11:00:13.160+00:00", - "updatedAt": null, - "presentationId": "506cce706e914c1e8b083f05670d85c4", - "cmsPageId": "33e88c7994fa4cf79a1265e5105b93b2", - "title": null, - "productId": null, - "productStreamId": null, - "position": 2, - "isInstantListing": false, - "cmsPage": { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "name": "Default Digital Sales Rooms product listing page", - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "name": "Default Digital Sales Rooms product listing page", - "type": "presentation_product_list", - "entity": null, - "sections": [ + "createdAt": "2023-08-09T11:00:13.160+00:00", + "updatedAt": null, + "presentationId": "506cce706e914c1e8b083f05670d85c4", + "cmsPageId": "33e88c7994fa4cf79a1265e5105b93b2", + "title": null, + "productId": null, + "productStreamId": null, + "position": 2, + "isInstantListing": false, + "cmsPage": { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "name": "Default Digital Sales Rooms product listing page", + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "name": "Default Digital Sales Rooms product listing page", + "type": "presentation_product_list", + "entity": null, + "sections": [ { "translated": [], "createdAt": "2023-08-03T17:24:09.000+00:00", @@ -14827,49 +14283,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 +15808,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 +15944,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 +16002,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 +16183,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 +16371,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 +16440,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 +16570,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 +16607,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 +16643,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 +17230,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}",