This plugin provides a PayPal Checkout gateway integration for Craft Commerce.
This plugin requires Craft 5.0 and Craft Commerce 5.0 or later.
You can install this plugin from the Plugin Store or with Composer.
Go to the Plugin Store in your project’s Control Panel and search for “PayPal Checkout for Craft Commerce”. Then click Install in the plugin’s modal window.
Open your terminal and run the following commands:
# go to the project directory
cd /path/to/my-project.test
# tell Composer to load the plugin
composer require craftcms/commerce-paypal-checkout
# tell Craft to install the plugin
php craft plugin/install commerce-paypal-checkout
The following steps are from the PayPal guide on how to create REST API credentials.
REST API credentials include a client ID and secret. Here's how you generate the credentials:
You will now be able to see the client ID and secret for your newly created app.
When you are ready to take your code live, make sure you create a Live app to get live credentials.
Use the Live and Sandbox toggle at the top of My Apps & Credentials to switch between app types and view your credentials for each.
To add the PayPal Checkout gateway, go to Commerce → Settings → Gateways, create a new gateway, and set the gateway type to “PayPal Checkout”.
In the gateway settings, enter the client ID and secret for your REST app in their respective fields.
Turning on the Send Cart Information setting for this gateway will send cart items and cost breakdown through to PayPal.
Note: If you’re using deprecated custom adjuster types, this setting will need be turned off.
When using the getPaymentFormHtml()
method (e.g. cart.gateway.getPaymentFormHtml({})
) and allowing payment in a currency other than the primary currency, you must pass the currency ISO in the method params.
For example, if you’ve already set the alternative payment currency on the cart you could do the following:
{{ cart.gateway.getPaymentFormHtml({
currency: cart.paymentCurrency
}) }}
This is required when paying with an alternative payment currency due to the integration of the PayPal JavaScript SDK.
This gateway allows passing specific query string parameters at runtime, as specified in the PayPal documentation.
The allowed parameters are currency
(as detailed above), disable-card
, disable-funding
, enable-funding
and locale
.
For example, to disable PayPal credit funding you could output the payment form as follows:
{{ cart.gateway.getPaymentFormHtml({
...
'disable-funding': 'credit'
...
}) }}