• Backend API | New endpoints were created in order to manage the hidden filter/parameter settings.
  • Backend API | We added a new endpoint to the Backend API to update an instance configuration. This way you can assign attributes as reserved characteristics.
  • Frontend API | We've fixed the ordering of advanced attributes in navigation responses. In the app, you can order attribute values for use in facets. You can also extend your API response by including certain attributes with their values. The ordering of item attribute values in the navigation response did not match the ordering of attribute values in facets. That is now fixed.

Tweakwise App

  • Tweakwise App | You can now create empty Feed attributes in the App! This makes it a lot easier for the customer to start importing non-product items when the item type attribute does not exist yet.
  • Tweakwise App | Minor performance enhancements were made to Feed Import and Publish tasks, improving overall system responsiveness.
  • Tweakwise App | We fixed validation on the derived replace attribute when configured as a personalization dimension in advanced settings. The check on maximum number of unique values was not working correctly which could result in a configuration which caused problems. This has been fixed and validation should work properly now.
  • Tweakwise App | A bug in the attribute module is fixed. Creating a new item from the button didn't work anymore.
  • Tweakwise App | We updated the existing error message that occurs when trying to import a feed where some attributenames contain html tags or html-encoded symbols. Like similar messages, it now also previews the first 10 issues and provides the option to download the full list of errors. These errors now also contain the itemid where the incorrect attribute name was found.
  • Tweakwise App | Fixed a bug regarding the Builder. When a visual component (or another type of component) cannot be filled, we have a fallback to show a regular product instead on that spot. However, that product would get the row and col span of the visual that was supposed to be. It now has the default row and col span of 1.
  • Tweakwise App | We've added the option to delete unused attributes in Tweakwise App > Catalog > Attributes, even if they do have values. This is for example useful for deleting external attributes that are no longer used but still have values due to something like Google Analytics 4.
  • Tweakwise App | A new Google Analytics 4 report has been released. It's called 'Item Page Views' and it is only getting the events registered as an view_item event. In GA4 items are mainly implemented as products. So every proper GA4 implementation uses the view_item event for their product detail page views. The report preview is showing the first 20 results and shows in the title the amount of records. It is sorted by the amount of events.

Demoshop

  • Demoshop | Visuals are now fully visible instead of cutting of parts of the images.
  • Demoshop | The presentation of item_types that are not familiar are changed so it is better recognizable that it's a different type. We will now differentiate products, visuals and 'other'. The respective type will be shown as a label.
  • Demoshop | Support for multiple fonts is added, and some minor styling issues are fixed.
  • Demoshop | Inspecting your configured search algorithm has become more powerful in Demoshop. Instead of viewing the search algorithm results per item, you can now view the items and their scores per algorithm. To enable this view. Open a search page by choice and click on the select box on the top right corner where you can select how you wish to view the search results. The first option is a default lister page. The second option shows the search algorithm scores per item. And the third and new option shows the results per search algorithm!

JavaScript

  • Tweakwise JS | You're now able to enable a sorting button for the mobile overlay. Once enabled in Tweakwise App > Plugin Studio > Search and Merchandising > Advanced, sorting will be visible in filter overlay on mobile.
  • Tweakwise JS | For infinite loading and loading with button, the lifecycle events started, success, failed and completed are fired correctly.
  • Tweakwise JS | Filters on top were expandable but not collapsible, this is now added with an extra state.
  • Tweakwise JS | The behavior when returning to the lister page from the previous page has been improved. The result is that you are now scrolling to the top instead of the scroll restoration point. This only applies when visitor is not on the first page.
  • Tweakwise JS | Fixed a bug that was ruining presentation of products with a col span bigger than 1 in JS Search & Merchandising on different screen sizes. If the width was higher than the number of columns in the products grid, the grid itself was broken. Now all scales correctly and is capped at maximum size.
  • Tweakwise JS | Applied a fix to restore the scroll position to the top when pagination is configured as infinite or button and the page is not the first page.

Plugin Studio

  • Plugin Studio | It is now possible to open the Demoshop with multiple fonts applied; very useful for showcasing examples that for example have different fonts for headers and texts.

Some advanced functionality which was previously only accessible via your Customer Success Manager has now become public, giving you more flexibility to setup your Tweakwise configuration and speed up time to market. Three options are added to the attributes module in Tweakwise App. You can find them at attribute level by clicking on the three dots and open the 'use as' modal from the contextual menu.

  1. In order for Tweakwise to work correct, we need to have certain characteristics assigned. A characteristic has some specific meaning or context within Tweakwise, like for example an image or url. We do need that information in order to populate our API responses in a standardized manner. But as it is not always possible to have this already present in your import feed, it is hard to standardize this. Therefore, you now can 'tell' the system which property should act as a characteristic. At the moment you can assign SKU, Url, Image, Brand and Item Type.
  2. The second option you can configure in this modal, is the option to enable an attribute as include or exclude parameter. These parameters can act as so called hidden filters, but in order to have them fully working it is necessary that all those values are calculated and present in the publication of your instance. Usually, filters are present on a filtertemplate and will be present in your publish for that reason. However, there might be situations where you do want to use that parameter (for example to show in stock products only), but do not want to have it available as a filter. You then need to make sure that the attribute is marked as an include or exclude parameter.
  3. The final option is whether you want to have the attribute available in the API response of the item node. The item node is containing data used for building op your product tiles on your webshop. For example, you definitely want to show a review-rating on your product-card, but do not want to show your gross margins (while that information might be useful for other purposes in Tweakwise). Simply do not publish gross margin to your API response then, by not enabling it. The display name will be name on how the attribute shows up in the API. Be aware that adding too many attributes to your API response, might have impact on performance. We advice to stay under 15 attributes in total.

With our newest additions improvements to our Demoshop, we are (almost) fully compatible with all features Tweakwise has to offer. And that is important as we consider the Demoshop as point of truth. If you're experiencing an issue in your shop or environment, you should always check the Demoshop to determine whether the cause lies within Tweakwise or if there is something with the rest of your shop. Our latest improvement does allow you to configure a catalog language and use include and/or exclude parameters.

  • First of all, our Demoshop has moved in Tweakwise App. You can no longer find it in the navigation bar on the left, but need to access it via a modal which can be opened from everywhere in the app. That modal can be triggered via the new button on the top of Tweakwise App.
  • In the Demoshop modal, you now might get the option to choose between versions. The standard one is available to everyone, but if you have enabled Plugin Studio (useful for JS implementations), you can switch to the Javascript version of the Demoshop as well. This will showcase the exact version of your JS implementation, including look and feel and configured behavior you have done in Plugin Studio. However, for debugging purposes you need to access the standard version of the Demoshop. Do there is no option to switch, you'll open the standard version by default.
  • More advanced options (which will be remembered by your browser for your specific Tweakwise instance) can be found under additional configuration. First notable setting is whether you want to make use of grouped products. This is a straightforward setting. By simply enabling a checkbox, the Demoshop will make use of the so called grouped endpoints of the Frontend API. The catalog language setting has everything to do with the behavior of search. If Tweakwise knows which language is requested, we can apply word transformations like plurals, verb conjugations and splits. All languages which are enabled for your Tweakwise instance, will be available here.
  • The final two settings are related: include parameters and exclude parameters (previously also known as hidden filters). These parameters can be used for example if you want to readily filter certain pages on a property 'under water'. For example, if Tweakwise contains all products, regardless of stock status, you may want to filter out products without stock from your category pages. You can do this by using include and exclude parameters. This parameter needs to be added to the request. Without the technical knowledge on how to implement this on your webshop, it has been made way easier to reproduce the same settings and behavior in Tweakwise Demoshop.

To analyze the performance of your configuration, power our insights reports and support personalization, we capture key e-commerce events on your platform via our Tweakwise Event Tag. These are events such as search terms, product views, item clicks, add-to-carts, and purchases. As our Shopware integration is making use of our JavaScript solutions the item clicks event was already covered (by default), but now it is possible to enable sending in search actions, product views and purchases as well. The only thing you have to do, is enabling this feature in the frontend settings of the Shopware plugin. This works out of the box, no extra code is necessary.

Furthermore the Shopware plugin now does check settings in your instance-configuration, preventing you to enable certain options and features which are not in your plan.

📘

SW-Tweakwise 4.1.0

Click this link to visit corresponding repository and update on Github.

We are excited to announce the launch of our newest search algorithm, 'Exact Start', designed to enhance the precision and efficiency of your product searches within Tweakwise. This fairly basic algorithm focusses on matching search queries with the exact beginning of your configured attributes. By targeting only the start of the attributes, 'Exact Start' gives you more power in pushing certain results to the top, resulting in a more relevant, accurate and effective search experience.

With 'Exact Start', you can locate products that precisely match the initial characters of your search terms, eliminating less relevant results that might appear due to matches found in the middle of the attributes. This enhancement is particularly beneficial for large product catalogs, where precision is paramount to quickly finding the desired items. We believe that 'Exact Start' will significantly improve your search functionality, especially if you combine this new search algorithms with other algorithms in a weighted funnel.

🚧

Advanced settings

Although our weighted search funnel allows you to stack up various steps and combine multiple algorithms, please note that these are advanced settings. Changes can have a considerable effect on the search results of your website.

Understanding how users move through your conversion funnel is crucial for optimizing performance, and this new report provides a clear, data-driven view of that journey. The Conversion Rate Trend report offers a historical view of your conversion performance over time, helping you track improvements, spot seasonal trends, and uncover areas for growth. And with the Conversion Rate Breakdown report you can analyze how many users transition from sessions to purchases, pinpointing where drop-offs occur at each stage from product views to add-to-carts, checkouts, and final conversions.

🚧

Google Analytics 4 integration

These reports are available only if you have licensed our Google Analytics 4 integration. We leverage GA4 data to provide these insights, ensuring accurate tracking and analysis of your conversion funnel.

Search Algorithm Usage Report

Multiple improvements were released to the Search Algorithm Usage report, which gives you information on your search funnels. A new tab, similar to the no-results tab, is showing the redirects from the search requests. The search log has been expanded with a drill through page, giving you more in-depth insights per search phrase. We added sparklines to the matrix table to give immediate insights on the request trend per search phrase; and improved tooltips with readable category names.

Furthermore we fixed some small bugs related to date slicers syncing and reset options and excluded N/A requests from the efficiency tab in KPI's and charts.

Search Word Analysis Report

When using the weighted search funnel, a new Search Word Analysis report was introduced based on the Search Algorithm Usage Report. Search Word Analysis contains tabs that are not relevant to the algorithm usage: No-result and Search Log, without any filters that are related to Algorithms. Nothing else in terms of functionality was changed.

  • Magento2Tweakwise 8.4.3 | Fixed an issue where pagination didn't work correctly when using AJAX.
  • Magento2Tweakwise 8.4.3 | Improved how product collections are loaded to prevent them from being loaded twice.
  • Magento2Tweakwise 8.4.3 | Resolved an error on the search results page in situations when the merchandising builder was turned off.
  • Magento2Tweakwise 8.4.3 | Fixed an issue where Tweakwise sometimes returned an empty result.
  • Magento2Tweakwise 8.4.3 | Corrected a type error that appeared on the checkout page when 'Send analytics to Tweakwise' was enabled.
  • Magento2Tweakwise 8.4.3 | Fixed a bug that caused '&' characters in filter URLs to be encoded incorrectly.
  • Magento2Tweakwise 8.4.3 | Fixed a security vulnerability related to cross-site scripting (XSS).
  • Magento2TweakwiseHyva 4.3.3 | Fixed a typo that caused issues with encoding '&' characters in filter URLs.
  • Magento2TweakwiseExport 7.3.3 | Fixed a bug in price exports that sometimes caused prices to be exported as '0.0' when they couldn’t be found.
  • Magento2AttributeLanding 6.0.1 | Fixed an issue where the Active/Inactive setting for Attribute Landing Pages (ALPs) wasn’t saved correctly.
  • Magento2AttributeLanding 6.0.1 | Fixed a problem during upgrades that accidentally created duplicate ALPs instead of assigning them correctly.
  • Magento2AttributeLanding 6.0.1 | Stopped removing slashes from ALP URLs since it's no longer necessary.
  • Magento2AttributeLanding 6.0.1 | Fixed an issue where facet links (filter links) stopped working for ALPs.
  • Magento2AttributeLanding 6.0.1 | Resolved an SQL error that occurred when creating new ALPs.
  • Magento2AttributeLanding 6.0.1 | Moved Tweakwise-specific classes to the Attribute Landing Tweakwise module for better organization.
  • Magento2AttributeLandingTweakwise | Fixed an issue where page 2 of an ALP appeared empty when using AJAX.
  • Magento2AttributeLandingTweakwise | Moved Tweakwise-specific classes to the Attribute Landing Tweakwise module.
  • Backend API | We have implemented the new category lookup endpoint, enabling you to implement a category select form component.
  • Backend API | We've introduced the ability to manage blacklisted suggestions via the Backend API. Additionally, we've implemented a new endpoint for retrieving a category path by ID.
  • Backend API | Support was added for the new itemViewEvents Google Analytics 4 metric, making it available in the GA4 metrics response. The validation of the fullPageUrl dimension on screenPageViews was removed.

JavaScript

  • Tweakwise JS | Fixed a minor bug where the Recommendations JS would show an error in the developer console if the configured recommendation didn't return any products. Functionally nothing has changed.
  • Tweakwise JS | We've fixed some German translations where some words needed to be capitalized.
  • Tweakwise JS | Improved the UX of our Search & Merchandising solution by showing the loading state only if the request takes longer than 400ms. Which makes for a much smoother experience when filtering, sorting and/or paginating!
  • Tweakwise JS | Fixed a bug where the pre-selected filters would disappear when using the browser's back button.
  • Tweakwise JS | Added HTML title with a color value to Search & Merchandising color swatches for having useful tooltips on hover.
  • Tweakwise JS | A new configuration option was added to Search & Merchandising JS that allows you to configure a minimum amount of characters before instant-search is triggered. This option is configurable by setting inputThreshold: 3. If omitted, instant-search is triggered after 1 character.
  • Tweakwise JS | No result page now also has a function for adding customHtml, the function call is provided with some data of the result so you can use the searchTerm in the custom HTML.

Tweakwise App

  • Tweakwise App | Fixed breadcrumb links that previously used an invalid double language prefix; fixed external links in navigation menu.
  • Tweakwise App | Added missing translations from Tweakwise App > Dashboard.
  • Tweakwise App | Added some validation for adding and editing synonyms. For the algorithm to be effective, a maximum of three words per synonym term is enforced.
  • Tweakwise App | Added some additional hints and validation to the synonyms module to avoid breaking when adding a single synonym when two are required.
  • Tweakwise App | Differentiated on two levels of severity for poor performance of external data components in the new Builder (so you can see either orange or red warning; based on avg. response time threshold).
  • Tweakwise App | We fixed some issues with error pages and persisting the selected language. Before, in some scenario's you selected for example Dutch and the app switched back to English somehow.
  • Tweakwise App | Slightly little changes are made to the UX of the menu, it's mainly the behavior of linking between pages and the current selected page.
  • Tweakwise App | Builder tiles are now resizeable! On the right-hand side of the tile an indicator will pop up to drag the tile to the preferred width.
  • Tweakwise App | There were cases where you could have duplicate categories for an item in the import feed. In some of these cases this caused a database error in the import task. We have improved the feed import task to spot these duplicate categories and give a warning, the feed import itself will succeed.
  • Tweakwise App | The items detail page now contains links and tooltip on the Image and Url characteristics when it is assigned to an attribute.
  • Tweakwise App | The UX of the Builder is updated a bit. The page size is more regulated, like: the minimum page size is 12 by default, but it also is depending on the configuration. So if the size is configured to be 24 and a component is configured on position 20, the size can't be smaller than 20. By changing this it is not possible to lose configured components. Also, the resize behavior is changed a bit, where the width now remains stable when changing the grid width. Before it was a bit unpredictable.

Demoshop

  • Demoshop | Unified the look of all slider facets & added prefix/suffix to selected filter labels.
  • Demoshop | Added product variants to Item detail context (even variants themselves will refer to all other items from the same group).
  • Demoshop | Added category link after the actual link (same as we did in suggestions before).
  • Demoshop | In the JavaScript specific Demoshop we no longer show implementation code but will redirect users to the documentation instead by clicking on the floating button at the end of the page.
  • Demoshop | Price slider has changed so it can manage floating points instead of rounded values.
  • Demoshop | Grouped products is added to the suggestions component.
  • Demoshop | The presentation of item types that are not familiar (eg. products, visuals) are visually changed so it is better recognizable as a different type.

Plugin Studio

  • Plugin Studio | The No Result page is now configurable in the Plugin Studio.
  • Plugin Studio | Made sure all elements (even without a value) are easily selectable in the Product Tile Editor in Plugin Studio. Previously a no value TextElement would not render anything, making it hard to see.
  • Plugin Studio | Fixed a bug where the Plugin Studio module retained stale data on its index page while navigating through the module.
  • Plugin Studio | We made it simpler to redirect to the Javascript Demoshop from within the Plugin Studio with suggestions enabled (as long as the module itself is toggled on in the Plugin Studio module overview).
  • Plugin Studio | We added an option to configure category links for Search & Merchandising in the Plugin Studio settings page (Merchandising > General > Allow redirects on category facet).
  • Plugin Studio | Fixed a bug for the Product Tile Editor tiles that contain a link in the root frame in combination with fixed input elements controls to be affected by a parent frame with a link.
  • Plugin Studio | The inputThreshold configuration has been added to the Plugin Studio configuration.

SW-Tweakwise 4.0.0 | Before, the Product ID for Tweakwise contained several pieces of information to identify the product. We changed the ID and removed unnecessary information. It is now usable for add-to-cart and add-to-favorite without the need to specify a specific attribute. You have to generate a new feed as soon as you have updated the plugin. The out-of-the-box add-to-cart and add-to-favorite will only work after an updated feed. If you have implemented your own handlers for add-to-cart and add-to-favorite, you definitely need to check if everything works as expected.

SW-Tweakwise 4.0.0 | In Shopware you have the option to set the visibility of a product show up in category listings and/or search within a sales channel. With this update, we will add a visibility attribute to the Tweakwise feed and filter on this attribute (behind the scenes) in category listings and search. On cross-sells and featured products, the products will be shown just like this is done in Shopware.

SW-Tweakwise 4.0.0 | If for some reason, no SEO Url is available for a product or a category, we will now add a fallback URL to the feed. This is a feed containing the ID of the product or category but will at least show the right information. Having proper SEO Url's is still the responsibility of Shopware and can be a matter of just updating the indexes of Shopware.

🚧

This update is a combination of multiple releases contains several breaking changes. Please test this update in a non-production environment before using on production.

  • [4.0.0] - 13-03-2025
  • [3.5.5] - 10-03-2025
  • [3.5.4] - 06-03-2025
  • [3.5.3] - 18-02-2025
  • [3.5.2] - 14-02-2025
  • [3.5.1] - 13-02-2025
  • [3.5.0] - 12-02-2025
  • [3.4.0] - 11-02-2025
  • [3.3.1] - 06-02-2025
  • [3.3.0] - 05-02-2025
  • [3.2.0] - 28-01-2025

Click this link to visit corresponding repository and update on Github

  • SW-Tweakwise 3.5.5 | The event [twn.add-to-favorites](https://docs.tweakwise.com/reference/add-to-favorites-wishlist) is now handled out of the box and working with the default Shopware wishlist feature.
  • SW-Tweakwise 3.5.4 | It is now possible to add a Shopping Experience CMS element on the product detail page, enabling you to easily add cross-sell recommendations to all products. You simply set the group key of the cross-sell you want to show.
  • SW-Tweakwise 3.5.4 | The URL’s of categories are now added to the feed by default. Besides that, the categories handler in suggestions is removed so it will be using the default features of Tweakwise.
  • SW-Tweakwise 3.5.4 | For all products the attribute [item_type](https://docs.tweakwise.com/docs/item-types) with value product is added to prepare for other item types.
  • SW-Tweakwise 3.5.4 | Some bugfixes are added to support older releases of Shopware 6.5.
  • SW-Tweakwise 3.5.3 | Added right locale to the twig rendering context so translations will be handled correctly.
  • SW-Tweakwise 3.5.2 | If you have expanded config in your variant listing config and it is not active, it will now not have a look at those settings anymore.
  • SW-Tweakwise 3.5.1 | Fixed resetting the instant search when choosing suggestions in Tweakwise App > Plugin Studio; also made a fix regarding wrong languages once using Plugin Studio.
  • SW-Tweakwise 3.5.1 | Fixed search page showing instant search and merchandise
  • SW-Tweakwise 3.5.0 | An option Plugin studio integration is now available in the Frontend configuration of the plugin. Please check with your customer success manager if this setting is needed for your installation.
  • SW-Tweakwise 3.5.0 | Refactored hashing of products to make them unique in Tweakwise. This refactoring made it sure that the same code is used in feed as well as cross-selling. Also renamed some field to match the naming within Tweakwise.
  • SW-Tweakwise 3.4.0 | We now made sure the 3.x version of the Tweakwise for Shopware plugin, is now working with Shopware 6.5 as well. Please be aware updating from version 2.x to 3.x is a major update with breaking changes.
  • SW-Tweakwise 3.4.0 | In Shopware 6.6 instances it is now possible to add the Featured Product CMS element again.
  • SW-Tweakwise 3.4.0 | Use proper Product Id for recommendations and cross-selling when no variants are used.
  • SW-Tweakwise 3.3.1 | Some twig block definitions are added to the feed template.
  • SW-Tweakwise 3.3.0 | Added the option to be able to add logic to the data of variants which is added to the feed.
  • SW-Tweakwise 3.2.0 | If no specific variant is selected for inclusion in the feed, all variants' options, attributes, and stock levels are now included by default.

As category-linking is one of the hardest things to overcome while setting up your JavaScript-implementation, it would be very useful to have predefined category URL's available to link to category pages without writing extra code. Instead of translating category IDs to URL's on the application side of your store, this functionality now works out of the box. By simply adding category-URL's to your import feed, we do serve these URL's in the response of our Frontend API too, so you can pick them up there.

If you make use of our JS-solutions, we have done it for you already. You just have to enable the functionality in Plugin Studio. If a category has it's own URL it will show up in Category suggestions even if the category suggestion handler function has not been defined and click on this suggestion will redirect to said URL. Once a handler has been set up it takes precedence over custom URLs.

No results page for JavaScript

We added a component and some styling to the 'No Result page' of our JavaScript Search & Merchandising solution. Previously it looked like a failure page, but with this feature enabled it looks a bit more helpful. It is fully configurable and customizable in the sense that you're able to add some custom HTML. This gives opportunities for showing Recommendations on the 'No Result page'. The feature is turned off by default and can be activated by adding some code or preferably by switching the toggle in Plugin Studio.

Other improvements

  • Backend API | We updated the category lookup endpoint to include category key in the response.
  • Backend API | Multiple endpoints for retrieving usages now have a uniform input and response schema.
  • Tweakwise App | Fixed an issue where attribute names were not being trimmed during item creation.
  • Tweakwise App | The instance environment widget is extended with a friendly warning for non-production instances. This is to emphasize the usage of non-production instances on a production shop.
  • Tweakwise App | The UX of the navigation bar is improved a bit. Some slight changes are done on the UX like the active/current menu item that stays active or the behavior of the collapses. The Support menu is moved to the bottom of the page. We removed phased-out module links from the menu (Dynamic search and Menu & Bannering).
  • Tweakwise App | As the identifier of recommendations sometimes is needed for implementing our software, we have made the id property visible in the Featured products and Upselling & cross-selling modules in Tweakwise App. It is now displayed in the list and the detail view. This makes it easier 'to use' in API requests and JS.
  • Plugin Studio | Added the possibility to duplicate product tiles which were create via the editor (via context menu in the list or in the modal while creating a new component).
  • Plugin Studio | The configuration options for the starter in the plugin studio are aligned with the latest options. We removed some fields that are only available for users that are using the JS. We added the parameter field for External Data Components.
  • JS Implementations | We've added a reference to the HTML element to the following events in all JS integrations: twn.add-to-cart, twn.add-to-favorites, twn.product.visible and twn.product.click.
  • JS Implementations | Some small parts of the JS implementation are refactored regarding the Product Tiles
  • JS Implementations | Issue with the Top Filter Dropdown position has been resolved. It now makes sure it is always within the viewport! It is now also possible to show selected filters in combination with filters in top position via a new configuration option filters.selectedFilters (only works if position: 'top').
  • JS Implementations | When doing your own initialization of the JS plugin via tweakwiseListerPage() the page is now fetched based on the filters set in the URL.
  • Suggestions JS | Suggestions had an issue with the Gateway-failover. Although suggestions were fetched, products were not. This has been resolved.
  • Suggestions JS | A new experimental feature was made available for suggestions.js, allowing shops to enable typing animation in the input element that's been set up with Tweakwise Suggestions. It comes with a bunch configuration settings.