Skip to content

1. Getting Started

Requirements

  • Magento 2.4.3 CE or higher
  • A valid license for Hyvä Themes, please view https://hyva.io/license
  • For licensees: A Private Packagist Key
  • For partners: Access to Hyvä Gitlab
  • PHP 7.4, 8.1, 8.2 or 8.3

System Requirements

The system requirements depend on the versions of Magento and Tailwind CSS in use.

At the time of writing, a node version >= 16.0.0 is required on development instances to run the tailwind compiler. We recommend creating the bundle on development or staging instance, not on production.

The system requirements for Magento can be found in the devdocs.

Open Source Modules

All Hyvä open source modules (for example hyva-themes/magento2-graphql-token) are available via public packagist without configuring a composer repository.

For Licensees

Getting Started

You need a valid license and a Private Packagist key.

You should have received the instruction below when purchasing your license:

# this command adds your key to your projects auth.json file
# replace yourLicenseAuthentificationKey with your own key
composer config --auth http-basic.hyva-themes.repo.packagist.com token yourLicenseAuthentificationKey
# replace yourProjectName with your project name
composer config repositories.private-packagist composer https://hyva-themes.repo.packagist.com/yourProjectName/

Then, install the theme package and its dependencies:

composer require hyva-themes/magento2-default-theme

Next, run the Magento installer:

bin/magento setup:upgrade

Navigate to the Content > Design > Configuration admin section and activate the hyva/default theme.

Ensure a theme is set on the Website

Setting hyva/default on a store view only and keeping the lower Website and Store set to -- No Theme -- will cause issues on the store front.
If you set the Hyvä theme at a Store or Store View level, be sure to also set a theme on the Website.
It does not matter what theme - it could be Luma of Hyvä or another theme - as long as it is set.

In developer mode, you should now be able to see the theme in action on the frontend. A cache flush might be required.

In deploy mode production, running bin/magento setup:static-content:deploy is required.

In deploy mode default the newly installed modules will not be automatically enabled. You should however never operate a Magento store in default mode.

To create your child theme, continue with: Building your Theme

Additional Steps

Disabling Magento Captcha

Captcha Support

We currently don’t support the old Magento captcha implementation, which is enabled by default.

Instead, use one of the three Google ReCaptcha versions supported by Magento:
ReCaptcha V3 invisible, V2 invisible and v2 "I'm not a robot".

Please disable the default Magento Captcha for forms to work:

bin/magento config:set customer/captcha/enable 0

Disabling the built-in minification and bundling

We generally recommend switching off the built-in minification and bundling of HTML, CSS and JS, as they don't benefit Hyvä sites, and even tend do harm, that is, produce overhead and maybe cause unwanted effects

bin/magento config:set dev/template/minify_html 0
bin/magento config:set dev/js/merge_files 0
bin/magento config:set dev/js/enable_js_bundling 0
bin/magento config:set dev/js/minify_files 0
bin/magento config:set dev/js/move_script_to_bottom 0
bin/magento config:set dev/css/merge_css_files 0
bin/magento config:set dev/css/minify_files 0

Be sure to keep the settings enabled for any store views that use Luma based themes.
See setup:static-content:deploy fails minifying CSS regarding CSS minification if you encounter issues.

Ensure required GraphQL modules are enabled

By default all Magento GraphQL modules are enabled.

However, often unused GraphQL modules are disabled in Magento stores using the Luma theme.

Hyvä makes use of the Magento GraphQL API. Because of this these modules need to be enabled if they have been disabled:

Module composer package name
Magento_BundleGraphQl magento/module-bundle-graph-ql
Magento_CatalogCustomerGraphQl magento/module-catalog-customer-graph-ql
Magento_CatalogGraphQl magento/module-catalog-graph-ql
Magento_CatalogRuleGraphQl magento/module-catalog-rule-graph-ql
Magento_CatalogUrlRewriteGraphQl magento/module-catalog-url-rewrite-graph-ql
Magento_ConfigurableProductGraphQl magento/module-configurable-product-graph-ql
Magento_CustomerGraphQl magento/module-customer-graph-ql
Magento_DirectoryGraphQl magento/module-directory-graph-ql
Magento_DownloadableGraphQl magento/module-downloadable-graph-ql
Magento_EavGraphQl magento/module-eav-graph-ql
Magento_GraphQl magento/module-graph-ql
Magento_GroupedProductGraphQl magento/module-grouped-product-graph-ql
Magento_QuoteGraphQl magento/module-quote-graph-ql
Magento_GraphQlCache magento/module-graph-ql-cache
Magento_RelatedProductGraphQl magento/module-related-product-graph-ql
Magento_ReviewGraphQl magento/module-review-graph-ql
Magento_SalesGraphQl magento/module-sales-graph-ql
Magento_StoreGraphQl magento/module-store-graph-ql
Magento_SwatchesGraphQl magento/module-swatches-graph-ql
Magento_UrlRewriteGraphQl magento/module-url-rewrite-graph-ql
Magento_WishlistGraphQl magento/module-wishlist-graph-ql

Are all GraphQL modules required?

Most of the time not all of these GraphQL modules are required. Which modules are required depends on what features are being used. For example, if Recently Viewed Products are not enabled, then the Catalog GraphQL module is not required at all.

Checking which GraphQL modules are enabled

Run the following command and check that all modules are enabled:

bin/magento module:status Magento_BundleGraphQl Magento_CatalogCustomerGraphQl Magento_CatalogGraphQl Magento_CatalogRuleGraphQl Magento_CatalogUrlRewriteGraphQl Magento_ConfigurableProductGraphQl Magento_CustomerGraphQl Magento_DirectoryGraphQl Magento_DownloadableGraphQl Magento_EavGraphQl Magento_GraphQl Magento_GroupedProductGraphQl Magento_QuoteGraphQl Magento_GraphQlCache Magento_RelatedProductGraphQl Magento_ReviewGraphQl Magento_SalesGraphQl Magento_StoreGraphQl Magento_SwatchesGraphQl Magento_UrlRewriteGraphQl Magento_WishlistGraphQl

The expected output is something like this:

Magento_BundleGraphQl : Module is enabled
Magento_CatalogCustomerGraphQl : Module is enabled
Magento_CatalogGraphQl : Module is enabled
Magento_CatalogRuleGraphQl : Module is enabled
Magento_CatalogUrlRewriteGraphQl : Module is enabled
Magento_ConfigurableProductGraphQl : Module is enabled
Magento_CustomerGraphQl : Module is enabled
Magento_DirectoryGraphQl : Module is enabled
Magento_DownloadableGraphQl : Module is enabled
Magento_EavGraphQl : Module is enabled
Magento_GraphQl : Module is enabled
Magento_GroupedProductGraphQl : Module is enabled
Magento_QuoteGraphQl : Module is enabled
Magento_GraphQlCache : Module is enabled
Magento_RelatedProductGraphQl : Module is enabled
Magento_ReviewGraphQl : Module is enabled
Magento_SalesGraphQl : Module is enabled
Magento_StoreGraphQl : Module is enabled
Magento_SwatchesGraphQl : Module is enabled
Magento_UrlRewriteGraphQl : Module is enabled
Magento_WishlistGraphQl : Module is enabled

Disabling unsupported bundled extensions

Only on Magento versions before 2.4.4

Before version 2.4.4 Magento came bundled with some third-party modules.
Since release 2.4.4 Magento no longer contains any bundled extensions, so this step is no longer applicable.

For installations before version 2.4.4, disable unsupported bundled extensions.

To disable (Magento 2.4.3 - 2.4.3-p2):

bin/magento module:disable Dotdigitalgroup_Email Dotdigitalgroup_Chat Dotdigitalgroup_ChatGraphQl Dotdigitalgroup_EmailGraphQl Dotdigitalgroup_Sms

Adobe Commerce

If you are running the Adobe Commerce before version 2.4.4, also disable:
Dotdigitalgroup_Enterprise Dotdigitalgroup_B2b

For Contributions and for Technology Partners

Getting Started

You need access to all Hyvä repositories at gitlab.hyva.io

You can configure the git repositories in your root composer.json and use the repositories directly as git repo’s beneath your vendor directory. You can check out tags and branches, make commits and push contributions to gitlab.hyva.io.

Tip

Ensure your SSH key is set in your Hyvä Gitlab account, as well as on github.com. If you use Docker, check that you use the SSH key available in the PHP container running Composer.

To configure and install Hyvä directly from gitlab with composer, run these commands:

# hosted on private gitlab:
composer config repositories.hyva-themes/magento2-theme-module git git@gitlab.hyva.io:hyva-themes/magento2-theme-module.git
composer config repositories.hyva-themes/magento2-reset-theme git git@gitlab.hyva.io:hyva-themes/magento2-reset-theme.git
composer config repositories.hyva-themes/magento2-email-module git git@gitlab.hyva.io:hyva-themes/magento2-email-module.git
composer config repositories.hyva-themes/magento2-default-theme git git@gitlab.hyva.io:hyva-themes/magento2-default-theme.git
composer config repositories.hyva-themes/magento2-order-cancellation-webapi git git@gitlab.hyva.io:hyva-themes/magento2-order-cancellation-webapi.git

composer require hyva-themes/magento2-default-theme --prefer-source

Next, run bin/magento setup:upgrade from your project’s root.

Do not use ssh-key authentication in CI/CD

We do not guarantee uptime for gitlab, so always use packagist.com for build pipelines and for production.

Navigate to the Content > Design > Configuration admin section and activate the hyva/default theme.

Ensure a theme is set on the Website

Setting hyva/default on a store view only and keeping the lower Website and Store set to -- No Theme -- will cause issues on the store front.
If you set the Hyvä theme at a Store or Store View level, be sure to also set a theme on the Website.
It does not matter what theme - it could be Luma of Hyvä or another theme - as long as it is set.

In developer mode, you should now be able to see the theme in action on the frontend. A cache flush might be required.

In deploy mode production, running bin/magento setup:static-content:deploy is required.

In deploy mode default the newly installed modules will not be automatically enabled. You should however never operate a Magento store in default mode.

Additional Steps

Please follow the Additional Steps instructions in the section above for license holders.