Changelog - Theme Module
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased
1.4.1 - 2025-11-17
Added
-
Added installation instructions to README
-
Add notes about unsupported PageBilder slider features Autoplay is no longer supported for A11Y with the CSS SnapSlider introduced in Hyvä 1.4.0. Also, Infinite Scroll is not supported by the CSS slider.
Changed
-
Fix error when default-theme or default-theme-csp are composer replaced
For more information, please refer to issue #488 -
Fix table name prefixing in recurring data setup script
Previously, the script was broken if global table name prefixes were configured.
For more information, please refer to issue #489
- Fix a number of minor bugs in the Snap Slider
- Fix scroll-bounce edge case when there is not enough space available.
- Exclude
<style>tags from slider contents. - Prevent error when group-pager is set and there are no slides
For more information, please refer to issue #490
Removed
- Nothing removed
1.4.0 - 2025-11-10
Added
- Add new AlpineJS Slider
This also replaces the Slider viewmodal for this simpler AlpineJS plugin and in so the slider viewmodal has been marked for deprecation.
For more information, please refer to issue #98
-
Add AlpineJs based HTML Dialog
For more information, please refer to issue #481 -
Add Support for bfcache
For more information, please refer to merge request #567 -
Add Theme Module version in the footer next to the Magento version
For more information, please refer to issue #358 -
Add speculation rules to the theme as a stable feature
For more information, please refer to merge request #571
Changed
- Fixed TypeError in PageJsDependencyRegistry when block HTML contains Phrase object
For more information, please refer to issue #480
Removed
- Nothing removed
1.3.20 - 2025-11-04
Added
- Nothing added
Changed
- Resolve critical bug in the
isHyvaThemefunction for static assets
TheisHyvaThemefunction, introduced in 1.3.18 for the Base Layout Reset used by Theme 1.4, could cause a 500 error due to aNULLtheme value. This is now resolved by handling this condition.
Removed
- Nothing removed
1.3.19 - 2025-11-04
Added
- Nothing added
Changed
- Resolve critical bug in setup script
In 1.3.18, the parent_id of the default theme was set to NULL when the theme was older than 1.4.0.
This is now fixed and is only applied if the installed default theme has a version >= 1.4.0.
Removed
- Nothing removed
1.3.18 - 2025-11-03
Added
- Add HyvaThemes service class This class can be used to check if a theme is a Hyvä theme.
Changed
-
Disable SVG icon caching by default
For more information, please refer to issue #462 -
Fix integration tests with default-theme-csp installed
For more information, please refer to issue #482 -
Fixed Regular and Special Pricing does not work on Product List with Magento 2.4.8
For more information, please refer to issue #470
Many thanks to Pieter Hoste (Baldwin) for the contribution!
- Removed Hard dependency on Magento's PageBuilder module
It is now possible to remove the Magento's PageBuilder using a composer replace.
For more information, please refer to issue #478
- Fixed Auto-deferred Alpine components selector causes issues with nested custom option components
For more information, please refer to issue #473
Removed
- Nothing removed
1.3.17 - 2025-09-02
Added
- Nothing added
Changed
-
Move Alpine Plugin Files to Base Area
For more information, please refer to merge request #560 -
Reverse picture tag source inclusion for MediaHtmlProvider
For more information, please refer to issue #477
Removed
- Nothing removed
1.3.16 - 2025-08-19
Added
-
Add addPriceData option to ProductList view model
For more information, please refer to issue #446 -
Add ViewModel to expose Magento versions
For more information, please refer to issue #476 -
Add optional arguments for ProductListItem view model pricerenderer
For more information, please refer to merge request #513
Many thanks to Akif Gumussu (Aquive) for the contribution!
Changed
- Avoid duplicate queries to load CSP fetch policies
For more information, please refer to merge request #547
Many thanks to Igor Wulff (Youwe) for the contribution!
-
Improve Speculation rules exclude list for none subdomains
For more information, please refer to merge request #554 -
Allow disabling block level caching of product list item templates
For more information, please refer to issue #466 -
Fix error in Safari 18 for missing Navigation Api
For more information, please refer to issue #469 -
Fix check if block is cached in RegisterPageJsDependencies
For more information, please refer to merge request #468 -
Fix CLI command events:generate:module by not checking app state code
For more information, please refer to issue #467 -
Fix issue with missing tax rates from http context
For more information, please refer to issue #443
Many thanks to Jakub Idziak (Macopedia) for the contribution!
- Improve in-memory path IDs
For more information, please refer to issue #443
Many thanks to Thomas Klein (ATI4 Group) for the contribution!
Removed
- Nothing removed
1.3.15 - 2025-07-03
Added
-
Some new methods to the Media viewmodel that allow more advanced features when the Hyva Commerce media optimization module is installed
For more information, please refer to merge request #543 -
HyvaCSP View Model to Admin Block Dictionary
For more information, please refer to merge request #540 -
Add Lucide Icons for Hyvä Commerce
For more information, please refer to issue #460
Changed
-
Fixed getPriceDisplayType can return string as config values could also be returned as strings "1", "2", "3" and this would end up with exception
For more information, please refer to merge request #544 -
Move Alpine Files to Base Area
For more information, please refer to merge request #538
Removed
- Remove private TTL hardcode
For more information, please refer to issue #441
1.3.14 - 2025-05-26
Added
- Nothing added
Changed
-
Fixed one more usage of implicit nullable param which is deprecated since PHP 8.4 For more information, please refer to merge request #535
Many thanks to Pieter Hoste (Baldwin) for the contribution!
-
Resolve a minor difference between Alpine CSP and non Alpine CSP For more information, please refer to merge request #525
Removed
- Nothing removed
Added
-
Lucide Icons
To transition all Hyvä Commerce and Hyvä Projects to a unified icon set, we're now introducing Lucide Icons as an alternative to Heroicons.
New projects will begin using them immediately, and we plan to update the default Hyvä theme with this new icon set in an upcoming release.A huge thank you to Siteation for their valuable contribution in creating and sharing this icon pack with us.
We also recommend checking out their dedicated Hyvä Lucide Icons and their other excellent Hyvä icon options.For more information, please refer to issue #460
1.3.13 - 2025-04-22
Added
- Script type to
hyva.activateScriptsFor more information, please refer to issue #445
Changed
-
Explicitly mark nullable parameters for PHP 8.4 compatibility For more information, please refer to issue #459
-
Make code to initially show modal dialogs CSP compatible For more information, please refer to issue #458
-
Improve HtmlPageContent class For more information, please refer to issue #457
Many thanks to Christoph Hendreich (In Session) for the contribution!
-
Downgrade AlpineJS to v3.14.3 For more information, please refer to merge request #457 and Alpinejs merge request #4509
-
Fix Area code is not set error in CLI commands instantiating HyvaCsp template variable For more information, please refer to issue #455
-
Fix phpdoc in
src/Model/ViewModelRegistry.phpFor more information, please refer to merge request #483Many thanks to Frederik Rommel (WEBiDEA) for the contribution!
Removed
- Nothing removed
1.3.12 - 2025-03-17
Added
-
Authorize speculation rules script tag on page without unsafe-inline policy
The
<?php $hyvaCsp->registerInlineScript() ?>call was previously missing.
For more information, please refer to issue #449Many thanks to Christoph Hendreich (In Session) for the contribution!
-
Add frontend extension point for section data
A new method
window.processSectionDataBeforeDispatchcan be intercepted by extensions to mutate section data before it is dispatched.For more information, please refer to merge request #523
Changed
-
Fix error handling existing script tag attributes with spaces in the value when injecting a nonce attribute
For more information, please refer to issue #450
-
Improve hyva.createBooleanObject resilience
When migrating non-csp alpine components, it could happen that the value property was accidentally overwritten using the
=operator. This change protects against this and will assign the value to the internal value property instead.For more information, please refer to issue #448
Removed
- Nothing removed
1.3.11 - 2025-03-06
Added
-
Support strict CSP mode
These changes support using a Hyvä theme or other Hyvä products like the checkout without the Content-Security-Policies
unsafe-evalandunsafe-inline. However, the required changes to the theme or other products are not part of this release.Most notably, this release will use Alpine-CSP if the unsafe-eval script-src CSP is not present.
For more information, please refer to the Hyvä CSP Developer documentation for theme and the checkout.
Changed
-
Change init-external-scripts event trigger
Replaced mouseover with mousemoved event as one of the triggers for the init-external-scripts event, since the other one was triggered on page-load in page speed insights tests now.
For details, please refer to merge request #512.
Many thanks to Sergiy Pikhterev (Transform-Agency) for the contribution!
Removed
- Nothing removed
1.3.10 - 2024-12-06
Added
-
Add experimental view transitions
View Transitions is a new browser API allowing for smooth and engaging animations during page transitions.
This can significantly improve user experience by providing visual cues and reducing the perception of page load times.
The feature is disabled by default. It can be enabled in the "Hyvä Themes > Experimental > Enable View Transitions" system configuration.Further resources: - caniuse: https://caniuse.com/mdn-css_at-rules_view-transition
- Release notes of Chrome 126: https://developer.chrome.com/blog/new-in-chrome-126#cross-document-transitions
- Learn more about cross-document View Transitions: https://developer.chrome.com/docs/web-platform/view-transitions/cross-documentFor details, please refer to merge request #467.
-
Lazy load PageBuilder slider background images
Lazy loading can be enabled for each slider background individually.
The default can be configured in the system configuration at "Hyvä Themes > PageBuilder > Images > Enable lazy-loading by default for background images".For details, please refer to merge request #472.
-
Allow lazy loading PageBuilder images / add image dimensions
For details, please refer to merge request #475.
-
Add position
noneto ModalBuilderThis allows the manual positioning of the modal box.
For details, please refer to merge request #435.
Many thanks to Andy Eades (elevate web) for the contribution!
-
Add Image view model
The view model only has the method
getPlaceholderImageUrl. The method is required by Hyvä Enterprise.For details, please refer to merge request #462.
-
Add Vimeo player host to CSP policy
For details, please refer to merge request #468.
Many thanks to Ole Schäfer (Customgento) for the contribution!
-
Add Date and Locale PHP view models
The view models are used in Hyvä Enterprise and could also be useful in general.
-Date::getDateYMD(?string $date = null): Return the input date or the current date in UTC timezone ('Y-m-d')
-Locale::getLocale(): return the store locale, for example,en-US.For details, please refer to merge request #470.
-
Add an explanatory comment in the template for crossorigin attribute on script element
For details, please refer to merge request #473.
Many Thanks to Alex Galdin (IT-Delight) for the contribution!
-
Allow overriding hyva.formatPrice grouping and decimal separator with custom options
Previously, customizing the decimal or thousands separator character required overriding the
formatPricefunction.
Now thegroupSeparatorordecimalSeparatoroptions can be used instead. For example:
For details, please refer to issue #378.
Many Thanks to Alex Galdin (IT-Delight) for the contribution!
-
Add Notice to Old CAPTCHA Config Area
For details, please refer to issue #415.
-
Add customer attribute validate_rules frontend validations
The new validation rules are used by Hyvä Enterprise but could be useful in a broader context.
For details, please refer to issue #357.
-
Add config option to disable homepage demo content
For details, please refer to merge request #490.
-
Add Google Maps API view model
The GoogleMapsApi view model provides all the public methods of the
Magento\PageBuilder\Block\GoogleMapsApicore class.
It allows rendering the PageBuilder Google Maps template using a generic Template block.For details, please refer to merge request #495.
Changed
-
Upgrade Alpine.js from 3.12.3 to 3.14.6
For details on what changed, please refer to the Alpine.js release notes.
-
Fix PageBuilder Products content-type admin preview
Previously, the preview of product carousels or product grids in PageBuilder was broken, if a Hyvä frontend theme was used.
For details, please refer to merge request #478.
-
Bundle mollie payments integration
For details, please refer to merge request #497.
-
Allow SVG Icon titles containing ampersand
Previously this caused an error to be thrown.
For details, please refer to issue #391.
-
Fix PHP type error on
getConfiguredMaxCrosssellItemCountFor details, please refer to issue #393.
Many thanks to Emils Malovka (magebit) for the contribution!
-
Improve browser speculation rules
Speculation Rules no longer cause an error in Microsoft Edge.
Also, the default speculation rules now include cached pages without a .html suffix.
Finally,type="speculationrules"is used instead of JavaScript to render the rules.For details, please refer to merge request #466.
Many thanks to David Lambauer (run-as-root) for contributing to the improvements!
-
Fix hyva-themes.json generation during setup:upgrade on Magento 2.4.7+
For details, please refer to issue #399.
Many thanks to Pieter Hoste (Baldwin) for the contribution!
-
Use x-defer="idle" for cookie-banner to make it more reliable
For details, please refer to merge request #492.
-
Switch from getBaseUrl to getDirectUrl in LogoPathResolver
This improvement allows for easier modifications via plugins.
For details, please refer to merge request #476.
Many thanks to Tjitse Efdé (Vendic) for the contribution!
-
Fix SVG icon view model accidentally changing hex color values while disambiguating IDs
For details, please refer to issue #362.
-
Skip CSS and JS minification for assets from Hyvä Themes
The minification implementation in core Magento is not beneficial (as modern HTTP compression does a better job), and in some cases introduces incompatibilities with Hyvä code.
For details, please refer to merge request #482.
-
Change default-section-data script type so it does not confuse Chrome on Linux
For details, please refer to issue #409.
-
Set version cookie to fix Login as customer from admin
For details, please refer to issue #413.
-
Access cache_lifetime with the magic method in case it is implemented on a block
For details, please refer to issue #395.
-
Merge records with duplicate src path in hyva-themes.json
For details, please refer to issue #382.
-
Exclude tailwind container query classes from being masked
For details, please refer to issue #419.
-
Allow specifying the product attribute to render using the attribute code as a string argument
For details, please refer to issue #424.
-
Fix caching of block identities in block_html cache during ESI requests
For details, please refer to issue #418.
-
Only apply page JavaScript dependencies to Hyvä themes
Third-party extensions using the feature previously could cause side effects during email rendering.
For details, please refer to issue #429.
Removed
- Nothing removed
1.3.9 - 2024-05-10
Added
- Nothing added
Changed
- Fixed: Default section data not dispatched on reload
Previously the default section data for new visitors was only dispatched once. This only affected visitors without a session.
For details, please refer to merge request #457.
- Fixed phpdoc type for class-string in ViewModelRegistry
For details, please refer to merge request #458.
Many thanks to Thomas Hauschild (E3n) for the contribution!
Removed
- Remove accidental aria-hidden on SVG attributes
In version 1.3.6, the icon update unintentionally included an additional aria-hidden="true" attribute from the heroicon source on all bundled heroicons. This attribute is now removed so it is possible to use the SVG icons together with accessible technology.
For details, please refer to issue #387.
1.3.8 - 2024-04-25
Added
- Nothing added
Changed
- Move the General section to the top of Hyvä system configuration setting sections
For details, please refer to issue #363.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Verify the form key for customer/ajax/login after the fallback theme is applied
This plugin sort order change is part of a fix for the guest login in checkout for the Luma fallback checkout.
For details, please refer to merge request #452.
- Exclude products not visible in catalog from custom sliders
For details, please refer to issue 368.
Removed
- Nothing removed
1.3.7 - 2024-04-08
Added
- Add Alpine.js x-defer directive
This new directive allows deferring the initialization of an alpine component until a given condition. Possible attribute
values are interact, intersect, idle, and event:eventname.
It can help reducing the TBT on pages with many Alpine components.
The theme-module automatically injects the directive into a number of components with JavaScript.
These automatically deferred components can be configured with both layout XML and in the Magento system configuration.
For details, please refer to merge request #444 and the x-defer documentation.
- Add Alpine.js x-ignore directive
The x-ignore directive - available in Alpine v3 - has been backported to Alpine v2 for Hyvä 1.3.7.
It is utilized in the x-defer directive implementation.
For details, please refer to merge request #444 and the x-defer documentation.
- Add PHP View Model to support Magento_OrderCancellationUi
For details, please refer to merge request #445.
- Speculation-rules-api Page Pre-Render Experiment
The new speculation rule browser API allows for an improved user experience by pre-rendering pages a user is likely to visit next based on JSON based rules. For more information on the browser API please visit developer.chrome.com/docs/web-platform/prerender-pages and nitropack.io/blog/post/speculation-rules-api.
By default the feature is disabled. It can be enabled in the system configuration found at
Hyvä Themes > Experimental > Experimental Features > Enable Preloading Speculation Rules
For details, please refer to merge request 448.
- Call IsCaptchaEnabledInterface::isCaptchaEnabledFor for extension compatibility
Previously the recaptcha implementation only accessed the system configuration values directly.
By also using the interface compatiblity with related third party modules is improved.
For details, please refer to issue 356.
Changed
- Gracefully handle browsers without intersection observer
Now intersection observer callbacks will fall back to executing immediately on supported browsers that don't implement InteractionObserver natively (currently Mobile Opera v73 is the only one of the supported browsers missing InteractionObserver).
For details, please refer to merge request 449.
- Fix default section data generation
Previously the default section data implementation introduced in 1.3.6 caused some issues with the Magento_InstantPurchase module under some circumstances as well as potentially causing messages not to be shown to the customer.
For details, please refer to issue 371.
Removed
- Nothing removed
1.3.6 - 2024-03-28
Added
- Allow JS to be rendered on a page only when it is needed
This feature enables several performance improvements on product listing pages.
JavaScript can now be rendered on a page only when it is required.
For details, please refer to merge request #425.
- Add hyva.activateScripts method
The hyva.activateScripts method can be used to have a browser process scripts in HTML snippets from Ajax reponses.
For details, please refer to merge request #434.
- Make the amount of crosssell items configurable in admin
For details, please refer to issue #257 and the associated merge request.
Many thanks to Antonio Carboni (Magenio) for the contribution!
- Enable the title attribute for SVG icons in CMS content
Allow icon directives in the backend to assign a title, e.g. {{icon "heroicons/solid/shopping-cart" classes="w-12 h-12" title="Shopping Cart"}}
For details, please refer to merge request #426.
Many thanks to Andreas Pointner (Copex) for the contribution!
- Add formatting options argument to hyva.formatPrice()
This change allows for easier customization of frontend price rendering.
For details, please refer to merge request #431.
Changed
- Avoid loading section data for customers without a session
This is a performance improvement to reduce the number of Ajax requests to the server.
We don't expect this will affect many extensions (if any), but just in case please refer to the 1.3.6 upgrade notes for more information.
For details, please refer to issue #279 and the associated merge request.
- Restore view model registry param annotation to avoid having to type hint return values
This functionality was originally contributed to release 1.1.9 by Thijs de Witt and was accidentally removed in 1.1.18.
For details, please refer to merge request #411.
Many thanks to Matthijs Perik (Ecomni) for the contribution!
- Memoize category tree data
This is a performance improvement to reduce server load in case both the mobile and the desktop category menus have the same depth.
For details, please refer to merge request #386.
Many thanks to Jeroen Boersma (Elgentos) for the contribution!
- Fix Exception Return value must be of type string, null returned for payment method title
For details, please refer to issue #339 and the associated merge request.
Many thanks to Michiel Gerritsen for the contribution!
- Fix input validation message with step nearest allowed values
For details, please refer to issue #340.
- Reload section data if a request fails
Previously the frontend would get stuck without section data if the request failed at the wrong moment.
For details, please refer to issue #347.
Many thanks to Harsh Tank (Graas.ai) for the contribution!
- Use optimized versions of Heroicons
Previously some Heroicons contained static colors or stroke width inside the SVG on the path element.
For details, please refer to merge request #429.
- Add missing form key validation for customer Ajax login controller
For details, please refer to merge request #430.
Many thanks to Talesh Seeparsan for reporting the issue!
- Use hyva.trapFocus for modals
Previously the Hyvä modal library used a different implementation relying on the inert element attribute.
This change to the more lightweight implementation improves consistency and resolves issues with some third-party libraries when used inside of modals.
For details, please refer to merge request #432.
- Fix: exclude hidden elements from focus targets
Previously hidden elements were used as focus targets leading to inconsistent behavior.
For details, please refer to merge request #433.
- Fix: do not call focus() on window object when modal is closed
Previously, if no valid focus-after-close target was specified when showing a modal dialog, the focus() method was called on the window object.
For details, please refer to issue #361.
Removed
- Nothing removed
1.3.5 - 2023-12-20
Added
- Add method hyva.setSessionCookie
The method was added because hyva.setCookie does not allow setting a cookie with Session duration if a default cookie lifetime is configured.
For details, please refer to issue #313.
- Add feature for showing HTML form validation messages
Previously all form validation messages were rendered as text. By returning a JS object with a type and a content
property from the form validation rule it will render the HTML without escaping it:
`{ type: 'html', content 'click me"' }
For details, please refer to merge request #413.
- Allow adding input type or attribute-based form validation rules
This change allows hooking into default INPUT types (e.g. url) and browser attributes (e.g. accept for allowed file extensions) and associate form validation rules that way.
For details, please refer to merge request #410.
- Add aria-expanded attribute state to modal trigger
Previously it was not possible to specify the element to focus after a modal was closed, if the element was outside of the modal component, or if the modal was opened by triggering a custom event.
When opening a modal by calling the show() method, the element to focus after it is closed can be specified as a selector string argument, e.g. @some-event.window="show('#some-trigger')".
When opening a modal with an hyva-modal-show event, the element to focus after it is closed can be specified as an argument in the event details: {detail: {name: 'my-dialog', focusAfterHide: '#some-trigger'}}
When rendering the JS to open the modal with the modal view model in PHP, the element selector can be specified as an argument to getShowJs: @click="<?= $modal->getShowJs('#some-trigger') ?>"
For details, please refer to merge request #381.
Changed
- Nothing changed
Removed
- Nothing removed
1.3.4 - 2023-11-21
Added
- Nothing added
Changed
- Restore Alpine.js v2 compatibility
The hyva-themes/magento2-theme-module has been incompatible with themes using Alpine v2 since release 1.2.6.
For more details, please refer to merge request #402.
- Fix etc/module.xml sequence tags
Previously the module sequence was declared in a way that it did not have any effect.
For details, please refer to issue #323.
- Apply cookie_secure setting instead of hardcoding to false
Previously the cookie_secure value was hardcoded to false instead of using the value set for PHP.
For details, please refer to issue #322.
Removed
- Nothing removed
1.3.3 - 2023-11-16
Added
-
Add method getCustomerEmailsForReviews to ReviewList view model
This method is useful when rendering Gravatars for customer reviews.
For details, please refer to issue #321.
-
Allow custom titles for SVG icons
Previously, the icon name was rendered as the title on SVG icons for accessibility purposes.
Now a custom title can be specified to replace the default, by passing it as a title in the attributes argument:['title' => 'Example'].For details, please refer to issue #315.
Changed
-
Fix: Properly render boolean value SVG attributes
Previously, boolean attributes to SVG icons had to be specified as strings, for example
['aria-hidden' => 'true'].
Specifying the value as a booleantrueorfalsefailed. With this change, both string and boolean values work as expected.For details, please refer to merge request #387.
Many thanks Stephanie Ehrling (ECOPLAN) for the contribution!
-
Fix: Do not render SVG icon title if aria-hidden is 'true'
Previously the title was only omitted if the aria-hidden value was specified as a boolean
true.For details, please refer to merge request #388.
Many thanks Stephanie Ehrling (ECOPLAN) for the contribution!
-
Fix: Move SortableItemInterface preference into global scope
This change resolves the issue "Error: Cannot instantiate interface Hyva\Theme\Block\SortableItemInterface" when editing CMS content in the admin.
For details, please refer to merge request #391.
Removed
- Nothing removed
1.3.2 - 2023-09-30
Added
- Nothing added
Changed
-
Build account top menu form individual blocks instead of a hardcoded template
This is a much-requested, although backward compatibility breaking, change. It allows items to be added to the account top menu using layout XML without requiring a template override.
In the past, this has often led to conflicting template overrides from third-party extensions.Please refer to merge request #378, or see the 1.3.2 upgrade notes for more information.
-
Allow fields without rules have an
@input="onChange"callbackThis is a fix for a regression introduced with release 1.3.0.
For more information please refer to issue #314.
-
Make section data cache handling more robust
This change fixes a reported but unreproducible issue on Adobe Cloud installations.
For more information please refer to issue #317.
Removed
- Nothing removed
1.3.1 - 2023-09-06
Added
- Nothing added
Changed
-
Dispatch messages from cookie during alpine:initialize for Safari on iOS compatibility
Previously a theoretical race condition on cached pages could cause messages not to show on Safari on iOS.
For more information please refer to issue #309.
-
Instantiate default product price renderer block if not present
During custom Ajax requests that render a single block without loading the default layout, the price renderer block
is not be instantiated. Previously this would cause no price to be rendered during such requests.For more information please refer to issue #240.
Removed
- Nothing removed
1.3.0 - 2023-08-31
Added
-
Added aria-live and aria-state to validation library
-
Add title child node and role="img" attribute to SVG icons if missing
-
Added ViewModel to render payment titles in order info if available
The class
\Hyva\Theme\ViewModel\Sales\PaymentInfowas added. -
Added ViewModel to format radio option price adjustments
The class
\Hyva\Theme\ViewModel\Product\RadioPriceRendererwas added.
Changed
- Nothing changed
Removed
- Nothing removed
1.2.9 - 2023-12-21
Added
- Nothing added
Changed
- Fix typo in CSS class 'ointer' to 'pointer'
The previous release 1.2.8 introduced a typo in the class name in Magento_Swatches/templates/product/swatch-item.phtml that is fixed now.
For more information, please refer to merge request #983.
Many thanks to Lars de Weert (Made by Mouses) for their contribution!
- Fix layout XML schema violation regression
This change fixes a regression introduced in release 1.2.8. The tailwind class md:grid-cols-2 is not compatible with
the native Magento layout container htmlClass attribute regular expression, resulting in a broken customer login page.
The error made it into production because test instances used a patched XSD as described as a workaround in the docs.
The offending class was moved into the web/tailwind/components/customer.css file as part of the customer-login-container class.
For more details, please refer to merge request #998.
Removed
- Nothing removed
1.2.8 - 2023-11-22
Added
- Nothing added
Changed
- Accommodate additional blocks on customer login page without breaking layout
Previously, when adding another widget to the login container, the layout did not automatically wrap the widget to the next line, leading to a broken layout.
BC Note: the web/tailwind/components/customer.css styles need to be manually removed from existing themes after the upgrade for a theme to profit from this change.
For more information, please refer to issue #775.
- Update Tailwindcss from 3.2.4 to 3.2.7
This change is backward compatible. The newer tailwind version fixes some issues.
For a list of changes in Tailwindcss, please refer to issue #820.
- Fix: layered navigation on 1column page layouts hidden
For more information, please refer to issue #678.
Many thanks to Ivan Matsii (Perspective Magento Team) for the contribution!
Removed
- Nothing removed
1.2.7 - 2023-11-17
Added
- Added new containers for Customer Custom Attributes
Containers were added to the customer_account_create, customer_account_edit, customer_address_form, and layout XML instructions to facilitate rendering custom customer attributes with Hyvä Enterprise.
Note: while these changes reference features in Adobe Commerce, no Commerce code is depended upon.
For more information, please refer to issue #812.
Changed
- Fix: Mobile Safari iOS double click required to start swatch selection
For more information, please refer to merge request #942.
- Allow adding additional links to header customer menu
Previously, it was not possible to add additional links to the customer-menu.phtml template without overriding the template.
For more information please refer to the 1.2.7 upgrade notes or issue #730.
- Facilitate Gift Wrapping support (for Hyvä Enterprise)
These changes allow gift-wrapping support in the cart page for Hyvä Enterprise to function as expected.
Note: while these changes reference features in Adobe Commerce, no Commerce code is depended upon.
All checks are based on configuration values which always return null or false in Magento Open Source
For more information, please refer to issue #807.
- Hide view/reorder links for received async orders
This change renders orders as expected if asynchronous order processing in Adobe Commerce is enabled.
For more information, please refer to merge request #947.
- Render customer.account.dashboard.info.blocks container on customer dashboard
Additional blocks can now be rendered by assigning them as children of the customer.account.dashboard.info.blocks container.
For more information, please refer to issue #812.
- Render SVG icons on customer dashboard with view model
Previously the SVG icons were declared as inline markup in the template without using the SVG icons view model.
For more information, please refer to issue #812.
- Update version constraint for hyva-themes/magento2-reset-theme to 1.1.5
The updated reset theme contains the resets for the Adobe Sensei related modules.
For more information please refer to merge request #894.
Removed
- Nothing removed
1.2.6 - 2023-08-28
Added
- Add hyva.trapFocus() and hyva.releaseFocus() methods
The trapFocus method causes keyboard tab navigation to iterate only over focusable elements inside the given root element.
Please refer to the documentation for more information.
Changed
- Update Hero icon library from 0.4.2 to 1.0.6
This is a backward-compatible upgrade.
For more information, please refer to issue #222.
Many thanks to Oleksandr Hasniuk (planeta-web.com.ua) for the contribution!
- Add product list item template name to product item cache key in ProductListItem view model
Previously the parent block template was used, which made it impossible to use a different list item template for different uses.
For more information, please refer to issue #296.
- Set product list item parent block
Previously it was not possible to refer to the parent block from within the product list item template.
For more information, please refer to issue #294.
- Add a missing quote to the exception thrown in the SVG icon view model
Previously the phrase Unable to find the SVG icon "%1 was used. This now was changed to Unable to find the SVG icon "%1".
This is a backward compatibility-breaking change, however, we do not believe it will have a wide impact.
Be sure to update your localization CSV files if they contain a translation if they include this phrase.
The i18n/en_US.csv translation file in hyva-themes/magento2-default-theme has also been updated to match this change in release 1.2.6.
- Ensure ID attributes inside of SVG icons are unique
Previously, rendering an SVG icon with internal IDs multiple times on a page would cause duplicate ID warnings.
Now, if an ID is used multiple times within separate SVGs, the ID value is changed to be unique each time the SVG is rendered.
This only applies to SVG icons rendered with the SvgIcons view model.
For more information, please refer to issue #275.
Many thanks to the development team at Fronius for the contribution!
- Fix private-content not being loaded on Mobile Safari on iOS
This change fixes an annoying safari behavior change for pages cached in the local browser HTTP cache.
For more information, please refer to issue #304.
- Use staging product link field for crosssell items on commerce
This improves the fix introduced in 1.2.4.
For more information, please refer to merge request #369.
Many thanks to Sandra Kotowska from PHPro for the fix!
Removed
- Nothing removed
1.2.5 - 2023-07-31
Added
- Nothing added
Changed
- Fix property name reference in modal click handler
For more information, please refer to issue #292.
- Fix Template Processor Plugin Regex to avoid matching non-alpine attributes
The previous release 1.2.4 introduced a regression that caused non-alpine attributes to be matched.
For more information, please refer to issue #291.
- Patch Alpine 3.12.3 for full mobile Safari 13 compatibility
The previous release 1.2.4 upgraded Alpine to 3.12.3. This release makes use of the nullish coalescing operator ??, which is not supported by mobile Safari 13.3 and earlier (This roughly corresponds to the iPhone 6).
This release contains a custom build of 3.12.3 that replaces the ?? operator with backward-compatible code.
For more information, please refer to issue #293.
Removed
- Nothing removed
1.2.4 - 2023-07-21
Added
- Magento_GTag compatibility
This release now provides compatibility with the Magento_GoogleGtag module.
It provided a basic Google Analytics 4 and Google Ads Gtag integration.
- Add JavaScript method to access currently active modal dialog
The method hyva.modal.peek() will now return the currently active modal dialog (or false if there is none).
For more information, please refer to issue #272.
- Add optional argument to allow skipping the uenc parameter in hyva.postForm
Previously the hyva.postForm method always automatically added the unec parameter to the payload.
Now it is possible to skip it by providing the key unec: false in the postParams argument.
For more information, please refer to merge request #340.
- Add system configuration setting to specify a success message default timeout
For more information, please refer to merge request #343.
- Add viewmodel for escaping anchor tags keeping attributes intact
The default Magento $escaper->escapeHtml method removes all <a> tag attributes except href.
The new \Hyva\Theme\ViewModel\Escaper\EscapeHtmlAllowingAnchorAttributes view model allows escaping anchor tags while keeping attributes like rel and target intact.
For more information, please refer to issue #284.
- Add methods to get cart shipping total display config to TotalsOutput view model
The methods displayCartShippingExclTax, displayCartShippingInclTax, displayCartShippingBoth were added to be able to display the shipping total incl. or excl. tax on the cart page.
For more information, please refer to issue #345.
Changed
- Upgrade Alpine.js from 3.10.4 to 3.12.3
For details on what changed, please refer to the Alpine.js release notes.
- Fixed: typo in variable in hyva.modal.excludeSelectorsFromFocusTrap
For more information, please refer to merge request #321.
Many thanks to Jesse de Boer (Elgentos) for the contribution!
- Adjusted workaround for PHP 8.1 core bug in Magento\Tax\Pricing\Render\Adjustment
The previously applied fix was subtely different from the one introduced upstream by Magento. Now the behavior of the backport in Hyvä behaves identically.
For more information, please refer to merge request #326.
Many thanks to Pieter Hoste (Baldwin) for the contribution!
- Fixed: model open event listener
Opening modal by events now works.
For more information, please refer to issue #2547.
Many thanks to Valentyn Kuchak (Perspective) for the contribution!
- Fixed: ESI Block causing whole page to be invalidated in Varnish
Previously, changes to categories caused all catalog FPC records to be invalidated, even though only the top menu ESI block should have been needed regenerated.
For more information, please refer to issue #256.
Many thansk to Matt Walsh for the detailed report!
- Fixed: PageBuilder HTML content processing
Previously, subsequent HTML content elements would be escaped, thus rendering the HTML tags visibly on the page.
For more information, please refer to issue #267.
- Add . to PageBuilder CSS class name validation rule
Previously, classes such as mx-1.5, mb-4.5 and md:mb-3.75 could not be saved because they contained a period . character.
For more information, please refer to issue #277.
- Increase modal click-guard time
Previously, under some circumstances, possibly heavy main-thread load, the click opening the modal was registered as a closing click.
For more information, please refer to issue #270.
- Fixed: not-visible products in from product relations are shown
Products not visible in the catalog were previously included in related, upsell and crosssell product sliders.
Now products set to not-visible-individually or only-visible-in-search are excluded, as well as deactivated products.
For more information, please refer to merge request #341.
Removed
- Nothing removed.
1.2.3 - 2023-03-17
Added
- Nothing added
Changed
- Avoid dynamic class properties for PHP 8.2 compatibility
Previously the class property \Hyva\Theme\Plugin\FrontController\HyvaHeaderPlugin::$theme was undeclared,
and thus treated as a dynamic public property. Now the property is declared with private visibility.
Technically this is a backward compatibility-breaking change, as any child class referring to the parent class property
will no longer work. However, we believe this scenario to be unlikely, and it is simple to work around by declaring and
assigning the property in the child class, too.
For more information, please refer to merge request #309.
Many thanks to Pieter Hoste (Baldwin) for the contribution!
- Refactor string variable interpolation deprecated in PHP 8.2
In the template files src/view/frontend/templates/page/js/plugins/intersect.phtml and src/view/frontend/templates/page/js/alpinejs.phtml
a variable was interpolated into a string using the "${varname}". This syntax has been deprecated in PHP 8.2.
Instead, the syntax "{$varname}" is now used.
For more information, please refer to merge request #309 and #322.
Many thanks to Pieter Hoste (Baldwin) and Peter Jaap Blaakmeer (Elgentos) for the contribution!
Removed
- Nothing removed
1.2.2 - 2023-03-06
Added
- Nothing added
Changed
- Extract PageBuilder HTML content with ungreedy regex
Previously, the regular expression would extract PageBuilder content elements following a HTML content element as part of the HTML content element data.
For more information, please refer to issue #258.
Many thanks to Aad Mathijssen (iO) for reporting!
Removed
- Nothing removed
1.2.1 - 2023-01-19
Added
- Make $viewModels template variable available in Luma again
The template variable was removed in Hyvä release 1.2.0, but it turned out it had been used by many people, so it was decided to make it available again.
For more information please refer to issue #238.
- Add support for the pattern attribute to advanced form validation
For more information please refer to merge request #290.
Many thanks to Aad Mathijssen (Isaac) for the contribution!
- Add missing requirement for Magento_QuoteGraphQl
A class from the module is used by the theme-module, so it needs to be declared as a composer dependency and in the etc/module.xml file.
For more information please refer to issue #244.
Many thanks to Thomas Hauschild (E3n) for the contribution!
Changed
- Improve minlength and maxlength translations for advanced form validation
Previously there was no distinction between singlular and plural numbers.
For more information please refer to merge request #288.
Many thanks to Aad Mathijssen (Isaac) for the contribution!
- Replace deprecated string interpolation to support PHP 8.2
Two instances of a deprecated string interpolation syntax are changed to be PHP 8.2 compatible.
For more information please refer to issue #241.
Many thanks to Pieter Hoste (Baldwin) for opening the issue and providing helpful information on automated checks!
- Make client-side breadcrumbs more compatible with third-party modules
Previously an exception was thrown if no path property was set for a category.
For more information please refer to issue #242.
Many Thanks to Dung La (JaJuMa) for the contribution!
Removed
- Nothing removed
1.2.0 - 2022-12-21
Added
- Added Alpine v3 support
Alpine v3 was added in addition to Alpine v2. Backward compatibility is preserved. Please refer to the upgrade documentation for details.
For more information please refer to Merge Request #83.
- Added
ThemeLibrariesConfigview model
This class can be used to determine the version of Alpine that should be loaded for the current theme.
For more information please refer to Merge Request #83
- Added
require-alpine-v3block class as extension point
Extensions may add a child block to require-alpine-v3 in layout XML using the module name as the child block name.
If a theme then loads the module using a Alpine v2 theme, a warning is displayed in the browser console.
For more information please refer to Merge Request #83
Changed
- Nothing changed
Removed
- Nothing removed
1.1.26 - 2023-11-17
Added
- Added new containers for Customer Custom Attributes
Containers were added to the customer_account_create, customer_account_edit, customer_address_form, and layout XML instructions to facilitate rendering custom customer attributes.
Note: while these changes reference features in Adobe Commerce, no Commerce code is depended upon.
For more information, please refer to issue #812.
Changed
- Fix: Mobile Safari iOS double click required to start swatch selection
For more information, please refer to merge request #941.
- Allow adding additional links to header customer menu
Previously, it was not possible to add additional links to the customer-menu.phtml template without overriding the template.
For more information please refer to the 1.1.26 upgrade notes or issue #730.
- Render customer.account.dashboard.info.blocks container on customer dashboard
Additional blocks can now be rendered by assigning them as children of the customer.account.dashboard.info.blocks container.
For more information, please refer to issue #812.
- Render SVG icons on customer dashboard with view model
Previously the SVG icons were declared as inline markup in the template without using the SVG icons view model.
For more information, please refer to issue #812.
- Update version constraint for hyva-themes/magento2-reset-theme to 1.1.5
The updated reset theme contains the resets for the Adobe Sensei related modules.
For more information please refer to merge request #951.
Removed
- Nothing removed
1.1.25 - 2023-07-31
Added
- Nothing added
Changed
- Improve product option value check before setting
Under some conditions it previously was possible to set invalid product option values, for example when configuring an unconfigured product from the wishlist, which in turn led to option dropdowns being empty.
For more information please refer to issue 714.
Removed
- Nothing removed
1.1.24 - 2023-07-21
Added
- Nothing added
Changed
- Fixed: Prevent the contact-us page from being stored in the full-page cache
For logged-in customers, the contact form is prepopulated, so if the FPC record happened to be by a logged-in customer, their name would be shown to subsequent visitors.
For more information, please refer to issue #687.
Special to Aad Mathijssen (Isaac) for alerting us to the issue!
- Do not apply top-menu ESI block cache tags to the regular page if Varnish is enabled
Previously the category cache tags were also added to the regular page FPC record.
For more information, please refer to merge request #777 or the theme-module issue #256.
- Reduce contact form CSS
Replaced the custom class flex-columns-wrapper with native tailwind classes to reduce the CSS size a little bit.
For more information, please refer to merge request #659
Many thanks to Sean van Zuidam (Siteation) for their contribution!
- Remove excessive bracket in shipping totals label
Previously a superfluous ) was rendered after the total.
For more information, please refer to issue #588.
Many Thanks to Valentyn Kuchak (Perspective) for their contribution!
- Update @hyva-themes/hyva-modules to dependency
The default-theme now depends on release ^1.0.9 of @hyva-themes/hyva-modules.
Changes in this version:
- Allow excluding module CSS from being merged (see GitHub PR #6).
- Allow tailwind.config.js to be in the project base directory (see this GitHub PR #8).
For more information, please refer to issue #657.
Many thanks to Sean van Zuidam (Siteation) and Thijs de Witt (Trinos) for their contribution to @hyva-themes/hyva-modules!
- Show out-of-stock options as disabled in text and color swatches
Previously the saleable state for out-of-stock options of configurable products with a single configurable attribute was not correctly disabled.
For more information, please refer to issue #564.
- Avoid loading external ReCaptcha script if no API keys are configured
For more information, please refer to issue #609.
Many Thanks to Rostislav Sulejmanov (Perspective) for their contribution!
- Update hyva-themes/magento2-reset-theme dependency to 1.1.4
In the new version all Layout XML resets are updated, so they are based on the latest 2.4.6 Magento version.
All email related XML instructions for b2b + commerce that were previously added by mistake are now removed, so emails work as expected on Adobe Commerce/B2B instances.
Removed
- Nothing removed
1.1.23 - 2023-03-17
Added
- Nothing added
Changed
- Make region selection code more robust under Alpine v2
In Magento_Customer/templates/address/edit.phtml a small change was made to avoid a race condition.
Previously, with Alpine v2, it could happen that a change of the region selection was not seen by the form validation.
For more information, please refer to merge request #724
Removed
- Nothing removed
1.1.22 - 2023-03-06
This default-theme release only exists to keep the version synchronized with the theme-module. It contains no functional changes.
Added
- Nothing added
Changed
- Nothing changed
Removed
- Nothing removed
1.1.21 - 2023-01-19
Added
- Support system config setting to hide or display stock status on PDP
Previously, the stock status was always shown, regardless of the config setting.
For more information, please refer to the merge request #652.
Many thanks to Kiel Pykett (Youwe) for the contribution!
Changed
- Fix display of original price excl. tax
Previously, if catalog prices where configured to be displayed incl. and excl. tax, the price excl. tax was displayed without taking a special price into account.
For more information, please refer to merge request #672.
Many thanks to Rich Jones (Aware Digital) for the contribution!
- Fix hardcoded custom option ID in html5 date picker template
In the HTML5 version of the datetime custom option template (which is not used by default), the custom option ID was hardcoded.
For more information, please refer to the merge request #666.
Many thanks to Kiel Pykett (Youwe) for the contribution!
- Render loader above open modals
Previously the loader was displayed behind open modals.
For more information please refer to merge request #654.
Many thanks to Anil Suthar (Dolphin Web Solution) for the contribution!
- Change input type for customer telephone number to from "number" to "tel"
For more information please refer to issue #540.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
Removed
- Nothing removed
1.1.20 - 2022-12-21
Added
- Add support for show prices incl. + excl. tax on catalog pages
For more information please refer to merge request #259, merge request #606 and the theme-module merge request #266.
Many thanks to Dave Baker, Rich Jones and Ryan Hissey (all from Aware Digital) for the contribution!
- Add option to render PDP breadcrumbs with JavaScript
Client side rendered PDP breadcrumbs are turned off by default and need to be enabled in the system configuration at
Hyvä Themes > Catalog > Hyvä Client-Side Breadcrumbs rendering.
Client side rendering shows the correct breadcrumbs path on PDP when a product is used in more than one category.
For more information please refer to issue #434.
Many Thanks to Dung La (JaJuMa) for the contribution!
- Make product relation type available in list item template
If the product list was loaded as one of the relations upsell, crosssell or related, this is now available in the product list item.phtml template via $block->getData('item_relation_type').
For more information please refer to the default-theme merge request #603 and the theme-module merge request #264.
- Add Password strength meter
For more information please refer to merge request #540.
Many thanks to Quyen D (Burgesscommerce) for the contribution!
- Bypass waiting for user interaction when loading external scripts on the order success page
For more information please refer to issue #537 and theme-module issue #226.
Many thanks to John Hughes (Youwe) for the contribution!
- Eagerly load the first images in product listings
The number of images to preload can be set in layout XML by specifying an argument eager_load_images_count on the category.products.list block.
By default, the first three images are eagerly loaded.
For more information please refer to issue #522.
- Add layout directory to default theme purge config path
For more information please refer to issue #533.
Changed
- Fix order email total rendering
Previously the totals were rendered above the order items.
In Luma, the totals.phtml and the tax.phtml templates are used both for order emails and for the customer order history.
In the past, Hyvä used the same template for both, too, which caused either the frontend or the emails not to be rendered properly.
This release moves the templates that are used in the store front to a new location, which means the standard Luma templates are used for the order emails.
This is a backward compatibility breaking change, but sadly there was no way around that while still fixing the order emails.
For more information please refer to issue #485.
- Fix one-off max-width for layered navigation mobile breakpoint detection
For more information please refer to issue #507.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Avoid transition-all in sliders for better CSS layout render performance
For more information please refer to issue #509.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Require reset-theme version 1.1.3 for product-main-full-width styling to work
This version of the reset theme changes the main container CSS class if the product-full-width page layout is selected, and styling in the 1.1.20 default-theme uses that to remove the max-width from the container.
For more information please refer to merge request #639.
- Remove redundant duplicate noEscape annotation comments
For more information please refer to issue #510.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Correct order of PHPDoc annotation to type var
For more information please refer to issue #511.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Clean up aria labels in pager
For more information please refer to issue #512.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Enable all recaptcha buttons after recaptcha script load
Previously, if more than one recaptcha form was present on a page, only the button for the first one was enabled.
For more information please refer to issue #515.
- Fix PageBuilder column responsiveness
For more information please refer to issue #516.
- Separate contact details from contact form as a child block/template
This allows easier placement of store contact information or other content next to the form.
For more information please refer to merge request #580.
- Fix type numeric error with PHP 8.1 if pager limit "all" is enabled
For more information please refer to merge request #584 and issue #530.
Many thanks to Barry vd. Heuvel (Fruitcake) for the contribution!
- Update postcss-import plugin to 14.0
This resolves an issue when empty .css files are imported in the tailwind-source.css.
For more information please refer to issue #517.
- Show swatches properly for out-of-stock options
Previously, if "Display Out Of Stock Products" was enabled, out-of-stock product options were displayed as available for configurable products.
For more information please refer to issue #506.
- Show telephone input as required correctly
Previously the input field was rendered as optional even if it was configured to be required.
For more information please refer to merge request #595.
Thanks to Aad Mathijssen (Isaac) for the contribution!
- Fix typo in css class name on customer account registration
The old misspelled class name still is present for backward compatibility in addition to the new corrected class.
Old incorrect class name: registation-container
New corrected class name: registration-container
- Fix region select label in customer form when country without regions is selected
For more information please refer to issue #391.
- Allow single option bundled products to be added to the cart from PLP
For more information please refer to issue #531.
- Translate cart total labels when updated by JavaScript
For more information, please refer to issue #524.
- Fix carrier_code TypeError: Cannot read properties of undefined
For more information please refer to issue #532.
- Apply configured top destinations to country select
For more information please refer to merge request #633.
Many thanks to Mark van der Sanden (Ecomni) for the contribution!
- Fix error with invalid recaptcha action name if block name had invalid characters
For more information please refer to merge request #634.
Many thanks to Alexander Menk (iMi digital GmbH) for the contribution!
- Fix gift-message form submission on cart page
For more information please refer to issue #555.
Removed
- Nothing removed
1.1.19 - 2022-10-22
Added
- Show/Hide password in forms with an Eye-EyeOff icon
Passwords can now be hidden or shown by clicking on an eye/eye-off icon in the login, registration and edit account customer forms.
For more information, please refer to issue #498.
Many Thanks to Dung La (JaJuMa) for the contribution!
Changed
- Fix double h1 tag on PDP
For more information, please refer to issue #452 and merge request #542
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Fix Structured Data for Product Item (Missing Image)
This is a SEO related improvement.
For more information, please refer to issue #495.
Many Thanks to Dung La (JaJuMa) for the contribution!
- Fix form submission if recaptcha is enabled
This change fixes a regression that was introduced with 1.2.0-beta1.
For more information, please refer to issue #497.
- Remove customer-review-list anchor in pagination URL on PLP
In release 1.1.18 a #customer-review-list anchor was added to the pagination URLs, to fix an issue with product review pagination.
However, this anchor was also rendered on product listing pagination URLs.
This change now makes the pagination URL configurable via layout XML, and now only renders the review list anchor on product review pagination URLs.
For more information, please refer to issue #492.
Removed
- Remove character ')' in subtotal cart page
For more information, please refer to issue #494.
Many Thanks to Dung La (JaJuMa) for the contribution!
1.1.18 - 2022-10-15
Added
- Add support for Gift Messages
Previously this feature was not supported in Hyvä.
For more information please refer to merge request #505.
Many thanks to Ross McHugh (Monsoon Consulting) for the contribution!
- Add extension point for shipping method selection in PHP Cart
Child blocks added to the checkout.cart.shipping block on checkout_cart_index will now be automatically rendered.
Also, the region code is now provided as a data-code attribute on the region select options.
For more information please refer to merge request #503.
Many thanks to Lucas van Staden (ProxiBlue) for the contribution!
- Add extension point to cart drawer template
Four new layout containers are now available to customize the cart drawer: cart-drawer.top, cart-drawer.items.before, cart-drawer.items.after, cart-drawer.bottom.
For more information please refer to merge request #514.
Many thanks to Kiel Pykett (Youwe - formerly Fisheye) for the contribution!
- Allow displaying products assigned to child categories for anchor category sliders
For sliders configured with a single category ID, the property include_child_category_products can now be set in layout XML on the slider block
to cause products assigned to child categories to be displayed, too.
For more information please refer to issue #473.
- Added missing customer widget templates
Before the Luma version of the templates was used due to missing overrides in Hyvä.
The new templates are Magento_Customer::widget/fax.phtml, Magento_Customer::widget/gender.phtml and Magento_Customer::widget/taxvat.phtml.
For more information please refer to merge request #543.
Changed
- Validation of Postcode and Telephone fields in customer address form
The validation for the customer/address/edit form now uses the advanced validation library to validate postcode and region according to the selected country, and also applies telephone validation according to the store configuration.
For more information please refer to issue #114.
Many thanks to Oleksandr Melnychuk (Atwix) for the contribution!
- Automatically scroll to review section on review pagination
Previously, the page reloaded at the page top, and a visitor would have to manually scroll down to the reviews page they navigated to.
For more information please refer to issue #453.
Many Thanks to Dung La (JaJuMa) for the contribution!
- Fix wrong product name used in review section when editing wishlist items
For more information please refer to issue #462.
Many Thanks to Dung La (JaJuMa) for the contribution!
- Open the overlay keyboard when user clicks on search icon on mobile
This allows visitors to start typing right away, without first having to tap the search bar.
For more information please refer to issue #456.
Many thanks to Nick Hall (MFG Supply) for the contribution!
- Fix gallery images not compatible with many images
Previously, when quite a lot of images where added to a product, say 6 or more, the full-screen gallery view on mobile was filled up with thumbnails.
For more information please refer to issue #136.
Many thanks to Oleksandr Melnychuk (Atwix) for the contribution!
- The cart drawer should use the QuoteShortcutButtons block instead of InCatalog
Third party extensions can now correctly use the is_catalog_product property to determine if the product actions
are being rendered on a PDP / PLP or on a checkout related page.
For more information please refer to merge request #504.
Many thanks to Ravinder (redChamps) for the contribution!
- A11y improvement: use aside tag for sidebars
The aside tag is used to mark certain elements as complimentary to the main content.
The sidebar main and additional are always complimentary to the catalog page so it makes sense to use the aside html tag instead of a generic div.
For more information please refer to issue #458.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Fix comment description of the meaning of the
assistance_allowedvalue
Previously the comment reversed the meaning of the value.
For more information please refer to issue #461.
Many thanks to Jerke Combee (Elgentos) for the contribution!
- Fix the URL suffix determination for recently viewed products
This fixes a bug that occurred when the product URL suffix was configured to be empty.
For more information please refer to issue #463.
- Fix crosssell slider on the PHP-Cart page if PageBuilder is disabled
For more information please refer to issue #457.
Many thanks to Rich Jones (Aware Digital) for the contribution!
- Allow some HTML tags in order comments
Since Magento 2.4.4 the HTML tags ['b', 'br', 'strong', 'i', 'u', 'a'] are allowed to be rendered in order comments on the frontend.
For more information please refer to issue #465.
- Fix configurable-selection-changed event arguments
For more information please refer to issue #468.
Many thanks to Richard Brown (Lawson-His) for the report and the suggested fix!
- Fix edit and remove icons for bundled products in the PHP-Cart
For more information please refer to issue #469.
- Use PHP reCaptcha view model constants instead of strings to refer to reCaptcha configuration
The ReCaptcha view model now has constants for the different built-in forms supporting ReCaptcha.
For more information please refer to merge request #517.
Many thanks to Kiel Pykett (Youwe - formerly Fisheye) for the contribution!
- Simplify password confirmation match checking function
For more information please refer to merge request #521.
Many thanks to Kiel Pykett (Youwe - formerly Fisheye) for the contribution!
- Integrate changes from Magento 2.4.5
These changes include rendering numbers with a LocalFormatter, and adding new view models to that allow disabling some functionality in Adobe Commerce.
Because Hyvä supports Magento since 2.4.0 wrapper classes are used to provide the same functionality in Magento versions before 2.4.5.
For more information please refer to issue #479.
Many thanks to Peter Jaap Blaakmeer (Elgentos) for the contribution!
- Replace h2 in authentication-popup with strong tag to avoid wrong title tag order
This change is a SEO improvement.
For more information please refer to issue #486.
Many thanks to Sean van Zuidam (Siteation) for the contribution!
- Fix broken review summary link and unintentional scroll
For more information please refer to issue #486.
Many thanks to Kenneth Danielsen (Novicell) for the contribution!
Removed
- Nothing removed
1.1.17 - 2022-08-16
Added
- Specify the minimum node version >=12.13.0 in package.json
This is currently for informational purpose only since it will not be automatically checked without a .npmrc file with strict-engine=true.
The version constraint >=12.13.0 matches the one of TailwindCSS v2.
For more information please refer to the issue #423.
- Add show password functionality
The "Show Password" functionality was added to Luma in Magento versions 2.4.3-p2 and 2.4.4. This MR adds support for this feature to Hyvä.
For more information please refer to the merge request #484.
Many thanks to Guus Portegies (Cees en Co) for the contribution!
- Add .gitlab-ci file
Some tests and checks are now automatically executed in GitLab pipelines for new merge requests.
Currently some do not have to succeed (for example the code style check), but this will change at some point in the future.
- Add absolute footer block
Hyvä now also contains this customization point (like Luma).
For more information please refer to the merge request #486.
Many thanks to Erwin Romkes (Moore) for the contribution!
- Add Out Of Stock label in product list item template
For more information please refer to the issue #412.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Add default red textColor
The css class text-red was used in several templates, but no default text color was declared for the default theme.
For more information please refer to the merge request #497.
Changed
- Bugfix: Resolve "Cannot use object of type stdClass as array"
For more information please refer to the issue #435.
- Bugfix: Add missing bundled product cart item renderers
Previously the selected options on bundled products where not shown on the PHP cart page.
For more information please refer to the issue #440.
Many thanks to Laura Folco for the report and suggesting a fix!
- Bugfix: Use JS to determine redirect target after addToCart in cached product list item template
For more information please refer to the issue #445.
Many thanks to Zach Nanninga (DEG Digital) for the detailed report and suggested solution!
- Use new hyva.getUenc function to encode the current URL
Previously, a number of templates used '&unec=' + btoa(window.location.href) to add the `uenc query parameter to an url.
This is missing additional encoding of+,/and=done by\Magento\Framework\Url\Encoder::encode()`.
For more information please refer to the issue #450.
- Bugfix: Fix ReCaptcha loader if no ReCaptcha v3 website key is configured
For more information please refer to the merge request #475.
Many thanks to Laura Folco for the help debugging the issue!
- Bugfix: Fix call to replaceDomElement within reloadCartContent()
For more information please refer to the issue #439.
- Bugfix: Shipping methods with underscores in method code break the PHP cart
For more information please refer to the issue #433.
Many thanks to Stephanie Ehrling (Artplants) for the report and suggesting a fix!
- Bugfix: Show new password mismatch method on customer edit form
For more information please refer to the issue #422.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Update the minimum version requirement for
@hyva-themes/hyva-modules
This change is only applicable to new installs and ensures the node version 12 compatible release of @hyva-themes/hyva-modules is installed by npm install.
Previously an older version of the library was installed by default that required node version 14 or newer.
For more information please refer to the issue #423.
- Fix: Google PageSpeed warning "Links are not crawlable"
For more information please refer to the issue #429.
Many thanks to Ryan Hissey (Aware Digital) for the contribution!
- Improvement: Reset PDP Gallery when all options are reset to "Choose an option..."
For more information please refer to the issue #432.
- Improvement: Sort the updated PDP Gallery when configurable options are selected
Previously only the initial gallery was sorted according to the image position specified on the product.
For more information please refer to the issue #426.
Many thanks to Irina Smidt (Customgento) for the contribution!
- Bugfix: add missing closing HTML tag on cart page
For more information please refer to the merge request #481.
Many thanks to Simon Sprankel (Customgento) for the contribution!
- Improvement: Correctly associate labels to fields in login form
For more information please refer to the merge request #482.
Many thanks to Lucas van Staden (ProxiBlue) for the contribution!
- Improvement: Add missing import for ViewModelRegistry in template
The class name is only referenced from a PHPDoc annotation, so previously no error was thrown, but now, with this change, IDE autocompletion correctly works for the $viewModels variable.
For more information please refer to the issue #442.
Many thanks to Guus Portegies (Cees en Co) for the contribution!
- Improvement: fix minor CLS on mobile menu
The "X" SVG to close the mobile menu was displayed on page load and then hidden by JS, causing it to be displayed briefly and causing a small CLS.
For more information please refer to the merge request #485.
Many thanks to Nick Hall (MFG Supply) for the contribution!
Removed
- Remove hover classes for mobile
The hover state is generally not available on mobile devices, thus the classes previously had no effect.
For more information please refer to the issue #444.
Many thanks to Jesse de Boer (Elgentos) for the contribution!
1.1.16 - 2022-06-16
Release 1.1.16 is a backward compatible bugfix release.
Added
- Nothing added
Changed
- Fix rendering of newsletter subscription form in footer
In 1.1.15 a bug was introduced while extracting the copyright into a separate template. This bug is now fixed.
For more information please refer to the Merge Request #470.
Removed
- Nothing removed
1.1.15 - 2022-06-13
Upgrade guide
Backward incompatible warning The default cart page has been replaced with a Server-Side-Rendered version using PHP and AlpineJS, if you're upgrading and want to keep the GraphQL cart you need to install the GraphQL cart separately. You should be able to keep using the GraphQL cart without further customizations and we will keep supporting both versions of the cart.
If you're upgrading from <1.1.15 please check the documentation page on upgrading. Any additional information and known bugs/issues to this release will be documented there.
Added
- Support for reCaptcha v2 "I'm not a robot" and v2 invisible
This now provides feature parity with Luma. The implementation was also improved to make it easier to implement custom captcha integrations.
More details can be found in the Merge Request #340 and the theme module Merge Request #153.
Many thanks to Amanda Bradley (Youwe - formerly Fisheye) for the contribution!
- Add additional actions container to product detail page
This allows adding additional actions to the list of add-to-wishlist, add-to-compare and so on.
For more information please refer to the Merge Request #448.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Add recently ordered sidebar
Please refer to the Issue #452 for more details.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Add wishlist sidebar
Please refer to the Issue #384 for more details.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
Changed
- Replace the GraphQL cart with a PHP cart implementation using AlpineJS and Ajax
This is a backward incompatible change, but existing sites can install the hyva-themes/magento2-graphql-cart extension
to restore the previous functionality in a backward compatible way.
For more information please refer to the Merge Request #397.
- Use SVG ViewModel instead of hardcoded SVGs in default theme
This includes adding the SVG loader to the theme web folder instead of hardcoding it in the loader template.
For more information please refer to the Merge Requests #431 and #432.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Rely on automatic purge config for theme-module
By default, the automatic merging of tailwind.config.js is now used to add the theme module templates to the content path config of any Hyvä theme.
Please refer to the Issue #398 for more details.
- Support multiple ratings
Previously only a single rating was shown.
Please refer to the Issue #374 for more details.
Many thanks to Nguyen Miha (JaJuMa) for the contribution!
- Use a tag on current breadcrumb to improve a11y
This improves a11y since the aria-current attribute is only allowed on anchors.
For more information please refer to the Merge Request #436.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Fix layout XML parent for Send Friend icon in product info
Previously the icon was not rendered.
For more information please refer to the Merge Request #437.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Correct spacing beside toolbar pager dropdown
For more information please refer to the Merge Request #438.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Fix rendering of sidebar on desktop for categories with empty content area
Please refer to the Issue #312 for more details.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Move footer copyright into separate template file
Also include a comment to make it easier to render the copyright configured in the admin.
For more information please refer to the Merge Request #442.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Reserve space for form validation message on validation container, not input field
The previous solution required awkward workarounds for multiple inputs like radio buttons within a container.
For more information please refer to the Merge Request #445.
- The minicart now shows the configured amount of items
Please refer to the Issue #386 for more details.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Fix: Selecting country with no regions hides region field but retains label
Please refer to the Issue #391 for more details.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Use better reCaptcha v3 action names for better stats collection
For more information please refer to the Merge Request #422.
Many thanks to Lucas van Staden (ProxiBlue) for the contribution!
- Fix: Render product image for selected attributes
This is accomplished by rendering the product image using $block->getImage() instead of the view model, so the swatch logic is applied automatically.
Please refer to the Issue #402 for more details.
- Add required attribute to email and password fields in login form
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Fix PayPal in context JSON deserialization issue
Please refer to the Issue #403 for more details.
Many thanks to Nataly Gorupaha (Atwix) for the contribution!
- Improve column width in compare product table
For more information please refer to the Merge Request #439.
Many thanks to Ruud van Zuidam (Siteation) for the contribution!
- Improve pager a11y
The improvements consist of a number of changes.
For more information please refer to the Merge Request #435.
Many thanks to Ruud van Zuidam and Sean van Zuidam (Siteation) for the contribution!
- Move sales order totals template to correct folder
Previously the Luma template was used accidentally.
Please refer to the Issue #405 for more details.
- Fix: search field renders quotes as escaped HTML entity
Please refer to the Issue #408 for more details.
- Fix: initConfigurableOptions is not defined on out of stock configurable product page
Please refer to the Issue #410 for more details.
- Fix ApplePay shortcut button throwing an exception when logged in on FPC cache pages
The virtual type Magento\Catalog\Block\ShortcutButtons\InCatalog is now used instead of the original type Magento\Catalog\Block\ShortcutButtons.
Please refer to the Issue #413 for more details.
- Use image of product matching partial option selection
Previously, the product image was only swapped when a full option selection was made. Now the image is updated already after the first selection (like in Luma). Also, images already in the initial image set will not be added to the gallery as duplicates when "append to gallery" is selected.
For more information please refer to the Merge Request #462.
Removed
- Removed the composer.lock file from the hyva-themes/magento2-default-theme package
1.1.14 - 2022-04-29
Added
- Allow modules to automatically add tailwind config and css to styles.css compilation
This feature allows modules to be ready to use after installation, without manual adjustments to a themes purge config.
The feature is enabled for new themes automatically, but can also be used in older themes by installing the npm module
@hyva-themes/hyva-modules, and making two small adjustments to the tailwind.config.js and the postcss.config.js files.
More information can be found in merge request #394.
The documentation for this new feature will be published shortly, too.
Changed
- Compress default-theme background hero image
This change reduces the file size by 92%!
Many thanks to Jesse de Boer (Elgentos) for the contribution!
- Do not cache preconfigured swatch options while editing cart
This change in addition to small change in the swatches JS allows setting default product options in PHP again.
For more information see issue #368.
Removed
- Nothing
1.1.13 - 2022-04-12
Added
- Support for Magento_Vault
The payment vault on the customer account area is now supported. Support during checkout depends on the installed checkout.
- Show configurable product option price adjustments in attribute dropdowns
Previously the price adjustments where not displayed in hyvä (but where shown in Luma).
More information can be found in the merge request #401
- Add
idparameter to reset password form required in 2.4.3-p2 and 2.4.4
This backward compatible change is required for Magento 2.4.4.
More information can be found in the issue #363
- Add i18n/en_US.csv with all Hyvä specific strings
This can serve as a base for custom translations.
Note: Some pre-made localizations are available at https://gitlab.hyva.io/hyva-themes/internationalization (de_DE, es_ES, fr_FR, it_IRT, nl_NL, pl_PL)
More information can be found in the merge request #223
Many thanks to Alexander Menk (iMi digital GmbH) for the contribution!
Changed
- Fix z-index issue on homepage for page messages
Both the page messages and the section below the hero image have a z-index of 10, which results in the section covering the page message.
More information can be found in issue #342
- Fix Safari Customer account icon display bug
The Customer Account icon button in the top menu previously displayed wrong in Safari.
More information can be found in issue #341
Big thanks to Sean van Zuidam (Mooore) for the contribution!
- Fix priority of x-cloak css so it works in all cases
Previously more specific styles prevented elements with the x-cloak attribute from being hidden.
More information can be found in issue #328.
Many thanks to Eduard Chyzhyk (Mageworx) for the contribution!
- Fix inconsistent currency format
So far only the store language was used to determine how to format the currency, but in some cases that is not enough, for example de_CH (Switzerland German) vs de_DE (Germany German).
More information can be found in the issue #345
- Fix log "Broken reference: the 'div.sidebar.additional' tries to reorder itself"
The error message previously was logged on most requests.
More information can be found in the issue #348.
Big thanks to Sean van Zuidam (Mooore) for the contribution!
- Consistently use hyva.formatPrice() reducing code duplication
More information can be found in the merge request #404
- Fix: GraphQL queries in recently viewed product widgets assume top level Magento install
Previously the store code was missing from GraphQL queries, so in stores with a subfolder in the path, the GraphQL query was be broken.
More information can be found in the issue #336
Many thanks to Salvatore Capritta (Synthetic) for the contribution!
- Bugfix: Can't Override Product Slider Item Template Using Layout XML
More information can be found in the issue #340
- Bugfix: Add all items to cart from wishlist not working
More information can be found in the issue #358
Many thanks to Krijn van de Kerkhof (X-com) for the contribution!
- Bugfix: Google Map API SDK link broken
More information can be found in the issue #357
- Centralize product list item rendering to remove code duplication
Previously the same logic to render product list items was repeated in multiple templates.
This required keeping changes in sync, especially when a new cache key item needed to be added.
A new method was introduced to the ProductListItem view model in the theme module, that now is used by all the templates.
More information can be found in the theme module issue #155
- Fix typo in HTML id attribute in checkout discount form toggle
More information can be found in the issue #343
- Apply system configuration setting to show grand total in cart incl. or excl. tax
More information can be found in the issue #334
- Fix: Edit cart item causes default values to be cached for PDP
More information can be found in the issue #283
- Display unavailable shipping rates like in Luma in shipping estimation
Depending on the system configuration settings Luma hides or displays unavailable shipping methods during the shipping rate estimation. This change replicates that behavior in Hyvä.
More information can be found in the issue #292
- Show image of configurable product in cart if configured
Previously the image of the selected simple product was shown.
More information can be found in issue #326
Many thanks to Lucas van Staden (ProxiBlue) for the contribution!
- Fix pager jump styles
Previously the "gap" in the pager buttons was missing some styles.
More information can be found in the merge request #419
Many thanks to Alex Galdin (IT-Delight) for the contribution!
- Fix PageBuilder full width row support
Previously full width and full bleed row content elements did not break out of the main content container.
More information can be found in the issue #361
Removed
- Remove dependency on Magento_SendFriend
Previously, static-content:deploy failed if the Magento_SendFriend module was replaced/removed.
More details can be found in the merge request #344
Many thanks to Peter Jaap Blaakmeer (Elgentos) for the contribution!
1.1.12 - 2022-02-07
Added
- Add extra action block to cart drawer
This is new extension point that allows displaying additional checkout option buttons. In Luma, this block was rendered as HTML server side but then displayed using JavaScript. In Hyvä, the block is rendered server side.
More information can be found in the merge request #386
Many thanks to Ravinder (redChamps) for the contribution!
Changed
- Bugfix: Resolve "Users cannot scroll on mobile menu"
Please refer to issue #301 for more information.
Thanks to Ben Crook (Space48) for reporting!
Removed
- Nothing
1.1.11 - 2022-01-28
Added
- Add testing selector attributes to the PDP
More information can be found in the merge request #367
Many thanks to Andrew Millar (Elgentos) for the contribution!
- Add missing cart totals container as extension point
More information can be found in issue #324
- Added missing 'form_additional_info' container to login form
This adds a missing extension point that also is present in Luma.
More information can be found in the merge request #378
Many thanks to Ravinder (redChamps) for the patch!
- Add Hyvä theme-module to default tailwind purge list config
Previously tailwind classes used in the modal templates where not picked up by default.
More information can be found in issue #327
Changed
- Bugfix: Fix cache key for all instances of product_list_item
The PageBuilder carousel and grid content type used the shared product list item block, but previously did not set the full cache information on the instance before rendering. This caused the previously rendered product to be shown.
More information can be found in issue #323
- Bugfix: Fix broken "Track your order" link on order view page
More information can be found in issue #329
Many thanks to Alex Galdin (IT Delight) for the contribution!
- Bugfix: Fix rendering of escaped html entities in product names in compare list
Previously special characters in the product name where escaped twice in the product compare list.
More information can be found in issue #313
Many thanks to Matt Walsh for the contribution!
- Fix checkbox custom option checked property update
Previously it was not possible to programmatically alter the checkbox state after a user interacted with it.
More information can be found in issue #332
Many thanks to Simon Sprankel (Customgento) for the contribution!
- Fix structured data for product reviews on the product detail page
More information can be found in issue #321
Many thanks to Lucas Vu (JaJuMa) for the contribution!
- Fix noisy messages in error log on search result page
Previously the redeclaration of a container on the search results page polluted the exception.log with
main.CRITICAL: The element "search_result_list" can't have a child because "search_result_list" already has a child with alias "additional"
More information can be found in issue #304
- Add guard clause against undefined index in swatch renderer template
Previously, if a product attribute was set to "Used in Layered Navigation": "Filterable (no results)", an error was displayed.
More information can be found in issue #325
- Prohibit search with less than 3 characters
More information can be found in issue #330
Removed
- Nothing
1.1.10 - 2022-01-14
Added
- Add container extension point to product list item template
This allows extensions to add new items to the element containing the add-to-cart, wishlist and compare buttons.
More information can be found in the merge request #361
- Add product_sku filter for SSR product sliders
This provides feature parity with the GraphQL Hyvä product slider.
More information can be found in issue #293
- Add Order Status to Order Detail page in Customer Account
More information can be found in issue #318
- Many thanks to Lucas Vu (JaJuMa) for the contribution!
Changed
- Allow installation in PHP 8 environments
More information can be found in issue #297
- Bugfix: Do not render max allowed amount if "falsy" in add-to-cart form
More information can be found in issue #295
- Apply logo_file if set in layout XML and no logo is configured in the admin area
This allows setting the logo with a block argument in layout XML as documented in the devdocs.
More information can be found in issue #309
- Bugfix: swatch options type number type mismatch in switch statement
More information can be found in issue #307
- Bugfix: hide swatch options for disabled products
More information can be found in issue #307
- Initialize Send Friend form with one input (instead of zero)
More information can be found in issue #310
- Bugfix: do not apply position sort order in product sliders if flat catalog is enabled
More information can be found in issue #308
- Bugfix: on the cart page, keep discount in totals after estimating shipping and tax
More information can be found in issue #296
- Bugfix: handle multiple tax rates when estimating shipping and tax
More information can be found in issue #280
- Bugfix: Can't remove product from compare list
More information can be found in issue #300
- Bugfix: Fixed class name typo to change the width of totals on large screens
More information can be found in merge request #366
Thanks to Guus Portegies (Cees en Co) for the contribution!
- Improvement: Better SSR slider styling for overflowing pagination bullets and equal item heights
More information can be found in issue #320
Removed
- Nothing removed
1.1.9 - 2021-11-29
Upgrade guide
If you're upgrading from <1.1.8 please check the documentation page on upgrading. Any additional information and known bugs/issues to this release will be documented there.
Added
- Use Tailwind CSS JIT mode
Update the default theme css and tailwind config so it is compatible with the Tailwind CSS JIT mode.
- Use
npm run build-prodto build a product bundle with the JIT compiler. - Use
npm run build-devto build a unpurged development bundle with the AOT compiler. - Use
npm run watchto run the JIT file watcher recompiling the css after any change. -
Use
npm run browser-syncto start the browser-sync file watcher.
UsePROXY_URL="https://my-magento.test npm run browser-syncto specify the backend host. -
Support recently viewed products
In addition to the regular Recently Viewed Product widget, Hyvä also supports configuring recently viewed products using the system configuration.
More information can be found in the merge request #243
Many thanks to Faran Cheema (Aware Digital) for the contribution!
- Add react-container.phtml to example purge config section in tailwind config
With this change uncommenting the line is all that is required after installing the react checkout.
More information can be found in merge request #292.
Many thanks to Peter Jaap Blaakmeer (Elgentos) for the contribution!
- Add PageBuilder widgets, styles & product templates
Since PageBuilder is now bundled with Magento Open Source, it makes sense to support it out of the box in Hyvä.
More information can be found in the merge request #295
Many thanks to John Hughes (Fisheye) for the contribution!
- Add .gitignore to web/tailwind with node_modules/ entry
More information can be found in the merge request #303
Many thanks to Lorenzo Stramaccia (magespecialist) for the contribution!
- Bugfix: display values for all custom option types on cart page
More information is available on the issue #187
- Support reCAPTCHA on product review form
More information is available on the issue #70
- Add product search autocomplete
More information is available on the merge request #325
- Add popular search terms page
More information is available on the merge request #326
- Add advanced search page and advanced search results page
More information is available on the issue #126
- Add support for downloadable product link selection on PDP
More information is available on the issue #209
Many thanks to Daniel Bello (Sherocommerce) for the contribution!
Changed
- Use SSR rendering for product sliders instead of GraphQL
The product sliders no longer use GraphQL. The graphql product slider template still is present for backward
compatibility, but it is no longer used.
The items use the product listing template, so add-to-cart and swatches are now supported, too.
More information can be found on the merge request #294
- Improve Send to Friend
The form has been improved a lot, including support for reCAPTCHA.
More details can be found in the merge request #228
Many thanks to Lucas van Staden (Proxiblue) for the contribution!
- Remove defer attribute on CSS link as it has no effect
More details can be found in the merge request #249
Many thanks to Sean van Zuidam (Mooore) for the contribution!
- Improve Breadcrumbs markup accessibility
More details can be found in the merge request #288
Many thanks to Sean van Zuidam (Mooore) for the contribution!
- Improve compare and wishlist scripts for product list items
Previously the scripts to initialize the Alpine.js components where rendered for each product list item. With this change they are only rendered once, thus reducing the pagesize.
More details can be found in the merge request #289
Many thanks to Sean van Zuidam (Mooore) for the contribution!
-
Improve YouTube integration
-
make sure to use youtube-nocookie.com if possible
- only initialise / embed YouTube once
- update iframe API URL
More details can be found in the merge request #290
Many thanks to Simon Sprankel (Customgento) for the contribution!
- Bugfix: Apply logo configuration in Magento 2.4.3 and newer
More information can be found in the issue #252
- Adds fieldset as secondary parent selector to custom field styles
Previously field styles where not applied if no form parent tag was present.
More details can be found in the merge request #296
Many thanks to Josh Cairney (Swarmingtech) for the contribution!
- Remove img tag from list of allowed HTML when using escaper::escapeHTML because it throws error
More details can be found in the merge request #297
Many thanks to Wilfried Wolf (Sandstein) for the contribution!
- Bugfix: Fix custom option price calculation
Custom option prices where wrong if the last custom option has no price assigned.
More details can be found in the merge request #298
Many thanks to Simon Sprankel (Customgento) for the contribution!
- Use GraphQL variables instead of string replacements
This fixes a number of issues related to parameter escaping and serialization as well as making the queries editable with the GraphqlEditor as described in the docs.
A new GraphQlQueriesWithVariables view model provides the matching queries. The old GraphQlQueries view model still exists unchanged for backward compatibility.
All queries and mutations now are named, which should help with debugging.
More information can be found in the issue #261
- Move GA block to before.body.end by default
By default the GA block is meant to be placed in before.body.end for performance reasons.
More details can be found in the merge request #305
Many thanks to Josh Cairney (Swarmingtech) for the contribution!
- Do not render HTML items with duplicate id attributes on product list toolbar
This change increases ARIA accessibility compliance.
More information can be found in the issue #279
- Apply product settings to qty input
Previously many product settings where ignored.
More details can be found in the merge request #308
- Make translated string consistent with Luma
Previously Hyvä used the string "Please enter a coupon code", while in Luma the string "Please enter a coupon code!" is used.
More details can be found in the issue #212
- Disable page scrolling if cart loader overlay is visible
More information can be found in the issue #218
- Validate message length according to configured constraints when sharing the wishlist
More information can be found in the issue #223
- Apply configuration "Redirect Customer to Account Dashboard"
Previously customers where always redirected to the customer account page regardless of the configuration setting.
More information can be found in the issue #234
- Hide zero product price if it is not salable
Products that are not salable and have a price > zero still are displayed with the price. This does not matche the behavior in Luma.
More information can be found in the issue #314
- Bugfix: Preselect product options when editing from cart
More information can be found in the issue #240
- Bugfix: Escape customizable product option title in JS string
Previously product option titles included a ' caused a JavaScript error.
More information can be found in the issue #241
- Bugfix: On PDP, uncaught TypeError: Cannot read property 'type' of undefined at Proxy.isTextSwatch
The issue only occurred with a configurable product set up with only one configurable attribute that is a swatch while at least one child product is out of stock and at least one child product is disabled.
More information can be found in the issue #190
Thanks to Guus Portegies (Cees en Co) for figuring out the steps to reproduce the issue!
- Bugfix: On Cart Page, JavaScript error on invalid country configuration
The error occurred if the configured default shipping country was not included in the list of allowed countries. Now the checkout will continue to work, but an explanatory error message is logged to the browser console.
More information can be found in the issue #259
- Bugfix: include the current category ID in product list item cache key
More information can be found in the issue #260
- Bugfix: On PDP, remove duplicate HTML element ID customer-reviews
More information can be found in the issue #262
- Bugfix: Fix product reviews pagination
More information can be found in the issue #161
- Bugfix: Apply sort by relevance URL parameter on product list page
More information can be found in the issue #273
- Bugfix: prevent duplicate out-of-stock error messages on cart page
More information can be found in the issue #329
- Bugfix: specify proper order for sidebar in sm breakpoint
Render the sidebar-main before the main content on sm screens.
More information can be found in the issue #242
-
Styling improvements
-
Moved
containerconfiguration from css totailwind.config.js. - Reduce layout shifts on PHP sliders.
- Since the refactor of
columnsfrom flex to grids, many pages have had double paddings. These nested container classes have now been removed.
More information can be found in the merge request #332
- Replace stock image with the new Hyvä logo on default homepage content
More information can be found in the issue #278
- Bugfix: hide scrollbar in Firefox like in webkit
More information can be found in the merge request #336
Many thanks to Sean van Zuidam (Mooore) for the contribution!
- Bugfix: Hide configurable order item children in order page
More information can be found in the issue #281
- Magento Coding Standard compliance and code improvements
Many small changes where made to make the code pass the Magento Coding Standards phpcs rules.
Besides following the Magento Coding Standard, many small refactorings where made so the code complies with our own
standards. All these changes should be backward compatible. The changes include:
- Removing underscore prefixs from PHP variables in templates
- Use let and const instead of var in JavaScript code
- Remove usages of $this = this in JavaScript code
More information can be found in the merge request #344
Removed
- Nothing removed
1.1.8 - 2021-09-24
Added
- Add estimate shipping form to cart page
More details can be found via the issue #147.
- Add customer account update email checkbox
The customer account edit form was previously missing this checkbox.
Thank you to Josh Cairney @ Swarming Technology (@joshcairney) for the contribution.
- Add container on cart page for custom product type options
This container allows rendering additional options for cart line items.
More details can be found in the commit 029d2b.
- Add Date-of-Birth form field template with datepicker
Thanks to Alex Galdin @ integer_net (@alexgaldin) for the contribution!
- Add additional information container to cart page
The container is rendered below the coupon form field on the cart page. More details can be found in the commit 097918.
- Add container to totals on cart page to render custom totals
The container is rendered below the existing totals but before the grand total. More details can be found in the commit 58f447.
- Allow setting css classes on generic slider
If a value is set for the property maybe_purged_tailwind_section_classes on block class rendering the slider, it
will be used as the container class="" attribute value. If the property is not set, the previous value is used,
meaning this is a backward compatible change.
More details can be found in merge request #246.
- Bugfix: add page content for customer/account/confirmation page
Previously, if customer registration required email confirmation, clicking the link on the on-page message triggered
a stack trace on the page customer/account/confirmation.
More information can be found in the issue #245.
- Add meta og tags to PDP
Add meta og tags to the PDP.
Changed
- Bugfix: Escape product review gql mutation payload values
More information about this backward compatible change can be found in the commit ff9095
- Bugfix: Fix issues with old Safari browser
Details on backward compatible change can be found in the merge request #261
Thank you to Guus Portegies @ Cees en Co (@gjportegies) for the contribution!
- Bugfix: Make Google Analytics compatible with Magento_GoogleTagManager
Previously Google Analytics revenue data was not collected on the frontend order success page on Adobe Commerce.
Thanks to Jesse de Boer @ Elgentos (@jesse) for investigating!
-
Bugfix: Align subtotal excl. tax value on cart page to the right like the other total modals
-
Split mobile and desktop menu into separate .phtml files
Decoupling the two makes customizing one of the views possible without influencing the other menu.
The change is backward compatible.
- Update TailwindCSS to the latest version
The version constraint in the package.json is now set to 2.2.9.
This is a backward compatible change.
- Apply Logo Dimensions set in the Adminhtml Theme Configuration
Previously the logo height and width set in the admin theme config where not applied. As long as there is no size configured on the theme, the previous dimensions set in layout XML are still used. Because the related view models where added to Magento only in version 2.4.3, they where copied into the Hyva_Theme module to provide forward compatiblity for older Magento versions.
More details can be found in the issue #221.
Thanks to Tomas Kalasz @ CS2 (@TKalasz) for investigating and to Ravinder @ redChamps (@rav-redchamps) for the patch!
Removed
- Removed topmenu_static.phtml template
The template is now part of the hyva-ui repository.
1.1.7 - 2021-08-25
Added
- nothing
Changed
- Bugfix: Remove trailing space in customer prefix option values
See commit
Thanks to Daniel Galla (IMI)!
- Bugfix: Allow authentication-popup to be resubmitted
In the authentication popup (when guest checkout is disabled), once incorrect information is entered and the form is submitted, the submit button is “disabled” and re-submitting with the correct information is not possible.
See issue #214
Removed
- nothing
1.1.6 - 2021-08-12
Version 1.1.6 of the Hyva_Theme module is required for this update
Critical
- Fix for: Subtotals break if address set without shipping method
In some edge cases an address could be set on a quote item without a shipping method. This would break the cart total display. If default behaviour to quote shipping address is changed, for instance by a third-party module, where an address is set on the quote by default, but no shipping method, this would break the cart instantly.
A direct patch/diff for this issue can be downloaded from commit 9a78264f diff
See commit 9a78264f.
- Page columns layout refactored from flex to grids
For a more solid handling of 2columns-right and 3columns, the page layout was refactored to CSS grids.
This means all pages now have 'containered' content by default, since the .columns div now has the tailwind container class applied.
If you want to build custom pages that are full-width, you now need to define your own page-layout. This means when you're creating custom pages, you no longer need to add in containers on all blocks you add, making layouts more consistent.
The changes were made in web/tailwind/components/structure.css and require you to remove the extra wrapper container we previously introduced in Magento_Theme/page_layout/override/base/2columns-left.xml.
These changes can be viewed in commit 54c7f6d5.
In existing projects, you might end up with double margins on containers after this change.
We would advise to either:
1. remove extra containers you added in your content
2. in case you don't want to update your existing content, keep the previous version of the files Magento_Theme/page_layout/override/base/2columns-left.xml and web/tailwind/components/structure.css in your child-theme.
Added
- The current page is recalculated when toggling limiter in toolbar
In Magento_Catalog/templates/product/list/toolbar.phtml, the active page is now recalculated when you switch the limiter in the toolbar. This change reflects an update in Magento core that was introduced in version 2.4.0.
See commit db90fc6a
- Regions now work as expected on customer account address forms
See commit 78f144fe
- A lot of A11Y changed were made
- Button focus styles are improved (using Tailwind
ringclasses) - Removed nested
<nav>and<footer>elements - header search icon had empty ref, changed to button
- header search was missing submit button
- header customer account had no focus state
- PLP toolbar now has logical tab order
- Swatches are now visibly focusable
- "skip header" link was missing
- Sliders now have a focus-within border when focused
- Button focus styles are improved (using Tailwind
See Issue #204, Issue #205 and related Merge requests.
Thanks to Clever Age for reporting.
NB: if you report other A11Y issues to us we'd be happy to address them
- Cart error messages are improved
General error messages in the cart are now styled (because they are now rendered by the global messages component). Cart-items that contain errors now show these errors in-line.
This requires an update of the hyva-themes/magento2-theme-module to version 1.1.6.
See all commits in Merge Request !249.
Changed
- Fix for invalid aria-label on PDP swatches
aria-labelledby="radiogroup-label" was removed on the swatch render container div.
See Magento_Swatches/templates/product/view/renderer.phtml and commit (8970a96a)[https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/commit/8970a96adca6195012196b06550d11d50c7bd9a3]
Thanks to Hitesh Koshti (Ontapgroup) for contributing.
- Fix for activeSelectOptions on Bundled product Radio options
Previously, when a radio option's quantity on a bundle product was set to user defined, the activeSelectOptions were improperly defined and the quantity input fields did not have their value or state properly set. The value got set to 0 and this negatively impacted the price calculation as well. Additionally, if the radio bundle option is required, there was no change binding on the "None" field.
See Magento_Bundle/templates/catalog/product/view/type/bundle/option/radio.phtml and commit dd51fdfb
Thanks to Josh Cairney (Swarming Tech) for contributing.
- Fixed issue where Cart items qty input fields have no label on cart page
The cartItem quantity change input field now has a label for screenreaders
See Magento_Checkout/templates/cart/items.phtml
Thanks to Hitesh Koshti (Ontapgroup) for contributing.
- Customer Login legends are now consistently styled
The form titles/legends for customer login and account registration are now consistently styled
Thanks to Hitesh Koshti (Ontapgroup) for contributing.
- Fix for bundled product Radio/Select if only one option present
When either the radio or select is a single option the user defined checkbox did not take effect which disables the qty input.
See commit a3aaf192
Thanks to Ryan Hissey (Aware Digital) for contributing.
- Bundled product qtyHelper method is now defined in parent component
The qtyHelper methods that memorize bundle option quantities selected by vistitors is now no longer generated for all bundle option, but defined once in the initBundleOptions component.
See commit 7d452495
Thanks to Ryan Hissey (Aware Digital) for contributing.
- Cart display of totals and coupon are improved
We've refactored how cart subtotals look.
See commit e4efe6cc or related issue with screenshots #195
- Fix re-definition of
category.view.containerin layout xml
In Magento_Catalog/layout/catalog_category_view.xml, the category.view.container is no longer redefined.
See commit 3ce5c6c1
Thanks to John Hughes (Fisheye) for contributing
- The
category.product.list.additionalhas moved toMagento_Catalog/layout/catalog_category_view.xml
Thanks to Nathan Day (Fisheye) for contributing
- The Checkout button in cart is no longer disabled on error
The state of the cart can change by changing quantities in the cart. Clicking "Proceed to Checkout" performs a serverside validation of the cart and will return back at the cart in case the cart is still invalid.
An example is "Minimum order amount". If the minimum is not met, it will show a warning. If you would increase the quantity of an item so that the minimum is met, the message disappears. Validation takes place again when you continue to checkout.
See commit 1d5747d8
- The product sections renderer
trim on booleanerror is fixed
The following error would occur:
TypeError: trim() expects parameter 1 to be string, bool given in Magento_Catalog/templates/product/view/sections/product-sections.phtml
See commit e1459009
Thanks to Victor Chiriac (Magecheck) for reporting
Removed
- none
[1.1.5] - version number SKIPPED
- 1.1.5 was skipped in order to stay in sync with
hyva-themes/magento2-theme-module
1.1.4 - 2021-06-16
Version 1.1.4 of the Hyva_Theme module is required for this update
Added
- A Dispatch event that is triggered after accepting cookies
After accepting cookies window.dispatchEvent(new CustomEvent('user-allowed-save-cookie')); is now being triggered.
In the Hyva_Theme module (v1.1.4) cookies are not stored until this event is triggered.
See Magento_Cookie/templates/notices.phtml
Thanks to Mirko Cesaro (Bitbull) for contributing
- Initial active gallery image now defaults to 0 if no main image set
If no main image is set, the initial active image is now set to 0.
See Magento_Catalog/templates/product/view/gallery.phtml
Thanks to Simon Sprankel (CustomGento) for contributing
- In customer account area, sales items are now showing child-items
See Magento_Sales/templates/order/invoice/items.phtml, Magento_Sales/templates/order/items.phtml and commit 72751505
- Customer account sales now show prices including tax
The layout file at Magento_Tax/layout/sales_order_item_price.xml was added, which adds tax to sales items in customer account, when needed.
- Add-to-cart button on PDP has its original ID back
The add-to-cart button now contains id="product-addtocart-button" again, as it does in core Magento. This would help frontend testing frameworks in functioning.
See Magento_Catalog/templates/product/view/addtocart.phtml
Thanks to Laura Folco for contributing
- Switching configurable options now dispatches an event
The event configurable-selection-changed is now dispatched from Magento_ConfigurableProduct/templates/product/view/type/options/js/configurable-options.phtml
This allows you to hook into this event in 3rd party modules or custom code.
Thanks to Simon Sprankel (CustomGento) for contributing
- A generic slider template was added
Magento_Theme/templates/elements/slider-generic.phtml was added. Hyva_Theme module version 1.1.4 or higher is needed to use the generic slider.
Please refer to Rendering Sliders in the Hyvä Documentation for full details on how to use the generic slider.
- Out of stock swatches are now shown
Out of stock swatches are now implemented on PLP and PDP.
Also, the phtml that renders swatches is consolidated to a single file: Magento_Swatches/templates/product/swatch-item.phtml
Same goes for swatch tooltips: Magento_Swatches/templates/product/tooltip.phtml
See commit fd3f3aa3
- Email To Friend Button was added to PDP
The EmailToFried/SendFriend button has been added to the Product Detail Page.
See commit a5211128
Changed
- Product List items are now cached in block_html cache
This reduces cost for products with swatches, as they are loaded for each product individually and not as part of the product collection.
See Magento_Catalog/templates/product/list.phtml
- Top Menu now uses generic template block with viewmodel cache tags
Now that the Navigation View Model uses getIdentities() we can set the cache_tags on the topmenu and properly cache the menu in Full Page Cache.
See Magento_Theme/templates/html/header/topmenu.phtml and commit 6736ae66
- PLP Titles have been reintroduced and Styled
We no longer remove the title in Magento_Catalog/layout/catalog_category_view.xml.
Beside that, the titles are restyled a bit overall.
Thanks to Rich Jones (Aware Digital) for contributing
- Swatch options now correctly return
labelbeforevalue
See Magento_Swatches/templates/product/js/swatch-options.phtml
Thanks to Rich Jones (Aware Digital) for contributing
- Swatch labels are now properly closed with
See Magento_Swatches/templates/product/view/renderer.phtml
Thanks to Rich Jones (Aware Digital) for contributing
- Product Description is now rendering Directives properly
$productViewModel->productAttributeHtml() is now used to render product descriptions. That means variables in {{directives}} are now rendered.
See Magento_Catalog/templates/product/view/description.phtml
- An empty product description no longer renders the parent element on PDP
See Magento_Catalog/templates/product/product-detail-page.phtml
Thanks to Victor Chiriac (Mage Check) for contributing.
- Additional product data on PDP is now rendered with a renderer
As in default Magento (Luma), additional data is now rendered with a renderer (Magento_Catalog/templates/product/view/product-sections.phtml) which allows you to change the display of these sections to a custom implementation.
This makes it a lot easier to implement a tabbed display or accordeon. It also enables you to render additional data from 3rd party modules using the standard Magento layout group:
<block class="Magento\Catalog\Block\Product\View\Attributes" template="Magento_Catalog::product/view/description.phtml" group="detailed_info"/>
See
- Magento_Catalog/layout/catalog_product_view.xml and files in Magento_Catalog/templates/product/view/sections/
- or all commits in Merge Request 201
- Customer account registration pages are no longer cached
If any error occurred during customer signup & customer was being redirected back to the registration form with error message. But the form data would not be preserved due to full-page caching.
cacheable="false" has now been added to the customer_form_register block.
See Magento_Customer/layout/customer_account_create.xml
Thanks to Ravinder (redMonks/redChamps) for contributing
- Shopping assistance checkbox has been added to registration form
See Magento_Customer/templates/form/register.phtml and Magento_LoginAsCustomerAssistance/layout/customer_account_create.xml
Thanks to Ravinder (redMonks/redChamps) for contributing
- Logo image size variables are now correct
In Magento_Theme/layout/default.xml the variables logo_img_width and logo_img_height were renamed to logo_width and logo_height
This changed in 2.3.5+ in Magento Core.
Thanks to Guus Portegies (Cees en Co) for reporting
- The checkout url in de minicart/cart-drawer changed
checkout/index was changed to checkout, which normally renders the same page/url. But, some 3rd party extensions (such as Mageplaza_OneStepCheckout) replace the checkout url to alter the path to a checkout page.
See Magento_Theme/templates/html/cart/cart-drawer.phtml
- Empty cart continue shopping now links to homepage
Previously, this linked back to the cart.
Thanks to Daniel Galla (iMi) for contributing
Removed
- Standard Quantity field is no longer shown on Grouped products
See Magento_Catalog/templates/product/view/quantity.phtml
Thanks to Rich Jones (Aware Digital) for contributing
- Pagination was removed from customer account order print
See Magento_Sales/layout/sales_order_print.xml
- Aria labelledby has been removed from PLP swatch-items
aria-labelledby="radiogroup-label" was causing LightHouse best practice warnings and thus has been removed.
See Magento_Swatches/templates/product/listing/renderer.phtml
Thanks to Hitesh Koshti (On Tap) for contributing
1.1.3 - 2021-05-07
Version 1.1.3 of the Hyva_Theme module is required for this update
Added
- none
Changed
- Pass product instance to price view model instead of relying on internal state
This improves reusability of templates and allows changing the order in which they are rendered.
Removed
- none
1.1.2 - 2021-05-03
Version 1.1.2 of the Hyva_Theme module is required for this update
Added
- Added
clear-messagesevent to the messages-component
Messages from the messages component can now be cleared with an event that removes all messages in Magento_Theme/templates/messages.phtml
Can be used as window.dispatchEvent(new CustomEvent('clear-messages'));
- Select template for custom-options
Custom options of the type dropdown and multiple are now rendered by a .pthml file, instead of using \Magento\Catalog\Block\Product\View\Options\Type\Select\Multiple::_toHtml
A new viewModel and method were created for this: \Hyva\Theme\ViewModel\CustomOption::getOptionHtml
This viewModel renders Magento_Catalog/templates/product/composte/fieldset/options/view/multiple.phtml (new) or Magento_Catalog/templates/product/composite/fieldset/options/view/checkable.phtml (existing).
- Custom options are added for Bundled products
Turns out, when dynamic pricing is disabled, bundled products can have custom options. Who knew? We didn't.
So now, bundled products contain custom options.
This means that mostly extra logic was added to pricing at Magento_Bundle/templates/catalog/product/view/price.phtml
Also the container product_info_bundle_options_top was re-added from core Magento and product_info_bundle_options_bottom was newly created.
Changed
- Added robots.txt file back to layout
See Magento_Sitemap/layout/robots_index_index.xml
Thanks to Rik Willems (RedKiwi) for contributing.
- Fix hardcoded required company field on customer account
See Magento_Customer/templates/widget/company.phtml
Thanks to Aad Mathijssen (Isaac) for contributing.
- Fix hardcoded required region field on customer account
See Magento_Customer/templates/address/edit.phtml
Thanks to Aad Mathijssen (Isaac) for contributing.
- Replaced removeEventListener with
{ once: true }on addEventListener
See Magento_ReCaptchaFrontendUi/templates/js/script_loader.phtml:
document.body.addEventListener("input", loadRecaptchaScript, { once: true });
Thanks to Javier Villanueva (Media Lounge) for contributing.
- FIX: reload customerData in cart after applying coupon code
See Magento_Checkout/templates/cart/js/cart.phtml
- Fix: don't show PLP Swatches for attributes with getUsedInProductListing disabled
See Magento_Swatches/templates/product/listing/renderer.phtml
- Swatch display improvements
- set height and width on all non-text swatches
- use swatch value and fall back to swatch label
- hide image container in tooltip if no image/color available
- add whitespace-nowrap to swatch and tooltip text
See commit 2ebc7a5c
- **Added .editorconfig for unified whitespace handling
See .editorconfig
Thanks to Sean van Zuidam (Mooore) for reporting.
- Added initActive event to gallery that activates the main image
Previously, the first image in the image list would show as initial image.
Now, the main image is activated on load.
See Magento_Catalog/templates/product/view/gallery.phtml
Thanks to Rik Willems (RedKiwi) for contributing.
- Fix price calculation for bundled tier prices
Previously, the tierPrice price-reduction was calculated, instead of adding the result price.
See Magento_Bundle/templates/catalog/product/view/price.phtml
Thanks to Gautier Masdupuy (Diglin) for reporting.
- Change item qty change event to input event in cart
Previously, cart item quantity changes in the cart were triggered onBlur, this was changed to onInput.
This results in quicker feedback. Changes are still debounced with 1 second:
x-on:input.debounce.1000="mutateItemQty(item.id, $event.target.value);"
-
Quality improvements on the cart page
- Direct customerData retrieval from localStorage was removed and replace with the
private-content-loadedevent only. - Replaced $this instances combined with
function(){}for ES6 arrow functions andthis - Added error feedback to
fetch()methods, report errors to console and show general error message to visitors - Report
- Direct customerData retrieval from localStorage was removed and replace with the
-
Fix adding multiple select options to wishlist
Selected product options (custom, configurable, bundle and grouped) of the type select-multiple are now properly sent to the wishlist.
See Magento_Catalog/templates/product/view/addtowishlist.phtml
Thanks to Gautier Masdupuy (Diglin) for reporting.
- Fix price calculation for bundled options
A bug was introduced in 1.1.1 that removed x-ref from bundle-option input fields, replacing then with
document.querySelector(option[data-option-id="${optionId}-${selectionId}"]
Two issues occured:
- not all inputs had the data-option-id attribute
- not all inputs are of the type option
The querySelector was changed to [data-option-id="${optionId}-${selectionId}"] and the attribute was added to the missing option types
See Magento_Bundle/templates/catalog/product/view/type/bundle/options.phtml and Magento_Bundle/templates/catalog/product/view/type/bundle/option/*.phtml
- Only validate 1 option for custom option checkboxes
Thanks to Hrvoje Jurišić (Favicode) for reporting.
- Calculate product final price when configuring a product in cart with custom options
Previously, when editing a product in the cart, the product final price was only updated after changing custom options. Now, already selected options are properly selected when loading the configure cart-product page.
See initSelectedOptions in Magento_Catalog/templates/product/view/options/options.phtml
- Fix uploading new custom option file
Previously when editing a product in the cart with an uploaded custom-option-file, a new file would not be uploaded.
Now, the value save_new is properly set on the hidden file-field.
See Magento_Catalog/templates/product/view/options/type/file.phtml
- Styling of bundled options was improved on smaller viewports
Mostly: input fields would break out of the containing columns because of the browsers default min-width value of <fieldset>
See Magento_Catalog/templates/product/view/options/wrapper/bottom.phtml, Magento_Bundle/templates/catalog/product/view/summary.phtml and Magento_Bundle/templates/catalog/product/view/type/bundle/options.phtml
- Escaping of additional attributes was removed to allow html to be rendered
Thanks to Vinai Kopp for contributing.
- PDP prices are overhauled to respect all tax-settings
Tax display was inconsistent, mostly when selecting catalog prices include tax and display product page prices excluding tax.
Price retrieval was refactored into a viewModel in Hyva_Theme: \Hyva\Theme\ViewModel\ProductPrice.
This applies to:
- Product price
- custom options
- tier prices
- bundle options
See commit 61b3f1a0
Removed
Hyva_Theme/templates/js/localStorageConfig.phtml
The file localStorageConfig.phtml was removed, since it is an anti-pattern to retrieve customerData from localStorage directly.
Instead the private-content-loaded event should be used. Please refer to the documentation for more information on the private-content-loaded mechanism.
1.1.1 - 2021-04-08
Added
- none
Changed
- Resolved issues with Configurables/Swatches:
- Empty swatches now render correctly
- Dropdown attributes now render correctly with Swatches enabled. Therefore
Magento_ConfigurableProduct/templates/product/view/options/configurable.phtmlneeded to be moved toMagento_ConfigurableProduct/templates/product/view/type/options/configurable.phtml initConfigurableOptions_{product_id}()changed toinitConfigurableDropdownOptions_{product_id}()in order to add$block->getJsonConfig()in a<script>block instead passing it through thex-data=attribute.- PLPs no longer try to render non-swatch attributes
Thanks to Antonio Carboni (Magenio) for reporting
Please refer to 1.1.1 for all diff changes
Removed
- none
1.1.0 - 2021-04-02
Added
- Compare products sidebar added
Thanks to Timon de Groot and Sean van Zuidam (Mooore) for contributing.
- Product Attributes listing added
The product.attributes was added to product detail pages, which list all available attributes for a product (as an addition to the 'featured attributes' listed on top of PDPs).
Thanks to Sean van Zuidam (Mooore) for contributing.
- In Product Listings, price and image can now be updated
To support swatches on PLPs, the price and image can now be updated with events:
update-gallery-<?= (int)$productId ?> and update-prices-<?= (int)$productId ?>
See Magento_Catalog/templates/product/list/item.phtml
- Empty checkout now shows message
If no checkout installed, a message is now being shown.
See Magento_Checkout/layout/checkout_index_index.xml
- Checkout registration now works
After checkout, the registration option is now shown.
See Magento_Checkout/templates/registration.phtml
Thanks to Vincent Marmiesse (PH2M) for contributing.
- A footer column container was introduced
A wrapper column for the footer was added Magento_Theme::html/footer/column.phtml
See Magento_Directory/layout/default.xml for usage.
- Login as customer is now fully compatible
The default login as customer from the admin area now works, including the customer-account-area toggle to allow accounts to be controlled by store-owners.
See /Magento_LoginAsCustomerFrontendUi/
Thanks to Barry vd. Heuvel (Fruitcake) for contributing.
- Currency switchers were added
The footer now loads a currency switcher.
See Magento_Directory/layout/default.xml and Magento_Directory/templates/currency.phtml
- Store and Language switchers were added
The footer now loads a store and language switcher, if required.
See Magento_Store/layout/default.xml, Magento_Store/templates/switch/languages.phtml and Magento_Store/templates/switch/stores.phtml
- Configurable swatches were added
Swatches are now loaded on PLP and PDP pages. The swatches in layered navigation were already present but are now better styled and include tooltips.
See /Magento_Swatches/ for all changes.
An important new pattern is the extension of already existing Alpine Components by merging/extending the initObjects.
As present in Magento_Swatches/templates/product/view/renderer.phtml:
<?= $block->getChildHtml('options_configurable_js') ?>
<?= $block->getChildHtml('options_swatch_js') ?>
<script>
function initConfigurableSwatchOptions_<?= (int) $productId ?>() {
const configurableOptionsComponent = initConfigurableOptions(
'<?= (int) $productId ?>',
<?= /* @noEscape */ $block->getJsonConfig() ?>
);
const swatchOptionsComponent = initSwatchOptions(
<?= /* @noEscape */ $block->getJsonSwatchConfig() ?>
);
// here we merge `configurableOptionsComponent` with `swatchOptionsComponent`
return Object.assign(
configurableOptionsComponent,
swatchOptionsComponent
);
}
</script>
A static phtml file was added to load common footer links.
See Magento_Theme/layout/default.xml and Magento_Theme/templates/html/footer/links.phtml
Changed
- Improved bundle option performance
On bundled products with large amount of options, x-ref used excessively in a loop caused performance issues.
These were refactored to document.querySelector() and document.getElementById() lookups.
See Magento_Bundle/templates/catalog/product/view/type/bundle/options.phtml and https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/93
Thanks to Gautier Masdupuy (Diglin) for reporting.
- product.info.options.wrapper was reintroduced
https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/117
For compatibility with 3rd party modules / extensibility.
See Magento_Catalog/layout/catalog_product_view.xml
Thanks to Laura Folco for reporting.
- Limiter and ViewMode in toolbar no longer break layout when empty
The Limiter and ViewMode now render empty containers to prevent the layout from breaking when they are disabled.
Thanks to Judith Demets (Storefront) for contributing
- Alt and Title fallbacks are added to the PDP image gallery
See Magento_Catalog/templates/product/view/gallery.phtml
Thanks to Aad Mathijssen (Isaac) for contributing.
- Tax display on PDP is now correct
https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/115
Previously, if catalog prices were excluding tax but displayed with tax, the tax would not be added correctly.
Thanks to Antonio Carboni (Magenio) for reporting
- Configurable prices now show 'as low as' until all options selected
See Magento_Catalog/templates/product/view/price.phtml
Thanks to Konrad Langenberg (imi) for contributing.
- min and max screenheight values are better named
Previously, min-height: 50vh was declared as min-h-50, this has been changed to min-h-screen-50.
See web/tailwind/tailwind.config.js
Please check your codebase for any instance of min-h-{25,50,75} as well as max-h-{25,50,75} and replace with min-h-screen-X and max-h-screen-X values.
Thanks to Sean Zuidam (Mooore) for reporting
- Cart shipping totals now display correctly
See Magento_Checkout/templates/cart/totals.phtml
Thanks to Victor Chiriac (Mage Check) for contributing.
- Alpine Component JS for Configruable options moved to child block
In order to make initConfigurableOptions() reusable and extendable, it was moved into Magento_ConfigurableProduct::product/view/options/js/configurable-options.phtml
This was needed for integration of Configurable Swatches without duplication of a large amount of JavaScript code.
See Magento_ConfigurableProduct/layout/catalog_product_view_type_configurable.xml, Magento_ConfigurableProduct/templates/product/view/options/configurable.phtml and Magento_ConfigurableProduct/templates/product/view/options/js/configurable-options.phtml.
- Customer account edit page password error message moved
for better layout stability, the structure of Magento_Customer/templates/form/edit.phtml changed to prevent layout shifts.
- Customer menu in header now respects
isAllowedsetting for account registration
See Magento_Customer/templates/header/customer-menu.phtml
Thanks to Barry vd. Heuvel (Fruitcake) for contributing.
- Customer account edit prefix field now respects
isPrefixRequiredsetting
Thanks to Philipp Neuteufel (Limesoda) for reporting.
- Footer newsletter subscription styled more consistently
The footer newsletter form is now styled more in line with the rest of the layout.
- PDP reviews now take current storeview in account
The store header was previously missing from GraphQL calls.
See Magento_Review/templates/customer/list.phtml and Magento_Review/templates/form.phtml
- **Orders and Returns for guests now correctly toggles between Email and ZIP code`
Previously, the change event of the "Find Order By" dropdown was handling the wrong event data.
event.originalTarget.value was changed into event.target.value.
See Magento_Sales/templates/guest/form.phtml
- The cart drawer now respects the
display sidebarsetting for minicart
If checkout/sidebar/display is set to no, the cart-drawer is no longer loaded.
See Magento_Theme/layout/default.xml
Thanks to Rik Willems (RedKiwi) for contributing.
- The product slider now checks for
visiblityandstatusof linked products
Upsells, Cross-sells and Related products are not filtered by graphql on storefront visiblity.
We therefore added the visibility and status attributes to the graphql result so that we can filter on them.
See Magento_Theme/templates/elements/slider.phtml
- Escaping was improved in the topmenu
See Magento_Theme/templates/html/header/topmenu.phtml
Thanks to Aad Mathijssen (Isaac) for contributing.
- Browsersync improvements
Improvements to browsersync config were made to prevent form-key issues.
Thanks to Javier Villanueva (Media Lounge) for contributing.
Removed
<script>tags no longer contain thedeferattribute
Since these have no effect...
- Duplicate function declarations in Alpine Components
For IE11 compatibility we used to declare function names in Alpine init objects with an explicit function name. These have now been removed. For example:
became:1.0.0 - 2021-02-15
Added
- Initial Release added
Changed
- see 1.0.0
Removed
- none