A solution has been implemented to link Attribute Landing Pages (ALPs) across different storefronts in Magento. With this multistore setup you should be able to ensure accurate SEO handling by linking ALPs across storefronts, allowing hreflang tags to be added.

Previously, each unique combination of category and filters generated a separate ALP ID per storefront, preventing the use of hreflang tags for SEO optimization. The fix in Magento2AttributeLanding 6.0 (breaking) establishes a connection between ALPs with the same parent category and filter combination across multiple storefronts. This could lead to the correct identification of duplicate ALPs on different domains (e.g., NL, DE, FR) and enables the proper implementation of hreflang tags (something you have to fix in the frontend yourself). This is essential for businesses with multiple regional storefronts, improving search engine indexing and avoiding duplicate content issues.

📘

Breaking change

Important: This update to Magento2AttributeLanding 6.0 changes the way how Attribute Landing Pages (ALPs) are saved in your Magento configuration. If you have custom code for ALPs, this update might require adjustments. If not, you can install it without issues.

  • Magento2AttributeLanding 6.0 | This update changes how Attribute Landing Pages (ALPs) are saved. This ensures ALPs for the same page in different store views are properly linked.
  • Magento2Tweakwise 8.4.2 | Fixed an issue where no products would appear if Tweakwise returned an empty result.
  • Magento2Tweakwise 8.4.2 | Fixed a bug where category views in search results didn't match the demo shop.
  • Magento2Tweakwise 8.4.2 | Resolved a compilation error for certain Magento/PHP versions.
  • Magento2Tweakwise 8.4.2 | Now displaying visuals even when the merchandising builder, Varnish, and AJAX filtering are turned off.
  • Magento2Tweakwise 8.4.2 | Fixed an issue where filtered URLs didn’t correctly redirect to the new category URL.
  • Magento2TweakwiseExport 7.3.1 | Added product as an item type in the export process.
  • Magento2TweakwiseExport 7.3.1 | Fixed an issue where child products were not correctly linked to the exported store.
  • Magento2TweakwiseHyva 4.3.2 | Now displaying visuals even when the merchandising builder, Varnish, and AJAX filtering are turned off.
  • Magento2TweakwiseHyva 4.3.2 | Fixed a JavaScript error.

Importing and exporting lists of synonyms has been made publicly available. Within Tweakwise App you can generate a csv-file with a full overview of all your synonyms, giving you the opportunity to expand your phrases in for example Excel (or another tool). Importing will update and insert modified and newly created synonyms. For deletion of synonyms you need to use Tweakwise App, but that also has been made simpler than ever before. With a bulk option, deletion of many synonyms at once is as simple as some quick mouse clicks.

Grouped products in Demoshop

In your Tweakwise Demoshop we've added a new option in the settings/preferences menu to enable grouped products! If enabled, a grouped navigation call will refresh the lister page and potential grouped products will be displayed on the product tile. The shown variants will open a modal onclick with representative data, while clicking on the main product (or first variant) will show the group in total. The screenshot below shows the grouped products highlighted, compared to the default way of showing products in the greyed out part.

Other improvements

  • Frontend API | In Tweakwise App a merchandising rule can be configured to be sorted in either ascending or descending order and as we already respected this setting in terms of order in the response, we now also do passthrough this setting via the order-field in the corresponding API-endpoints.
  • Frontend API | As part of a larger feature that will make it possible to configure items to have a different width/height using the builder, we've added colspan and rowspan information to all endpoints to which the builder can be applied.
  • Backend API | Added validation in Backend API for detecting duplicate synonym terms with 'superscript characters' example: mm² and mm2 are now seen as duplicate and will return a validation error.
  • Backend API | Created a new endpoint in the Backend API for category lookups.
  • Backend API | Categories now can be provided with an url-attribute, both via the XML-feed as via our Backend API endpoints. Implementations could choose to use these category URL's to link to pages on an easy way, instead of translating the category ID's to an URL on the application side.
  • Frontend API | Related to the new url-attributes, we've expanded some endpoints in the Frontend API with a new property called link. This will contain the category-url information as provided as on the import side and can be used to optimize your SEO. This information is added to the following endpoints: navigation, navigation-search, suggestions, facets, facets/[urlkey]/attributes.
  • Tweakwise App | Fixed a bug in the App where the AI generated tag of a synonym would disappear upon changing the approved/rejected state. Now the AI generated tag remains no matter what.
  • Tweakwise App | As it sometimes becomes a bit hard to configure a Google Analytics 4 report within Tweakwise, we've now made it possible to preview your report while editing.
  • Tweakwise App | We've updated some of our list overviews throughout the App. At least the Insights, Attributes, Items, the new Builder (coming soon) and Google Analytics 4 modules now have a fresh and consistent look. Part of it is the possibility to bulk delete records in all of these modules; making your life much easier than before.
  • Tweakwise App | When switching between different instances in Tweakwise App, the selected language is now retained and no longer resets to English as default.

Integrating Tweakwise into your platform via JavaScript solutions is the fastest way to get started. By using our JavaScript solutions you can quickly render standardized components for site navigation and search, which will always be up to date with our latest set of features. Our newest plugin for Magento stores - compatible for both Hyvä and default themes - simplifies the way of implementing Tweakwise by enabling our JavaScript solutions making use of Plugin Studio by default.

For the time being, our JavaScript plugin for Magento includes key functionalities like:

  • Search Results
  • Instant Search
  • Suggestions (search phrases and products)
  • Lister-pages (categories)
  • Personalization
  • Plugin Studio

Later:

  • Suggestions (categories and facets)
  • Grouped features
  • Recommendations
  • Guided Selling

With this release we re-introduce a tabular overview of all of your handled search phrase requests, upgrading our Insight module to the same scope of our previous modules in Tasks & Statistics. We have implemented the same filters in this new report, which can be found as a separate tab (Search Log) in Tweakwise App > Insights > Search Algorithm Usage. Additionally, if you hover your mouse over any value in the table, it will display a tooltip with pie charts that show the distributions of chosen search word among the categories.

  • Search Algorithm Usage | We enhanced the histogram readability for the Algorithm Efficiency and No-Results tabs and added a new report/tab with Algorithm Distribution, showing a distribution of all used algorithms over the selected timespan.
  • Search Algorithm Usage | Date slicers were added to the report so you can select the datetime-range for which the data should be printed. According to this same setting, the KPI-cards will show the right data.
  • Search Algorithm Usage | Searchbars were added to the histograms of the Algorithm Efficiency report and the No-Results report. Also the description of some tooltips were changed to have a more relevant meaning.
  • Filtering Usage | We enhanced the histogram readability and date slicers were added to the report. We also changed the percentages in the histogram to be relative to the selection of the category, filter and filter value.
  • Usage | We fixed a small bug on the chart-selector in the daily API statistics.
  • Task Usage | Fixed a date selection bug causing to not automatically selecting the latest day with data.

Overall improvements

  • Backend API | In order to be prepared for flexible width and height configuration on Builder-components, we have extended the Backend API Builder endpoints to support ColSpan and RowSpan settings. These settings can now be configured via the API (only positive numbers are allowed).
  • Frontend API | The feed-endpoint seemed to be broken in the Delivery API, which now has been fixed.
  • Tweakwise App | The category match did not always took excluded categories into account, in resulting in not expected behavior of the search results.
  • Tweakwise App | In the new Synonyms module there is now the option to change the type. For example changing from a regular synonym to an one way synonym. This functionality was not yet supported in our Backend API, resulting in broken functionality in the App. We also added validation for synonyms so that two duplicate synonyms can't be added.
  • Tweakwise App | Fixed a bug where AI synonym suggestions didn't show up on Synonyms create/detail page.
  • Tweakwise App | Support for multivalue attributes in the Product Tile Editor (Plugin Studio) was added.
  • Tweakwise App | Fixed a bug where clicking external attributes card on the dashboard would lead to 404 page.
  • Demoshop | While browsing on your Demoshop homepage, the settings/preferences overlay has been disabled.

JS Implementations

  • Search & Merchandising | Product tiles that were build by the Plugin Studio now handle product attributes with multiple values (e.g. if a property returns array of strings instead of just a single value there will be an element for each of those values). This only applies for the TextElement.
  • Search & Merchandising | A new configurable option edcParameters was added, allowing you to set values to variables as setup in External Data Components in the builder.
  • Search & Merchandising | Non-product-tiles (like: visuals) are not clickable anymore when no link is provided, but will be shown as just static images.
  • Search & Merchandising | On each Product Tile click a clickItem event is triggered via the Personalization Pixel if personalization is enabled for the instance.
  • JS Suggestions | When searching and getting no results for your query, we no longer show an empty container, instead it is completely hidden. It can be however shown when combined with one of two new configuration values.

Just like a configuration setting for overriding Tweakwise filter templates and sorting (merchandising) templates, now it is also possible to connect your desired Tweakwise builder template for Attribute Landing Pages. This function might become useful in case you want to AB-test multiple templates against each other, or if you want to run a specific template based on (a combination of) specific filter-values (for example brand=[brandname]). For every landing page configured via Content > Attribute landing pages > Manage pages, the builder template setting will become available in case you have setup (and published) builders within Tweakwise App.

🚧

Dependencies

In order to run this feature, you need to upgrade the following modules to their latest versions:

  • Magento2Tweakwise
  • Magento2AttributeLanding
  • Magento2AttributeLandingTweakwise
  • Magento2Tweakwise 8.4.0 | Added support for selecting builder templates on Attribute Landing Pages.
  • Magento2Tweakwise 8.4.0 | Resolved an issue where using $ as a filter name caused errors.
  • Magento2AttributeLanding 5.1.1 | Added support for selecting builder templates on Attribute Landing Pages.
  • Magento2AttributeLandingTweakwise 4.4.0 | Added support for selecting builder templates on Attribute Landing Pages.
  • Magento2TweakwiseHyva 4.3.1 | An issue where the navigation/filterbar was not appearing in search results has been fixed.

We proudly present our refreshed synonyms module in Tweakwise App, offering both new functionality as a complete fresh look. Fully operated via our Backend API, our synonyms module now offers all features you need while managing your one-way and two-way synonyms. Biggest change in this fresh update is the smooth integration of Autopilot for synonyms, where you configure how Tweakwise AI to behave. Do you want to approve automatic created synonyms by default, or do you want to check them manually first? Also, on what threshold (how many search results in the past 7 days) should the AI trigger?

Some key functionalities:

  • Bulk actions (like deletions)
  • Importing and exporting (coming soon)
  • Extended auto-synonyms configuration
  • Approval and decline options for AI synonyms
  • Easy navigation (search, filters)

This refreshed module can be seen as Tweakwise's new way of presenting information and will set the standard for other modules too. As we focus on implementing new features and functionality, we continuously try to improve UI and UX over time, making life more easy and your workload more efficient.

📘

Experimental feature

In order to start using our new Synonyms module, you can enabling it at your user preferences in Tweakwise App by clicking on your avatar and switching on the 'New synonyms' toggle.

Other improvements

  • Tweakwise App | Returning from an attribute detail or creation page in any way (go back button, save and go back, etc.) will now work correctly.
  • Tweakwise App | We improved the performance of opening a weighted merchandising rule. However, the saving performance is unchanged at the moment, as we need some time for validation. We did update the wait message to include this information.
  • Tweakwise App | The Insights module got a small revisit, now featuring the classic data table you can see in other new modules (items, attributes,..) with pagination instead of showing a block with featured reports.
  • Tweakwise App | The Task Report in Tweakwise App > Insights has been updated to show data with less delay and should show all the tasks with a maximum delay of around 10 minutes. Before this update, the data was refreshed every two hours during the day and thus resulting in long waits before tasks were showing up. We have added an explainer that tasks executed less than 10 minutes are possibly not shown yet.
  • Tweakwise App | Fixed a problem where some links to the items module didn't work, for example when clicking on an item in the categories module you'd end up on a 'Not found' page.
  • Tweakwise App | We have updated the instance information in the header of the Tweakwise App. In order to accommodate a label denoting the current instance's environment, we replaced the big button with a fresh looking link. You can see the environments of all your instances in the instance switcher (side-panel), by clicking on your instance name.
  • Demoshop | We included the instance’s environment label also to the Demoshop; it's visible next to the instance name.
  • Event Tag | The event itemClick has now been added in the Event Tag (previously known as tracking pixel), meaning you can log these events when itemId, requestId and a profileKey is provided.
  • Backend API | We implemented a new endpoint /attribute/{id}/distinct that returns distinct attribute values. This is for example needed when selecting a brand in a dropdown, so those don't all show up multiple times because there are multiple products with the same value.
  • Backend API | We extended the Backend API endpoints for categories with MerchandisingTemplateId. To better differentiate between the different templates, we also renamed existing parameter TemplateId to FilterTemplateId. This rename is a breaking change, however this was added just a couple of weeks ago and not yet in use by any. Along with MerchandisingTemplateId, we introduced MerchandisingBuilderId.

Javascript

  • Search & Merchandising JS | It is now possible to configure used builder templates via the package configuration by setting builderTemplateId effectively overriding assigned builder.
  • Recommendations JS | It was possible that related recommendation carousels showed duplicate products (as there are multiple queries) - this has now been fixed and potential duplicates are removed.
  • Plugin Studio | If a JS deployment fails you will now get an error notification that it didn’t go through (previously it would just say all went good). Unfortunately as of now we cannot state the exact reason in the notification. Sometimes you’d also got two notifications instead of one after a deployment; this has now been fixed.

📘

This update is a combination of multiple releases

  • [3.1.0] - 14-01-2025
  • [3.0.7] - 24-12-2024
  • [3.0.6] - 18-12-2024
  • [3.0.5] - 17-12-2024

Click this link to visit corresponding repository and update on Github

  • SW-Tweakwise 3.1.0 | The fields min order quantity and max order quantity are added to the feed, enabling customers to force a minimum/maximum amount of products to order when done via product tiles.
  • SW-Tweakwise 3.1.0 | Added some twig blocks in the product feed template, enabling you to change the id.
  • SW-Tweakwise 3.1.0 | In some cases cross-selling on products with variants didn't work. This update fixes this behavior and will show cross-sellings based on the product variant that is also present within the Tweakwise feed.
  • SW-Tweakwise 3.1.0 | Fixed the search functionality, so it is also working while browsing 404 pages.
  • SW-Tweakwise 3.0.7 | Fixed an issue with categories from dynamic product groups not showing up in the feed.
  • SW-Tweakwise 3.0.6 | The type of feed along with its domains were added to the list-overview in Shopware admin module.
  • SW-Tweakwise 3.0.6 | Fixed issue with categories from other sales channels being assigned to a product.
  • SW-Tweakwise 3.0.5 | Added events to be able to alter criteria and results before writing the feed to XML.
  • SW-Tweakwise 3.0.5 | Fixed issue with advanced pricing not using the rules attached to the price tier.
  • SW-Tweakwise 3.0.5 | Resolved a problem setting the group key while adding a cross-sell to a product.
  • SW-Tweakwise 3.0.5 | Made sure all categories are used including categories based on dynamic product groups

As implementing Tweakwise Personalization always needed extra development work on merchants side, we made this functionality now working out of the box. Whether you want to implement personalization now is a matter of switching this feature on/off in your Magento backend, rather than writing some bits of JS-code.

  • Magento2Tweakwise v8.3.2 | You no longer need a separate JavaScript tracking script to get personalized results in you Magento store. You can enable this feature in the admin panel under 'Send analytics events to Tweakwise' (only available when the Builder feature is enabled).
  • Magento2Tweakwise v8.3.2 | Search results now support personalization.
  • Magento2Tweakwise v8.3.2 |Fixed an issue where the "&" character in filter URLs was not displayed correctly.
  • Magento2Tweakwise v8.3.2 |Fixed a problem with the price sliders showing unnecessary HTML-code.
  • Magento2TweakwiseHyva v4.3.0 | Like in version 8.3.1, you no longer need a JavaScript tracking script for personalized results. This can be enabled in the admin panel under 'Send analytics events to Tweakwise.
  • Magento2TweakwiseHyva v4.3.0 | Personalization is now supported in search results.
  • Magento2TweakwiseExport v7.1.3 | Fixed an issue where the export process would fail because of a missing 'cron group'.
  • Magento2AttributeLandingTweakwise 4.3.6 | Fixed an issue where Varnish caching caused the wrong products to appear on Attribute Landing Pages (ALP).
  • Magento2AttributeLanding 5.0.4 | Fixed an issue where URLs for Attribute Landing Pages (ALP) had an extra slash '/' at the end. To apply this fix, you need to run the command bin/magento emico:attribute-landing:regenerate-rewrites after upgrading. This will remove the extra slashes from existing ALP URLs.
  • Magento2AttributeLanding 5.0.4 | We enabled the button that shows or hides the text editor.

We have added the opportunity to pass through all query parameters in the URL, to your connected API in a configured External Data Component. An new tab has been added to the Data Source step of an External Data Component configuration, containing an interactive form element. The tab is called 'Params' and allows you to see and manage query parameters in the URL that you have provided. With this you can also set test values to dynamic parameters (with values enclosed in curly braces) - these test values only serve for you to be able to get some results from the API (in order to proceed with the form - value mapping). When you fill in this form the URL is updated accordingly.

Tweakwise App

  • Tweakwise App | Importing of non-product-items (via XML) went wrong if there was no characteristic assigned in advance. It caused all items (including products) to be overwritten and/or cleared. We fixed this problem, and you will now get a clear error message and failed import when this misconfiguration occurs.
  • Tweakwise App | We fixed a bug where non-product-items were validated as products, while trying to import them via XML in a combined feed that contains both products as non-products. This could lead to an import error for not containing stock/price.
  • Tweakwise App | We improved a couple of unclear error messages during publish. If there is a misconfiguration that causes the publish to fail because of duplicate attribute values, it should now be better understandable that this is the cause.
  • Tweakwise App | While importing new attributes, we automatically detect whether its values should be marked as textual or as numerical.
  • Tweakwise App | During feed import, a specific invalid feed configuration could cause the import to fail and give a non explanatory error. We added a neat warning message validation for this. A small percentage of the instances also got an error on this validation even though the feed could get imported, so we changed this misconfiguration error to a warning. It won't stop the import, but incase it fails because of this, its now clear why.
  • Tweakwise App | Fixed a tiny bug in the App where the item links in the attribute preview tabs were not properly working.
  • Tweakwise App | For Product Tiles built in the editor (Tweakwise App > Plugin Studio) we have added a new way to format values in text and button elements. It is now possible to add prefix or suffix, and in case the value is numeric, it's also possible to change things like separators and precision.

Tweakwise Demoshop

  • Demoshop | In regard to the External Data Component mentioned above, Tweakwise Demoshop supports passing through the tn_edc_parameters as well, once provided in the URL.
  • Demoshop | Like the tn_edc_parameters, it is also possible to request a specific Builder-template in Tweakwise Demoshop by referring to it in an URL-parameter, via tn_b. This will overrule any builder that would otherwise be applied.
  • Demoshop | The layout of the header in Tweakwise Demoshop was slightly changed in preparation for adding more features to it alongside the 'Featured Recommendation' option. In the future you might expect to showcase you Guided Selling funnels here as well.
  • Demoshop | Frequently asked for but finally there: we do show your instance name prominently to show which instance you're currently viewing.
  • Demoshop | We added the name of the Category you are viewing to the top of the page, like a H1 heading.
  • Demoshop | The dedicated search results page was provided with a title too. It also includes a back-button to go back to the category lister page.

Frontend API

  • Frontend API | We added an endpoint to the API for retrieving all available builders, like we already had so-called catalog endpoints for filter templates, sort templates, recommendations, guided selling and languages. This enables the Magento backend to show a list of available builders to be used as override on a specific category page (a feature coming soon).

Backend API

  • Backend API | All existing Category Backend API endpoints now include the field 'status' . You can now see and edit whether a category in your Tweakwise App > Catalog is marked as active or inactive.
  • Backend API | Existing POST, PUT and PATCH endpoints of the Builder in Backend API, will from now on return an id (or object where needed) as response.
  • Backend API | Options were added to the Get All Synonyms endpoint, so you can filter on Searchterm, Type, Generated by AI or Status.
  • Backend API | Several properties/parameters (where applicable) were changed to use enums instead of strings.
  • Backend API | Attributes-endpoints in the Backend API were expanded with an indicator to show whether an attribute is marked as hidden filter. This setting can be set via POST, PUT or PATCH.
  • Backend API | All Synonyms-endpoints where only accessible once 'AI Suggestions' was enabled in your plan. We fixed this so only synonyms/suggestions is checked for that setting, all other synonym endpoints are accessible without this. The Get all synonyms call now can be requested without paging in query parameters.
  • Backend API | Builder authorization PUT-calls now have the authorization Id in the body instead of URL.
  • Backend API | Categories are now patchable without name property being required.

Analytics API

  • Analytics API | The Analytics API has been extended with a new endpoint to track item clicks. As we now also log items placed in a Builder, we ultimately can display statistics in App (like Click Through Rates).

This new report in Tweakwise App > Insights contains an overview of all the executed tasks during the last 6 weeks of the specific instance you're looking at. This graphic shows you all runs of your tasks. A red mark does tell you something went wrong, or your task did not run successfully. All details per task execution can be viewed on the detail page by selecting a day of any task. You can see when it started, when it ended, how long it took, and if there were any issues.