Skip to content
This repository has been archived by the owner on Jun 2, 2022. It is now read-only.

pmclain/magento2-one-click-checkout

Repository files navigation

THIS PROJECT IS ABANDONED

This was something fun I built over a weekend after hearing Amazon's patent had expired. The Magento core team has created there own version to be included in a future release of v2.2 and beyond. If you want this feature on the your Magento store you SHOULD wait for the core release and NOT install this module.

Magento 2 One Click Checkout

Add one click checkout option for logged in customers.

Description

This module adds a button for "One Click Checkout" to the product view page for customers meeting the following criteria:

  • Customer MUST be logged in
  • Customer MUST have default shipping and billing address
  • Customer MUST have default vault payment method selected

Clicking the "One Click Checkout" button initiates and completes the transaction on the product view page. Once complete, a modal displays a link to the order view page and a summary of the order totals.

Installation

composer install pmclain/module-one-click-checkout:dev-master
bin/magento setup:upgrade

Configuration

Module settings are found in:
Stores->Configuration->Checkout->One Click Checkout

  • Enabled: Enables/Disables One Click Checkout
  • Shipping Method: The shipping method used for all One Click Checkout orders
  • Set Default Payment Methods: Sets the default payment method for all customers without a default payment. The last stored payment method for is set as default.

Compatibility

Compatible Payment Modules

Adding a new Vault Payment Provider

  1. Create class implementing Pmclain\OneClickCheckout\Api\VaultSourceInterface. The returned array should include the vault method code and any additional information required by the method's gateway request builders. The Braintree source can be referenced as an example, Pmclain\OneClickCheckout\Model\VaultSource\Braintree.
  2. Add the new VaultSource to the VaultPool in di.xml
<type name="Pmclain\OneClickCheckout\Model\VaultPool">
    <arguments>
        <argument name="vaultSourceMap" xsi:type="array">
            <item name="{{NON_VAULT_METHOD_CODE}}" xsi:type="object">{{VaultSourceClass}}</item>
        </argument>
    </arguments>
</type>
  1. Update card renderer template via Vendor/Module/view/frontend/layout/vault_cards_listaction.xml
<referenceBlock name="{{RENDERER_BLOCK_NAME}}">
    <action method="setTemplate">
        <argument name="template" xsi:type="string">Pmclain_OneClickCheckout::customer_account/credit_card.phtml</argument>
    </action>
</referenceBlock>

Magento Version Requirements

Release Magento Version
0.1.x 2.2.x
0.1.x 2.1.x
Nope 2.0.x

Screenshots

Order Button Button

Order Confirmation Confirmation

Order Placement Error Error

Customer Card Management Card Management

Admin Configuration Admin Config

License

GNU GENERAL PUBLIC LICENSE Version 3