A drop-in replacement for the Magento 2 checkout.

Overview

Clean Checkout for Magento 2

A drop-in replacement for the Magento 2 checkout.

Features

Modules

The project is divided into several modules:

  • Overall checkout improvements, such as; (Core Module)
    • Show input labels next to the fields
    • Allow disabling checkout fields like telephone, company, etc.
    • Remove the header and footer from the checkout entirely.
    • Force totals mode, so the customer is aware of totals during entire checkout.
    • In addition to the above, always show cart items for additional clarity.
    • Move cart/totals blocks to more logical places.
    • Remove jerkiness when switching between checkout steps, and allow setting of step transaction speed.
    • Allow disabling of useless shipping method step with just 1 available option.
    • Allow changing of checkout colors using useful colorpickers.
    • Uses Font Awesome to provider better icons.
  • Geo IP : Customer country is detected and immediately injected in the right places so it will be used for Shipping and Billing country fields and for calculating tax estimates.
  • Social Login: Uses Hybridauth to allow customers to login with their favorite social media.
  • Newsletter: Lets customers immediately subscribe to the newsletter from the final step in the checkout.
  • Address Autocompletion: Using the Google Maps Autocomplete API, we can significantly reduce the number of fields required by the customer.
  • Field Order: Allow administrators to choose their own order of checkout fields.
  • A simple but effective default theme

All of these features are highly customizable from the backend.

Installation

$ composer require rubic/magento2-module-clean-checkout

Note: getting an error while installing? Look here for a temporary workaround.

Screenshot

Image of Clean Checkout

Demo

You can find a demo environment here. Please note that it may not be running the latest version of this module at all times.

Frequently Asked Questions

See this wiki page.

Reporting Issues

Before you create an issue, ensure that the incorrect behavior you are encountering doesn't also appear without this module. This ensures it's not a configuration issue or Magento 2 bug.

License

Copyright 2018 Rubic

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • We can't add this item to your shopping cart right now

    We can't add this item to your shopping cart right now

    After install the plugin and configure (force luma).... I can't put products in the shopping cart.

    Magento message: We can't add this item to your shopping cart right now.

    can not reproduce 
    opened by zehsergio 46
  • Missing version for component hybridauth/hybridauth

    Missing version for component hybridauth/hybridauth

    Good evening,

    At first, let me thank you for your work.

    I have tried to download your extension by composer but the installation failed due to a missing version of the component hybridauth/hybridauth. Efectly, in your module's composer.json, you referenced the version 3.0 or as I far as I know only 3.0.0-beta1 , or 3.0-dev are available.

    Could you take a look and get back to me.

    Thank you,

    Ilan PARMENTIER

    opened by Amadeco 23
  • Refreshing the checkout in step 2 broken

    Refreshing the checkout in step 2 broken

    The address form doesn't show when we refresh the page at the second step in the checkout. This is seen since 1.4.0, from that point on this issue occurs.

    bug 
    opened by janhelleman 12
  • Newsletter Subscribe

    Newsletter Subscribe

    Hi there,

    Been testing this on a clean install for Magento 2.3.4 and Magento 2.3.5.

    The Newsletter subscribe checkbox feature in the checkout does not appear to subscribe users to the default Magento newsletter under Marketing > Newsletter Subscribers . Wondering if anyone else has had this issue or it was a known problem?

    Any help would be much appreciated.

    Cheers

    Edited: This appears to only affect a Guest Customer. Checking out as a registered customer, the feature works as expected.

    opened by eddieturks 11
  • Installation Issue

    Installation Issue

    Hello, when i try to install via composer i get:

    Problem 1 - Installation request for rubic/magento2-module-clean-checkout ^1.6 -> satisfiable by rubic/magento2-module-clean-checkout[1.6.0]. - rubic/magento2-module-clean-checkout 1.6.0 requires hybridauth/hybridauth ^3.0 -> no matching package found.

    How can i fix this error? I am using Magneto 2.2.2

    can not reproduce 
    opened by raphael96 11
  • Proceed to Checkout redirecting to last step

    Proceed to Checkout redirecting to last step

    Hello! It is a pleasure! I have a small question. Is there any reason why proceed to checkout redirect to the payment step even if there is no address and no default shipping method set. Shouldn't the customer be redirected to the shipping step first?

    I tracked the code to

    target.steps.sort(this.sortItems).forEach(function (element) { if (element.code == hashString || element.alias == hashString) { //eslint-disable-line eqeqeq element.navigate(element); } else { element.isVisible(false); } });

    Visible element which is shipping step is set to false and hashString is equivalent to payment all the time. This looks like a bug to me please confirm. Can we just correct this by checking the current visible step and actually navigate to it instead of payment like this

    target.steps.sort(this.sortItems).forEach(function (element) { if (element.isVisible()) { //eslint-disable-line eqeqeq window.location = window.checkoutConfig.checkoutUrl + '#' + code; element.navigate(element); } else { element.isVisible(false); } });

    After this correction its then working properly. When customer is not logged in he is directed to email step when he is logged in he is redirected to the shipping step first and can add the address or choose shipping methods or another address and then proceed to the payment step.

    opened by goranhorvathr 10
  • Cannot read property 'enabled' of undefined (autoComplete)

    Cannot read property 'enabled' of undefined (autoComplete)

    Hi there.

    Just installed and configured the module on my magento 2.1.9 shop. When I visit the checkout, I get an js error in autocomplete.js line 28. The console output of window.checkoutConfig looks like following:

    {payment: {…}, checkoutAgreements: {…}, formKey: "7U7aYGUoFtoWHoVs", customerData: {…}, quoteData: {…}, …}
    activeCarriers: ["flatrate"]
    autocomplete: "off"
    basePriceFormat: {pattern: "%s €", precision: 2, requiredPrecision: 2, decimalSymbol: ",", groupSymbol: ".", …}
    captcha:{user_login: {…}, guest_checkout: {…}}
    

    and so on. So the first issue is that autoComplete (uppercase C) does not fit the autocomplete (lowercase C) in my checkoutConfig. The second that autocomplete still return a "off" and not on object.

    Do I miss some backend config? Anyone else facing this problem?

    Using version 1.5 of the module.

    best regards Mike

    can not reproduce 
    opened by MikeBecker 10
  • Order summary sidebar not updated when selecting different shipping method

    Order summary sidebar not updated when selecting different shipping method

    It does not update the Order Summary with the shipping values coming from the WebShopApps MatrixRates extension, https://github.com/webshopapps/module-matrixrate

    screenshot from 2018-01-21 01-26-00

    Sorry for adding to the pain of maintaining this great job.

    enhancement 
    opened by oviliz 10
  • Replace the 'Welcome' with a more meaningful word.

    Replace the 'Welcome' with a more meaningful word.

    Seems a bit odd to have a 'Welcome' step, should be renamed to explain the current category more clearly. Not sure yet what the actual word should be?

    • Account
    • Email
    • Checkout
    • ...
    enhancement help wanted 
    opened by paales 8
  • conflict with your requirements or minimum-stability

    conflict with your requirements or minimum-stability

    Problem 1 - Installation request for rubic/magento2-module-clean-checkout ^1.4 -> satisfiable by rubic/magento2-module-clean-checkout[1.4.0]. - rubic/magento2-module-clean-checkout 1.4.0 requires hybridauth/hybridauth ^3.0 -> satisfiable by hybridauth/hybridauth[3.0.x-dev, v3.0.0-beta.1, v3.0.0-beta.2, v3.0.0-beta.3, v3.0.0-beta.4, v3.0.0-rc.1] but these conflict with your requirements or minimum-stability.

    Trying install via composer...

    opened by mageuser 6
  • Selecting Shipping Method

    Selecting Shipping Method

    This is a great extension and easy to customise but it seems it has not been updated for some time. Having tested it today I found a problem with switching between shipping methods where the quote/total would not update correctly, it was hit and miss where you select a shipping method and sometime it would update and sometimes not.

    Couldn't find any errors or JS errors etc.

    opened by SamB-GB 5
  • Magento 2.4.4 update

    Magento 2.4.4 update

    Just leaving this here in case anyone else has this issue when upgrading to 2.4.4.

    I think the bug is related to the following change "HTML tags are now nested and closed properly to meet standards in JQuery 3.5.x for non-void elements including custom elements."

    Based on the above the following files need to be updated to valid HTML

    eg: changing to

    magento2-module-clean-checkout-core/src/view/frontend/web/template/shipping.html magento2-module-clean-checkout-theme/src/view/frontend/web/template/email.html

    opened by clinton-origin 1
  • Reload when payment method changes

    Reload when payment method changes

    I have a plugin that setups a small payment processing fee some selected payment methods. For example COD. Clean checkout doesn't show the Fee when I change payment method. However when I hit refresh in browser, it will show up. Could this be reloaded everytime payment method is changed?

    opened by kanzelsberger 0
  • Magento 2.3.1 update summary when changing payment method

    Magento 2.3.1 update summary when changing payment method

    Hi, I have a cart rule based on payment method. The problem is the summary doesn't update after paymento change on checkout

    If I finish the order, the value are register correctly. is there a way to update the total summary like is did on shipping choices?

    opened by marcussucupira 0
  • Module Version ^2.0.0 & IE11

    Module Version ^2.0.0 & IE11

    The checkout has been installed, but when on Step 2 on IE11, the Next button does nothing.

    Unhelpfully it doesn't kick up any errors I can see.

    Is this a compatibility issue with Angular, or an issue with Magento version 2.2.4?

    opened by realchriswells 1
  • zip code and state mismatch, unvalidated

    zip code and state mismatch, unvalidated

    I am able to enter anything into the City, Sate, and Zip Code fields and the order will continue. When I enter a zip code that is not in the state, it will go through. This is an issue because it allows customers to bypass tax added to their order by inputting a different state. This issue was under with United States selected as the country. Shouldn't there be some sort of validation if the zip code matches the state?

    opened by jeffreytu 0
Owner
Daniel Sloof
Daniel Sloof
A faster drop in replacement for bin/magento cache:clean with file watcher

"You know, hope is a mistake. If you can't fix what's broken, you'll, uh... you'll go insane." - Max Rockatansky Magento 2 Cache Clean A faster drop i

mage2tv 460 Dec 26, 2022
Igbinary is a drop in replacement for the standard php serializer.

igbinary Igbinary is a drop in replacement for the standard php serializer. Instead of the time and space consuming textual representation used by PHP

Igbinary development 727 Dec 21, 2022
A Symfony2 bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.

select2entity-bundle Introduction This is a Symfony bundle which enables the popular Select2 component to be used as a drop-in replacement for a stand

Ross Keatinge 214 Nov 21, 2022
Much improved replacement for Zend_Cache_Backend_File - works great with Magento!

Cm_Cache_Backend_File The stock Zend_Cache_Backend_File backend has extremely poor performance for cleaning by tags making it become unusable as the n

Colin Mollenhour 146 Aug 22, 2022
A payment gateway plugin for WooCommerce to see if your checkout works.

=== Order Test For All for WooCommerce === Contributors: ikamal Donate link: https://kamal.pw/ Tags: wc order test, wc order, woocommerce, woocommerce

Kamal 3 Dec 7, 2021
Guest to Customer for Magento2 - Quickly and easily convert existing guest checkout customers to registered customers.

Guest to Customer for Magento 2.0 For Magento 2.0.x, 2.1.x, 2.2.x, 2.3.x and 2.4.x In general E-commerce, shoppers do not like to create an account du

MagePal :: Magento Extensions 66 Oct 7, 2022
This is a replacement dashboard for the Pisces Helium Miner

Pisces QoL Dashboard This is a replacement dashboard for the Pisces Helium Miner. The dashboard that ships with the Pisces P100 has a number of securi

null 42 Jun 16, 2022
Easily create WooCommerce replacement orders for your customers.

Support Orders for WooCommerce Requires PHP: 7.0 WP requires at least: 5.7 WP tested up to: 5.7 WC requires at least: 5.6.0 WC tested up to: 5.8.0 Sta

DevPress 5 Feb 24, 2022
A replacement for Octoprint's UI and for multiple printers.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Andy Newhouse 1 Jan 19, 2022
A powerful and pretty replacement for PHP's var_export()

Brick\VarExporter A powerful and pretty replacement for PHP's var_export(). Introduction PHP's var_export() function is a handy way to export a variab

Brick 145 Dec 23, 2022
A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2

Simple Import / Export tool A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2. Table data

EcomDev B.V. 51 Dec 5, 2022
The Workflow Package add Drag & Drop Workflows to your Laravel Application.

Workflows add Drag & Drop automation's to your Laravel application. The Workflow Package adds Drag & Drop Workflows to your Laravel Application. A Wor

42coders 196 Dec 29, 2022
DropItem3D - PocketMine-MP plugin to be able to see drop items realistic.

DropItem3D - PocketMine-MP plugin to be able to see drop items realistic.

ぼい 12 Jun 2, 2022
File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery

File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.

Sebastian Tschan 31.1k Dec 30, 2022
Receiver is a drop-in webhook handling library for Laravel.

Receiver Receiver is a drop-in webhook handling library for Laravel. Webhooks are a powerful part of any API lifecycle. Receiver aims to make handling

Adam Campbell 270 Jan 6, 2023
This Magento 2 extension integrates EasyTranslate into Magento 2.

EasyTranslate Magento 2 Connector This Magento 2 extension integrates EasyTranslate into Magento 2. Mind that you need to have an account with EasyTra

Easytranslate ApS 0 Oct 7, 2022
Magento-Functions - A Resource of Magento Functions

Magento-Functions A Resource of Magento Functions Table of Contents Category Product User Cart Checkout General Account [Working w/ URL's] (#urls) Cat

Bryan Littlefield 28 Apr 19, 2021