Our recently introduced Demoshop now reflects instance settings in relation to Personalization being enabled or not. If not, setting of your profile key will be hidden and no profilekey value will be sent over with any request. You can now also manually trigger analytics events (both product view and product purchase) from the product's quick view. The only event that is being fired automatically (if personalization is on for the instance) is the search event.

Javascript demo

There is also a new Demoshop for customers using our JavaScript implementations. This is set up automatically when an instance is created and you are able to see and interact with the implementation. Custom product tiles are supported out of the box and the implementation code (see blue button in the bottom of the page) can be just copied and pasted by customers to try out. This code does reflect instance settings and should work out of the box.

There is currently no button to get there, but you can expect one soon in the new JS Hub. For now, the easiest way to get there is to change /navigation/ (or /search/) in the URL to /javascript/.

Note: Most customers have the Suggestions module enabled by default, you can disable it manually via a GET-query parameter if you want to see an implementation with instant search, e.g. ?suggestions=false. You can preview any JS implementation with any font available in Google Fonts with another query parameter, e.g. ?font=Great+Vibes (uses Great Vibes Google Font).

Other improvements

  • Tweakwise App | A new module was introduced, replacing all three properties modules (feed, external, derived) and merging the functionality into one new Attributes module. Try it out by toggling the new flag in your user menu in Tweakwise App. In this module you can enjoy fast search and filtering among all of the product attributes at once. Attribute detail pages remain the same. Note: The one thing missing to make this functionally equivalent to the old modules (still accessible) is a delete button in the list view, for that you may need to go back to those modules.
  • Tweakwise App | A preview tab was added to Tweakwise App > Recommendations > Featured products which shows a table with products, the attributes configured in the selection tab, and a refine column. That final Refine column shows the category id if 'display single product per (sub)category' was configured, or shows the attribute value if 'display single product based on a unique property' was configured as refine category option in the tab General. The main purpose of this column is to verify whether products are grouped correctly or not. If there is no refined category selection, the columns will be hidden. Additionally, it shows the limit of products selected in the General tab.
  • Tweakwise App | Removing the link between a property and a connected filter template can from now on been done in bulk from within the property detail 'Used' view in Tweakwise App > Catalog > Properties. For the specific property, one or multiple filter templates can be selected from which you want to cancel the connection.
  • Tweakwise App | The sorting of filter values in case of a derived property can now be done manually as well. This option was already available for other properties, but not yet possible for derived properties. Apart from manual sorting, you can choose for sorting based on: product amount, alphabetic, reversed alphabetic, accrued, numerical.
  • Tweakwise App | A change was made in the new items module where we now show the image and url values of the attributes that are assigned as special characteristics (by Tweakwise). Now thi module shows the values exactly like our Demoshop and how our Frontend API returns them.
  • Tweakwise Demoshop | When going to the new Demoshop (which runs as an experimental feature still) from the Tweakwise App > Demoshop without selecting a category, you would end up on a 404 page. This has been now prevented and you must always choose a category.
  • JS Implementation | In the core of our Javascript implementations (used for Instant Search), we added a new configuration option ui.scrollBehavior with which you can choose to either have smooth or instant-jump scrolling on navigation and filtering.
  • JS Implementation | It is now possible to show checkboxes in combination with color facets. This is not done through configuration but rather by use custom customer styling. A detailed explanation for the color facet can be found here.

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 Personalization 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.

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.