hyva-themes / magento2-luma-checkout

hyva-themes/magento2-luma-checkout

Luma Fallback Checkout for Hyvä Themes

  • Hyvä Themes B.V.
magento2-module Compatibility: Not compatible Code Quality: Fail Tests: N/A Security: Pass OSL-3.0

magento2-luma-checkout

Luma Fallback Checkout for Hyvä Themes

What does it do?

It allows to use the standard luma checkout or define another theme path for checkout when using the Hyva Theme

Installation

  1. Install via composer
    Note: both repositories need to be configured until the package and its dependency are available through packagist.
    composer config repositories.hyva-themes/magento2-luma-checkout git [email protected]:hyva-themes/magento2-luma-checkout.git
    composer config repositories.hyva-themes/magento2-theme-fallback git [email protected]:hyva-themes/magento2-theme-fallback.git
    composer require hyva-themes/magento2-luma-checkout
    
  2. Enable module
    bin/magento setup:upgrade
    

Upgrading

After upgrading from release 1.0.3 or before be sure to run

bin/magento setup:upgrade

This will ensure configuration settings stored in the database are properly migrated to the Hyva_ThemeFallback.

Should the configuration settings be locked in app/etc/config.php, you have to migrate all paths in the
section hyva_luma_checkout manually to the path hyva_theme_fallback.
The full paths that need to be migrated are:

'hyva_luma_checkout/general/enable'          => 'hyva_theme_fallback/general/enable'
'hyva_luma_checkout/general/theme_full_path' => 'hyva_theme_fallback/general/theme_full_path'

Magento backend configuration

  1. HYVA THEMES->Theme Fallback->General Settings->Enable

    The configutation path is hyva_theme_fallback/general/enable

  2. HYVA THEMES->Theme Fallback->General Settings->Theme full path

    The configutation path is hyva_theme_fallback/general/theme_full_path

    default frontend/Magento/luma

  3. HYVA THEMES->Theme Fallback->General Settings->The list of URL's parts

    The configuration path is hyva_theme_fallback/general/list_part_of_url

    The default values are checkout/index, paypal/express/review and paypal/express/saveShippingMethod.
    If they are changed, checking "Use system values" will restore the default settings.

How does it work?

This module depends on hyva-themes/magento2-theme-fallback and only supplies the configuration.

License

Copyright © 2020-present Hyvä Themes.

Each source file included in this distribution is licensed under OSL 3.0.

http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
Please see LICENSE.txt for the full text of the OSL 3.0 license.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

Unreleased

1.1.7 - 2025-11-10

Added

  • Nothing added

Changed

  • Changed license to OSL 3.0

Removed

1.1.6 - 2024-05-03

Added

  • Nothing added

Changed

  • Use resourceConnection->getTableName to determine core_config_data table name

    Previously only the db type table name hashing was being applied, not configured table name prefixes.

    For more details, please refer to issue #16.

Removed

  • Nothing removed

1.1.5 - 2024-04-29

Added

  • Nothing added

Changed

  • Use getTableName to determine core_config_data table name

    Previously, the setup data patch would fail due to an unexistant table on instances with a table name prefix.

    For more details, please refer to issue #16.

Removed

  • Nothing removed

1.1.4 - 2024-04-18

Added

  • Automatically inject customer/ajax/login into existing luma fallback configurations

    This release expands on the new default config introduced in 1.1.3 by adding a DataPatch class that
    automatically injects the customer/ajax/login path into existing Luma checkout configurations in the
    database. This means existing stores with customized configurations only need to update the luma-fallback-checkout
    module and run bin/magento setup:upgrade to apply the fix.

Changed

  • Nothing changed

Removed

  • Nothing removed

1.1.3 - 2024-04-12

Added

  • Add customer/ajax/login to default luma fallback configuration

    Since Hyvä 1.3.6 form-key validation was added to the customer/ajax/login route that is used if guest login
    during checkout is enabled.
    Since the form-key is missing in Luma, the check is skipped if the current theme is not Hyvä based.
    For this to correctly work with the Luma checkout them fallback configuration, the fallback theme also needs
    to be configured for the ajax login route.

    Release 1.1.3 add the route to the default configuration.

    For more information please refer to merge request #14.

Changed

  • Add leading / to checkout/index fallback route for hyva_checkout compatiblity

    This change is required so the Luma Checkout fallback configuration does not match hyva_checkout routes.
    With this change it is possible to use Hyvä Checkout and Luma Checkout side by side on separate store views or websites.

    For more information please refer to merge request #12.

Removed

  • Nothing

1.1.2 - 2022-03-09

Added

  • Add paypal payflow callback urls to default fallback configuration.

    Big thanks to Lucas van Staden for the contribution!

    More information can be found in the merge request #11

Changed

  • Nothing

Removed

  • Nothing

1.1.1 - 2021-06-17

Added

  • Nothing

Changed

  • Enable theme fallback in default system configuration after installation

Removed

  • Nothing

1.1.0 - 2021-06-04

Added

  • Nothing

Changed

  • Extracted the fallback logic to hyva-themes/magento2-theme-fallback.

    All code is backward compatible with one exception: the config XML paths changed.
    Configuration settings stored in the core_config_data table are migrated automatically, but settings
    stored in app/etc/config.php will need to be migrated manually.
    Please read the Upgrading section in the readme for more details.

Removed

  • All the fallback logic. This module now only is responsible for providing the fallback configuration.

1.0.3 - 2021-04-10

Added

  • This Changelog

Changed

  • pluginOrder increased to 9999 to prevent conflicts with other modules

Removed

  • none

Ealier releases

1.0.2 - 2021-02-26

1.0.1 - 2021-01-15

1.0.0 - 2020-12-08

Versions
Version Stability QA Status Compatibility Released
1.1.7 stable Fail Not compatible Details 2025-11-04 15:55:16
1.1.6 stable Not tested Not yet tested Details 2024-05-03 12:34:21
1.1.5 stable Not tested Not yet tested Details 2024-04-29 10:51:04
1.1.4 stable Not tested Not yet tested Details 2024-04-18 15:04:04
1.1.3 stable Not tested Not yet tested Details 2024-04-12 06:57:58
1.1.2 stable Not tested Not yet tested Details 2022-03-09 10:21:25
1.1.1 stable Not tested Not yet tested Details 2021-06-18 07:40:22
1.1.0 stable Not tested Not yet tested Details 2021-06-04 08:42:56
1.0.3 stable Not tested Not yet tested Details 2021-04-10 14:02:19
1.0.2 stable Not tested Not yet tested Details 2021-02-26 13:23:21
1.0.1 stable Not tested Not yet tested Details 2021-01-15 13:18:11
1.0.0 stable Not tested Not yet tested Details 2020-12-08 16:52:01

Requires 3

Package Constraint
hyva-themes/magento2-theme-fallback *
magento/framework *
magento/module-checkout >=100.3.0

Compatibility

Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.

Compatibility matrix (Magento × PHP)
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 Fail dependency conflict Fail dependency conflict
2.4.8 Fail dependency conflict not tested
2.4.9 Fail dependency conflict Fail dependency conflict

Code Quality

Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — a phpcs finding can't make a module incompatible.

Static analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

Static analysis results
Tool Status Findings Summary
PHPCS Warning 2 2 warnings (ruleset: Magento2)
PHPMD Warning 2 2 rule violations (IfStatementAssignment:2)
Cpd Pass 0
Composer validate Info 3 valid; 3 advisory notes (composer validate --strict)

PHPStan

Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.

PHPStan results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 Error Error
2.4.8 Error Error
2.4.9 Error Error

Tests

Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.

Unit tests

Unit tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Integration tests

Integration tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Security

Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.

Security results
Tool Status Findings Summary
Composer audit N/A 0 no resolvable dependency tree to audit — Your requirements could not be resolved to an installable set of packages. Problem 1
Malware scan Pass 0
License
OSL-3.0
Authors

More from hyva-themes

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.