We made major changes to the way how product tiles are cached and rendered in our Magento 2 plugins, enabling us to serve instant components like personal products ('last viewed', 'previously bought') based on tn_profilekey. The profile key is an identifier for the person browsing your website who is initiating the navigation requests. This same identifier could be used to identify the visitor when sending events to our Analytics API.

Based on the sent events, the visitor can receive personalized results. With every event sent to our Analytics API, we can update the information in the profile and calculate new 'best matches' for that specific person, instantly. Some persistent caching mechanisms (something Magento is pretty good at) does not help increasing conversion related to the topic of personalization. We fixed this by implementing some hybrid way of doing cache for our Magento plugins, but it requires Varnish to be installed and configured.

If you have the Merchandising Builder feature enabled and enabled Varnish in your Magento configuration, we now do serve cached versions of product tiles but the order/sorting of products is instantly retrieved from our Frontend API without doing a separate request via Ajax. This ensures that instant (personal) components are much faster than before, and no extra requests (and flickering on page) is needed when loading the page.

πŸ“˜

Breaking change. Varnish required!

  • Magento2Tweakwise v7.0.1
  • Magento2TweakwiseHyva v3.0.0

This change might cause issues if you’re already using Personal components within Tweakwise Builder (know as Personal Mechandising before) but not have Varnish set up yet. This could lead to non desired behavior so we kindly request to test your new versions thoroughly before hitting production!

Other improvements

  • Magento2Tweakwise v7.0.1 | Fixed an issue with autocomplete not being visible.
  • Magento2Tweakwise v7.0.1 | Fixed a problem where attribute names weren’t recognized if they had different letter cases.
  • Magento2Tweakwise v7.0.1 | Fixed a bug that limited the number of featured products displayed.
  • Magento2Tweakwise v7.0.1 | Removed duplicate keys for attributes on landing pages.
  • Magento2Tweakwise v7.0.1 | Stopped deleting attribute names unnecessarily when saving an attribute.
  • Magento2Tweakwise v7.0.1 | Added a check to cancel old autocomplete requests if a new one is made.
  • Magento2TweakwiseHyva v3.0.0 | Fixed an issue with filter search not working when the filter is collapsed.
  • Magento2TweakwiseExport v7.1.0 | Fixed an issue where the wrong stock index table was used.
  • Magento2TweakwiseExport v7.1.0 | Added a new attribute "is_salable" to the export. This shows if a product can be sold in Magento.

In order to show inspirational content, sponsored blocks, banners and/or visuals on your listings, Tweakwise now has the possibility to import non-product items to your catalog and interact with these items as you are used to do like it being products. With this major update we prepare ourselves for the future, where inspiration and engagement (time on site) will become even a bigger part of e-commerce. Previously Tweakwise could only handle product-information, from now on we support non-product items as well.

Item types and Frontend API

Out of the box we treat all items as products. On instance-level we now can configure any feed-attribute as discriminator to distinguish types of data. We call this the item-type characteristic. When setup correctly (by Tweakwise), this item-type will then act as a non-product in Tweakwise App and will be exposed by our Frontend API. You'll notice there will be a type field for every item returned by the Frontend API.

<item>
  <type>product</type>
  <itemno>10001-101</itemno>
  <title>Tweakwise Hoodie Blue</title>
  ...
</item>
{
    "type": "product",
    "itemno": "10001-101",
    "title": "Tweakwise Hoodie Blue",
    // ...
}

Items module

As your catalog might not only contain products from now on but also contain non-products, we renamed products to items and introduce a new items module. You can activate this fresh looking module by enabling the toggle in your personal in App settings (by clicking on your avatar in the top right corner in Tweakwise App). The new items module will output all available items in your catalog and shows the item-type as a label.

Builder component

Each unique value for the item-type attribute which is configured as characteristic, will pop up as item in your builder. It makes it easy to allocate a certain spot on your lister, and assign the correct record for allocated spot. After a publish, the information will become available in the Frontend API and can be implemented in the frontend of your platform.

Separated feed import possibilities

As we have created some extra complexity in the catalog by introducing item-types, there is a major upgrade on how to configure your import-feeds. Previously we only accepted one big feed containing both product as category information, but from now on it is possible to separate your feeds.

In Tweakwise App > Connectivity > Tasks you should have configured at least one import task and one publish task. For every import task, there is a new setting available which says something on what information you want to import:

  1. Import all: Items (products and non-products) and categories will be imported and should be available in one single feed. There will be a second option to choose whether you which item-types you want to import: a) all item b) types (default), c) products, visuals.
  2. Import items only Items (products and non-products) will be imported. Categories will be ignored in case they exist in this specific feed. There will be a second option to choose whether you which item-types you want to import: a) all item b) types (default), c) products, visuals.
  3. Import categories only Categories will be imported. Items (products an non-products) will be ignored. There is no extra setting to configure.

πŸ“˜

This feature requires custom development at the frontend of your platform. This still has to be implemented in our Magento plugins as well. However, if you run Tweakwise via a JS implementation, this feature is instantly available and covered.

To learn more, go to the following topics:

If you're experiencing an issue in your shop, you should always check the Tweakwise Demoshop to determine whether the cause lies within Tweakwise or if there is something with the rest of your shop. Our Demoshop did not have major updates in ages (because of technical reasons), although we do have ambitious plans with it. By announcing our new version of the Demoshop (based on new techniques), we should be able to do update more often and to add valuable debug information our customers could use to improve their shop quality.

Our new Demoshop was completely developed with the newest techniques and does cover all functionality of the previous one. You can access our Demoshop from within Tweakwise App, like it was before via either the Demoshop menu or via Catalog > Categories.

Our Demoshop shows only functions from Tweakwise. You won't see a shopping cart, banners or landing pages. You can use this environment to check whether search, filtering, sorting, builder and recommendations are set up correctly. There is no caching involved. However, changes in for example filtering are only visible after running a new Publish task. After a successful publication, changes are immediate visible in the Demoshop.

πŸ“˜

Our new Demoshop is enabled by default for all users. However, the previous environment is still accessible in case some information is missing (or you don't like the new design). If you do want to use the old Demoshop, you should turn off the 'New Demoshop' feature in the user preferences section in Tweakwise App (by clicking on your avatar). The old environment will be phased out soon and won't get new feature-updates.

The category tree in Tweakwise App > Catalog > Categories has been extended with a products count, so it is quickly visible how many products are directly connected to that specific category. When viewing a category in detail by clicking on it, there is now a new products widget that contains all the directly connected products. This widget is infinite scroll, so all the connected products are viewable there.

Important to note is that when viewing the specific category in Tweakwise Demoshop, you might see more products, as that also shows the children category products. In the App however we only show the directly connected products for providing a better insight in those.

Other improvements

  • Tweakwise App | When a category is set as inactive, the underlying categories are also not visible/active. This behavior was not clearly reflected in Tweakwise App > Catalog > Categories. Now if a parent category is marked as inactive, the children will be display in red and italic font as well. When viewing this category in detail, the Category status checkbox is set as inactive and disabled (so you can not change it). There is also a corresponding message beneath it explaining that the parent is inactive.
  • Tweakwise App | In Tweakwise App > Search > Search algorithms we have made the attributes on some algorithms clickable, linking them to their corresponding settings in other modules.
  • Tweakwise App | In Tweakwise App > Merchandising > Templates you can now easily access the corresponding Merchandising Rule by clicking on its name.
  • Tweakwise App | In Tweakwise App > Search > Banners we've changed the translations of link-target settings (click type). We explain in more understandable words that _blank does mean 'open link in new window' and that _self does mean 'open link in same window'.
  • Tweakwise App | Publish tasks resulted in errors in case Category Match was enabled as a Search algorithm, while there were one or more categories available with more than 100 characters in length. This limit has changed to 500 chars in length, which should be suitable to all needs.
  • Tweakwise App | The threshold for Google Analytics 4 report days has been increased from 100 to 365 days.
  • Tweakwise App | In Tweakwise App > Search > Filler mutations we added a second tab 'Stoplist' which contains data of how the stoplist is used within your instance. You get a detailed overview on which stopwords (fillers) are in used per attribute.
  • Tweakwise App | We have freshened-up the way data tables look in the legacy part of our App to make the design more unified.
  • Tweakwise App | A warning disclaimer for in filter search (in Filter templates) saying it is not available in Magento was obsolete and therefore removed, as we do support this feature in Magento now as well.
  • Tweakwise App | Buttons in App that lead to support articles (Search algorithm module) now link to the correct target language depended on what you have set up in Tweakwise App.
  • Tweakwise App | Added SKU column to the attribute download file in Tweakwise App > Catalog > Attributes. It's sorted by attribute value data type. If SKU is not present or properly assigned, this column will be skipped in the file.

We've added a new API endpoint to retrieve some instance statistics via our Backend API (which requires authentication). This feature allows you to track progress and/or quality of your instance by monitoring certain statistics, as shown on Tweakwise App > Dashboard as well. The following endpoint was added to our API:

🚧

Please take notice of the fact that all requests you're doing at the API endpoints, do count for billing as well.

We've made some improvements to ensure compatibility with the latest versions of Magento (2.4.7) and PHP (8.3) across all of our modules. One notable fix addresses an issue some customers encountered while trying to install the latest version of the Attribute Landing Tweakwise module. Previously, due to a version number error, the updated version was released but not made available. This has been rectified, and the correct version is now both released and published.

  • Magento2Tweakwise v6.0.1 | Fixed an issue where filters in the Attribute Landing Page (ALP) module were not selectable when accessed from a backend with a different URL.
  • Magento2Tweakwise v6.0.1 | Added support for PHP 8.3 and Magento 2.4.7.
  • Magento2Tweakwise Export v7.0.1 | Added support for PHP 8.3 and Magento 2.4.7.
  • Magento2AttributeLandingTweakwise 4.3.4 | Fixed a bug where the Tweakwise filter template was not saving correctly.
  • Magento2AttributeLandingTweakwise 4.3.4 | Added support for PHP 8.3 and Magento 2.4.7.
  • Magento2AttributeLanding 5.0.1 | Added support for PHP 8.3 and Magento 2.4.7.
  • Magento2TweakwiseHyva 2.4.1 | Added support for PHP 8.3 and Magento 2.4.7.

These updates ensure smoother compatibility with the latest versions of Magento and PHP while addressing specific issues encountered by some customers.

The information which is shared in the table with diagnostic data of a task has been expanded with some extra insights. From now on it is possible to derive information on why a specific task was triggered (and by whom). There can be four different reasons why a specific task was executed:

  1. External: The task is triggered via API url
  2. Manual: The task is triggered in App with the 'start now' button (we do show which person triggered the task)
  3. Auto: The task is triggered during the specified times in 'trigger' tab
  4. Chain: The task is triggered as a successor of a previous task

The task statistics can be consulted at Tweakwise App > Statistics & Reports > Tasks

Other improvements

  • Tweakwise App | In Tweakwise App > Search > Search algorithms a direct link/button to the relevant support-article was added, so the information on how to use and configure this algorithm is easy accessible
  • Tweakwise App | Fixed an annoying language bug that basically affected everyone! Tweakwise App should no longer fallback to English and just remember the language that is configured on a per user basis.
  • Tweakwise App | Somehow the searchbars at Tweakwise App > Recommendations were broken, which should be fixed by now.

Tweakwise contains a stoplist for 9 different languages. These words are filtered out of the index because they generally aren’t relevant to the search requests. A stop word is a word with no linguistic meaning, like β€˜the’, β€˜a’ and β€˜an’.

🚧

Please note! These are advanced settings. Changes can have a considerable effect on the search results of your website. Please read the documentation before removing stopword from the list.

By removing these words from the index, the search function will become faster and more effective. However, this behavior can result in issues when a certain words should be included in the search, for example when a stop word is part of a product name. With the specific word still being present in the list of stop words, the search results will be empty or incomplete (because the word is excluded from the index).

In order to alter some functionality of our search algorithms, it now is possible to make modifications to these so called stop lists by yourself. It is possible to both add or remove certain words from these lists, simply by specifying those in a separate App module.

Covered languages: Dutch, English, French, German, Italian, Portuguese, Norwegian, Spanish, Swedish.

The module to add or remove words from the stop words can be found at Tweakwise App > Search > Filler mutations

We finally added support for our Search in filters feature, which can be easily setup in Tweakwise App > Filtertemplates and now works out of the box in both Magento2Tweakwise plugin as Magento2TweakwiseHyva. This does mean that we offer native support for both Luma as Hyva themes, but in case of a custom theme the frontend implementation has to be implemented by yourself.

Click here to read our initial release note on this Search in filters feature.

Other improvements

  • Magento2Tweakwise 6.0.0 | Fixed an bug with wrong filterurls when Ajax was disabled. This bug prevented from two filters to be selected at the same time.
  • Magento2Tweakwise 6.0.0 | Refactored code. Breaking (see below).
  • Magento2TweakwiseExport 7.0.0 | Fixed a bug where SKUs were used instead of IDs, which slowed down the export if you used characters as SKUs. This resulted in an 84% increase in export speed for affected customers. Results may vary depending on the customer.
  • Magento2TweakwiseExport 7.0.0 | Refactored code. Breaking (see below).
  • Magento2AttributeLandingTweakwise 4.3.2 | Bug fix for incorrect URLs as filter links, pointing to Attribute Landing Pages (ALPs). Due to a bug, the domain name was included twice in the URL when linking to an ALP page. This release fixes that. Furthermore, code is refactored to follow coding standards. This module has no breaking changes.
  • Magento2AttributeLanding 5.0.0 | Refactored code. Breaking (see below).
  • Magento2TweakwiseHyva 2.4.0 | We fixed an issue that gave a notice when Searchbanners where activated in the Hyva theme, but there where no banners to show based on Tweakwise API response. This issue is not related to the introduction of the Search in filters feature (although this was introduced in this version).
  • Magento2TweakwiseHyva 2.4.0 | We fixed a bug where the search field template was always active, even when it shouldn't be.

πŸ“˜

Coding standards (PHPCS and PHPMD rules

We've made improvements to the code to follow coding standards (PHPCS and PHPMD rules) in order to make our code easier to read and maintain. However, this caused some changes that might break things for some modules. If a module has breaking changes, we've updated its major version number. So, if you want to upgrade to the latest version, you'll need to do it explicitly. You won't upgrade to this version by mistake.

In order to be able to manipulate the HTML-response of the Suggestions JS (part of a Tweakwise Javascript implementation), a data-item-id was added to each of the product item suggestions. The id corresponds with the data-response of our API and can be used to inject or update some custom HTML.