• Tweakwise App | The matching dimension and attribute values for Google Analytics 4 reports are now case insensitive, just like it works in the UA module. It's also more consistent with the rest of Tweakwise. For example, a page URL like example.com/ABC will now match a product if it has an attribute slug with a value like example.com/abc.
  • Tweakwise App | We fixed a bug where there was no inline validation on the metrics and dimension when creating a custom GA4 report, resulting in the module doing 'nothing'.
  • Tweakwise App | Just as for search phrases, category and facet suggestions, it is now possible to provide a name for product suggestions. This information will be presented in the response of our Frontend API. It could help create a better user experience while implementing autocomplete on your website.
  • Tweakwise App | We've done a bugfix for Google Analytics 4 where the report preview table was practically unusable with long values. Besides, it was possible to select the Page URL dimension when creating a custom report, which shouldn't be the case.
  • Tweakwise App | Some customers may have experienced slow loading of derived attribute pages where it sometimes took almost one minute to open a detail page of some attributes. We've improved the performance of the derived attribute module, although we still lack some in-app performance here.
  • Tweakwise App | We have changed the way GA4 metrics are imported for custom reports. Before, a product could have multiple values for the same metric in a report; now, all these values are summed up, resulting in one value.

Javascript

  • JS Implementation | We fixed a bug where the tn_parameters were not URL appropriately encoded, resulting in problems for some customers.
  • JS Implementation | A bug was fixed where the scroll-to-top functionality (after filtering of paginating) didn't work on Safari browsers.

Magento

  • Magento2Tweakwise | We made minor speed improvements by removing whitespaces in the JSON objects and fixing some vulnerabilities by adding extra XSS protection to the Magento Tweakwise extension.
  • Magento2TweakwiseHyva | Search banners were not shown correctly to shops that use Hyva, but now they do again.
  • Magento2TweakwiseExport | Our export functionality is now expanded with two new options: you can choose to export only stock or price information. As there is less data to generate and export, this should lead to at least a fifty percent performance win.
  • Magento2Tweakwise | Category numbers won't longer be added to the search URLs while using AJAX.

In Tweakwise, we use synonyms for words that your customers may call differently than the webshop does. For example, a customer might search for a tunic, while the webshop calls it a dress. A synonym is a word that means roughly the same as one or multiple other words and in this particular case, you can create a synonym for tunic and dress.

Synonyms are really powerful and can be used to correct typos that aren't corrected by autocorrection as well, such as L'Oréal and Loreal. With our latest innovation, we do some synonym suggestion based on AI by introducing Tweakwise Copilot. Although this can be very useful, we do believe in the human factor in creating synonyms (as AI still has problems in understanding context).

At the moment of writing, this feature runs in beta-modus (with some known minor issues) but is available to anyone interested.

Our JavaScript suite has been expanded with some awesome new functionality. From now on, implementing an autocomplete overlay (instead of an instant search overlay) is possible. The autocomplete is provided with search phrase suggestions, category suggestions, facet suggestions, and product suggestions and is as powerful as via our API implementation. We also implemented redirects support, which are not supported by using instant search.

📘

Category and facet (filter) suggestions require additional configuration and will only work out of the box with some technical implementation.

Important note: For your JS implementation you can use either Instant Search, or Suggestions. Redirects are only applied to the Suggestions JS solution.

Full docs on implementing Instant Search / JS Implementation

Full docs on implementing Suggestions JS

We can finally announce that we implemented support for Google Analytics 4 as the successor of Universal Analytics (UA), as this will be deprecated by Google from the 1st of July, 2023. Customers with the Google Analytics module enabled (Universal Analytics) in Tweakwise, will get access to our GA4-module automatically.

As Google Analytics 4 is entirely new from Google's perspective, you must configure your Google settings in Tweakwise again via a new approach. You must first link your account with Tweakwise and create some reports to do so. For each report (we distinguish between custom reports and pageview reports), you can select the property and metrics you want to retrieve from Google and link it to the proper attribute in Tweakwise. Once set up, all your created reports will run daily (or at any other interval) via the Tweakwise tasks module.

Retrieved data will be saved per report in the external attributes under the name you gave the report, with a ga4-prefix. After that, you are free to use this data anywhere in Tweakwise.

📘

Both versions of our Google modules work simultaneously and won’t conflict with each other. However, we suggest using GA4 as soon as possible to collect and compare data with your Universal Analytics data before stopping using the old module.

Read more: [Googles announcement on GA4 and the deprecation of UA](Google Analytics 4 has replaced Universal Analytics)

  • Tweakwise App | It is not longer possible to have a category referencing itself as a category. At feed import, we show a proper error message which will explain this problem if it is set up incorrectly.
  • Tweakwise App | In case you want to download your feed from within Tweakwise App, we do show a progress bar which acts as an indicator of time. Especially while downloading a large file, this can be helpful.
  • Frontend Api | It is now possible to use hidden filters tn_parameters and tn_parameters_except in combination with the suggestion API endpoints. This only applies to the category and facet suggestions.
  • Tweakwise App | We fixed some minor bugs in Tweakwise App where Cyrillic characters (used in the Russian language) were not fully supported, for example, in the attribute URL name. Configuring a fully working shop was impossible because of this, but this is now solved.
  • Tweakwise App | Merchandising Builder (MB) is applied to product suggestions when the category for which autocomplete activates uses MB. Before, it was hard to know that MB was affecting the results. We've added labels to the product suggestion results in Tweakwise Demoshop to indicate how MB has affected sorting, as we do for lister pages and recommendations.
  • Tweakwise App | On some new modules, our inside chat did not work correctly. This has now been solved.
  • Tweakwise App | We completely replaced the 'Extended number recognition' search algorithm with 'Exact match'.

Javascript implementations

  • Recommendations JS | We've added the option in Recommendations JS to use the product tile styling and config from the regular Javascript implementation. Although the recommendations will automatically apply the product tile, it is possible to disable this behavior.
  • Recommendations JS | For Recommendations through Javacript, we added support for showing recommended products in a carrousel, so we don’t break the look and feel on especially smaller devices.
  • Guided Selling JS | As we did for Recommendations, we've also added the inheritance of the starter product tile in the Guided Selling JS. By default, the Guided Selling will now use the product tile in its results. It is possible to disable this behavior.

Magento

  • Magento2Tweakwise | We significantly improved our plugin regarding the naming and positioning of recommendations (featured products, cross-sells, and upsells):
    • We now use consistent naming of recommendations according to the default Magento guidelines.
    • We added the option to show featured recommendations in the shopping cart. If you enable this, you have to choose between featured products or cross-sells. Afterwards, you can type in the desired feature-id, select the desired template or use a group code. In the case of the group-code option, you also have to provide the number of products you would like to show, which is implemented in the frontend of our plugin as well.
    • If you want to show featured recommendations, now there is a setting to enable if you want to show only ‘relevant recommendations within category’.
  • Magento2TweakwiseExport | We fixed a bug where attributes with value = 0 were absent in the export feed, resulting in missing data in Tweakwise. Now product data does contain these values.
  • All our Magento 2 plugins were expanded with support for PHP 8.2.
  • Frontend API | It possible to get categories in autocomplete results even if the filter template with categories is hidden.
  • Backend API | The attribute endpoint’s documentation was unclear on which sources could be used to filter. Besides, the names of these sources were in Dutch. We’ve changed to English and added documentation to clarify which sources can be filtered.
  • Tweakwise App | Apparently it was possible to import categories with negative IDs. This should not have been possible in the first place, and in some instances, it broke applications in various places. With a new validation rule it is no longer possible to import categories with negative IDs anymore.
  • Tweakwise App | From now on, we show an error message in the derived attributes module when a query eventually cannot be processed by SQL.
  • Tweakwise App | We added a validation rule during feed import that prevents category trees with circular dependencies from being imported. A simple example is when category B has category A as its parent, but category A also has category B as its parent, causing an infinitely nested category structure because they reference each other.
  • Tweakwise App | Another validation rule when importing a feed was added. Customers now aren’t able to import categories anymore for which no name is specified.
  • Javascript

  • JS Implementation | We've fixed a bug where the Javascript wouldn't show the selected filters correctly when customers would try to change the filters from outside of the JS implementation.
  • JS Implementation | We have added plurality translations for only one search or navigation result. For example, instead of showing: "1 search results for 'search term'" we now show "1 search result for 'search term'". This change has been applied to all available languages.

We have implemented a new property component for Merchandising Builder which enables you to configure a certain product tile based on both the attribute AND its value. This dynamic component is unique in its kind and very useful for a lot of usecases, for example:

  • Show products with: attribute=brand, and value=Adidas
  • Show products with: attribute=color, and value=white

A long desired request but finally we have made it possible to show recommendations through Javascript. This feature works standalone (even for non-JS customers) by simply adding a code snippet with a simple configuration on your website.

For every recommendation set up in Tweakwise App, we’ve added some example code on how to implement it using our JS implementation. This can be found under the 'info implementation' tab in Tweakwise App. Custom styling is possible by writing (and hosting) your own CSS, as it is not yet possible to inherit previously customized styling. We expect this to be added soon as the default behavior.

  • Tweakwise Demoshop | We added support to our Tweakwise Demoshop for customers that only use search functionality via the Standard solution. Previously this led to an error page as default lister pages are prohibited to the Medium solution.
  • Tweakwise App | When a customer runs a feed import with missing product IDs, the import breaks without a nice message. From now on we will show which part of the XML is causing the problem.
  • Frontend API | Categories showed up as a child of themselves in our Frontend API in cases where they were linked to (all) their parents. This behavior has now been fixed!
  • Frontend API | When using a multi-select AND facets, you would sometimes end up with zero-results options, which shouldn’t be possible anymore.
  • Frontend API | It’s possible for a category to be linked to multiple parents, which results in the category effectively existing more than once but with different paths. The category tree wasn’t able to show the same category twice under different parents, causing the category to disappear and reappear. This is now solved by showing the same category more than once under different paths.
  • Tweakwise App | We've added a configurable comparison operator to derived attributes of type ‘Combine’. Now you can choose from the next list of operators: Equals, Not equals, Starts with, Doesn't start with, Ends with, Doesn't end with, Contains, and Doesn't contain.
  • Frontend API | Retrieving a facet’s attributes could result in an internal server error if the applied filters resulted in a facet not having any attributes.
  • Frontend API | If a facet attribute is associated with zero products, it won’t show up anymore if selected by hidden filters. Facet attributes for which no products were shown if they were in scope because of using hidden filters. A distinction is now made between user-selected filters and hidden filters.

Javascript implementations

  • JS Implementation | We fixed a bug where the category filter would not be shown when it was not configured as a tree (link), and top-level filters were also enabled.
  • JS Implementation | A bug was fixed where the 'Erase and 'Apply' text in the top-level filters were not translated.

Magento

  • Magento2TweakwiseExport | All product prices are now exported in the configured default currency of the store. If an exchange rate is available, the prices (min/max/final price) are calculated (price * exchange rate) and exported to Tweakwise. The currency code is also added to the export so you can see in what currency the prices for that product are calculated. If no exchange rate is set, the prices are not changed.
  • Magento2Tweakwise | If configured correctly, we now support Recommendations shown in the Shopping Cart via Tweakwise. Based on the last added product to the Shopping Cart (if available), cross-sell items are shown underneath. The amount of items shown depends on the settings of the chosen Tweakwise-template. The system tries to find items based on the next article when no items are found. It functions for both a default template and group code.
  • Magento2TweakwiseExport | Bundle products with required products without stock were exported to Tweakwise as in stock. This was fixed.

📘

Release freeze

We had a release freeze from November 14th until November 28th as we entered Black Friday Season. We did not do any releases on our platforms and APIs in that period to guarantee uptime and stable software.

  • Tweakwise App | It is no longer possible to configure local paths as URLs for importing tasks. We also added some validation on having an empty URL configured, which could lead to errors.
  • Tweakwise App | If your Tweakwise instance is running with outdated data (3 months without publication), we show a notification bar on how to solve this. In most cases, a new publication will solve this problem.

Javascript

  • JS Implementation | Some events in the JS didn't fire when expected. So we've introduced new events that work better while keeping the old ones for backward compatibility. One of them is an event that is triggered when the selection in the filter changes.
  • JS Implementation | We have added unique CSS class names for filter values so that you can apply custom styling to filter values as well.
  • JS Implementation | We had some translations done regarding the German language defaults.
  • JS Implementation | When pressing the back button in the browser, from now on, the previous state of the Javascript will be restored.
  • Guided Selling JS | The configured theme color in Guided Selling for Javascript will affect the color of checkboxes as well.
  • JS Implementation | We’ve added an option to enable hidden filters (tn_parameters) specifically for the PLP requests.
  • JS Implementation | Our Javascript was conflicting with some other Javascript plugins, which was solved.

Magento

  • Magento2Tweakwise | We changed the way a parent category is shown in autocomplete results. We changed the syntax 'Parent name / Child name' to 'Parent name > Child name', as this would be more common sense. So basically, we changed the / with an >.
  • Magento2TweakwiseHyva | Search results now show the right item count in the Hyva theme for Commerce.
  • Magento2TweakwiseHyva | Featured products and cross/upsell are now shown correctly in the Hyva theme.
  • Magento2TweakwiseHyva | The color swatch selection was not working for the Hyva theme, but now it is.
  • Magento2Tweakwise | In some cases, we showed the wrong order of color swatches when requested.
  • Magento2Tweakwise | Wrong prices were shown in the autocomplete results.