aimes / module-checkout-designs

aimes/module-checkout-designs

Swap checkout layouts via system configuration, or conditions

magento2-module Compatibility: Not yet tested Code Quality: Pending Tests: N/A Security: Pending GPL-3.0-or-later
Viewing version 0.1.1. Latest version is 1.1.0. Switch to latest

Aimes_CheckoutDesigns

"Supported Magento Version"

Features

Please note: This module is currently still considered a proof of concept.

This module provides the ability to change checkout page designs/layout similar to page specific selectable layouts.

The module currently provides the following functionality:

  • Provide a different checkout user experience per store
  • Provide a different checkout user experience per customer group
Example

Example Config

This in turn will allow you to do things such as, but not limited to, the following:

Please note: These are only examples of functionality that this module makes possible. This module itself does not provide any additional functionality or checkout designs and serves only as a base for other modules. For an example module, please see Aimes_CheckoutDesigns

  • AB Testing any checkout changes
  • Something broken or users can't checkout with a specific design? Select a different design or the default Magento checkout so that users can still checkout until you can deploy your fixed code.
  • Collect different data per design to help determine any issues
    • Track the different drop-off points
    • Track conversion rates

Any feature requests and/or pull requests are welcomed!

Requirements

This module is compatible with Magento 2.3.x and Magento 2.4.x

Installation

Please install this module via Composer. This module is hosted on Packagist.

  • composer require aimes/module-checkout-designs
  • bin/magento module:enable Aimes_CheckoutDesigns
  • bin/magento setup:upgrade

Usage

All of this is subject to (and very likely to!) change.

Step 1: Define new checkout layout

di.xml

<virtualType name="Vendor\Module\Model\Checkout\Design\MyDesign"
             type="Aimes\CheckoutDesigns\Model\CheckoutDesign">
    <arguments>
        <argument name="code" xsi:type="string">my_design_code</argument>
        <argument name="name" xsi:type="string">My Design Name</argument>
        <argument name="layoutHandle" xsi:type="string">my_design_layout_handle</argument>
        <argument name="layoutProcessors" xsi:type="array">
            <item name="defaultProcessor" xsi:type="object">
                <!-- Object must implement \Magento\Checkout\Block\Checkout\LayoutProcessorInterface -->
            </item>
        </argument>
        <argument name="configProviders" xsi:type="array">
            <item name="defaultProvider" xsi:type="object">
                <!-- Object must implement \Magento\Checkout\Model\ConfigProviderInterface -->
            </item>
        </argument>
    </arguments>
</virtualType>

Explanation

  • Designs must implement \Aimes\CheckoutDesigns\Api\CheckoutDesignInterface
    • code is a unique identifier for your design
    • name is the frontend / human friendly label
    • layoutHandle is the layout handle that will be included on the page. The above would include my_design_layout_handle.xml
    • layoutProcessors is an array of objects that will only be processed when the associated design is utilised
      • Items must implement \Magento\Checkout\Block\Checkout\LayoutProcessorInterface
    • configProviders is an array of objects that will only be processed when the associated design is utilised
      • Items must implement \Magento\Checkout\Model\ConfigProviderInterface

Example code

For working code examples, please refer to Aimes_CheckoutDesigns. This package can also be installed.

Step 2: Add your design to the available options

di.xml

<type name="Aimes\CheckoutDesigns\Model\Config\Source\CheckoutDesigns">
    <arguments>
        <argument name="designs" xsi:type="array">
            <item name="my_design" xsi:type="object">
                Vendor\Module\Model\Checkout\Design\MyDesign
            </item>
        </argument>
    </arguments>
</type>

Step 3: Select design

Your design should now show up as an option in the system configuration below:

Sales -> Checkout -> Design / Layout -> Checkout Design

  • Select the default design
  • Select specific designs per customer groups

Licence

GPLv3 © Rob Aimes

No changelog yet

The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.

Versions
Version Stability QA Status Compatibility Released
1.1.0 stable Fail Magento 2.4.7-2.4.9 Details 2022-03-02 16:07:10
1.0.0 stable Not tested Not yet tested Details 2021-07-03 11:36:56
0.1.1 stable Not tested Not yet tested Details 2021-04-13 21:59:46
0.1.0 stable Not tested Not yet tested Details 2021-03-29 20:31:23

Requires 1

Package Constraint
magento/module-checkout ^100.3 || ^100.4

Suggests 1

Package Reason
aimes/module-checkout-designs-example Provides code examples to utilise this package

No QA results yet

QA pipelines haven't run for this version. Compatibility and quality results appear here once the vendor publishes a tagged release that gets ingested.

License
GPL-3.0-or-later
Authors

More from Rob Aimes

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.