Set configurator
Description
Highlights
- Boost your sales by offering customizable product sets to personalize your product offerings
- Increase customer satisfaction through tailored, individualized experiences
- Help your store visitors easily and quickly configure their ideal product set or personalize products
- Use automatic pricing calculations to easily apply general discounts, such as 10% off the product price
- Modern, attractive design with customizable templates for each slot, and easily extensible for frontend developers
Features
- Offer products combined into a single product set
- Quickly configure nested sets with ease
- Enable customers to create personalized product sets
- Add further customization options with text fields, etc.
- Prices dynamically adjust in the storefront according to the selected configuration
- Easily adapt prices, images, options, and sorting in the administration through an intuitive interface
- Mark product set options as optional or mandatory
About the Extension
Maximize Your Revenue with Customizable Product Sets!
Offer your customers an exceptional shopping experience while boosting your revenue! With our product set configurator, you can create unique product bundles perfectly tailored to your customers' needs.
Custom Sets for Every Need:
Combine any products from your range into attractive sets. Whether in fashion, technology, food, or other sectors – our plugin is the ideal solution for anyone wanting to offer customers a personalized shopping experience. Imagine your customers being able to...
- ... assemble a complete winter outfit with just a few clicks, including a hat, scarf, and gloves in matching colors and sizes.
- ... configure their dream PC by selecting the processor, graphics card, case, and other components individually.
- ... order all ingredients for a delicious recipe as a practical set and choose from different options (e.g., low carb, vegetarian, or family-friendly).
Provide Personalization at the Highest Level:
Sets can be assigned to products. For variant products, either assign a set to the parent product, which will then apply to all variants, or assign different sets to individual variants. Within sets, you can define various slots, with different templates available for frontend display at the slot level. You can also set a minimum and maximum number of options to choose from. Each slot can contain any number of options.
An option can either be a product or a static option. For variant products, the parent product can be assigned, giving customers the option to select a variant themselves – or you can preset a specific variant.
Further configurations are available for options. In particular, you can set a minimum and maximum value for the quantity selection of an option. If the minimum and maximum values are the same, that value serves as a fixed multiplier for the option. Additionally, you can create nested sets for complex configurations.
Individual options can also be assigned various fields (checkbox, selection field, text field, number field, or upload field) to enable further customization of the chosen option.
Allow your customers to choose between different colors, sizes, materials, designs, and other variations. Enhance this offering with optional extras like printing, engraving, or other personalization options to create a highly individualized shopping experience through:
- Multi-Step Configuration:
Offer customers the ability to customize products step-by-step and assemble complex sets. - Custom Combination Options:
Offer complementary items and accessories perfectly matched to the main product. - Enhanced Customer Guidance:
Guide customers through the configuration process and help them select the right combinations.
Example:
Imagine you sell custom gift boxes. A customer wants to create a birthday box.
Step 1:
Choose the Box: The customer first selects the size and material of the box (e.g., small cardboard, large wooden).
Step 2:
Fill the Box: After choosing the box, a new configurator opens, allowing the customer to choose the contents of the box. They have various categories (slots) available, such as:
Sweets: Choose from chocolates, pralines, gummy bears, etc. Drinks: Choose from various juices, sodas, wines, etc. Decorative Items: Choose from candles, balloons, garlands, etc.
Within each category, the customer can choose from various products, creating a unique gift box perfectly suited to the occasion and the recipient.
Full Control Over Your Inventory:
Stay on top of your inventory. Our plugin considers product availability to help you avoid overselling.
Dynamic Pricing:
Adjust the prices of product sets based on the selected configuration. You can reference the product price with formulas, adjust it by fixed values, or use the custom fields of options or products. Static fixed values can also be set for options.
User-Friendly Interface:
Our plugin is intuitive to use. Create and manage product sets in just a few clicks, without any programming knowledge, or use the Shopware import/export feature to import more complex configurations.
Free Trial Version
Would you like to create unique product sets for your customers today? But you would like to see the plugin in action first? See for yourself!
Test the plugin for free today in our provided test environment.
Please use the username "testzugang" and the password "testzugang" to experience the demo:
Backend Demo: https://sw6demo.swk-web.com/admin
Frontend Demo: https://sw6demo.swk-web.com/Product-Sets/
Questions? Contact Us
If you have any questions about the plugin, feel free to email us at support@swk-web.com or call us at +49 176 8057 9091. We are also happy to assist with implementing individual requests and extensions.
Maximize Your Revenue with Customizable Product Sets!
Offer your customers an exceptional shopping experience while boosting your revenue! With our product set configurator, you can create unique product bundles perfectly tailored to your customers' needs.
Custom Sets for Every Need:
Combine any products from your range into attractive sets. Whether in fashion, technology, food, or other sectors – our plugin is the ideal solution for anyone wanting to offer customers a personalized shopping experience. Imagine your customers being able to...
- ... assemble a complete winter outfit with just a few clicks, including a hat, scarf, and gloves in matching colors and sizes.
- ... configure their dream PC by selecting the processor, graphics card, case, and other components individually.
- ... order all ingredients for a delicious recipe as a practical set and choose from different options (e.g., low carb, vegetarian, or family-friendly).
Provide Personalization at the Highest Level:
Sets can be assigned to products. For variant products, either assign a set to the parent product, which will then apply to all variants, or assign different sets to individual variants. Within sets, you can define various slots, with different templates available for frontend display at the slot level. You can also set a minimum and maximum number of options to choose from. Each slot can contain any number of options.
An option can either be a product or a static option. For variant products, the parent product can be assigned, giving customers the option to select a variant themselves – or you can preset a specific variant.
Further configurations are available for options. In particular, you can set a minimum and maximum value for the quantity selection of an option. If the minimum and maximum values are the same, that value serves as a fixed multiplier for the option. Additionally, you can create nested sets for complex configurations.
Individual options can also be assigned various fields (checkbox, selection field, text field, number field, or upload field) to enable further customization of the chosen option.
Allow your customers to choose between different colors, sizes, materials, designs, and other variations. Enhance this offering with optional extras like printing, engraving, or other personalization options to create a highly individualized shopping experience through:
- Multi-Step Configuration:
Offer customers the ability to customize products step-by-step and assemble complex sets. - Custom Combination Options:
Offer complementary items and accessories perfectly matched to the main product. - Enhanced Customer Guidance:
Guide customers through the configuration process and help them select the right combinations.
Example:
Imagine you sell custom gift boxes. A customer wants to create a birthday box.
Step 1:
Choose the Box: The customer first selects the size and material of the box (e.g., small cardboard, large wooden).
Step 2:
Fill the Box: After choosing the box, a new configurator opens, allowing the customer to choose the contents of the box. They have various categories (slots) available, such as:
Sweets: Choose from chocolates, pralines, gummy bears, etc. Drinks: Choose from various juices, sodas, wines, etc. Decorative Items: Choose from candles, balloons, garlands, etc.
Within each category, the customer can choose from various products, creating a unique gift box perfectly suited to the occasion and the recipient.
Full Control Over Your Inventory:
Stay on top of your inventory. Our plugin considers product availability to help you avoid overselling.
Dynamic Pricing:
Adjust the prices of product sets based on the selected configuration. You can reference the product price with formulas, adjust it by fixed values, or use the custom fields of options or products. Static fixed values can also be set for options.
User-Friendly Interface:
Our plugin is intuitive to use. Create and manage product sets in just a few clicks, without any programming knowledge, or use the Shopware import/export feature to import more complex configurations.
Free Trial Version
Would you like to create unique product sets for your customers today? But you would like to see the plugin in action first? See for yourself!
Test the plugin for free today in our provided test environment.
Please use the username "testzugang" and the password "testzugang" to experience the demo:
Backend Demo: https://sw6demo.swk-web.com/admin
Frontend Demo: https://sw6demo.swk-web.com/Product-Sets/
Questions? Contact Us
If you have any questions about the plugin, feel free to email us at support@swk-web.com or call us at +49 176 8057 9091. We are also happy to assist with implementing individual requests and extensions.
Details
- Available: English, German, Swiss German
- Latest update: 25 October 2025
- Publication date: 9 September 2022
- Version: 4.2.3
- Category: Product Configuration
Resources
Reviews (13)
Average rating of 5 out of 5 stars
Unser Kunde und wir als Agentur waren sehr zufrieden
Average rating of 5 out of 5 stars
Funktion und Support super!
Average rating of 5 out of 5 stars
Sehr gute Erweiterung für Produkte
Average rating of 5 out of 5 stars
About the Extension Partner
swkweb
Partner Status
-
Shopware
Premium Extension Partner
Details
-
Ø-Rating:
5
Average rating of 5 out of 5 stars
- Partner since: 2015
- Extensions: 44
Support
- Based in: Germany
- Speaks: German, English
- Response time: Quickly
tl;dr
- Navigate in the administration to "Catalogues -> Product Sets -> Add Set"
- Give the set a name. Create the desired slots in the "Slots" tab
- Assign products as options to the slots and configure the relevant options if needed
- If your product uses a shopping experiences layout, you need a custom layout. If you do not have one already duplicate the default product layout, and either configure the buy-box to display the set configurator or add the set configurator as separate element from the commerce category. For products with no assigned layout the configurator will be displayed in the buy-box
- Assign the set configurator to a product and check out the product in the storefront
Create a set
- Navigate in the administration to "Catalogues -> Product Sets"
- Create a new set product using the blue button "Add Set" in the upper right corner
- In the tab "General settings" you can give the set a name and decide if the price of the set product (cover product / main product) should be included in the total price of the set configuration. Then save your settings. Now you can create the desired slots in the "Slots" tab. In the "Assignments" tab you can view the products that have selected the configured set.
Slots
- Via the button "Add slot" you can create an arbitrary amount of slots
- Assign slot name
- Slot settings (Click "Show advanced settings" to show all settings of the slot)
- Slot Template: Choose a template that is responsible for the appearance of the slot. Not every slot template is useful for every configuration. Just try out what fits best for your use case
- Show product description: This setting is only visible for slot templates where it is reasonable (limited to 100 characters).
- Modal: Here you can select whether a small info icon is displayed for the products, which opens a modal window (popup). Here you can set whether the product information should be loaded as content. Alternatively, you can define an individual URL, which is loaded as content.
- Accordion: Set if you want to use an accordion functionality for this slot. Thereby you can have the accordion displayed directly open after loading the page or collapsed.
- Minimum selection: Here you can set how many products must be selected in this slot. If you set the minimum selection to "0", the slot will be marked as optional
- Maximum selection: Set the maximum number of products that can be selected in this slot
- If the minimum and maximum selection have been configured to the same amount and only that number of options are assigned the customer cannot select or deselect options, only quantities of options can be configured
- Include options quantity selection in selection limit: If enabled, the numbers of the selected options will be included in the minimum or maximum selection. In addition, the minimum and maximum selection of options will also be adjusted so that they are less than or equal to the maximum selected options.
- Price calculation: Choose a price calculation valid for the slot if not specified different for the options
- Add option (product) button see the next point
Add options (products)
- Within a slot you can click the blue button "Add option (product)" at the very bottom of the slot
- This will open a modal window where you can make the following settings
- Name: Displayed name of the product within the slot. This can be filled optionally. Otherwise the normal product name is used instead
- Product: Choose a product from your assortment using the dropdown
- Price calculation: If you wish, you can assign a custom price calculation to each added product via dropdown, or create a new price calculation. See the heading "Price calculation" below for more detailed information
- Minimum selection: Select how many times the product must be selected
- Maximum selection: Select how many times the product can be selected maximum
- Selection Step Size: Set in which steps the product can be selected. For example, if you select "3", in the dropdown you can select 3, 6, 9, etc. products
- If the minimum selection equals the maximum selection the customer cannot choose the quantity but rather the configured quantity is used
Price calculation
With the price calculation it is possible to control with which price the product of an assigned option is included in the total price of the set. The formula calculates the net price for each option. On this price, depending on the current store configuration, taxes and other Shopware surcharges are calculated. If this option is selected in the storefront, the calculated value is added to the total price of the set. This value can be positive or negative in the end. Caution: When configuring, it should be noted that the end result for set products cannot be negative prices.
In "Settings -> Extensions -> Product set price calculation" it is possible to define the further price calculations. The created formulas, can be selected in each slot or individually for each option. If nothing is selected directly, the default price calculation with the formula 'product.unitPrice' is used as fallback.
Numbers and predefined variables can be used in the price calculation formulas The variables which are calculated depending on the selected option or the underlying product. Furthermore, the following arithmetic operators can be used: +, -, *, /, ^. These are executed in the default ranking order. Round brackets can be used to change the calculation order. For more information see here: https://en.wikipedia.org/wiki/Order_of_operations
The following aliases can be used:
- product.unitPrice is the net price of the given option product, taking into account the scale prices.
- product.customFields.* All additional fields of the product that contain a numeric value are available under their technical name. It is recommended that you always use the FALLBACK() function to set a default value when using additional fields. Example: product.customFields.product_set_discount
The following functions can be used:
- PRICE(grossPrice) Allows to specify a gross price in the default currency using a static value. The function ensures that the currency factor and the tax rate of the product are applied correctly. Example: PRICE(9.99)
- FALLBACK(value1, value2, ...) Returns the first value that is not empty. This function can be used especially to define a default value for aliases which are not always set. Example: FALLBACK(product.customFields.product_set_discount, product.customFields.product_set_discount_2, 0)
- MIN(value1, value2, ...) Returns the smallest value.
- MAX(value1, value2, ...) Returns the largest value.
- FLOOR(value) Round off the value.
- CEIL(value) Round up the value.
Documents, e-mail templates (order export)
You can find detailed instructions here: https://md.swk-web.com/s/V-2ZJ5RZ7#
For the invoice (PDF document), the setting "Order item filter (documents)" must be adjusted.
Here you can decide which items (lineItems) are loaded from the set product on the invoice. This is also possible for: HTML e-mails, Plain Text e-mails, API
Explanation of each filter
Set Position: name of the configured set
Set Product Position: name of the main product to which the set product is assigned
Slot Position: name of the slot
Option Position: name of the option
Option Product Position: name of the product which is assigned to this option
4.2.3
- Refactor: Allow to configure slot selection quantity using a snippet (swkweb-product-set.product.selection.quantity)
- Bugfix: Update option image element when changing an option variant
3.6.2
- Bugfix: Only consider product max purchase for non parent variant products in the cheapest price calculation
- Bugfix: Only show persistent errors when adding a set to the cart to be consistent with the behaviour of the CartLineItemController
4.2.2
- Bugfix: Only consider product max purchase for non parent variant products in the cheapest price calculation
- Bugfix: Only show persistent errors when adding a set to the cart to be consistent with the behaviour of the CartLineItemController
4.2.1
- Bugfix: Properly consider cheapest price of variant products
- Bugfix: Hide option checkbox when reloading variants
- Bugfix: Hide option checkbox for static slots when switching variants
4.2.0
- Feature: Option field preselection
- Feature: Consider product sets in SetScopeDiscountPackager and SetGroupScopeDiscountPackager for better compatibility of the product sets with Shopware promotions
- Refactor: Loading indicator of options
- Refactor: Deprecate unused parameter
- Refactor: Rework parent line item price calculation
- Bugfix: Correct variable reference in configurator.html.twig for the slider template
- Bugfix: Remove HTML from slider tooltip
- Bugfix: Add possibility to reset upload field
- Bugfix: Hide variant configurator and option fields while the option is loading
- Bugfix: Validate upload fileId in the ProductSetOptionFieldUploadTypeHandler
- Bugfix: Add list price to option product line items
- Bugfix: Consider quantity when displaying the price of an indiviual set line item
- Bugfix: Properly calculate taxes for slots that contain options with different tax rates
- Bugfix: Update quantities of child line items when editing an order in the administration
- Bugfix: Vue 3 compatibility when editing the buy box element
3.6.1
- Bugfix: Correct variable reference in configurator.html.twig for the slider template
- Bugfix: Remove HTML from slider tooltip
2.4.3
- Bugfix: Correct variable reference in configurator.html.twig for the slider template
- Bugfix: Remove HTML from slider tooltip
3.6.0
- Feature: Option field preselection
- Refactor: Loading indicator of options
- Refactor: Deprecate unused parameter
- Refactor: Rework parent line item price calculation
- Bugfix: Add possibility to reset upload field
- Bugfix: Hide variant configurator and option fields while the option is loading
- Bugfix: Validate upload fileId in the ProductSetOptionFieldUploadTypeHandler
- Bugfix: Add list price to option product line items
- Bugfix: Consider quantity when displaying the price of an indiviual set line item
- Bugfix: Properly calculate taxes for slots that contain options with different tax rates
4.1.0
- Feature: Fixed product property group options
- Feature: Add block for image placeholder
- Bugfix: Do not attempt to recalculate set url configuration in the cart processor
- Bugfix: Properly set custom field set state in the administration
- Bugfix: Properly display product modal
4.0.1
- Bugfix: Preselection fallback for required dropdown slots
- Bugfix: Display fallback image for dropdown slots
3.5.1
- Bugfix: Preselection fallback for required dropdown slots
- Bugfix: Display fallback image for dropdown slots
4.0.0
- Compatibility: Shopware 6.7
- Feature: Add status icon for nested sets
- Feature: Allow collapsing the advanced settings again
- Feature: Add radio mode to list, box and slider templates
- Refactor: Display product name as option name fallback
- Bugfix: Fix price calculation grid block name
3.5.0
- Feature: Product set option count cart rule
3.4.0
- Feature: Shopware 5 Migration
- Bugfix: Properly set quantity select value via preselection
- Bugfix: Don't inherit .is-invalid from parent slots
- Bugfix: Fix dropdown slot preselection for nested sets, note for custom slots making use of the preselection feature, this also moves the preselection from the constructor to the init method
- Bugfix: Build option cheapest prices based on the calculated purchase limits
- Bugfix: Always calculate the prices of all option combinations
- Bugfix: Correct from price detection of options including varying option prices
- Bugfix: Properly check set main product for from price in cheapest price calculation
- Bugfix: Display list price for cheapest prices in listing, if the price has no from price
- Bugfix: Hide price asterisk if ACCESSIBILITY_TWEAKS are enabled
- Bugfix: Update URL hash for nested sets
3.3.1
- Refactor: Add a more expressive error message when trying to directly add a set product to the cart
- Bugfix: Add missing order_line_item_version_id column for compatibility with MySQL 8.4
2.4.2
- Bugfix: Do not commit 'swProductDetail/setLoading' unless there are changes on the product, otherwise this causes issues with the sw-seo-url component
3.3.0
- Feature: Add Download button for upload fields in the administration for orders
- Feature: Show product number in nested line items modal for orders
- Bugfix: Do not show checked options for nested sets if only the parent option is selected
3.2.1
- Compatibility: With the return managment of the SwagCommercial plugin, to allow to return product set line items
3.2.0
- Feature: Add invalid state to variant selects which have not been selected
- Feature: Additionally apply API filter in order line item list route
- Feature: Additionally apply API filter in order detail route
- Refactor: Several internal code optimizations of the PHP code
- Refactor: Remove Javascript Plugin imports
- Refactor: Remove several DomAccess usages in the Javascript part
- Compatibility: Add EntityExtension::getEntityName() to plugin entity extensions
3.1.8
- Bugfix: Include active tax rules in product set cache key
3.1.7
- Bugfix: Skip choices validation when deleting a select field
- Bugfix: Correct value property for the switch to disable nested sets on option basis
3.1.6
- Bugfix: Correct quantity price calculation of options for the bundle price in the storefront
3.1.5
- Compatibility: Improved template compatibility when multiple plugins overwrite the buy-widget.html.twig template
3.1.4
- Bugfix: Only validate choices of select fields
3.1.3
- Refactor: Show product number in the administration product option selection
- Refactor: Change SCSS variables to CSS variables in the administration
- Bugfix: Add validation for select field choices
3.1.2
- Refactor: Only filter line items if set items should be removed
- Bugfix: Do not consider variant container of nested set for the parent option
- Bugfix: Properly load variants of nested set products
- Bugfix: Do not nest line items, if they should not be nested in filter service
- Bugfix: Correct wrong typehint on the product set entity translation
3.1.1
- Feature: Add ProductSetModalProductCriteriaEvent
- Bugfix: Show modal icon on variant change
3.1.0
- Feature: Add option types and new static option type
- Feature: Add option fields (checkbox, text, select and upload)
- Feature: Add possibility to define an optional option media
- Feature: Properly display product variant assignments in the administration
- Feature: Assign product sets to products using bulk edit
- Feature: Add ProductSetOptionProductCriteriaEvent
- Feature: Add ProductSetOptionTemplateEvent
- Feature: Add possibility to add product number to set
- Feature: Add possibility to disable nested sets globally
- Feature: Add nested set summary
- Compatibility: Expose SwkwebProductSetSlot in window to allow other plugins to add custom slots
- Refactor: Asynchronous registration of the set configurator JavaScript
- Refactor: Expose check if option has valid variant selection
- Refactor: Add blocks for CMS element include and set summary
- Refactor: Move currency related configurations in set options, to allow multiple price elements outside of the set
- Refactor: Replace some instances of the DomAccess with normal querySelector
- Refactor: Allow for multiple buy buttons
- Refactor: Allow the quantity select to be optional and anywhere on the page
- Bugfix: Show nested set switch in option modal
- Bugfix: Correctly pass nested set product and simplify if-condition
- Bugfix: dal:validate issues
- Bugfix: Correct parentPath for sw-product-detail-swkweb-product-set component
- Bugfix: Check if product is properly initialised before loading assigned options and hide option table if the product is not assigned as an option
- Bugfix: Disable set when the main product is not buyable due to the quantity
3.0.4
- Bugfix: If no setting in the shopping experience layout has been configured, always show the set configurator on the product detail page, as it is not adjustable for the default layout
3.0.3
- Bugfix: Error status in the sw-product-detail tab navigation
3.0.2
- Compatibility: Allow other plugins to control the order filtering in document templates
- Bugfix: Always use a new ID for price calculation rules on import if no priceCalculationId has been passed
- Bugfix: Correct price preview for price calculations
3.0.1
- Compatibility: Add technicalName to the import export profiles
- Bugfix: Remove product.swkwebProductSet database column on uninstall
- Bugfix: Show preview and component images of Shopping Experience elements
3.0.0
- Compatibility: Shopware 6.6
- Refactor: Some internal code optimizations
- Refactor: Remove intermediate swkweb_product_set_product table and allow set associations to be inherited
- Refactor: Improve set configurator design
- Refactor: Rename event namespace from Swkweb\ProductSet\Core\Content\ProductSet\Events to Swkweb\ProductSet\Core\Content\ProductSet\Event
2.4.1
- Bugfix: Correct sorting of variant groups and options according to the administration configuration
- Bugfix: Renumber options when deleting an option
2.4.0
- Feature: Add possibility to disable nested sets on option level
2.3.4
- Bugfix: Drop table swkweb_product_set_price_calculation_rule in uninstall
- Bugfix: Icon of modal button for nested line items
- Bugfix: Add product version id properties in set entities
2.3.3
- Bugfix: Use all rule ids instead of area rule ids for price caching to work around a bug in the Shopware core
- Bugfix: Consider nested set prices in storefront price calculation
- Bugfix: Resolve product.extension.swkwebProductSetListingPrice in product exports
2.3.2
- Bugfix: Use cache invalidation states from product_detail_route
- Bugfix: Properly set rule areas when generating cache keys
- Bugfix: Add RuleAreas flag to price calculation rules association
- Bugfix: Allow variant selection for radio and slider templates
- Refactor: Initialize nullable properties with null
2.3.1
- Bugfix: Error in german snippet file
- Bugfix: Import of price calculation 0 and improved error logging
2.3.0
- Feature: Nested Sets
- Feature: Shopware Import/Export profiles
- Feature: Rule based price calculations
- Feature: Add product set type to the line item type rule
- Feature: Add custom snippet swkweb-product-set.product.list-price-percentage for the set list price
- Feature: Slot descriptions
- Feature: Additional product informations in the admin option grid
- Feature: Badge for set products in the listing
- Feature: Slider slot template
- Bugfix: Correct loading of soldout variant products on initial load
- Bugfix: Preselection of dropdown slots
- Bugfix: Correct quantity select initialization for preselection
- Bugfix: Allow variant selection in radio slots
- Bugfix: Correct default values in the administration when creating sets and slots
- Bugfix: Improvement of the handling not available variant options
- Refactor: Several internal improvements and cleanups
2.2.3
- Bugfix: Show cheapest set prices in search suggest
- Refactor: Load cheapest set prices in the listing using events and remove route decoration
2.2.2
- Refactor: Add blocks to the `storefront/component/swkweb-product-set-configurator/option/dropdown.html.twig` template
2.2.1
- Bugfix: Add missing `swkwebProductSetListingPrice` extension to the wishlist and search route
2.2.0
- Feature: Show assigned product options in product details administration
- Bugfix: Use explicit input source instead of `Request::get`
- Bugfix: Prevent recursion when serializing `ProductSetSlotEntity`
- Bugfix: Allow to repeat orders with set items
- Bugfix: Decoration priority of the `ProductListingRoute` decoration
- Bugfix: Add `swkwebProductSetListingPrice` as runtime product extension
- Refactor: Option sorting via arrows
2.1.1
- Bugfix: Set `_routeScope` of `ProductListingRoute` to `store-api`
2.1.0
- Feature: Add possibility to ignore the delivery time of the main product
- Feature: Add slot fallback image
- Bugfix: Set `ProductListingRoute` decoration to `public` such that this route can be accessed in the store-api
- Bugfix: Initialize optional price calculation foreign key values with null
2.0.2
- Bugfix: Correct validation of line items in the line item factory for better error messages
- Bugfix: Correct type validation of cached set and set cheapest price route responses
- Bugfix: Use abstract class of `AvailableCombinationLoader` for compatibility with plugins which decorate this service (e.g. SwagCommercial)
- Refactor: Remove legacy code
2.0.1
- Compatibility: Shopware 6.5.3 - Set versions ids in foreign key constraints for option products
- Compatibility: Shopware 6.5.3 - New set configuration URL format to improve support of IDs in UUIDv7 format (old URLs will still work)
- Bugfix: Correct link to the set configurations from the cart
- Bugfix: Load correct configuration in dropdown slots
- Bugfix: Image gallery modal with sticky product image
- Bugfix: Fix duplicate data entries on slot creation and cleanup orphaned entries, when destructive migrations are applied
2.0.0
- Compatibility: Shopware 6.5
- Refactor: Remove deprecations and improve code for Shopware 6.5
1.2.0
- Feature: Add custom fields for sets, slots and options
- Feature: Add slot presets
- Feature: Add invisible slot template
- Feature: Add set slider template
- Feature: Add store API endpoint to retrieve set configurations `/store-api/swkweb-product-set/{productId}`
- Feature: Add store API aware flags to defined entities and entity extensions
- Feature: Add some storefront JavaScript events
- Refactor: Show option hover outline only on desktop breakpoint
- Refactor: Add unified JavaScript plugin for sticky elements
- Bugfix: Only filter order in documents if existent
- Bugfix: Add missing snippet for "optional" slots
- Bugfix: Use only a single priceCurrency structured data element
- Bugfix: Always show the delivery information of the main product of sets
- Bugfix: Align summary items to the left
1.1.4
- Bugfix: Use correct sales channel configuration for API filtering
- Bugfix: Workaround for Vuex bug https://github.com/vuejs/vuex/pull/1438 for compatibility with Pickware
1.1.3
- Bugfix: Template error in account if main item is shown as first item in checkout
1.1.2
- Bugfix: Fix template variables in checkout, if the main set item is not shown separately
1.1.1
- Bugfix: Packaging which caused a faulty Storefront JavaScript
1.1.0
- Feature: Add the possibility in the administration to add sets to products which are assigned to that product
- Feature: Add new slot-template "Radio (List view)"
- Feature: Add two new functions for the calculation of gross and net prices in the pricing engine
- Feature: Add `product.listPrice` as new alias to the pricing engine
- Feature: Add possibility to show set summary below the product image
- Feature: Sticky product image, which scrolls along the configurator in the detail page
- Feature: Add possibility to show the main product item in checkout as separate item
- Feature: Add new shopping experience element "Sticky bar - Product set configurator"
- Refactor: Improve loading of product sets on detail pages with assigned shopping experience layout
- Refactor: Improve templates for showing the set in the checkout (`set-item.html.twig` and `set-items.html.twig`)
- Fix: Display of negative single option prices
- Fix: Sort set main items to the first positions in documents etc.
- Fix: Show correct units and reference prices for set options
- Fix: Correct for-attribute of variant group selection labels
- Fix: Always show the price of the main set product in the checkout/cart
1.0.0
- First Shopware 6 release