From d39e7a16b906fe6a6601933ef1d6793213e492cb Mon Sep 17 00:00:00 2001 From: shopwareBot Date: Wed, 14 Jan 2026 14:28:48 +0000 Subject: [PATCH] [create-pull-request] automated change --- storeapi.json | 1887 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 1541 insertions(+), 346 deletions(-) diff --git a/storeapi.json b/storeapi.json index 3b5c216..8d177e8 100644 --- a/storeapi.json +++ b/storeapi.json @@ -7,7 +7,7 @@ "name": "MIT", "url": "https://github.com/shopware/shopware/blob/trunk/LICENSE" }, - "version": "6.7.4.2" + "version": "6.7.6.1" }, "servers": [ { @@ -828,6 +828,7 @@ "type": "object" }, "children": { + "description": "Child categories within this category for hierarchical navigation", "properties": { "links": { "type": "object", @@ -859,6 +860,7 @@ "type": "object" }, "media": { + "description": "Category image or banner", "properties": { "links": { "type": "object", @@ -888,6 +890,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing and filtering categories", "properties": { "links": { "type": "object", @@ -919,6 +922,7 @@ "type": "object" }, "cmsPage": { + "description": "CMS page layout for the category", "properties": { "links": { "type": "object", @@ -948,6 +952,7 @@ "type": "object" }, "seoUrls": { + "description": "SEO-friendly URLs for the category across different sales channels", "properties": { "links": { "type": "object", @@ -1181,24 +1186,29 @@ "$ref": "#/components/schemas/Category" }, "children": { + "description": "Child categories within this category for hierarchical navigation", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "media": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Category image or banner" }, "tags": { + "description": "Tags for organizing and filtering categories", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the category" }, "seoUrls": { + "description": "SEO-friendly URLs for the category across different sales channels", "type": "array", "items": { "$ref": "#/components/schemas/SeoUrl" @@ -1407,15 +1417,18 @@ "description": "Contains the translations of all translated fields." }, "sections": { + "description": "Content sections within the CMS page (layout blocks containing slots)", "type": "array", "items": { "$ref": "#/components/schemas/CmsSection" } }, "previewMedia": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Preview image for the CMS page in admin panel and page selection" }, "landingPages": { + "description": "Landing pages using this CMS layout", "type": "array", "items": { "$ref": "#/components/schemas/LandingPage" @@ -1768,6 +1781,7 @@ "relationships": { "properties": { "states": { + "description": "States/provinces/regions within the country", "properties": { "links": { "type": "object", @@ -1956,6 +1970,7 @@ "description": "Contains the translations of all translated fields." }, "states": { + "description": "States/provinces/regions within the country", "type": "array", "items": { "$ref": "#/components/schemas/CountryState" @@ -2605,36 +2620,46 @@ "readOnly": true }, "group": { - "$ref": "#/components/schemas/CustomerGroup" + "$ref": "#/components/schemas/CustomerGroup", + "description": "Customer group determining pricing and permissions" }, "language": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Preferred language for customer communication" }, "lastPaymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/PaymentMethod", + "description": "Last used payment method by the customer" }, "defaultBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default billing address for the customer" }, "activeBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active billing address in the session" }, "defaultShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default shipping address for the customer" }, "activeShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active shipping address in the session" }, "salutation": { - "$ref": "#/components/schemas/Salutation" + "$ref": "#/components/schemas/Salutation", + "description": "Customer salutation (e.g., Mr., Mrs., Ms.)" }, "addresses": { + "description": "All addresses saved for the customer", "type": "array", "items": { "$ref": "#/components/schemas/CustomerAddress" } }, "tags": { + "description": "Tags assigned to the customer for organization and segmentation", "type": "array", "items": { "$ref": "#/components/schemas/Tag" @@ -3561,6 +3586,7 @@ "relationships": { "properties": { "cmsPage": { + "description": "CMS page layout for the landing page", "properties": { "links": { "type": "object", @@ -3590,6 +3616,7 @@ "type": "object" }, "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", "properties": { "links": { "type": "object", @@ -3703,9 +3730,11 @@ "description": "Contains the translations of all translated fields." }, "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the landing page" }, "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", "type": "array", "items": { "$ref": "#/components/schemas/SeoUrl" @@ -3800,6 +3829,7 @@ "type": "object" }, "locale": { + "description": "Locale defining regional settings (date, time, number formats)", "properties": { "links": { "type": "object", @@ -3829,6 +3859,7 @@ "type": "object" }, "translationCode": { + "description": "Locale used for translating content", "properties": { "links": { "type": "object", @@ -3858,6 +3889,7 @@ "type": "object" }, "children": { + "description": "Child languages inheriting from this parent language", "properties": { "links": { "type": "object", @@ -3949,12 +3981,15 @@ "$ref": "#/components/schemas/Language" }, "locale": { - "$ref": "#/components/schemas/Locale" + "$ref": "#/components/schemas/Locale", + "description": "Locale defining regional settings (date, time, number formats)" }, "translationCode": { - "$ref": "#/components/schemas/Locale" + "$ref": "#/components/schemas/Locale", + "description": "Locale used for translating content" }, "children": { + "description": "Child languages inheriting from this parent language", "type": "array", "items": { "$ref": "#/components/schemas/Language" @@ -4527,6 +4562,7 @@ "description": "Contains the translations of all translated fields." }, "thumbnails": { + "description": "Generated thumbnail images in various sizes", "type": "array", "items": { "$ref": "#/components/schemas/MediaThumbnail" @@ -5176,57 +5212,70 @@ "readOnly": true }, "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/StateMachineState", + "description": "Current order state (e.g., open, in_progress, completed, cancelled)" }, "primaryOrderDelivery": { - "$ref": "#/components/schemas/OrderDelivery" + "$ref": "#/components/schemas/OrderDelivery", + "description": "Primary delivery information for the order" }, "primaryOrderTransaction": { - "$ref": "#/components/schemas/OrderTransaction" + "$ref": "#/components/schemas/OrderTransaction", + "description": "Primary payment transaction for the order" }, "orderCustomer": { - "$ref": "#/components/schemas/OrderCustomer" + "$ref": "#/components/schemas/OrderCustomer", + "description": "Customer information associated with the order" }, "currency": { - "$ref": "#/components/schemas/Currency" + "$ref": "#/components/schemas/Currency", + "description": "Currency used for the order" }, "language": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Language used when placing the order" }, "addresses": { + "description": "All addresses associated with the order (billing and shipping)", "type": "array", "items": { "$ref": "#/components/schemas/OrderAddress" } }, "billingAddress": { - "$ref": "#/components/schemas/OrderAddress" + "$ref": "#/components/schemas/OrderAddress", + "description": "Billing address for the order" }, "deliveries": { + "description": "Delivery information including shipping address and tracking", "type": "array", "items": { "$ref": "#/components/schemas/OrderDelivery" } }, "lineItems": { + "description": "Order line items (products, discounts, fees)", "type": "array", "items": { "$ref": "#/components/schemas/OrderLineItem" } }, "transactions": { + "description": "Payment transactions for the order", "type": "array", "items": { "$ref": "#/components/schemas/OrderTransaction" } }, "documents": { + "description": "Generated documents (invoices, delivery notes, credit notes)", "type": "array", "items": { "$ref": "#/components/schemas/Document" } }, "tags": { + "description": "Tags assigned to the order for organization and filtering", "type": "array", "items": { "$ref": "#/components/schemas/Tag" @@ -5573,15 +5622,19 @@ "readOnly": true }, "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/StateMachineState", + "description": "Current delivery state (e.g., open, shipped, delivered, cancelled)" }, "shippingOrderAddress": { - "$ref": "#/components/schemas/OrderAddress" + "$ref": "#/components/schemas/OrderAddress", + "description": "Shipping address for this delivery" }, "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/ShippingMethod", + "description": "Shipping method used for this delivery" }, "positions": { + "description": "Line items included in this delivery", "type": "array", "items": { "$ref": "#/components/schemas/OrderDeliveryPosition" @@ -5966,18 +6019,22 @@ "readOnly": true }, "cover": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Line item image or thumbnail" }, "product": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Product", + "description": "Referenced product if this is a product line item" }, "orderDeliveryPositions": { + "description": "Delivery positions for this line item", "type": "array", "items": { "$ref": "#/components/schemas/OrderDeliveryPosition" } }, "downloads": { + "description": "Digital downloads associated with this line item", "type": "array", "items": { "$ref": "#/components/schemas/OrderLineItemDownload" @@ -6230,12 +6287,15 @@ "readOnly": true }, "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/StateMachineState", + "description": "Current payment transaction state (e.g., open, paid, cancelled)" }, "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/PaymentMethod", + "description": "Payment method used for this transaction" }, "captures": { + "description": "Payment captures for this transaction", "type": "array", "items": { "$ref": "#/components/schemas/OrderTransactionCapture" @@ -6836,6 +6896,7 @@ "relationships": { "properties": { "media": { + "description": "Payment method logo or icon image", "properties": { "links": { "type": "object", @@ -6942,7 +7003,8 @@ "description": "Contains the translations of all translated fields." }, "media": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Payment method logo or icon image" } }, "type": "object" @@ -7309,6 +7371,7 @@ "relationships": { "properties": { "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", "properties": { "links": { "type": "object", @@ -7369,6 +7432,7 @@ "type": "object" }, "children": { + "description": "Product variants that inherit from this parent product", "properties": { "links": { "type": "object", @@ -7400,6 +7464,7 @@ "type": "object" }, "deliveryTime": { + "description": "Estimated delivery time for the product", "properties": { "links": { "type": "object", @@ -7429,6 +7494,7 @@ "type": "object" }, "tax": { + "description": "Tax configuration (rate and calculation rules)", "properties": { "links": { "type": "object", @@ -7458,6 +7524,7 @@ "type": "object" }, "manufacturer": { + "description": "Product manufacturer or brand information", "properties": { "links": { "type": "object", @@ -7487,6 +7554,7 @@ "type": "object" }, "unit": { + "description": "Product unit of measure (e.g., piece, liter, kg)", "properties": { "links": { "type": "object", @@ -7516,6 +7584,7 @@ "type": "object" }, "cover": { + "description": "Main product image displayed in listings and detail pages", "properties": { "links": { "type": "object", @@ -7545,6 +7614,7 @@ "type": "object" }, "cmsPage": { + "description": "Custom CMS page layout for the product detail page", "properties": { "links": { "type": "object", @@ -7574,6 +7644,7 @@ "type": "object" }, "canonicalProduct": { + "description": "Canonical product reference for variant consolidation and SEO purposes", "properties": { "links": { "type": "object", @@ -7603,6 +7674,7 @@ "type": "object" }, "media": { + "description": "Product images and media gallery", "properties": { "links": { "type": "object", @@ -7634,6 +7706,7 @@ "type": "object" }, "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", "properties": { "links": { "type": "object", @@ -7665,6 +7738,7 @@ "type": "object" }, "configuratorSettings": { + "description": "Variant configurator settings defining available options for product variants", "properties": { "links": { "type": "object", @@ -7696,6 +7770,7 @@ "type": "object" }, "productReviews": { + "description": "Customer reviews and ratings for the product", "properties": { "links": { "type": "object", @@ -7727,6 +7802,7 @@ "type": "object" }, "mainCategories": { + "description": "Primary category assignments per sales channel for SEO and navigation", "properties": { "links": { "type": "object", @@ -7758,6 +7834,7 @@ "type": "object" }, "seoUrls": { + "description": "SEO-friendly URLs for the product across different sales channels", "properties": { "links": { "type": "object", @@ -7789,6 +7866,7 @@ "type": "object" }, "options": { + "description": "Product variant options (e.g., size, color) that define different variants", "properties": { "links": { "type": "object", @@ -7820,6 +7898,7 @@ "type": "object" }, "properties": { + "description": "Product properties and characteristics for filtering", "properties": { "links": { "type": "object", @@ -7851,6 +7930,7 @@ "type": "object" }, "categories": { + "description": "Categories this product is assigned to", "properties": { "links": { "type": "object", @@ -7882,6 +7962,7 @@ "type": "object" }, "streams": { + "description": "Dynamic product streams this product belongs to based on defined filters", "properties": { "links": { "type": "object", @@ -7913,6 +7994,7 @@ "type": "object" }, "categoriesRo": { + "description": "Read-only category tree including all parent categories for optimized queries", "properties": { "links": { "type": "object", @@ -7944,6 +8026,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing and filtering products", "properties": { "links": { "type": "object", @@ -7975,6 +8058,7 @@ "type": "object" }, "seoCategory": { + "description": "Main category used for SEO URL generation in the current sales channel", "properties": { "links": { "type": "object", @@ -8437,6 +8521,7 @@ "description": "Contains the translations of all translated fields." }, "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", "type": "array", "items": { "$ref": "#/components/schemas/ProductDownload" @@ -8446,6 +8531,7 @@ "$ref": "#/components/schemas/Product" }, "children": { + "description": "Product variants that inherit from this parent product", "type": "array", "items": { "$ref": "#/components/schemas/Product" @@ -8456,97 +8542,116 @@ "description": "Time taken for the product to reach the customer. If a delivery time is defined in the product, it overwrites the delivery time of a shipping method." }, "tax": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration (rate and calculation rules)" }, "manufacturer": { - "$ref": "#/components/schemas/ProductManufacturer" + "$ref": "#/components/schemas/ProductManufacturer", + "description": "Product manufacturer or brand information" }, "unit": { - "$ref": "#/components/schemas/Unit" + "$ref": "#/components/schemas/Unit", + "description": "Product unit of measure (e.g., piece, liter, kg)" }, "cover": { - "$ref": "#/components/schemas/ProductMedia" + "$ref": "#/components/schemas/ProductMedia", + "description": "Main product image displayed in listings and detail pages" }, "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/CmsPage", + "description": "Custom CMS page layout for the product detail page" }, "canonicalProduct": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Product", + "description": "Canonical product reference for variant consolidation and SEO purposes" }, "media": { + "description": "Product images and media gallery", "type": "array", "items": { "$ref": "#/components/schemas/ProductMedia" } }, "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", "type": "array", "items": { "$ref": "#/components/schemas/ProductCrossSelling" } }, "configuratorSettings": { + "description": "Variant configurator settings defining available options for product variants", "type": "array", "items": { "$ref": "#/components/schemas/ProductConfiguratorSetting" } }, "productReviews": { + "description": "Customer reviews and ratings for the product", "type": "array", "items": { "$ref": "#/components/schemas/ProductReview" } }, "mainCategories": { + "description": "Primary category assignments per sales channel for SEO and navigation", "type": "array", "items": { "$ref": "#/components/schemas/MainCategory" } }, "seoUrls": { + "description": "SEO-friendly URLs for the product across different sales channels", "type": "array", "items": { "$ref": "#/components/schemas/SeoUrl" } }, "options": { + "description": "Product variant options (e.g., size, color) that define different variants", "type": "array", "items": { "$ref": "#/components/schemas/PropertyGroupOption" } }, "properties": { + "description": "Product properties and characteristics for filtering", "type": "array", "items": { "$ref": "#/components/schemas/PropertyGroupOption" } }, "categories": { + "description": "Categories this product is assigned to", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "streams": { + "description": "Dynamic product streams this product belongs to based on defined filters", "type": "array", "items": { "$ref": "#/components/schemas/ProductStream" } }, "categoriesRo": { + "description": "Read-only category tree including all parent categories for optimized queries", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "tags": { + "description": "Tags for organizing and filtering products", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "seoCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Main category used for SEO URL generation in the current sales channel" }, "apiAlias": { "type": "string", @@ -9744,34 +9849,43 @@ "description": "Contains the translations of all translated fields." }, "language": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Default language for the sales channel" }, "currency": { - "$ref": "#/components/schemas/Currency" + "$ref": "#/components/schemas/Currency", + "description": "Default currency for the sales channel" }, "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/PaymentMethod", + "description": "Default payment method for the sales channel" }, "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/ShippingMethod", + "description": "Default shipping method for the sales channel" }, "country": { - "$ref": "#/components/schemas/Country" + "$ref": "#/components/schemas/Country", + "description": "Default country for the sales channel" }, "domains": { + "description": "Domain URLs configured for the sales channel", "type": "array", "items": { "$ref": "#/components/schemas/SalesChannelDomain" } }, "navigationCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for navigation menu" }, "footerCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for footer navigation" }, "serviceCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for service pages" }, "hreflangDefaultDomain": { "$ref": "#/components/schemas/SalesChannelDomain" @@ -10301,6 +10415,7 @@ "relationships": { "properties": { "deliveryTime": { + "description": "Estimated delivery time information", "properties": { "links": { "type": "object", @@ -10330,6 +10445,7 @@ "type": "object" }, "availabilityRule": { + "description": "Rule defining when this shipping method is available", "properties": { "links": { "type": "object", @@ -10359,6 +10475,7 @@ "type": "object" }, "prices": { + "description": "Shipping prices based on weight, volume, or cart value", "properties": { "links": { "type": "object", @@ -10390,6 +10507,7 @@ "type": "object" }, "media": { + "description": "Shipping method logo or carrier image", "properties": { "links": { "type": "object", @@ -10419,6 +10537,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing shipping methods", "properties": { "links": { "type": "object", @@ -10450,6 +10569,7 @@ "type": "object" }, "tax": { + "description": "Tax configuration for shipping costs", "properties": { "links": { "type": "object", @@ -10557,28 +10677,34 @@ "description": "Contains the translations of all translated fields." }, "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime" + "$ref": "#/components/schemas/DeliveryTime", + "description": "Estimated delivery time information" }, "availabilityRule": { - "$ref": "#/components/schemas/Rule" + "$ref": "#/components/schemas/Rule", + "description": "Rule defining when this shipping method is available" }, "prices": { + "description": "Shipping prices based on weight, volume, or cart value", "type": "array", "items": { "$ref": "#/components/schemas/ShippingMethodPrice" } }, "media": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Shipping method logo or carrier image" }, "tags": { + "description": "Tags for organizing shipping methods", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "tax": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration for shipping costs" } }, "type": "object" @@ -12955,7 +13081,7 @@ } }, "cover": { - "$ref": "#/components/schemas/ProductMedia" + "$ref": "#/components/schemas/Media" }, "dataContextHash": { "type": "string" @@ -16651,6 +16777,38 @@ "default": "application/json" } }, + "noAggregations": { + "name": "no-aggregations", + "in": "query", + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "onlyAggregations": { + "name": "only-aggregations", + "in": "query", + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, "criteriaPage": { "name": "page", "in": "query", @@ -16825,6 +16983,28 @@ }, "style": "deepObject", "explode": true + }, + "CompressedCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the Criteria schema (see #/components/schemas/Criteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + }, + "CompressedNoneFieldsCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the NoneFieldsCriteria schema (see #/components/schemas/NoneFieldsCriteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } } }, "securitySchemes": { @@ -16968,6 +17148,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" } ], "responses": { @@ -17617,7 +17800,7 @@ "Endpoints supporting Criteria " ], "summary": "Get information about current customer", - "description": "Returns information about the current customer.", + "description": "Returns information about the current customer.\n\n**Available Associations:**\n- `group` - Customer group determining pricing and permissions\n- `language` - Preferred language for customer communication\n- `lastPaymentMethod` - Last used payment method by the customer\n- `defaultBillingAddress` - Default billing address for the customer\n- `activeBillingAddress` - Currently active billing address in the session\n- `defaultShippingAddress` - Default shipping address for the customer\n- `activeShippingAddress` - Currently active shipping address in the session\n- `salutation` - Customer salutation (e.g., Mr., Mrs., Ms.)\n- `addresses` - All addresses saved for the customer\n- `tags` - Tags assigned to the customer for organization and segmentation", "operationId": "readCustomer", "requestBody": { "required": false, @@ -18421,7 +18604,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch languages", - "description": "Perform a filtered search for languages.", + "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", "operationId": "readLanguages", "parameters": [ { @@ -18480,7 +18663,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch languages", - "description": "Perform a filtered search for languages.", + "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", "operationId": "readLanguagesGet", "parameters": [ { @@ -18537,6 +18720,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -18681,6 +18867,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -18702,7 +18891,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a list of categories", - "description": "Perform a filtered search for categories.", + "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", "operationId": "readCategoryList", "parameters": [ { @@ -18761,7 +18950,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a list of categories", - "description": "Perform a filtered search for categories.", + "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", "operationId": "readCategoryListGet", "parameters": [ { @@ -18818,6 +19007,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -18839,7 +19031,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a single category", - "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.", + "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", "operationId": "readCategory", "parameters": [ { @@ -18931,7 +19123,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a single category", - "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.", + "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", "operationId": "readCategoryGet", "parameters": [ { @@ -19092,59 +19284,6 @@ "type": "string" } }, - { - "name": "manufacturer-filter", - "in": "query", - "description": "Enables/disabled filtering by manufacturer. If set to false, the `manufacturer` filter will be ignored. Also the `aggregations[manufacturer]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "price-filter", - "in": "query", - "description": "Enables/disabled filtering by price. If set to false, the `min-price` and `max-price` filter will be ignored. Also the `aggregations[price]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "rating-filter", - "in": "query", - "description": "Enables/disabled filtering by rating. If set to false, the `rating` filter will be ignored. Also the `aggregations[rating]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "shipping-free-filter", - "in": "query", - "description": "Enables/disabled filtering by shipping-free products. If set to false, the `shipping-free` filter will be ignored. Also the `aggregations[shipping-free]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "property-filter", - "in": "query", - "description": "Enables/disabled filtering by properties products. If set to false, the `properties` filter will be ignored. Also the `aggregations[properties]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "property-whitelist", - "in": "query", - "description": "A whitelist of property identifiers which can be used for filtering. List of property identifiers separated by a `|`. The `property-filter` must be `true`, otherwise the whitelist has no effect.", - "schema": { - "type": "string" - } - }, { "name": "reduce-aggregations", "in": "query", @@ -19441,6 +19580,52 @@ "ApiKey": [] } ] + }, + "get": { + "tags": [ + "Content" + ], + "summary": "Fetch and resolve Media Entities", + "description": "Fetch one or multiple Media Entities with the corresponding Identifier.", + "operationId": "readMediaGet", + "parameters": [ + { + "name": "ids[]", + "in": "query", + "description": "Identifier (UUID) of the media entity to be fetched.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + } + ], + "responses": { + "200": { + "description": "The loaded MediaCollection containing the requested Media Entities.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Media" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/404" + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, "/country-state/{countryId}": { @@ -19584,6 +19769,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -19894,6 +20082,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -20503,7 +20694,7 @@ "Content" ], "summary": "Fetch and resolve a CMS page", - "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.", + "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", "operationId": "readCms", "parameters": [ { @@ -20589,7 +20780,7 @@ "Content" ], "summary": "Fetch and resolve a CMS page", - "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.", + "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", "operationId": "readCmsGet", "parameters": [ { @@ -20741,59 +20932,6 @@ "type": "string" } }, - { - "name": "manufacturer-filter", - "in": "query", - "description": "Enables/disabled filtering by manufacturer. If set to false, the `manufacturer` filter will be ignored. Also the `aggregations[manufacturer]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "price-filter", - "in": "query", - "description": "Enables/disabled filtering by price. If set to false, the `min-price` and `max-price` filter will be ignored. Also the `aggregations[price]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "rating-filter", - "in": "query", - "description": "Enables/disabled filtering by rating. If set to false, the `rating` filter will be ignored. Also the `aggregations[rating]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "shipping-free-filter", - "in": "query", - "description": "Enables/disabled filtering by shipping-free products. If set to false, the `shipping-free` filter will be ignored. Also the `aggregations[shipping-free]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "property-filter", - "in": "query", - "description": "Enables/disabled filtering by properties products. If set to false, the `properties` filter will be ignored. Also the `aggregations[properties]` key will be removed from the response.", - "schema": { - "type": "boolean", - "default": true - } - }, - { - "name": "property-whitelist", - "in": "query", - "description": "A whitelist of property identifiers which can be used for filtering. List of property identifiers separated by a `|`. The `property-filter` must be `true`, otherwise the whitelist has no effect.", - "schema": { - "type": "string" - } - }, { "name": "reduce-aggregations", "in": "query", @@ -20926,68 +21064,265 @@ "ApiKey": [] } ] - } - }, - "/product-listing/{categoryId}": { - "post": { + }, + "get": { "tags": [ "Product" ], - "summary": "Fetch a product listing by category", - "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.", - "operationId": "readProductListing", + "summary": "Search for products", + "description": "Performs a search for products which can be used to display a product listing.", + "operationId": "searchPageGet", "parameters": [ { - "name": "categoryId", - "in": "path", - "description": "Identifier of a category.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "The page number to fetch.", + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", "required": false, "schema": { - "type": "integer" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "name": "sw-include-seo-urls", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "in": "header", - "description": "Determines if the response must contain a SeoUrl entity for a product entity", + "name": "sw-include-seo-urls", "required": false, "schema": { "type": "boolean" } }, { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "name": "search", + "in": "query", + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } }, { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, + "$ref": "#/components/parameters/criteriaPage" + }, + { + "name": "limit", + "in": "query", + "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" + "type": "integer", + "minimum": 0 } - } + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } + }, + { + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "description": "By sending the parameter `reduce-aggregations` , the post-filters that were applied by the customer, are also applied to the aggregations. This has the consequence that only values are returned in the aggregations that would lead to further filter results. This parameter is a flag, the value has no effect.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + { + "$ref": "#/components/parameters/noAggregations" + }, + { + "$ref": "#/components/parameters/onlyAggregations" + } + ], + "responses": { + "200": { + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/product-listing/{categoryId}": { + "post": { + "tags": [ + "Product" + ], + "summary": "Fetch a product listing by category", + "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductListing", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Identifier of a category.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "The page number to fetch.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Determines if the response must contain a SeoUrl entity for a product entity", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + } ], "requestBody": { "content": { @@ -21022,6 +21357,203 @@ "ApiKey": [] } ] + }, + "get": { + "tags": [ + "Product" + ], + "summary": "Fetch a product listing by category", + "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductListingGet", + "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Identifier of a category.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Determines if the response must contain a SeoUrl entity for a product entity", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "name": "limit", + "in": "query", + "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", + "schema": { + "type": "integer", + "minimum": 0 + } + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } + }, + { + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "description": "By sending the parameter `reduce-aggregations` , the post-filters that were applied by the customer, are also applied to the aggregations. This has the consequence that only values are returned in the aggregations that would lead to further filter results. This parameter is a flag, the value has no effect.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + { + "$ref": "#/components/parameters/noAggregations" + }, + { + "$ref": "#/components/parameters/onlyAggregations" + } + ], + "responses": { + "200": { + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, "/navigation/{activeId}/{rootId}": { @@ -21278,6 +21810,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" } ], "responses": { @@ -21422,6 +21957,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -21809,11 +22347,10 @@ "/document/download/{documentId}/{deepLinkCode}": { "post": { "tags": [ - "Document", - "Endpoints supporting Criteria " + "Document" ], "summary": "Download generated document", - "description": "Returns blob file of a generated document to download.", + "description": "Returns generated document to download.", "operationId": "download", "parameters": [ { @@ -21836,26 +22373,12 @@ { "name": "sw-language-id", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } } ], "requestBody": { @@ -21863,25 +22386,149 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "zipcode": { + "type": "string" } - ] + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/pdf": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "text/html": { + "schema": { + "type": "string" + } + }, + "application/xml": { + "schema": { + "type": "string" + } } } + }, + "204": { + "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." + }, + "403": { + "description": "Forbidden." + }, + "404": { + "description": "Document not found." + }, + "406": { + "description": "The requested mime type is not supported." + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + }, + "get": { + "tags": [ + "Document" + ], + "summary": "Download generated document", + "description": "Returns generated document to download.", + "operationId": "downloadGet", + "parameters": [ + { + "name": "documentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "deepLinkCode", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "required": false, + "in": "query", + "schema": { + "type": "string" + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + }, + { + "name": "zipcode", + "required": false, + "in": "query", + "schema": { + "type": "string" + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + }, + { + "name": "sw-language-id", + "in": "header", + "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } - }, + ], "responses": { "200": { - "description": "Returns the document information and blob to download.", + "description": "Success", "content": { - "application/json": { + "application/pdf": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "text/html": { + "schema": { + "type": "string" + } + }, + "application/xml": { "schema": { - "$ref": "#/components/schemas/Document" + "type": "string" } } } + }, + "204": { + "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." + }, + "403": { + "description": "Forbidden." + }, + "404": { + "description": "Document not found." + }, + "406": { + "description": "The requested mime type is not supported." } }, "security": [ @@ -21959,7 +22606,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch shipping methods", - "description": "Perform a filtered search for shipping methods.", + "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (based on current cart and context)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\n**Example with associations:**\n```json\n{\n \"associations\": {\n \"prices\": {},\n \"deliveryTime\": {}\n }\n}\n```\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", "operationId": "readShippingMethod", "parameters": [ { @@ -22059,7 +22706,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch shipping methods", - "description": "Perform a filtered search for shipping methods.", + "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (graduated prices, quantity-based pricing)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", "operationId": "readShippingMethodGet", "parameters": [ { @@ -22116,6 +22763,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -22137,7 +22787,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a landing page with the resolved CMS page", - "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.", + "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", "operationId": "readLandingPage", "parameters": [ { @@ -22263,7 +22913,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch countries", - "description": "Perform a filtered search for countries", + "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", "operationId": "readCountry", "parameters": [ { @@ -22322,7 +22972,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch countries", - "description": "Perform a filtered search for countries", + "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", "operationId": "readCountryGet", "parameters": [ { @@ -22379,6 +23029,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -22405,95 +23058,283 @@ { "name": "type", "in": "query", - "description": "Type of the api", + "description": "Type of the api", + "schema": { + "type": "string", + "enum": [ + "jsonapi", + "json" + ] + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OpenApi3" + } + } + } + }, + "/search-suggest": { + "post": { + "tags": [ + "Product" + ], + "summary": "Search for products (suggest)", + "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", + "operationId": "searchSuggest", + "parameters": [ + { + "name": "p", + "in": "query", + "description": "The page number to fetch.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "search" + ], + "properties": { + "search": { + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", + "type": "string" + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/ProductListingCriteria" + }, + { + "$ref": "#/components/schemas/ProductListingFlags" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "tags": [ + "Product" + ], + "summary": "Search for products (suggest)", + "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", + "operationId": "searchSuggestGet", + "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "search", + "in": "query", + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "name": "limit", + "in": "query", + "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", + "schema": { + "type": "integer", + "minimum": 0 + } + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", "schema": { - "type": "string", - "enum": [ - "jsonapi", - "json" - ] + "type": "integer" } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/OpenApi3" - } - } - } - }, - "/search-suggest": { - "post": { - "tags": [ - "Product" - ], - "summary": "Search for products (suggest)", - "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", - "operationId": "searchSuggest", - "parameters": [ + }, { - "name": "p", + "name": "shipping-free", "in": "query", - "description": "The page number to fetch.", - "required": false, + "description": "Filters products that are marked as shipping-free.", "schema": { - "type": "integer" + "type": "boolean", + "default": false } }, { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } }, { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, + "name": "reduce-aggregations", + "in": "query", + "description": "By sending the parameter `reduce-aggregations` , the post-filters that were applied by the customer, are also applied to the aggregations. This has the consequence that only values are returned in the aggregations that would lead to further filter results. This parameter is a flag, the value has no effect.", "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } + }, + { + "$ref": "#/components/parameters/noAggregations" + }, + { + "$ref": "#/components/parameters/onlyAggregations" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "search" - ], - "properties": { - "search": { - "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" - } - ] - } - } - } - }, "responses": { "200": { "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", @@ -22580,7 +23421,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a list of orders", - "description": "List orders of a customer.", + "description": "List orders of a customer.\n\n**Available Associations:**\n- `stateMachineState` - Current order state (e.g., open, in_progress, completed, cancelled)\n- `primaryOrderDelivery` - Primary delivery information for the order\n- `primaryOrderTransaction` - Primary payment transaction for the order\n- `orderCustomer` - Customer information associated with the order\n- `currency` - Currency used for the order\n- `language` - Language used when placing the order\n- `addresses` - All addresses associated with the order (billing and shipping)\n- `billingAddress` - Billing address for the order\n- `deliveries` - Delivery information including shipping address and tracking\n- `lineItems` - Order line items (products, discounts, fees)\n- `transactions` - Payment transactions for the order\n- `documents` - Generated documents (invoices, delivery notes, credit notes)\n- `tags` - Tags assigned to the order for organization and filtering", "operationId": "readOrder", "parameters": [ { @@ -22870,11 +23711,170 @@ ], "responses": { "200": { - "description": "Found cross sellings", + "description": "Found cross sellings", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CrossSellingElementCollection" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "tags": [ + "Product" + ], + "summary": "Fetch cross-selling groups of a product", + "description": "This route is used to load the cross sellings for a product. A product has several cross selling definitions in which several products are linked. The route returns the cross sellings together with the linked products", + "operationId": "readProductCrossSellingsGet", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Found cross sellings", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CrossSellingElementCollection" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/product/{productId}": { + "post": { + "tags": [ + "Product" + ], + "summary": "Fetch a single product", + "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductDetail", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$'" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "in": "header", + "name": "sw-include-seo-urls", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + }, + { + "description": "Instructs Shopware to skip loading the configurator data", + "in": "query", + "name": "skipConfigurator", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Instructs Shopware to skip loading the CMS page data", + "in": "query", + "name": "skipCmsPage", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NoneFieldsCriteria" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Product information along with variant groups and options", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CrossSellingElementCollection" + "$ref": "#/components/schemas/ProductDetailResponse" } } } @@ -22885,16 +23885,14 @@ "ApiKey": [] } ] - } - }, - "/product/{productId}": { - "post": { + }, + "get": { "tags": [ "Product" ], "summary": "Fetch a single product", - "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.", - "operationId": "readProductDetail", + "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductDetailGet", "parameters": [ { "name": "productId", @@ -22925,20 +23923,6 @@ "type": "boolean" } }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - }, { "description": "Instructs Shopware to skip loading the configurator data", "in": "query", @@ -22956,22 +23940,53 @@ "schema": { "type": "boolean" } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/NoneFieldsCriteria" - } - ] - } - } - } - }, "responses": { "200": { "description": "Product information along with variant groups and options", @@ -22998,7 +24013,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a list of products", - "description": "List products that match the given criteria. For performance reasons a limit should always be set.", + "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", "operationId": "readProduct", "parameters": [ { @@ -23057,7 +24072,7 @@ "Endpoints supporting Criteria " ], "summary": "Fetch a list of products", - "description": "List products that match the given criteria. For performance reasons a limit should always be set.", + "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", "operationId": "readProductGet", "parameters": [ { @@ -23114,6 +24129,9 @@ }, { "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { @@ -23218,6 +24236,116 @@ "ApiKey": [] } ] + }, + "get": { + "tags": [ + "Product", + "Endpoints supporting Criteria " + ], + "summary": "Fetch product reviews", + "description": "Perform a filtered search for product reviews.", + "operationId": "readProductReviewsGet", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Identifier of the product.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" + } + ], + "responses": { + "200": { + "description": "Entity search result containing product reviews", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductReview" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, "/product/{productId}/review": { @@ -23382,6 +24510,73 @@ "ApiKey": [] } ] + }, + "get": { + "tags": [ + "Product" + ], + "summary": "Search for a matching variant by product options.", + "description": "Performs a search for product variants and returns the best matching variant.", + "operationId": "searchProductVariantIdsGet", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "options[]", + "in": "query", + "description": "The options parameter for the variant to find. Array of option IDs.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "switchedGroup", + "in": "query", + "description": "The id of the option group that has been switched.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns an FoundCombination struct containing the ids matching the search.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FindProductVariantRouteResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, "/handle-payment": {