craftcms / commerce-paypal-checkout
PayPal Checkout integration for Craft Commerce 5.0+
Installs: 30 221
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 6
Forks: 10
Open Issues: 15
Type:craft-plugin
Requires
- php: ^8.2
- craftcms/cms: ^5.0.0-beta.6
- craftcms/commerce: ^5.0.0-beta.1
- paypal/paypal-checkout-sdk: ^1.0
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
- 3.x-dev
- 3.0.1
- 3.0.0
- 2.x-dev
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0.2
- 2.1.0.1
- 2.1.0
- 2.0.0
- 2.0.0-RC1
- 1.x-dev
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2.1
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.2.2
- 1.2.2.1
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0-alpha.1
- 1.0.0-alpha
- dev-bugfix/pending-refund-status
- dev-dependabot/composer/guzzlehttp/psr7-2.5.0
- dev-bugfix/refund-error
This package is auto-updated.
Last update: 2024-11-25 15:38:51 UTC
README
PayPal Checkout for Craft Commerce
This plugin provides a PayPal Checkout gateway integration for Craft Commerce.
Requirements
This plugin requires Craft 5.0 and Craft Commerce 5.0 or later.
Installation
You can install this plugin from the Plugin Store or with Composer.
From the Plugin Store
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.
With Composer
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
Setup
Creating PayPal REST API Credentials
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:
- Log in to the PayPal Developer Portal using the same credentials you use for PayPal.
- On the My Apps & Credentials page, click Live or Sandbox depending on whether you need an app for testing (Sandbox) or going live (Live).
- Click Create App under REST API apps. Any previously created REST API apps will appear in the table above the Create App button.
- Enter the name of your REST API app in the App Name field, and select a Sandbox business account to associate with your app. Note: Remember that you can't use a Live credit card in Sandbox, and you can't use a test credit card in your Live account.
- Click Create App.
- Your credentials, the client ID and secret, are displayed on the app details page that displays after you click Create App.
- Request permissions for REST API features that apply to your integration:
- PayPal payments
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.
Creating PayPal Checkout Gateway in Commerce
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.
Cart Info / Cost Breakdown
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.
Paying with Non-Primary Currency
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.
SDK Query String Parameters
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' ... }) }}