• Tweakwise App | We fixed a bug where the Tweakwise App would briefly show an error message when opening the App again after some period of time. We fixed it twice. A first fix delayed opening the App, but that annoying behavior was solved quickly after.
  • Tweakwise App | After we had previously implemented a word breaker functionality for suggestions, the priority sorting for search phrases was the full-text rank. We now use the established rank again (as it is supposed to be), as seen in the established suggestions module.
  • Tweakwise App | A small change was made to the Google Analytics 4 module, where the report preview will let you know if the report does not contain any data instead of showing an empty table (which feels more like something went wrong).
  • Tweakwise App | We fixed a bug in Tweakwise App > Connectivity > Google Analytics 4 where the module would sometimes crash/freeze; for example, when trying to open a report. This should no longer be the case.
  • Tweakwise App | In the category tree view in the app, under Builder, you can use the parent template as an inheritance option in addition to not using a Builder template. By doing this, you no longer need to configure all underlying categories if they are meant to use the same Builder template.

JavaScript

  • Guided Selling JS | We've made minor updates to our Javascript Guided Selling. Navigating between steps will now always take you to the top of the container element. Apart from that, if a step has a single-answer question, the ui.autoAdvance feature will take you to the next step automatically. The results page from now on shows the amount of found items, which can be styled or hidden using custom CSS.
  • Suggestions JS | We removed the skeleton loading from the UI element as it was deemed distracting, and the server's requests are speedy anyway.
  • JS Implementation | For all of our Javascript solutions, it is possible to configure translation overwrites from now on. It not only makes it possible to do your own style of translations for our default languages, but it should also allow you to serve our JS in every other language. Complete information about this feature can be found at the Tweakwise JS technical documentation.
  • JS Implementation | We have fixed a bug where the combined configuration of the filter position on top and the grid list button enabled would not yield the product view switcher. Now customers can use the view switcher with filters on top.
  • JS Implementation | In the JS Implementation plugin, we have fixed an animation when opening and closing a facet - now, the animation works correctly in both cases.
  • JS Implementation | We have fixed a bug in the JS Implementation where a joint setting of 'Number of values' (any value) & 'Show number of products' (disabled) in filter settings within a filter template would interfere with showing a set number of filter values in a facet.

  • Tweakwise App | We improved the performance of the Derived Attributes Combine module (in particular, the attribute select boxes).
  • Tweakwise App | We fixed a bug in the language switcher where it would always show the English flag. Simultaneously a small bug with the Tweakwise logo not being responsive was solved.
  • Tweakwise App | Apparently, it was not possible to save an autocomplete configuration if the selected category had ID=0. It would instead give an error that no category had been selected. That has now been solved.
  • Frontend API | The next Frontend API endpoints now also support the tn_lang parameter, which should be used to specify the language to use for the search algorithms:
  • Tweakwise App | A bug was fixed where the external attributes preview didn't work properly for Page View reports in the Google Analytics 4 module.
  • Tweakwise App | We've fixed a bug that caused accrued filter values sorting (order of derived attributes) to not work correctly in some scenarios. For example, the accrued sorting order didn't work at all when used as alternative sorting order (sorting order used when the filter is expanded). Accrued sorting also wasn't applied when used in combination with smart filters; it could be configured to act as a fallback but wouldn't work if configured in that way.
  • Tweakwise App | We released a simplified way for users can switch between their instances once they log in to the app. Instead of being redirected to a separate page with a single select field, they are now presented with an in-app context menu with a list of their instances and will be redirected to it after a single click. At first glance, visually, everything stays the same.
  • Tweakwise App | We fixed a bug where an Up- & Cross-sell Recommendations with configured parameters could not be deleted.
  • Tweakwise App | It was possible for a publication task to fail if the instance used a derived attribute that took a lot of time to generate the values. We’ve effectively increased the amount of time this process is allowed to take, preventing the publication from failing because of it.
  • Tweakwise App | We’ve added a modern look to our AI Synonym suggestions, so it will be instantly clear that AI is involved in certain modules. This look and feel will come back in further AI implementations later on.
  • Tweakwise App | Google Analytics 4 import would fail on data from Google being provided in an unsupported format (Scientific notation of numbers: 1.04e-05). This is now fixed, so GA4 imports should not fail on this anymore.

Javascript

  • JS Implementation | We've made some changes for a smoother integration. Developers implementing the JS Implementation can now programmatically open and close the search results overlay. Also, we've fixed a bug when programmatically refreshing the JS Implementation.
  • JS Implementation | We added a class to the pagination component when it only has one page, which can be useful if you want to hide the complete pagination in case it makes no sense.
  • JS Implementation | We have made a few small changes to JS implementation filters (adding summary for slider type & configurable threshold for hiding top filter facets) and added metadata to the starter.js file:
  • JS Implementation | Fixed a bug where the (price) slider could break when first using the slider and then using a regular filter.
  • JS Implementation | The input fields (which were needed for technical implementation) are now optional instead of required. As it shouldn't be required in combination with the Suggestions JS.
  • Guided Selling JS | An option was added to the Guided Selling JS that non-js-implementation customers could use to redirect to an existing (non-js) lister page. Please note that custom JavaScript code/logic is still required to correctly pass on the selected filters to the (non-js) lister page.
  • JS Implementation | Sometimes when selecting a single filter, the selected filter summary didn’t show up; this has now been solved.

Magento

  • When a product belongs to multiple categories, and there are some recommendations configured for one of those categories, we now show the right recommendations. Previously the category recommendations only checked for the first category the product belonged to. We added a fallback category for recommendations as well, so we can always show at least something relevant to customers.

A grid/list view functionality for the displaying of products was added to our JS Implementation. This feature is optional for JS implementations and can be implemented in different ways. We can show only a grid, only a list (new), or a version with both grid and list view (new). For the last one, we implemented a switch functionality which will be shown next to the standard sorting dropdown. The choice made by customers will be recognized for reoccurring visits to the webshop.

At the moment, enabling this setting should be done by setting up some local Javascript documentation, as described in this article: https://docs.tweakwise.com/reference/js-js-implementation-local-configuration#uiproductsviewbutton

If this configuration is missing in you configuration, we show by default a grid view only.

  • 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