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.
Add one click checkout option for logged in customers.
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.
composer install pmclain/module-one-click-checkout:dev-master
bin/magento setup:upgrade
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.
Compatible Payment Modules
- Magento_Braintree (included with Magento)
- Pmclain_Stripe
- Pmclain_AuthorizenetCim
Adding a new Vault Payment Provider
- 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
. - 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>
- 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>
Release | Magento Version |
---|---|
0.1.x | 2.2.x |
0.1.x | 2.1.x |
Nope | 2.0.x |
GNU GENERAL PUBLIC LICENSE Version 3