Overview ↑ Back to Top
PayPal Express extends the WooCommerce payment options by allowing you to accept payments via PayPal or credit card on your eCommerce site. Please note that PayPal Express skips the WooCommerce checkout experience, and checkout is instead done entirely on PayPal’s website. Customers are then redirected to your site after purchase so that your security responsibilities are limited. You will need to ensure that PayPal Express is enabled for your PayPal business account.
Installation ↑ Back to Top
- Purchase and download the plugin zip file from WooThemes
- Download the extension from your dashboard
- Go to Plugins > Add New > Upload and select the ZIP file you just downloaded
- Click Install Now, and then Activate
- Click WooCommerce > Settings > Payment Gateways and read the next section to learn how to setup and configure the plugin.
Setup and Configuration ↑ Back to Top
To setup your PayPal Express payment gateway you will need to enter your API Username, API Password, and Signature.
- Login to your PayPal Business account
- Click on your profile icon in the top right, then click on Profile & Settings
- Click “My Selling Tools” on the left side of the page to bring up all tools, then scroll down to API Access under “Selling Tools”. Click “Update” to view your credentials.
- Choose "Option 2" to get your API signature.
- For this gateway, you need to use the “signature” rather than “certificate” credentials:
- Copy your API Username, Password, and Signature to import into your WooCommerce PayPal Express settings.
- Enter the API credentials and press “Save Changes”.
- To configure the plugin, click on WooCommerce > Settings from the left hand menu, then the top tab “Checkout”. You should see “PayPal Express” as an option in the list.
- Optionally, you can select the radio button next to this option to make it the default gateway.
- You should see “PayPal Express” displayed across the top of the page as a link also. Click on this to configure the plugin, and you will see a list of options:
- Enable/Disable – This will enable the gateway to be used by customers to checkout.
- Title – This is the text shown for the payment during checkout and on the Order Received page.
- Description – This is the text shown under the title during checkout. Limited HTML is allowed. If you enable sandbox mode, this section will also display a notice along with test credit card numbers.
- Transaction Type – This controls how transactions are submitted to PayPal. You may choose either “Charge” or “Authorization”. If you select “Authorization”, you must manually capture and settle payments in your PayPal control panel or on the WooCommerce orders screen after the transaction has been submitted. This defaults to “Charge”.
- Environment – Switch between “Sandbox” and “Production” credentials. Note: Sandbox credentials are not the same as your live/production account. This is an entirely separate sandbox environment that requires a separate login. Production credentials can’t be used in the Sandbox. Please see the FAQ for more info.
- API User Name – This is the API User Name you obtained from the your PayPal account. Follow the steps above to get this.
- API Password – This is the API Password you obtained from the your PayPal account. Follow the steps above to get this.
- API Signature – This is the API Signature you obtained from the your PayPal account. Follow the steps above to get this.
- Checkout button style – Select whether PayPal’s default checkout button should be used or a WooCommerce-style button (inherits the theme styling for other WooCommerce buttons) should be used on the Cart page.
- Standard checkout button – Enable this checkbox to hide (checked) or display (unchecked) the standard “Proceed to Checkout” button on the cart page.
- Standard checkout – Enable this checkbox to add PayPal Express as a gateway on the Checkout page.
- Invoice Prefix – Enter a prefix to be used within PayPal for orders from this store (defaults to “WC-“). If you use PayPal in multiple stores, this ensures that invoice prefixes will be unique, as PayPal does not allow orders with the same invoice numbers.
- PayPal Account optional – If “PayPal Account Optional” is enabled in your PayPal account, this will allow customers without PayPal accounts to check out with a credit card via PayPal.
- Enable Bill Me Later – Enable this checkbox to display a “Bill Me Later” button next to the PayPal Express Checkout button.
- Landing Page – If “PayPal Account Optional” is checked, you can select which type of PayPal page is displayed by default – a Login page or a Billing page. Defaults to “Login”.
- Brand Name – Set a brand name to replace the business name used within your PayPal account on the hosted checkout page; helpful if you use the same account for multiple stores or child companies.
- Custom Payment Page – The name of the custom payment page to use (if you’ve created one in PayPal)
- Detailed Decline Messages – When checked, this will display detailed decline messages to the customer during checkout when possible, rather than a generic decline message.
- Debug – Enable this is you are having issues correctly processing transactions; errors will be saved to the WooCommerce Error Log (found under WooCommerce > System Status > Logs). All debugging messages are cleaned of sensitive information before display, but as a best practice, please do not enable this unless you are having issues with the plugin.
Don’t forget to press “Save changes” to save your changes :).
Processing Orders ↑ Back to Top
This extension skips most of the WooCommerce checkout process, and customers leave your site from the “Cart” page to complete the checkout through PayPal. PayPal Express is meant to reduce the amount of data entry (and possible data entry error) that the customer needs to do. To achieve this, PayPal Express sends back the customer’s billing information after they have logged into PayPal and authorized the transaction. Customers can still enter a new shipping address:
- Customer shops on your site
- Customer adds products to their cart
- Customer reviews the Cart page
- From the Cart page customer presses the “Checkout with PayPal” button
- Customer is redirected to PayPal and WooCommerce sends the subtotal of the order, customer info, and shipping address to PayPal
- Customer logs into PayPal and authorizes the transaction*
- PayPal redirects customer back to WooCommerce and sends authorization token and customer’s billing information
- On the WooCommerce Review Order page customer can see any taxes and choose a shipping option
- Customer finalizes the order and the transaction is finalized with PayPal using the order Grand Total
*Order authorization happens for an amount that is 150% of the sub total to anticipate taxes and shipping costs. If there are no taxes or shipping costs, then the original amount is used. If there are shipping / taxes, then the updated total will be used.
Usage ↑ Back to Top
Capture Charges from WooCommerce Order Admin
Using version 3.0+ of the extension allows you to authorize charges during checkout, then manually capture them later. You can do this via your PayPal business account, or can easily do so from the WooCommerce Edit Order page. Not sure what this means? Check out this tutorial on Authorizing vs. Authorizing and Capturing.
When payment is authorized for an order, the order status will be set to “on hold”. You can edit the order by going to WooCommerce > Orders, then clicking on the order number to edit the order that needs to have the charge captured. PayPal adds the new “Capture Charge” action to the Order Actions menu:
Once you’ve selected “Capture Charge” and saved the order, payments will be captured via PayPal, the order status will update to “processing”, and the Order notes will be updated to reflect these changes.
Bulk capturing charges is also possible. Select the orders for which you want to capture charges on the “Orders” page, then use the bulk “Capture Charge” action to update all selected orders:
Frequently Asked Questions ↑ Back to Top
Q: Why do I get errors when I test PayPal Express in Sandbox Mode?
A: You cannot have the “PayPal Sandbox” option turned on and use production API credentials. You’ll need to to go to https://developer.paypal.com/ and create a “buyer” and a “seller” profile in order to create a sandbox account. You can request sandbox credentials in the same way that you request live credentials once your account is set up. Put the seller’s API credentials into the WooCommerce admin for PayPal Express and use the buyer’s credentials to test purchases with. When you’d like to return to production mode, you’ll have to change back to your production/live API credentials.
Q: Can I ensure that the order includes a phone number for the customer when an order is placed using PayPal?
A: Version 2.1+ of PayPal Express will return a phone number for the buyer, but only if the admin has set up their PayPal account properly. The administrator needs to go to Profile > My Selling Tools > Website Payment Preferences and set the “Contact Telephone Number” to required. This will not work with PayPal’s API if the contact phone number is optional.
Q: How do email-restricted coupons work while using PayPal Express?
A: Email-restricted coupons are validated once the user has entered their email address. When checking out via PayPal Express, this can happen pretty late in the checkout process. For example, a customer can enter the coupon code on the cart page, click “Checkout with PayPal”, be redirected to PayPal, log in, confirm the payment, be redirected back to the site, and then click “Place Order”.
It’s only at the last step that WooCommerce has the email address and can validate the coupon against this email. You will not see coupons validated until this “Place Order” button on the WooCommerce side is clicked, as the customer doesn’t have to enter an email until this point to check the coupon against.
Troubleshooting ↑ Back to Top
Having trouble? Follow these steps to make sure everything is setup correctly before posting a support request:
- Check that your API Username, API Password, and Signature are correct.
- Double-check that all PayPal credentials are correct ;).
- If you’re experiencing issues with coupon validation, please read our FAQ about coupon validation.
- Enable debug mode to the checkout page and review the errors messages that PayPal Express is providing.
- Submit a support ticket, with the debug log as an attachment.
Questions & Feedback ↑ Back to Top
Have a question before you buy? Please fill out this pre-sales form.
Have some feedback for us on this documentation? Please let us know so we can make improvements :).
Take me to the feedback form!