Step 1 - Get to payment options.
Go to Dashboard > eCommerce > Payment & Sales Tax and find Paypal Website Payments Standard.
Step 2 - Setup your PayPal Information
Here's what everything means:
- Handle - don't worry about it, it's for the backend.
- Name - this is what the front end displays if there are multiple payment options available to a customer. Again, don't worry about it.
- Enabled - this defaults to No but you should set it to Yes. It turns on this payment method.
- Paypal Email/Business ID - put in the email address you use to login to PayPal with.
- Test Mode - PayPal has a pretty cool sandbox for testing out things like this. If you leave this on Test Mode it will point to the sandbox. That site looks a lot like regular PayPal but will never charge real money. This is great for testing, if you're ready - choose Live.
- Transaction Type - If you set this to Authorization the cart will only check to see if the funds are available. If so, it will process the order and it's up to you to work out when/how real payment happens. Most people will want this set to Sale.
Hit Save and you're done.
That's it. Two steps and this will work safely and securely. Now go sell something!
You've done all of that and it's still not working
In order for paypal to work correctly and for the eCommerce addon to complete orders that are paid with paypal the behind the scenes process works as follows:
- Customer hits checkout on your site, clicks the pay with paypal button.
- Customer pays through paypal and you get an email from paypal and money lands in your paypal account.
- The customer is brought back to your site and is displayed an "order complete" message.
- If the "IPN" process works correctly your concrete5 site recieves a behind the scenes request from paypal and then your site passes that request over SSL back to paypal. If this handshake is completed without error the order is marked as paid and your site will send you and the customer an order completed email - all is good.
When the IPN process fails
If the IPN process fails you'll get an email and money from the customer, but the orders won't show up in your Dashboard.
The possible problems
- Your site is on a local server, protected by http authentication or is for some other network reason not reachable by paypal's IPN process. This is usually only a problem when you're testing a non-live site.
- You're on an older version of the eCommerce add-on. We fixed a major bug with this in version: 22.214.171.124
- Check Paypal's IPN settings. Log into your paypal account, go to My Account -> History -> IPN History and make sure all of the transactions have a status of "Sent." If you see any that are not "sent" put your site's URL in the settings for IPN URL and save.
- While your site may or may not be accesible over ssl (with a https:// in the address bar of your browser) concrete5 needs to communicate back to paypal using ssl. This is a very common php setting that almost all servers have, but if your server's php system is not setup with "openssl" then the IPN process will fail.