diff --git a/SwagDigitalSalesRooms-adminapi.json b/SwagDigitalSalesRooms-adminapi.json index 48bade2..88a352f 100644 --- a/SwagDigitalSalesRooms-adminapi.json +++ b/SwagDigitalSalesRooms-adminapi.json @@ -5940,6 +5940,50 @@ } ] } + }, + "/_action/translation/meta": { + "get": { + "tags": [ + "Translation Management" + ], + "summary": "Get translation meta information", + "description": "Returns translation meta information that is independent of the configured locales: the built-in locales, the community translation and documentation URLs and the completeness threshold.", + "operationId": "translationMeta", + "responses": { + "200": { + "description": "The translation meta information.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "builtInLocales": { + "description": "Locale codes shipped with the platform and excluded from the community translation download.", + "type": "array", + "items": { + "type": "string" + } + }, + "communityTranslationsUrl": { + "description": "URL of the community translation platform, or null if not configured.", + "type": "string", + "format": "uri" + }, + "documentationUrlSnippetKey": { + "description": "Admin snippet key that resolves to the localized translation documentation URL, or null if not configured.", + "type": "string" + }, + "completenessThreshold": { + "description": "Minimum translation completeness in percent considered sufficient.", + "type": "integer" + } + } + } + } + } + } + } + } } }, "components": { @@ -21666,6 +21710,10 @@ "active": { "type": "boolean" }, + "translationAutoUpdate": { + "description": "Whether the scheduled task keeps the community translations of this language up to date. Enabled by default and only applied to linked languages.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -22188,6 +22236,10 @@ "active": { "type": "boolean" }, + "translationAutoUpdate": { + "description": "Whether the scheduled task keeps the community translations of this language up to date. Enabled by default and only applied to linked languages.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -44268,6 +44320,10 @@ "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance.", "type": "boolean" }, + "isExternalStorefront": { + "description": "Whether the domain points to an external (headless) storefront.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -44549,6 +44605,10 @@ "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance.", "type": "boolean" }, + "isExternalStorefront": { + "description": "Whether the domain points to an external (headless) storefront.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -46133,6 +46193,10 @@ "description": "Created SEO URL template can be made usable by setting `isValid` to true.", "type": "boolean" }, + "isHeadless": { + "description": "Whether the template applies to headless (API type) sales channels. Derived from the route family.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -46218,6 +46282,10 @@ "description": "Created SEO URL template can be made usable by setting `isValid` to true.", "type": "boolean" }, + "isHeadless": { + "description": "Whether the template applies to headless (API type) sales channels. Derived from the route family.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -52114,1917 +52182,1887 @@ }, "type": "object" }, - "ConsentState": { + "AbstractDynamicPageOpenedPayload": { "type": "object", "required": [ - "name", - "scopeName", - "identifier", - "status", - "actor", - "updatedAt", - "acceptedUntil" + "type" ], "properties": { - "name": { - "type": "string", - "description": "The name of the consent" - }, - "scopeName": { - "type": "string", - "description": "The scope of the consent that defines how the identifier is resolved" - }, - "identifier": { - "type": "string", - "description": "The resolved identifier of the consent" - }, - "status": { + "type": { "type": "string", - "enum": [ - "unset", - "accepted", - "revoked" - ], - "description": "The current status of the consent (requested, accepted, revoked)" - }, - "actor": { - "type": [ - "string", - "null" - ], - "description": "The user name of the user who made the consent decision. null if never updated" - }, - "updatedAt": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The timestamp of when the consent status was last updated. null if never updated" - }, - "acceptedUntil": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The timestamp until when the consent is accepted. null if never accepted" - }, - "acceptedRevision": { - "type": [ - "string", - "null" - ], - "description": "The accepted consent revision. null unless the consent is currently accepted for a revision-aware consent." + "description": "The type of the current dynamic page" }, - "latestRevision": { - "type": [ - "string", - "null" - ], - "description": "The current latest revision defined for the consent. null when the consent does not use revisions." + "opened": { + "type": "boolean", + "default": true } } }, - "SalesChannelFileConfiguration": { + "AttendeeInsights": { "type": "object", - "required": [ - "id", - "enabled", - "templateOverrides" - ], + "description": "Attendee Insights", "properties": { "id": { - "description": "Identifier of the sales_channel_file row.", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Id of the attendee" }, - "enabled": { - "description": "Whether this file is served publicly for the sales channel.", - "type": "boolean" + "cartSum": { + "type": "number", + "description": "Sum of the cart net in base currency" }, - "templateOverrides": { - "description": "Merchant-provided Twig overrides keyed by Twig namespace. The reserved `user_provided_content` key stores plain text for the dedicated append block when supported by the template chain.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "productCount": { + "type": "number", + "description": "Sum of all quantities in the cart which were added during the appointment" + } + }, + "example": { + "04da9d8572494ae68391a471d4c3a470": { + "extensions": [], + "id": "04da9d8572494ae68391a471d4c3a470", + "cartSum": 6770.53, + "productCount": 3, + "lineItemCount": 3 } } }, - "SalesChannelFileDescriptor": { + "CalculatedPrice": { "type": "object", - "required": [ - "fileFamily", - "fileName", - "contentType", - "configuration" - ], + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "fileFamily": { - "description": "File family below `Resources/views/files`.", - "type": "string", - "maxLength": 64 + "unitPrice": { + "type": "number" }, - "fileName": { - "description": "Public file path without a leading slash.", - "type": "string", - "examples": [ - "llms.txt", - ".well-known/ucp.json" - ] + "quantity": { + "type": "number" }, - "contentType": { - "description": "Detected response content type for the public file.", - "type": "string", - "examples": [ - "text/plain; charset=utf-8" - ] + "rawTotal": { + "type": "number" }, - "configuration": { - "description": "Stored sales-channel configuration for this file, or null when it has not been configured yet.", + "totalPrice": { + "type": "number" + }, + "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/SalesChannelFileConfiguration" + "$ref": "#/components/schemas/CartPriceReference" }, { "type": "null" } ] - } - } - }, - "SalesChannelFileDetail": { - "type": "object", - "required": [ - "fileFamily", - "fileName", - "templatePath", - "contentType", - "templates", - "supportsUserProvidedContent", - "configuration" - ], - "properties": { - "fileFamily": { - "description": "File family below `Resources/views/files`.", - "type": "string", - "maxLength": 64 - }, - "fileName": { - "description": "Public file path without a leading slash.", - "type": "string", - "examples": [ - "llms.txt", - ".well-known/ucp.json" - ] - }, - "templatePath": { - "description": "Relative Twig template path used for rendering.", - "type": "string", - "examples": [ - "files/agentic/llms.txt.twig" - ] - }, - "contentType": { - "description": "Detected response content type for the public file.", - "type": "string", - "examples": [ - "text/plain; charset=utf-8" - ] - }, - "templates": { - "description": "Contributing Twig templates in resolved inheritance order.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SalesChannelFileTemplate" - } - }, - "supportsUserProvidedContent": { - "description": "Whether the template chain exposes the `user_provided_content` block for simple appended merchant notes.", - "type": "boolean" }, - "configuration": { - "description": "Stored sales-channel configuration for this file, or null when it has not been configured yet.", + "listPrice": { "oneOf": [ { - "$ref": "#/components/schemas/SalesChannelFileConfiguration" + "$ref": "#/components/schemas/CartListPrice" }, { "type": "null" } ] - } - } - }, - "SalesChannelFileDetailResponse": { - "type": "object", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/components/schemas/SalesChannelFileDetail" - } - } - }, - "SalesChannelFileListResponse": { - "type": "object", - "required": [ - "data" - ], - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SalesChannelFileDescriptor" - } - } - } - }, - "SalesChannelFilePreviewRequest": { - "type": "object", - "required": [ - "fileName" - ], - "properties": { - "fileName": { - "description": "Public file path without a leading slash.", - "type": "string", - "examples": [ - "llms.txt", - ".well-known/ucp.json" - ] }, - "templateOverrides": { - "description": "Unsaved Twig overrides keyed by Twig namespace. The reserved `user_provided_content` key stores plain text for the dedicated append block when supported by the template chain.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "SalesChannelFilePreviewResponse": { - "type": "object", - "required": [ - "fileName", - "contentType", - "content" - ], - "properties": { - "fileName": { - "description": "Public file path without a leading slash.", - "type": "string" + "positionPrice": { + "type": "number" }, - "contentType": { - "description": "Detected content type of the rendered file.", - "type": "string" + "netPrice": { + "type": "number" }, - "content": { - "description": "Rendered file content.", - "type": "string" - } - } - }, - "SalesChannelFileTemplate": { - "type": "object", - "required": [ - "twigNamespace", - "templateName", - "templateContent", - "role" - ], - "properties": { - "twigNamespace": { - "description": "Twig namespace that contributed the template, for example `Framework` or a plugin name.", - "type": "string" + "regulationPrice": { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + }, + "nullable": true }, - "templateName": { - "description": "Resolved Twig template name.", - "type": "string", - "examples": [ - "@Framework/files/agentic/llms.txt.twig" - ] + "hasRange": { + "type": "boolean" }, - "templateContent": { - "description": "Original source template content. Administration clients can use this as the default text when editing a template override.", - "type": "string" + "variantId": { + "type": "string", + "format": "^[0-9a-f]{32}$", + "nullable": true }, - "role": { - "description": "Whether this source provides the base template or extends another source in the resolved template chain.", + "apiAlias": { "type": "string", "enum": [ - "base", - "extension" + "calculated_price" ] - } - } - }, - "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" - }, - "limit": { - "description": "Number of items per result page", - "type": "integer" - }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } }, - "sort": { + "taxRules": { "type": "array", - "description": "Sorting in the search result.", + "description": "Currently active tax rules and/or rates", "items": { "type": "object", "properties": { - "field": { - "type": "string" + "taxRate": { + "type": "number", + "format": "float" }, - "order": { + "name": { "type": "string" - }, - "naturalSorting": { - "type": "boolean" } - }, - "required": [ - "field" - ] + } } + } + }, + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules" + ] + }, + "Cart": { + "type": "object", + "properties": { + "name": { + "description": "Name of the cart - for example `guest-cart`", + "type": "string" }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "token": { + "description": "Context token identifying the cart and the user session", + "type": "string" }, - "associations": { - "$ref": "#/components/schemas/Associations" + "price": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "aggregations": { + "lineItems": { + "description": "All items within the cart", "type": "array", "items": { - "$ref": "#/components/schemas/Aggregation" + "$ref": "#/components/schemas/LineItem" } }, - "grouping": { + "errors": { "type": "array", - "description": "Perform groupings over certain fields", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "items": { - "type": "string", - "description": "Name of a field" + "$ref": "#/components/schemas/CartError" } }, - "fields": { + "deliveries": { "type": "array", - "description": "Fields which should be returned in the search result.", "items": { - "type": "string", - "description": "Name of a field" + "$ref": "#/components/schemas/CartDelivery" } }, - "total-count-mode": { - "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" - ] - }, - "ids": { + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", "type": "array", - "description": "List of ids to search for", "items": { - "type": "string" + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } } }, - "includes": { - "$ref": "#/components/schemas/Includes" + "modified": { + "type": "boolean" }, - "excludes": { - "$ref": "#/components/schemas/Excludes" - } - } - }, - "Includes": { - "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons. To return a DAL extension, list the extension by its name (for example `myExtension`); the `extensions` wrapper is then kept automatically. Listing the keyword `extensions` returns all extensions.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" + "customerComment": { + "type": "string", + "description": "A comment that can be added to the cart.", + "nullable": true + }, + "affiliateCode": { + "type": "string", + "description": "An affiliate tracking code", + "nullable": true + }, + "campaignCode": { + "type": "string", + "description": "A campaign tracking code", + "nullable": true } } }, - "Excludes": { - "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons. Use an extension name to remove a single extension, or the keyword `extensions` to remove all of them.", + "CartDelivery": { "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "SimpleFilter": { - "anyOf": [ - { + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "deliveryDate": { "type": "object", "properties": { - "type": { + "earliest": { "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] - }, - "field": { - "type": "string" + "format": "date-time" }, - "value": { - "type": "string" + "latest": { + "type": "string", + "format": "date-time" } - }, - "required": [ - "type", - "field", - "value" - ] + } }, - { + "location": { "type": "object", "properties": { - "type": { + "apiAlias": { "type": "string", "enum": [ - "equalsAny", - "equalsAll" + "cart_delivery_shipping_location" ] }, - "field": { - "type": "string" + "country": { + "$ref": "#/components/schemas/Country" }, - "value": { - "type": "array", - "items": { - "type": "string" - } + "address": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "state": { + "$ref": "#/components/schemas/CountryState" } - }, - "required": [ - "type", - "field", - "value" - ] + } + }, + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDeliveryPosition" + } + }, + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } - ] + } }, - "EqualsFilter": { + "CartDeliveryInformation": { "type": "object", "properties": { - "type": { + "apiAlias": { "type": "string", "enum": [ - "equals" + "cart_delivery_information" ] }, - "field": { - "type": "string" + "freeDelivery": { + "type": "boolean" }, - "value": { - "oneOf": [ - { + "deliveryTime": { + "type": "object", + "properties": { + "name": { "type": "string" }, - { - "type": "number" + "min": { + "type": "integer" }, - { - "type": "boolean" + "max": { + "type": "integer" }, - { - "type": "null" + "unit": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_time" + ] } - ] + } + }, + "height": { + "type": "integer" + }, + "length": { + "type": "integer" + }, + "restockTime": { + "type": "integer" + }, + "stock": { + "type": "integer" + }, + "weight": { + "type": "integer" + }, + "width": { + "type": "integer" } }, "required": [ - "type", - "field", - "value" + "apiAlias" ] }, - "MultiNotFilter": { + "CartDeliveryPosition": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "operator": { - "type": "string", - "enum": [ - "and", - "or", - "nor", - "nand" - ] + "identifier": { + "type": "string" }, - "queries": { - "$ref": "#/components/schemas/Filters" + "lineItem": { + "$ref": "#/components/schemas/LineItem" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" } - }, - "required": [ - "type", - "queries" - ] + } }, - "RangeFilter": { + "CartError": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "type": "string" - }, - "parameters": { + "items": { "type": "object", "properties": { - "gte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] + "key": { + "type": "string" }, - "gt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "lte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] + "message": { + "type": "string" }, - "lt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] + "messageKey": { + "type": "string" } } } + } + }, + "CartItems": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + } + } + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } }, "required": [ - "type", - "field", - "parameters" + "apiAlias" ] }, - "Sort": { + "CartPriceQuantity": { "type": "object", "properties": { - "field": { - "type": "string" - }, - "order": { + "apiAlias": { "type": "string", "enum": [ - "ASC", - "DESC" + "cart_price_quantity" ] }, - "naturalSorting": { + "isCalculated": { "type": "boolean" }, + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" + }, + "price": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } + }, "type": { "type": "string" } }, "required": [ - "field", - "order" + "apiAlias" ] }, - "Associations": { + "CartPriceReference": { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" + "properties": { + "purchaseUnit": { + "type": "number" }, - { - "title": "AggregationEntity", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "referenceUnit": { + "type": "number" }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "unitName": { + "type": "string" }, - { - "title": "AggregationTerms", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" ] }, - { - "title": "AggregationHistogram", - "allOf": [ + "listPrice": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationHistogram" + "$ref": "#/components/schemas/CartListPrice" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" + "regulationPrice": { + "type": "object", + "properties": { + "price": { + "type": "number" }, - { - "$ref": "#/components/schemas/SubAggregations" + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] } - ] + }, + "nullable": true + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "type": "string", + "format": "^[0-9a-f]{32}$", + "nullable": true } + }, + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" ] }, - "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" - } - ] - } - } - }, - "AggregationEntity": { - "title": "AggregationEntity", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "entity" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", - "type": "string" - } - }, - "required": [ - "name", - "type", - "field", - "definition" + "DiscountType": { + "type": "string", + "description": "Type of the discount", + "enum": [ + "percentage", + "absolute" ] }, - "AggregationFilter": { - "title": "AggregationFilter", + "AddTempDiscountRequestBody": { "type": "object", + "required": [ + "discountType", + "discountValue", + "appliedItemIds" + ], "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "discountType": { + "$ref": "#/components/schemas/DiscountType" }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "filter" - ] + "discountValue": { + "type": "number", + "description": "Value of the discount (leave it 0 if you want to remove the discount)", + "maximum": 0 }, - "filter": { + "appliedItemIds": { "type": "array", "items": { - "$ref": "#/components/schemas/Filters" - } + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "description": "Ids of the items to which the discount should be applied" } - }, - "required": [ - "name", - "type", - "filter" - ] + } }, - "AggregationTerms": { - "title": "AggregationTerms", + "AddCartDiscountRequestBody": { "type": "object", + "required": [ + "discountType", + "discountValue" + ], "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "terms" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "limit": { - "description": "The number of terms to return", - "type": "number" + "discountType": { + "$ref": "#/components/schemas/DiscountType" }, - "sort": { - "type": "array", - "description": "Sorting the aggregation result.", - "items": { - "$ref": "#/components/schemas/Sort" - } + "discountValue": { + "type": "number", + "description": "Value of the discount (leave it 0 if you want to remove the discount)", + "maximum": 0 + } + } + }, + "DynamicPageOpenedPayload": { + "allOf": [ + { + "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" } - }, - "required": [ - "name", - "type", - "field" ] }, - "AggregationHistogram": { - "title": "AggregationHistogram", + "DynamicProductListingPageOpenedPayload": { + "required": [ + "page" + ], + "properties": { + "page": { + "type": "integer", + "description": "Current page position in the pagination" + } + } + }, + "GetAttendeeInsightsResponse": { "type": "object", + "description": "Returns aggregations for the current attendees within the appointment.", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "attendees": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AttendeeInsights" + } }, - "type": { - "description": "The type of aggregation", + "currencyId": { "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" + "pattern": "^[0-9a-f]{32}$" }, - "timeZone": { - "description": "The timezone of the histogram", + "currencySymbol": { "type": "string" } }, - "required": [ - "name", - "type", - "field" - ] + "example": { + "extensions": [], + "attendees": { + "04da9d8572494ae68391a471d4c3a470": { + "extensions": [], + "id": "04da9d8572494ae68391a471d4c3a470", + "cartSum": 6770.53, + "productCount": 3, + "lineItemCount": 3 + } + }, + "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca", + "currencySymbol": "$" + } }, - "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)", + "GetCartInsightsResponse": { "type": "object", + "description": "Returns aggregations for the current carts within the appointment.", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "cartSum": { + "type": "number", + "description": "Sum of all products from all attenddees which were added to the cart during the appointment" }, - "type": { - "description": "The type of aggregation", + "productCount": { + "type": "number", + "description": "Sum of all product quantities from all attendees which were added to the cart during the appointment" + }, + "currencyId": { "type": "string", - "enum": [ - "range" - ] + "pattern": "^[0-9a-f]{32}$", + "description": "The id from the shown currency" }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "currencySymbol": { + "type": "string", + "description": "The currency symbol from the shown currency" }, - "ranges": { - "description": "The ranges of the aggregation", - "type": "array", - "items": { - "type": "object", - "anyOf": [ - { + "topProducts": { + "type": "object", + "required": [ + "byQuantity", + "byRevenue" + ], + "properties": { + "byQuantity": { + "type": "array", + "uniqueItems": true, + "items": { "type": "object", - "title": "From and to", "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The id from the product" }, - "to": { + "value": { "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" + "description": "The quantity in carts of this product" } }, "required": [ - "from" + "productId", + "value" ] - }, - { + } + }, + "byRevenue": { + "type": "array", + "uniqueItems": true, + "items": { "type": "object", - "title": "To only", "properties": { - "to": { + "productId": { "type": "string", - "description": "The upper bound of the range" + "pattern": "^[0-9a-f]{32}$", + "description": "The id from the product" + }, + "value": { + "type": "number", + "description": "The net revenue in the shown currency in carts of this product" } }, "required": [ - "to" + "productId", + "value" ] } - ] + } } } }, - "required": [ - "name", - "type", - "field", - "ranges" - ] + "example": { + "extensions": [], + "cartSum": 6770.53, + "productCount": 3, + "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca", + "currencySymbol": "$", + "topProducts": { + "byQuantity": [ + { + "productId": "01ae0dee60ea48fdafaf881b96361d59", + "value": 1 + }, + { + "productId": "fee3ca762be94bb49b692e359d529563", + "value": 1 + }, + { + "productId": "a31b4e64efe047b6844cb4dd5a1ce0da", + "value": 1 + } + ], + "byRevenue": [ + { + "productId": "fee3ca762be94bb49b692e359d529563", + "value": 5333.03 + }, + { + "productId": "01ae0dee60ea48fdafaf881b96361d59", + "value": 1152.62 + }, + { + "productId": "a31b4e64efe047b6844cb4dd5a1ce0da", + "value": 284.88 + } + ] + } + } }, - "AggregationMetrics": { + "GetListBodyRequest": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" - ] + "limit": { + "type": "integer", + "description": "Max amount of resources to be returned in a page" }, - "field": { - "type": "string" + "page": { + "type": "integer", + "description": "The page to be returned" } - }, - "required": [ - "name", - "type", - "field" - ] + } }, - "infoConfigResponse": { + "GuidePresentationStateResponse": { "type": "object", "properties": { - "version": { - "type": "string", - "description": "Shopware version." - }, - "shopId": { - "type": "string", - "description": "Unique shop identifier." + "stateForAll": { + "$ref": "#/components/schemas/StateForAll" }, - "versionRevision": { - "type": "string", - "description": "Shopware version revision (build hash/revision)." + "stateForClients": { + "$ref": "#/components/schemas/StateForGuides" + } + }, + "example": { + "extensions": [], + "stateForAll": { + "currentGuideProductId": null, + "lastActiveGuideSection": null, + "currentPageId": null, + "currentSectionId": null, + "currentSlideAlias": 0, + "currentDynamicPage": null, + "started": false, + "running": false, + "ended": false, + "startedAt": null, + "endedAt": null, + "accessibleFrom": { + "date": "2023-08-04 00:00:00.000000", + "timezone_type": 3, + "timezone": "UTC" + }, + "accessibleTo": { + "date": "2023-08-05 00:00:00.000000", + "timezone_type": 3, + "timezone": "UTC" + }, + "appointmentMode": "guided", + "videoAudioSettings": "both", + "videoRoomUrl": "", + "attendeeRestrictionType": "open", + "productDetailDefaultPageId": "bea211b5099241719830df8026624f7f", + "quickviewPageId": "182d3f7f988044adbba449b70c8bc472", + "productListingDefaultPageId": "33e88c7994fa4cf79a1265e5105b93b2", + "broadcastMode": false, + "extensions": [] }, - "adminWorker": { - "type": "object", - "description": "Admin worker feature flags and transport configuration.", - "properties": { - "enableAdminWorker": { - "type": "boolean", - "description": "Whether the admin background worker is enabled." + "stateForGuides": { + "clients": [], + "inactiveClients": { + "2b4066cd37a341088e32a81e04a56817": { + "attendeeId": "2b4066cd37a341088e32a81e04a56817", + "attendeeName": "Attendee 1", + "videoUserId": null, + "hasJoined": false }, - "enableQueueStatsWorker": { - "type": "boolean", - "description": "Whether the queue statistics worker is enabled. Deprecated: This property will be removed in v6.8.0. The increment-based message queue statistics are deprecated.", - "deprecated": true + "302108ad602b4ac687f5247aae5d0297": { + "attendeeId": "302108ad602b4ac687f5247aae5d0297", + "attendeeName": null, + "videoUserId": null, + "hasJoined": true }, - "enableNotificationWorker": { - "type": "boolean", - "description": "Whether the notification worker is enabled." + "5a3b4e84acab47119b8a6bceb79e732e": { + "attendeeId": "5a3b4e84acab47119b8a6bceb79e732e", + "attendeeName": "Test attende name", + "videoUserId": null, + "hasJoined": true }, - "transports": { - "type": "array", - "description": "Configured Symfony Messenger transports used by the admin workers.", - "items": { - "type": "string" - } + "b6358241e4ad4a4e99d0f729d21d63be": { + "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", + "attendeeName": null, + "videoUserId": null, + "hasJoined": true + }, + "f1bb9374308d4e088c29d10a2fc8cc07": { + "attendeeId": "f1bb9374308d4e088c29d10a2fc8cc07", + "attendeeName": null, + "videoUserId": null, + "hasJoined": false } }, - "additionalProperties": false + "guides": { + "1850bbdc12dc44aba95bc78b16c3643c": { + "attendeeId": "1850bbdc12dc44aba95bc78b16c3643c", + "attendeeName": " admin", + "videoUserId": null, + "hasJoined": true + } + }, + "videoGuideToken": null, + "quickViewState": [], + "extensions": [] + } + } + }, + "JoinAppointmentResponse": { + "type": "object", + "description": "Includes all data you will need to attend to a appointment.", + "properties": { + "mercureSubscriberTopics": { + "type": "array", + "items": { + "type": "string", + "description": "mercure topic" + }, + "description": "The topics to which the attendee/guide can subscribe for" }, - "bundles": { - "type": "object", - "description": "Active extension assets (plugins & apps) keyed by technical name.", - "additionalProperties": { - "oneOf": [ - { - "type": "object", - "description": "Plugin bundle asset descriptor.", - "properties": { - "type": { - "type": "string", - "enum": [ - "plugin" - ] - }, - "css": { - "type": "array", - "items": { - "type": "string", - "description": "URL to a CSS asset." - } - }, - "js": { - "type": "array", - "items": { - "type": "string", - "description": "URL to a JS asset." - } - }, - "baseUrl": { - "type": [ - "string", - "null" - ], - "description": "Base URL to a (micro frontend) admin entry point, if provided." - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "description": "App bundle descriptor.", - "properties": { - "type": { - "type": "string", - "enum": [ - "app" - ] - }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "integrationId": { - "type": "string", - "description": "Lowercase hex integration id." - }, - "baseUrl": { - "type": "string" - }, - "version": { - "type": "string" - }, - "permissions": { - "type": "object", - "description": "Grouped privileges: key = privilege scope, value = list of entities.", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "css": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional CSS assets if provided." - }, - "js": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional JS assets if provided." - } - }, - "required": [ - "type", - "name", - "active", - "integrationId", - "baseUrl", - "version", - "permissions" - ], - "additionalProperties": false - } - ] - } - }, - "settings": { - "type": "object", - "description": "Selected environment and feature settings consumed by the administration.", - "properties": { - "enableUrlFeature": { - "type": "boolean", - "description": "State of the URL upload feature." - }, - "appUrlReachable": { - "type": "boolean", - "description": "Whether configured APP_URL is externally reachable." - }, - "appsRequireAppUrl": { - "type": "boolean", - "description": "True if at least one installed app requires a reachable APP_URL." - }, - "firstMigrationDate": { - "type": [ - "string", - "null" - ], - "description": "Timestamp of the first executed migration in ISO-8601 UTC format, used for Product Analytics consent eligibility." - }, - "private_allowed_extensions": { - "type": "array", - "description": "Allowed file extensions for private filesystem uploads.", - "items": { - "type": "string" - } - }, - "private_allowed_mime_types_by_extension": { - "type": "object", - "description": "Known MIME types for each allowed private filesystem upload extension.", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } + "mercurePublisherTopic": { + "oneOf": [ + { + "type": "string" }, - "enableHtmlSanitizer": { - "type": "boolean", - "description": "Whether HTML sanitizer is enabled." + { + "type": "null" + } + ], + "description": "The topic to which the attendee/guide can send updates" + }, + "JWTMercureSubscriberToken": { + "oneOf": [ + { + "type": "string" }, - "enableStagingMode": { - "type": "boolean", - "description": "Whether staging mode banner is enabled." + { + "type": "null" + } + ], + "description": "The JWT mercure token to publish updates" + }, + "mercureHubPublicUrl": { + "oneOf": [ + { + "type": "string" }, - "disableExtensionManagement": { - "type": "boolean", - "description": "True if runtime extension management is disabled." + { + "type": "null" + } + ], + "description": "The mercure hub url to connect for subscribing and updating" + }, + "JWTMercurePublisherToken": { + "oneOf": [ + { + "type": "string" }, - "presignedUploadSupported": { - "type": "boolean", - "description": "Whether presigned S3 upload is available. True when presigned upload is enabled and an S3 filesystem is configured." + { + "type": "null" } - }, - "required": [ - "firstMigrationDate" ], - "additionalProperties": false + "description": "The JWT mercure token to subscribe for updates" }, - "inAppPurchases": { - "type": "array", - "description": "In-app purchase meta data (structure may vary).", - "items": { - "type": "object", - "description": "Purchase entry.", - "additionalProperties": true - } - } - }, - "required": [ - "version", - "shopId", - "versionRevision", - "adminWorker", - "bundles", - "settings", - "inAppPurchases" - ], - "additionalProperties": false - }, - "Price": { - "type": "object", - "description": "Price object", - "properties": { - "currencyId": { - "description": "Unique identity of the associated currency.", + "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "The appointment id" }, - "gross": { - "description": "Gross price for the associated currency.", - "type": "number" + "newContextToken": { + "type": "string", + "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" }, - "net": { - "description": "Net price for the associated currency.", - "type": "number" + "attendeeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The created Id for the attendee" }, - "linked": { - "description": "Whether gross and net prices are linked through the tax configuration.", - "type": "boolean" + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The id of the current sales channel" }, - "percentage": { - "description": "Discount percentage relative to the list price for the gross and net amounts. `null` when no list price is set.", - "type": [ - "object", - "null" + "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": { - "gross": { - "description": "Discount percentage relative to the gross list price.", - "type": "number" - }, - "net": { - "description": "Discount percentage relative to the net list price.", - "type": "number" - } - }, - "required": [ - "gross", - "net" - ] + "description": "The type of the appointment" }, - "listPrice": { - "description": "Reference list price for displaying discounts.", - "type": "object", - "properties": { - "currencyId": { - "description": "Unique identity of the associated currency.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "Gross list price for the associated currency.", - "type": "number" - }, - "net": { - "description": "Net list price for the associated currency.", - "type": "number" - }, - "linked": { - "description": "Whether gross and net list prices are linked through the tax configuration.", - "type": "boolean" - } - }, - "required": [ - "gross", - "net", - "linked" - ] + "isPreview": { + "type": "boolean", + "description": "To see if it's a preview appointment" }, - "regulationPrice": { - "description": "Reference price used for legal price disclosures.", - "type": "object", - "properties": { - "currencyId": { - "description": "Unique identity of the associated currency.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "Gross regulation price for the associated currency.", - "type": "number" - }, - "net": { - "description": "Net regulation price for the associated currency.", - "type": "number" - }, - "linked": { - "description": "Whether gross and net regulation prices are linked through the tax configuration.", - "type": "boolean" - } - }, - "required": [ - "gross", - "net", - "linked" - ] - } - }, - "required": [ - "currencyId", - "gross", - "net", - "linked" - ] - }, - "businessEventsResponse": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the event" - }, - "class": { - "type": "string", - "description": "Class name of the event" - }, - "data": { - "type": "object", - "description": "Available data of event" - }, - "aware": { - "type": "array", - "description": "Flow builder will base on awareness to show actions", - "items": { + "attendeeName": { + "oneOf": [ + { "type": "string" + }, + { + "type": "null" } - }, - "extensions": { - "type": "array", - "description": "Extensions data of event", - "items": { + ], + "description": "The name of the attendee" + }, + "videoUserId": { + "oneOf": [ + { "type": "string" + }, + { + "type": "null" } - } - } - } - }, - "MeasurementUnits": { - "type": "object", - "description": "Configuration of the measurement system", - "properties": { - "system": { - "type": "string", - "enum": [ - "metric", - "imperial" ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + "description": "The video user id that attendee could use" }, - "units": { + "b2bFeatures": { "type": "object", - "description": "Units used in the measurement system.", + "description": "The b2b features that available for the appointment", "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." - }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." + "quoteManagement": { + "type": "boolean", + "description": "To know if the quote management is enabled for current customer" } } } + }, + "example": { + "mercureSubscriberTopics": [ + "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" + ], + "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", + "JWTMercureSubscriberToken": "jwt token for subscribing to updates", + "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", + "JWTMercurePublisherToken": "jwt token for publishing updates", + "attendeeName": "attendee name", + "videoUserId": null, + "b2bFeatures": { + "feature1": false, + "feature2": true + }, + "id": "2d2c358f1ca04098aacf12873c2eed82", + "newContextToken": "new context token to call the other routes", + "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", + "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", + "salesChannelName": "Storefront", + "appointmentName": "Test Appointment", + "presentationGuideMode": "guided", + "isPreview": false, + "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" } }, - "MediaId": { + "LineItemType": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Media entity ID" + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity", + "dsr-line-item-discount", + "dsr-cart-discount" + ] }, - "ExternalThumbnail": { + "DiscountLineItemPayload": { "type": "object", - "description": "An external thumbnail URL with its dimensions. Used when a CDN provides pre-generated thumbnails alongside the main media file.", - "required": [ - "url", - "width", - "height" - ], "properties": { - "url": { + "discountType": { "type": "string", - "description": "Absolute HTTP/HTTPS URL of the thumbnail", - "example": "https://cdn.example.com/image-200x200.jpg" + "enum": [ + "percentage", + "absolute" + ] }, - "width": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Width of the thumbnail in pixels", - "example": 200 + "discountValue": { + "type": "number", + "format": "float", + "maximum": 0 }, - "height": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Height of the thumbnail in pixels", - "example": 200 + "discountPrice": { + "type": "number", + "format": "float", + "maximum": 0 } } }, - "flowBuilderActionsResponse": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the flow action" - }, - "requirements": { - "type": "array", - "description": "When requirement fit with aware from `events.json` actions will be shown", - "items": { - "type": "string" - } - }, - "extensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Extensions data of event" - } - } - } - }, - "OAuthScopes": { - "description": "OAuth scopes that should be requested.", - "type": "string", - "enum": [ - "write", - "user-verified", - "admin", - "write user-verified", - "write admin", - "user-verified admin", - "write user-verified admin" - ] - }, - "OAuthGrant": { + "LineItem": { "type": "object", "properties": { - "grant_type": { - "description": "OAuth grant type that should be requested. See [OAuth 2.0 grant](https://oauth2.thephpleague.com/authorization-server/which-grant/) for more information.", + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + }, + "cover": { + "$ref": "#/components/schemas/ProductMedia" + }, + "dataContextHash": { "type": "string" - } - }, - "required": [ - "grant_type" - ], - "discriminator": { - "propertyName": "grant_type", - "mapping": { - "client_credentials": "#/components/schemas/OAuthClientCredentialsGrant", - "password": "#/components/schemas/OAuthPasswordGrant", - "refresh_token": "#/components/schemas/OAuthRefreshTokenGrant" - } - } - }, - "OAuthClientCredentialsGrant": { - "allOf": [ - { - "$ref": "#/components/schemas/OAuthGrant" }, - { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth client id.", - "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": { + "allOf": [ + { + "$ref": "#/components/schemas/ProductJsonApi" }, - "client_secret": { - "description": "Password of the client that should be authenticated.", - "type": "string" + { + "type": "object", + "properties": { + "discountType": { + "type": "string", + "enum": [ + "percentage", + "absolute" + ] + }, + "discountValue": { + "type": "number", + "format": "float", + "maximum": 0 + }, + "discountPrice": { + "type": "number", + "format": "float", + "maximum": 0 + } + } } - }, - "required": [ - "client_id", - "client_secret" ] - } - ] - }, - "OAuthPasswordGrant": { - "allOf": [ - { - "$ref": "#/components/schemas/OAuthGrant" }, - { + "extensions": { "type": "object", "properties": { - "client_id": { - "description": "OAuth client id.", - "type": "string", - "enum": [ - "administration" - ] - }, - "scope": { - "$ref": "#/components/schemas/OAuthScopes" - }, - "username": { - "description": "Username of the user that should be authenticated.", - "type": "string" - }, - "password": { - "description": "Password of the user that should be authenticated.", - "type": "string" + "meta": { + "type": "object", + "properties": { + "attendees": { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + } + } } - }, - "required": [ - "client_id", - "scope", - "username", - "password" - ] - } - ] - }, - "OAuthRefreshTokenGrant": { - "allOf": [ - { - "$ref": "#/components/schemas/OAuthGrant" + } }, - { + "price": { "type": "object", "properties": { - "client_id": { - "description": "OAuth client id.", + "apiAlias": { "type": "string", "enum": [ - "administration" + "calculated_price" ] }, - "scope": { - "$ref": "#/components/schemas/OAuthScopes" + "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" + ] + } }, - "refresh_token": { - "description": "The refresh token that should be used to refresh the access token.", - "type": "string" + "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" + } + } + } } }, "required": [ - "client_id", - "scope", - "refresh_token" + "apiAlias", + "totalPrice", + "quantity", + "unitPrice" ] - } - ] - }, - "CartPriceReference": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" + "priceDefinition": { + "$ref": "#/components/schemas/CartPriceQuantity" }, - "price": { + "quantity": { "type": "number" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "regulationPrice": { + "quantityInformation": { "type": "object", "properties": { - "price": { + "maxPurchase": { "type": "number" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] + "minPurchase": { + "type": "number" + }, + "purchaseSteps": { + "type": "number" } - }, - "nullable": true + } }, - "hasRange": { + "referencedId": { + "type": "string" + }, + "removable": { "type": "boolean" }, - "variantId": { - "type": "string", - "format": "^[0-9a-f]{32}$", - "nullable": true + "stackable": { + "type": "boolean" + }, + "states": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } + }, + "type": { + "$ref": "#/components/schemas/LineItemType" + }, + "uniqueIdentifier": { + "type": "string" } }, "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "id", + "type" ] }, - "GetListBodyRequest": { - "type": "object", - "properties": { - "limit": { - "type": "integer", - "description": "Max amount of resources to be returned in a page" + "PresentationCmsPage": { + "allOf": [ + { + "$ref": "#/components/schemas/DsrPresentationCmsPage" }, - "page": { - "type": "integer", - "description": "The page to be returned" - } - } - }, - "CartError": { - "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" - }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 + "pickedProductIds": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product id" + } + }, + { + "type": "null" + } ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" + "description": "The product id is assigned to presentation if it's product listing or instant listing" } } } - } + ] }, - "CartDelivery": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "BasePresentationSlideData": { "properties": { - "deliveryDate": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" + }, + "extensions": { "type": "object", "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" + "cmsPageRelation": { + "$ref": "#/components/schemas/PresentationCmsPage" } } + } + } + }, + "PresentationSlideData": { + "type": "object", + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" }, - "location": { + "extensions": { "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" + "cmsPageRelation": { + "$ref": "#/components/schemas/PresentationCmsPage" } } }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } - }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" + "product": { + "$ref": "#/components/schemas/Product" }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "StateForGuides": { - "type": "object", - "properties": { - "clients": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "category": { + "$ref": "#/components/schemas/Category" }, - "inactiveClients": { + "configurator": { "type": "array", "items": { - "type": "string" - }, - "default": [] + "$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": [ + { + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "default", + "blocks": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slot": "content", + "block": null, + "blockId": "96ea8b9676a5461c9149d205d792ecf2", + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", + "position": 0, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" + } + ], + "pageId": "33e88c7994fa4cf79a1265e5105b93b2", + "page": null, + "position": 0, + "sizingMode": "boxed", + "mobileBehavior": "wrap", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_section" + } + ], + "translations": null, + "cssClass": null, + "config": null, + "previewMediaId": null, + "previewMedia": null, + "landingPages": null, + "id": "33e88c7994fa4cf79a1265e5105b93b2", + "customFields": null, + "apiAlias": "cms_page" + }, + "pickedProductIds": null, + "dsrPresentationVersionId": "213769ba28dd4ee788bdb49dc9ce53d2", + "id": "4ee08e142ed046eb99681594f67599f1", + "customFields": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "apiAlias": "dsr_presentation_cms_page" + } }, - "guides": { - "type": "array", - "items": { - "type": "string" + "cmsPage": { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "name": "Default Digital Sales Rooms product listing page", + "customFields": [] }, - "default": [] - }, - "videoGuideToken": { - "anyOf": [ - { - "type": "string" - }, + "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": [ { - "type": "null" + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "default", + "blocks": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slot": "content", + "block": null, + "blockId": "96ea8b9676a5461c9149d205d792ecf2", + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": { + "listing": { + "elements": [ + { + "versionId": null, + "translated": [], + "createdAt": null, + "updatedAt": null, + "parentId": null, + "childCount": null, + "taxId": null, + "manufacturerId": null, + "unitId": null, + "active": null, + "displayGroup": null, + "manufacturerNumber": null, + "ean": null, + "sales": null, + "productNumber": null, + "stock": null, + "availableStock": null, + "available": null, + "deliveryTimeId": null, + "deliveryTime": null, + "restockTime": null, + "isCloseout": null, + "purchaseSteps": null, + "maxPurchase": null, + "minPurchase": null, + "purchaseUnit": null, + "referenceUnit": null, + "shippingFree": null, + "markAsTopseller": null, + "weight": null, + "width": null, + "height": null, + "length": null, + "releaseDate": null, + "categoryTree": null, + "streamIds": null, + "optionIds": null, + "propertyIds": null, + "name": null, + "keywords": null, + "description": null, + "metaDescription": null, + "metaTitle": null, + "packUnit": null, + "packUnitPlural": null, + "tax": null, + "manufacturer": null, + "unit": null, + "cover": null, + "parent": null, + "children": null, + "media": null, + "cmsPageId": null, + "cmsPage": null, + "translations": null, + "categories": null, + "properties": null, + "options": null, + "configuratorSettings": null, + "categoriesRo": null, + "coverId": null, + "categoryIds": null, + "productReviews": null, + "ratingAverage": null, + "mainCategories": null, + "seoUrls": null, + "crossSellings": null, + "canonicalProductId": null, + "canonicalProduct": null, + "streams": null, + "downloads": null, + "states": [], + "id": "a32702bb0b1443e3881c3b9a38c09169", + "customFields": null, + "apiAlias": "product" + } + ], + "aggregations": [], + "page": 1, + "limit": null, + "entity": "product", + "total": 0, + "states": [], + "apiAlias": "dal_entity_search_result" + }, + "apiAlias": "cms_product_listing" + }, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", + "position": 0, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" + } + ], + "pageId": "33e88c7994fa4cf79a1265e5105b93b2", + "page": null, + "position": 0, + "sizingMode": "boxed", + "mobileBehavior": "wrap", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_section" } - ] + ], + "translations": null, + "cssClass": null, + "config": null, + "previewMediaId": null, + "previewMedia": null, + "landingPages": null, + "id": "33e88c7994fa4cf79a1265e5105b93b2", + "customFields": null, + "apiAlias": "cms_page" }, - "quickViewState": { - "type": "array", - "items": { - "type": "string" + "category": { + "versionId": null, + "translated": { + "breadcrumb": [] }, - "default": [] + "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" }, - "extensions": { - "type": "array", - "default": [] - } + "apiAlias": "pwa_page_result" } }, - "Cart": { + "StateForAll": { "type": "object", "properties": { - "name": { - "description": "Name of the cart - for example `guest-cart`", - "type": "string" - }, - "token": { - "description": "Context token identifying the cart and the user session", - "type": "string" + "currentGuideProductId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] }, - "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": { - "type": "string", - "description": "A comment that can be added to the cart.", - "nullable": true - }, - "affiliateCode": { - "type": "string", - "description": "An affiliate tracking code", - "nullable": true - }, - "campaignCode": { - "type": "string", - "description": "A campaign tracking code", - "nullable": true - } - } - }, - "StateForAll": { - "type": "object", - "properties": { - "currentGuideProductId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - }, - "lastActiveGuideSection": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] + "lastActiveGuideSection": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] }, "currentPageId": { "anyOf": [ @@ -54212,248 +54250,50 @@ } } }, - "DiscountType": { - "type": "string", - "description": "Type of the discount", - "enum": [ - "percentage", - "absolute" - ] - }, - "AddTempDiscountRequestBody": { + "StateForGuides": { "type": "object", - "required": [ - "discountType", - "discountValue", - "appliedItemIds" - ], "properties": { - "discountType": { - "$ref": "#/components/schemas/DiscountType" - }, - "discountValue": { - "type": "number", - "description": "Value of the discount (leave it 0 if you want to remove the discount)", - "maximum": 0 - }, - "appliedItemIds": { + "clients": { "type": "array", "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, - "description": "Ids of the items to which the discount should be applied" - } - } - }, - "AddCartDiscountRequestBody": { - "type": "object", - "required": [ - "discountType", - "discountValue" - ], - "properties": { - "discountType": { - "$ref": "#/components/schemas/DiscountType" - }, - "discountValue": { - "type": "number", - "description": "Value of the discount (leave it 0 if you want to remove the discount)", - "maximum": 0 - } - } - }, - "GetCartInsightsResponse": { - "type": "object", - "description": "Returns aggregations for the current carts within the appointment.", - "properties": { - "cartSum": { - "type": "number", - "description": "Sum of all products from all attenddees which were added to the cart during the appointment" - }, - "productCount": { - "type": "number", - "description": "Sum of all product quantities from all attendees which were added to the cart during the appointment" + "default": [] }, - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id from the shown currency" + "inactiveClients": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "currencySymbol": { - "type": "string", - "description": "The currency symbol from the shown currency" + "guides": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "topProducts": { - "type": "object", - "required": [ - "byQuantity", - "byRevenue" - ], - "properties": { - "byQuantity": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "object", - "properties": { - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id from the product" - }, - "value": { - "type": "number", - "description": "The quantity in carts of this product" - } - }, - "required": [ - "productId", - "value" - ] - } - }, - "byRevenue": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "object", - "properties": { - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id from the product" - }, - "value": { - "type": "number", - "description": "The net revenue in the shown currency in carts of this product" - } - }, - "required": [ - "productId", - "value" - ] - } - } - } - } - }, - "example": { - "extensions": [], - "cartSum": 6770.53, - "productCount": 3, - "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca", - "currencySymbol": "$", - "topProducts": { - "byQuantity": [ - { - "productId": "01ae0dee60ea48fdafaf881b96361d59", - "value": 1 - }, - { - "productId": "fee3ca762be94bb49b692e359d529563", - "value": 1 - }, - { - "productId": "a31b4e64efe047b6844cb4dd5a1ce0da", - "value": 1 - } - ], - "byRevenue": [ - { - "productId": "fee3ca762be94bb49b692e359d529563", - "value": 5333.03 - }, + "videoGuideToken": { + "anyOf": [ { - "productId": "01ae0dee60ea48fdafaf881b96361d59", - "value": 1152.62 + "type": "string" }, { - "productId": "a31b4e64efe047b6844cb4dd5a1ce0da", - "value": 284.88 + "type": "null" } ] - } - } - }, - "CartPriceQuantity": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_quantity" - ] - }, - "isCalculated": { - "type": "boolean" }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" - }, - "price": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "taxRules": { + "quickViewState": { "type": "array", "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } - }, - "type": { - "type": "string" - } - }, - "required": [ - "apiAlias" - ] - }, - "AttendeeInsights": { - "type": "object", - "description": "Attendee Insights", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Id of the attendee" - }, - "cartSum": { - "type": "number", - "description": "Sum of the cart net in base currency" + "type": "string" + }, + "default": [] }, - "productCount": { - "type": "number", - "description": "Sum of all quantities in the cart which were added during the appointment" - } - }, - "example": { - "04da9d8572494ae68391a471d4c3a470": { - "extensions": [], - "id": "04da9d8572494ae68391a471d4c3a470", - "cartSum": 6770.53, - "productCount": 3, - "lineItemCount": 3 + "extensions": { + "type": "array", + "default": [] } } }, @@ -54486,1437 +54326,1665 @@ "extensions": [] } }, - "DynamicProductListingPageOpenedPayload": { - "required": [ - "page" - ], + "WidgetProductListing": { + "type": "object", + "description": "Includes all data you will need to attend to a appointment.", "properties": { + "extensions": { + "type": "array", + "description": "List of extensions", + "default": [] + }, + "products": { + "type": "array", + "description": "List of last seen products", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/Product" + }, + { + "type": "object", + "properties": { + "customFields": { + "type": "object", + "properties": { + "wishlistAttendeeIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + ] + } + }, + "total": { + "type": "integer", + "description": "The total number of products" + }, "page": { "type": "integer", - "description": "Current page position in the pagination" + "description": "The current page" + }, + "limit": { + "type": "integer", + "description": "The number of products per page" } } }, - "CalculatedPrice": { + "Criteria": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", + "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": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" + "page": { + "description": "Search result page", + "type": "integer" }, - "totalPrice": { - "type": "number" + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "calculatedTaxes": { + "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": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "tax": { - "type": "number" + { + "$ref": "#/components/schemas/EqualsFilter" }, - "taxRate": { - "type": "number" + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "price": { - "type": "number" + { + "$ref": "#/components/schemas/RangeFilter" } - }, - "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": { + "sort": { "type": "array", - "description": "Currently active tax rules and/or rates", + "description": "Sorting in the search result.", "items": { "type": "object", "properties": { - "taxRate": { - "type": "number", - "format": "float" + "field": { + "type": "string" }, - "name": { + "order": { "type": "string" + }, + "naturalSorting": { + "type": "boolean" } - } + }, + "required": [ + "field" + ] } - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules" - ] - }, - "CartListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" }, - "percentage": { - "type": "number" + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } }, - "price": { - "type": "number" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "apiAlias": { + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "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": [ - "cart_list_price" + "none", + "exact", + "next-pages" ] + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } - }, - "required": [ - "apiAlias" - ] + } }, - "PresentationCmsPage": { - "allOf": [ + "Includes": { + "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons. To return a DAL extension, list the extension by its name (for example `myExtension`); the `extensions` wrapper is then kept automatically. Listing the keyword `extensions` returns all extensions.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Excludes": { + "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons. Use an extension name to remove a single extension, or the keyword `extensions` to remove all of them.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "SimpleFilter": { + "anyOf": [ { - "$ref": "#/components/schemas/DsrPresentationCmsPage" + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] + }, + "field": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] }, { "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" + "type": { + "type": "string", + "enum": [ + "equalsAny", + "equalsAll" + ] + }, + "field": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "string" + } } - } - } - ] - }, - "DynamicPageOpenedPayload": { - "allOf": [ - { - "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" + }, + "required": [ + "type", + "field", + "value" + ] } ] }, - "CartItems": { + "EqualsFilter": { "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } + "type": { + "type": "string", + "enum": [ + "equals" + ] + }, + "field": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] } - } + }, + "required": [ + "type", + "field", + "value" + ] }, - "AbstractDynamicPageOpenedPayload": { + "MultiNotFilter": { "type": "object", - "required": [ - "type" - ], "properties": { "type": { "type": "string", - "description": "The type of the current dynamic page" + "enum": [ + "multi", + "not" + ] }, - "opened": { - "type": "boolean", - "default": true + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" } - } + }, + "required": [ + "type", + "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" - }, - "min": { - "type": "integer" + "gte": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] }, - "max": { - "type": "integer" + "gt": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] }, - "unit": { - "type": "string" + "lte": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_time" + "lt": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } ] } } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "Sort": { + "type": "object", + "properties": { + "field": { + "type": "string" }, - "height": { - "type": "integer" + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] }, - "length": { - "type": "integer" + "naturalSorting": { + "type": "boolean" }, - "restockTime": { - "type": "integer" + "type": { + "type": "string" + } + }, + "required": [ + "field", + "order" + ] + }, + "Associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "stock": { - "type": "integer" + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "weight": { - "type": "integer" + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "width": { - "type": "integer" + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] } - }, - "required": [ - "apiAlias" ] }, - "BasePresentationSlideData": { + "SubAggregations": { + "type": "object", "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "extensions": { - "type": "object", - "properties": { - "cmsPageRelation": { - "$ref": "#/components/schemas/PresentationCmsPage" + "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" } - } + ] } } }, - "PresentationSlideData": { + "AggregationEntity": { + "title": "AggregationEntity", "type": "object", "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "extensions": { - "type": "object", - "properties": { - "cmsPageRelation": { - "$ref": "#/components/schemas/PresentationCmsPage" - } - } + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "product": { - "$ref": "#/components/schemas/Product" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "entity" + ] }, - "category": { - "$ref": "#/components/schemas/Category" + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "configurator": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" } }, - "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": [] + "required": [ + "name", + "type", + "field", + "definition" + ] + }, + "AggregationFilter": { + "title": "AggregationFilter", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "filter" + ] + }, + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } + } + }, + "required": [ + "name", + "type", + "filter" + ] + }, + "AggregationTerms": { + "title": "AggregationTerms", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "terms" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "limit": { + "description": "The number of terms to return", + "type": "number" + }, + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationHistogram": { + "title": "AggregationHistogram", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "histogram" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "interval": { + "description": "The interval of the histogram", + "type": "number" + }, + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" + }, + "to": { + "type": "number", + "description": "The upper bound of the range" + } + }, + "required": [ + "from", + "to" + ] }, - "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", - "updatedAt": null, - "type": "default", - "blocks": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slot": "content", - "block": null, - "blockId": "96ea8b9676a5461c9149d205d792ecf2", - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", - "position": 0, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - } - ], - "pageId": "33e88c7994fa4cf79a1265e5105b93b2", - "page": null, - "position": 0, - "sizingMode": "boxed", - "mobileBehavior": "wrap", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_section" - } + { + "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" + ] + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] + }, + "field": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "MeasurementUnits": { + "type": "object", + "description": "Configuration of the measurement system", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + }, + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" ], - "translations": null, - "cssClass": null, - "config": null, - "previewMediaId": null, - "previewMedia": null, - "landingPages": null, - "id": "33e88c7994fa4cf79a1265e5105b93b2", - "customFields": null, - "apiAlias": "cms_page" + "default": "mm", + "description": "Unit of length." }, - "pickedProductIds": null, - "dsrPresentationVersionId": "213769ba28dd4ee788bdb49dc9ce53d2", - "id": "4ee08e142ed046eb99681594f67599f1", - "customFields": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "apiAlias": "dsr_presentation_cms_page" + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } } + } + } + }, + "MediaId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Media entity ID" + }, + "ExternalThumbnail": { + "type": "object", + "description": "An external thumbnail URL with its dimensions. Used when a CDN provides pre-generated thumbnails alongside the main media file.", + "required": [ + "url", + "width", + "height" + ], + "properties": { + "url": { + "type": "string", + "description": "Absolute HTTP/HTTPS URL of the thumbnail", + "example": "https://cdn.example.com/image-200x200.jpg" }, - "cmsPage": { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "name": "Default Digital Sales Rooms product listing page", - "customFields": [] + "width": { + "type": "integer", + "exclusiveMinimum": 0, + "description": "Width of the thumbnail in pixels", + "example": 200 + }, + "height": { + "type": "integer", + "exclusiveMinimum": 0, + "description": "Height of the thumbnail in pixels", + "example": 200 + } + } + }, + "OAuthScopes": { + "description": "OAuth scopes that should be requested.", + "type": "string", + "enum": [ + "write", + "user-verified", + "admin", + "write user-verified", + "write admin", + "user-verified admin", + "write user-verified admin" + ] + }, + "OAuthGrant": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth grant type that should be requested. See [OAuth 2.0 grant](https://oauth2.thephpleague.com/authorization-server/which-grant/) for more information.", + "type": "string" + } + }, + "required": [ + "grant_type" + ], + "discriminator": { + "propertyName": "grant_type", + "mapping": { + "client_credentials": "#/components/schemas/OAuthClientCredentialsGrant", + "password": "#/components/schemas/OAuthPasswordGrant", + "refresh_token": "#/components/schemas/OAuthRefreshTokenGrant" + } + } + }, + "OAuthClientCredentialsGrant": { + "allOf": [ + { + "$ref": "#/components/schemas/OAuthGrant" + }, + { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth client id.", + "type": "string" + }, + "client_secret": { + "description": "Password of the client that should be authenticated.", + "type": "string" + } }, - "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", - "updatedAt": null, - "type": "default", - "blocks": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slot": "content", - "block": null, - "blockId": "96ea8b9676a5461c9149d205d792ecf2", - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": { - "listing": { - "elements": [ - { - "versionId": null, - "translated": [], - "createdAt": null, - "updatedAt": null, - "parentId": null, - "childCount": null, - "taxId": null, - "manufacturerId": null, - "unitId": null, - "active": null, - "displayGroup": null, - "manufacturerNumber": null, - "ean": null, - "sales": null, - "productNumber": null, - "stock": null, - "availableStock": null, - "available": null, - "deliveryTimeId": null, - "deliveryTime": null, - "restockTime": null, - "isCloseout": null, - "purchaseSteps": null, - "maxPurchase": null, - "minPurchase": null, - "purchaseUnit": null, - "referenceUnit": null, - "shippingFree": null, - "markAsTopseller": null, - "weight": null, - "width": null, - "height": null, - "length": null, - "releaseDate": null, - "categoryTree": null, - "streamIds": null, - "optionIds": null, - "propertyIds": null, - "name": null, - "keywords": null, - "description": null, - "metaDescription": null, - "metaTitle": null, - "packUnit": null, - "packUnitPlural": null, - "tax": null, - "manufacturer": null, - "unit": null, - "cover": null, - "parent": null, - "children": null, - "media": null, - "cmsPageId": null, - "cmsPage": null, - "translations": null, - "categories": null, - "properties": null, - "options": null, - "configuratorSettings": null, - "categoriesRo": null, - "coverId": null, - "categoryIds": null, - "productReviews": null, - "ratingAverage": null, - "mainCategories": null, - "seoUrls": null, - "crossSellings": null, - "canonicalProductId": null, - "canonicalProduct": null, - "streams": null, - "downloads": null, - "states": [], - "id": "a32702bb0b1443e3881c3b9a38c09169", - "customFields": null, - "apiAlias": "product" - } - ], - "aggregations": [], - "page": 1, - "limit": null, - "entity": "product", - "total": 0, - "states": [], - "apiAlias": "dal_entity_search_result" - }, - "apiAlias": "cms_product_listing" - }, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", - "position": 0, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - } - ], - "pageId": "33e88c7994fa4cf79a1265e5105b93b2", - "page": null, - "position": 0, - "sizingMode": "boxed", - "mobileBehavior": "wrap", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_section" + "required": [ + "client_id", + "client_secret" + ] + } + ] + }, + "OAuthPasswordGrant": { + "allOf": [ + { + "$ref": "#/components/schemas/OAuthGrant" + }, + { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth client id.", + "type": "string", + "enum": [ + "administration" + ] + }, + "scope": { + "$ref": "#/components/schemas/OAuthScopes" + }, + "username": { + "description": "Username of the user that should be authenticated.", + "type": "string" + }, + "password": { + "description": "Password of the user that should be authenticated.", + "type": "string" + } + }, + "required": [ + "client_id", + "scope", + "username", + "password" + ] + } + ] + }, + "OAuthRefreshTokenGrant": { + "allOf": [ + { + "$ref": "#/components/schemas/OAuthGrant" + }, + { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth client id.", + "type": "string", + "enum": [ + "administration" + ] + }, + "scope": { + "$ref": "#/components/schemas/OAuthScopes" + }, + "refresh_token": { + "description": "The refresh token that should be used to refresh the access token.", + "type": "string" } + }, + "required": [ + "client_id", + "scope", + "refresh_token" + ] + } + ] + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "Gross price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net prices are linked through the tax configuration.", + "type": "boolean" + }, + "percentage": { + "description": "Discount percentage relative to the list price for the gross and net amounts. `null` when no list price is set.", + "type": [ + "object", + "null" ], - "translations": null, - "cssClass": null, - "config": null, - "previewMediaId": null, - "previewMedia": null, - "landingPages": null, - "id": "33e88c7994fa4cf79a1265e5105b93b2", - "customFields": null, - "apiAlias": "cms_page" + "properties": { + "gross": { + "description": "Discount percentage relative to the gross list price.", + "type": "number" + }, + "net": { + "description": "Discount percentage relative to the net list price.", + "type": "number" + } + }, + "required": [ + "gross", + "net" + ] }, - "category": { - "versionId": null, - "translated": { - "breadcrumb": [] + "listPrice": { + "description": "Reference list price for displaying discounts.", + "type": "object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "Gross list price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net list price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net list prices are linked through the tax configuration.", + "type": "boolean" + } }, - "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" + "required": [ + "gross", + "net", + "linked" + ] }, - "apiAlias": "pwa_page_result" + "regulationPrice": { + "description": "Reference price used for legal price disclosures.", + "type": "object", + "properties": { + "currencyId": { + "description": "Unique identity of the associated currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "Gross regulation price for the associated currency.", + "type": "number" + }, + "net": { + "description": "Net regulation price for the associated currency.", + "type": "number" + }, + "linked": { + "description": "Whether gross and net regulation prices are linked through the tax configuration.", + "type": "boolean" + } + }, + "required": [ + "gross", + "net", + "linked" + ] + } + }, + "required": [ + "currencyId", + "gross", + "net", + "linked" + ] + }, + "businessEventsResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the event" + }, + "class": { + "type": "string", + "description": "Class name of the event" + }, + "data": { + "type": "object", + "description": "Available data of event" + }, + "aware": { + "type": "array", + "description": "Flow builder will base on awareness to show actions", + "items": { + "type": "string" + } + }, + "extensions": { + "type": "array", + "description": "Extensions data of event", + "items": { + "type": "string" + } + } + } + } + }, + "flowBuilderActionsResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the flow action" + }, + "requirements": { + "type": "array", + "description": "When requirement fit with aware from `events.json` actions will be shown", + "items": { + "type": "string" + } + }, + "extensions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Extensions data of event" + } + } } }, - "GetAttendeeInsightsResponse": { + "infoConfigResponse": { "type": "object", - "description": "Returns aggregations for the current attendees within the appointment.", "properties": { - "attendees": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AttendeeInsights" - } - }, - "currencyId": { + "version": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "description": "Shopware version." }, - "currencySymbol": { - "type": "string" - } - }, - "example": { - "extensions": [], - "attendees": { - "04da9d8572494ae68391a471d4c3a470": { - "extensions": [], - "id": "04da9d8572494ae68391a471d4c3a470", - "cartSum": 6770.53, - "productCount": 3, - "lineItemCount": 3 - } + "shopId": { + "type": "string", + "description": "Unique shop identifier." }, - "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca", - "currencySymbol": "$" - } - }, - "GuidePresentationStateResponse": { - "type": "object", - "properties": { - "stateForAll": { - "$ref": "#/components/schemas/StateForAll" + "versionRevision": { + "type": "string", + "description": "Shopware version revision (build hash/revision)." }, - "stateForClients": { - "$ref": "#/components/schemas/StateForGuides" - } - }, - "example": { - "extensions": [], - "stateForAll": { - "currentGuideProductId": null, - "lastActiveGuideSection": null, - "currentPageId": null, - "currentSectionId": null, - "currentSlideAlias": 0, - "currentDynamicPage": null, - "started": false, - "running": false, - "ended": false, - "startedAt": null, - "endedAt": null, - "accessibleFrom": { - "date": "2023-08-04 00:00:00.000000", - "timezone_type": 3, - "timezone": "UTC" - }, - "accessibleTo": { - "date": "2023-08-05 00:00:00.000000", - "timezone_type": 3, - "timezone": "UTC" + "adminWorker": { + "type": "object", + "description": "Admin worker feature flags and transport configuration.", + "properties": { + "enableAdminWorker": { + "type": "boolean", + "description": "Whether the admin background worker is enabled." + }, + "enableQueueStatsWorker": { + "type": "boolean", + "description": "Whether the queue statistics worker is enabled. Deprecated: This property will be removed in v6.8.0. The increment-based message queue statistics are deprecated.", + "deprecated": true + }, + "enableNotificationWorker": { + "type": "boolean", + "description": "Whether the notification worker is enabled." + }, + "transports": { + "type": "array", + "description": "Configured Symfony Messenger transports used by the admin workers.", + "items": { + "type": "string" + } + } }, - "appointmentMode": "guided", - "videoAudioSettings": "both", - "videoRoomUrl": "", - "attendeeRestrictionType": "open", - "productDetailDefaultPageId": "bea211b5099241719830df8026624f7f", - "quickviewPageId": "182d3f7f988044adbba449b70c8bc472", - "productListingDefaultPageId": "33e88c7994fa4cf79a1265e5105b93b2", - "broadcastMode": false, - "extensions": [] + "additionalProperties": false }, - "stateForGuides": { - "clients": [], - "inactiveClients": { - "2b4066cd37a341088e32a81e04a56817": { - "attendeeId": "2b4066cd37a341088e32a81e04a56817", - "attendeeName": "Attendee 1", - "videoUserId": null, - "hasJoined": false + "bundles": { + "type": "object", + "description": "Active extension assets (plugins & apps) keyed by technical name.", + "additionalProperties": { + "oneOf": [ + { + "type": "object", + "description": "Plugin bundle asset descriptor.", + "properties": { + "type": { + "type": "string", + "enum": [ + "plugin" + ] + }, + "css": { + "type": "array", + "items": { + "type": "string", + "description": "URL to a CSS asset." + } + }, + "js": { + "type": "array", + "items": { + "type": "string", + "description": "URL to a JS asset." + } + }, + "baseUrl": { + "type": [ + "string", + "null" + ], + "description": "Base URL to a (micro frontend) admin entry point, if provided." + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "object", + "description": "App bundle descriptor.", + "properties": { + "type": { + "type": "string", + "enum": [ + "app" + ] + }, + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "integrationId": { + "type": "string", + "description": "Lowercase hex integration id." + }, + "baseUrl": { + "type": "string" + }, + "version": { + "type": "string" + }, + "permissions": { + "type": "object", + "description": "Grouped privileges: key = privilege scope, value = list of entities.", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "css": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional CSS assets if provided." + }, + "js": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional JS assets if provided." + } + }, + "required": [ + "type", + "name", + "active", + "integrationId", + "baseUrl", + "version", + "permissions" + ], + "additionalProperties": false + } + ] + } + }, + "settings": { + "type": "object", + "description": "Selected environment and feature settings consumed by the administration.", + "properties": { + "enableUrlFeature": { + "type": "boolean", + "description": "State of the URL upload feature." }, - "302108ad602b4ac687f5247aae5d0297": { - "attendeeId": "302108ad602b4ac687f5247aae5d0297", - "attendeeName": null, - "videoUserId": null, - "hasJoined": true + "appUrlReachable": { + "type": "boolean", + "description": "Whether configured APP_URL is externally reachable." }, - "5a3b4e84acab47119b8a6bceb79e732e": { - "attendeeId": "5a3b4e84acab47119b8a6bceb79e732e", - "attendeeName": "Test attende name", - "videoUserId": null, - "hasJoined": true + "appsRequireAppUrl": { + "type": "boolean", + "description": "True if at least one installed app requires a reachable APP_URL." }, - "b6358241e4ad4a4e99d0f729d21d63be": { - "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", - "attendeeName": null, - "videoUserId": null, - "hasJoined": true + "firstMigrationDate": { + "type": [ + "string", + "null" + ], + "description": "Timestamp of the first executed migration in ISO-8601 UTC format, used for Product Analytics consent eligibility." }, - "f1bb9374308d4e088c29d10a2fc8cc07": { - "attendeeId": "f1bb9374308d4e088c29d10a2fc8cc07", - "attendeeName": null, - "videoUserId": null, - "hasJoined": false - } - }, - "guides": { - "1850bbdc12dc44aba95bc78b16c3643c": { - "attendeeId": "1850bbdc12dc44aba95bc78b16c3643c", - "attendeeName": " admin", - "videoUserId": null, - "hasJoined": true + "private_allowed_extensions": { + "type": "array", + "description": "Allowed file extensions for private filesystem uploads.", + "items": { + "type": "string" + } + }, + "private_allowed_mime_types_by_extension": { + "type": "object", + "description": "Known MIME types for each allowed private filesystem upload extension.", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "enableHtmlSanitizer": { + "type": "boolean", + "description": "Whether HTML sanitizer is enabled." + }, + "enableStagingMode": { + "type": "boolean", + "description": "Whether staging mode banner is enabled." + }, + "disableExtensionManagement": { + "type": "boolean", + "description": "True if runtime extension management is disabled." + }, + "presignedUploadSupported": { + "type": "boolean", + "description": "Whether presigned S3 upload is available. True when presigned upload is enabled and an S3 filesystem is configured." } }, - "videoGuideToken": null, - "quickViewState": [], - "extensions": [] + "required": [ + "firstMigrationDate" + ], + "additionalProperties": false + }, + "inAppPurchases": { + "type": "array", + "description": "In-app purchase meta data (structure may vary).", + "items": { + "type": "object", + "description": "Purchase entry.", + "additionalProperties": true + } } - } + }, + "required": [ + "version", + "shopId", + "versionRevision", + "adminWorker", + "bundles", + "settings", + "inAppPurchases" + ], + "additionalProperties": false }, - "JoinAppointmentResponse": { + "ConsentState": { "type": "object", - "description": "Includes all data you will need to attend to a appointment.", + "required": [ + "name", + "scopeName", + "identifier", + "status", + "actor", + "updatedAt", + "acceptedUntil" + ], "properties": { - "mercureSubscriberTopics": { - "type": "array", - "items": { - "type": "string", - "description": "mercure topic" - }, - "description": "The topics to which the attendee/guide can subscribe for" + "name": { + "type": "string", + "description": "The name of the consent" }, - "mercurePublisherTopic": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "scopeName": { + "type": "string", + "description": "The scope of the consent that defines how the identifier is resolved" + }, + "identifier": { + "type": "string", + "description": "The resolved identifier of the consent" + }, + "status": { + "type": "string", + "enum": [ + "unset", + "accepted", + "revoked" ], - "description": "The topic to which the attendee/guide can send updates" + "description": "The current status of the consent (requested, accepted, revoked)" }, - "JWTMercureSubscriberToken": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "actor": { + "type": [ + "string", + "null" ], - "description": "The JWT mercure token to publish updates" + "description": "The user name of the user who made the consent decision. null if never updated" }, - "mercureHubPublicUrl": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "updatedAt": { + "type": [ + "string", + "null" ], - "description": "The mercure hub url to connect for subscribing and updating" + "format": "date-time", + "description": "The timestamp of when the consent status was last updated. null if never updated" }, - "JWTMercurePublisherToken": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } + "acceptedUntil": { + "type": [ + "string", + "null" ], - "description": "The JWT mercure token to subscribe for updates" + "format": "date-time", + "description": "The timestamp until when the consent is accepted. null if never accepted" + }, + "acceptedRevision": { + "type": [ + "string", + "null" + ], + "description": "The accepted consent revision. null unless the consent is currently accepted for a revision-aware consent." }, + "latestRevision": { + "type": [ + "string", + "null" + ], + "description": "The current latest revision defined for the consent. null when the consent does not use revisions." + } + } + }, + "SalesChannelFileConfiguration": { + "type": "object", + "required": [ + "id", + "enabled", + "templateOverrides" + ], + "properties": { "id": { + "description": "Identifier of the sales_channel_file row.", "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The appointment id" + "pattern": "^[0-9a-f]{32}$" }, - "newContextToken": { + "enabled": { + "description": "Whether this file is served publicly for the sales channel.", + "type": "boolean" + }, + "templateOverrides": { + "description": "Merchant-provided Twig overrides keyed by Twig namespace. The reserved `user_provided_content` key stores plain text for the dedicated append block when supported by the template chain.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "SalesChannelFileDescriptor": { + "type": "object", + "required": [ + "fileFamily", + "fileName", + "contentType", + "configuration" + ], + "properties": { + "fileFamily": { + "description": "File family below `Resources/views/files`.", "type": "string", - "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" + "maxLength": 64 }, - "attendeeId": { + "fileName": { + "description": "Public file path without a leading slash.", "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The created Id for the attendee" + "examples": [ + "llms.txt", + ".well-known/ucp.json" + ] }, - "salesChannelId": { + "contentType": { + "description": "Detected response content type for the public file.", + "type": "string", + "examples": [ + "text/plain; charset=utf-8" + ] + }, + "configuration": { + "description": "Stored sales-channel configuration for this file, or null when it has not been configured yet.", + "oneOf": [ + { + "$ref": "#/components/schemas/SalesChannelFileConfiguration" + }, + { + "type": "null" + } + ] + } + } + }, + "SalesChannelFileDetail": { + "type": "object", + "required": [ + "fileFamily", + "fileName", + "templatePath", + "contentType", + "templates", + "supportsUserProvidedContent", + "configuration" + ], + "properties": { + "fileFamily": { + "description": "File family below `Resources/views/files`.", "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id of the current sales channel" + "maxLength": 64 }, - "salesChannelName": { + "fileName": { + "description": "Public file path without a leading slash.", "type": "string", - "description": "The name of the current sales channel" + "examples": [ + "llms.txt", + ".well-known/ucp.json" + ] }, - "appointmentName": { + "templatePath": { + "description": "Relative Twig template path used for rendering.", "type": "string", - "description": "The name of the appointment" + "examples": [ + "files/agentic/llms.txt.twig" + ] }, - "presentationGuideMode": { + "contentType": { + "description": "Detected response content type for the public file.", "type": "string", - "enum": [ - "self", - "guided" - ], - "description": "The type of the appointment" + "examples": [ + "text/plain; charset=utf-8" + ] }, - "isPreview": { - "type": "boolean", - "description": "To see if it's a preview appointment" + "templates": { + "description": "Contributing Twig templates in resolved inheritance order.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SalesChannelFileTemplate" + } }, - "attendeeName": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The name of the attendee" + "supportsUserProvidedContent": { + "description": "Whether the template chain exposes the `user_provided_content` block for simple appended merchant notes.", + "type": "boolean" }, - "videoUserId": { + "configuration": { + "description": "Stored sales-channel configuration for this file, or null when it has not been configured yet.", "oneOf": [ { - "type": "string" + "$ref": "#/components/schemas/SalesChannelFileConfiguration" }, { "type": "null" } - ], - "description": "The video user id that attendee could use" - }, - "b2bFeatures": { - "type": "object", - "description": "The b2b features that available for the appointment", - "properties": { - "quoteManagement": { - "type": "boolean", - "description": "To know if the quote management is enabled for current customer" - } - } + ] } - }, - "example": { - "mercureSubscriberTopics": [ - "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" - ], - "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", - "JWTMercureSubscriberToken": "jwt token for subscribing to updates", - "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", - "JWTMercurePublisherToken": "jwt token for publishing updates", - "attendeeName": "attendee name", - "videoUserId": null, - "b2bFeatures": { - "feature1": false, - "feature2": true - }, - "id": "2d2c358f1ca04098aacf12873c2eed82", - "newContextToken": "new context token to call the other routes", - "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", - "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", - "salesChannelName": "Storefront", - "appointmentName": "Test Appointment", - "presentationGuideMode": "guided", - "isPreview": false, - "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" } }, - "WidgetProductListing": { + "SalesChannelFileDetailResponse": { "type": "object", - "description": "Includes all data you will need to attend to a appointment.", + "required": [ + "data" + ], "properties": { - "extensions": { - "type": "array", - "description": "List of extensions", - "default": [] - }, - "products": { + "data": { + "$ref": "#/components/schemas/SalesChannelFileDetail" + } + } + }, + "SalesChannelFileListResponse": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { "type": "array", - "description": "List of last seen products", "items": { - "allOf": [ - { - "$ref": "#/components/schemas/Product" - }, - { - "type": "object", - "properties": { - "customFields": { - "type": "object", - "properties": { - "wishlistAttendeeIds": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - ] + "$ref": "#/components/schemas/SalesChannelFileDescriptor" } - }, - "total": { - "type": "integer", - "description": "The total number of products" - }, - "page": { - "type": "integer", - "description": "The current page" - }, - "limit": { - "type": "integer", - "description": "The number of products per page" } } }, - "LineItemType": { - "type": "string", - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", - "quantity", - "dsr-line-item-discount", - "dsr-cart-discount" - ] - }, - "DiscountLineItemPayload": { + "SalesChannelFilePreviewRequest": { "type": "object", + "required": [ + "fileName" + ], "properties": { - "discountType": { + "fileName": { + "description": "Public file path without a leading slash.", "type": "string", - "enum": [ - "percentage", - "absolute" + "examples": [ + "llms.txt", + ".well-known/ucp.json" ] }, - "discountValue": { - "type": "number", - "format": "float", - "maximum": 0 - }, - "discountPrice": { - "type": "number", - "format": "float", - "maximum": 0 + "templateOverrides": { + "description": "Unsaved Twig overrides keyed by Twig namespace. The reserved `user_provided_content` key stores plain text for the dedicated append block when supported by the template chain.", + "type": "object", + "additionalProperties": { + "type": "string" + } } } }, - "LineItem": { + "SalesChannelFilePreviewResponse": { "type": "object", + "required": [ + "fileName", + "contentType", + "content" + ], "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": { + "fileName": { + "description": "Public file path without a leading slash.", "type": "string" }, - "modified": { - "type": "boolean" - }, - "modifiedByApp": { - "type": "boolean" - }, - "payload": { - "allOf": [ - { - "$ref": "#/components/schemas/ProductJsonApi" - }, - { - "type": "object", - "properties": { - "discountType": { - "type": "string", - "enum": [ - "percentage", - "absolute" - ] - }, - "discountValue": { - "type": "number", - "format": "float", - "maximum": 0 - }, - "discountPrice": { - "type": "number", - "format": "float", - "maximum": 0 - } - } - } - ] - }, - "extensions": { - "type": "object", - "properties": { - "meta": { - "type": "object", - "properties": { - "attendees": { - "type": "array", - "items": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - } - } - } - } - } - } - } - }, - "price": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "calculatedTaxes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] - }, - "tax": { - "type": "number" - }, - "taxRate": { - "type": "number" - }, - "price": { - "type": "number" - } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "quantity": { - "type": "number" - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] - }, - "regulationPrice": { - "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": [ - "apiAlias", - "totalPrice", - "quantity", - "unitPrice" - ] - }, - "priceDefinition": { - "$ref": "#/components/schemas/CartPriceQuantity" - }, - "quantity": { - "type": "number" - }, - "quantityInformation": { - "type": "object", - "properties": { - "maxPurchase": { - "type": "number" - }, - "minPurchase": { - "type": "number" - }, - "purchaseSteps": { - "type": "number" - } - } - }, - "referencedId": { + "contentType": { + "description": "Detected content type of the rendered file.", "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": { + "content": { + "description": "Rendered file content.", "type": "string" } - }, - "required": [ - "id", - "type" - ] + } }, - "CartDeliveryPosition": { + "SalesChannelFileTemplate": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "required": [ + "twigNamespace", + "templateName", + "templateContent", + "role" + ], "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } - }, - "identifier": { + "twigNamespace": { + "description": "Twig namespace that contributed the template, for example `Framework` or a plugin name.", "type": "string" }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" + "templateName": { + "description": "Resolved Twig template name.", + "type": "string", + "examples": [ + "@Framework/files/agentic/llms.txt.twig" + ] }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" + "templateContent": { + "description": "Original source template content. Administration clients can use this as the default text when editing a template override.", + "type": "string" + }, + "role": { + "description": "Whether this source provides the base template or extends another source in the resolved template chain.", + "type": "string", + "enum": [ + "base", + "extension" + ] } } } diff --git a/SwagDigitalSalesRooms-adminapi.summary.json b/SwagDigitalSalesRooms-adminapi.summary.json index 9a824ae..1e1bea0 100644 --- a/SwagDigitalSalesRooms-adminapi.summary.json +++ b/SwagDigitalSalesRooms-adminapi.summary.json @@ -20,6 +20,7 @@ "/_action/dsr/appointment/{appointmentId}/widgets/cart-statistics", "/_action/dsr/appointment/{appointmentId}/widgets/last-seen-statistics", "/_action/dsr/appointment/{appointmentId}/widgets/wishlist-statistics", + "/_action/translation/meta", "/aggregate/dsr-appointment", "/aggregate/dsr-appointment-attendee", "/aggregate/dsr-appointment-request",