How do we keep this site running? This post may contain affiliate links — the cost is the same to you, but we get a referral fee. Compensation does not affect rankings. Thanks!
One thing that’s made E-Commerce setups difficult has been the disparity between the different elements that make it work. A successful E-Commerce setup will have a merchant account, payment gateway, shopping cart, and website that all work in tandem. Until recently, it took a developer or two to get them all working smoothly together, while allowing you to accept customers’ credit cards on your website, in a secure fashion, while still giving them a seamless shopping experience. The difficulty in setting this kind of E-Commerce solution up has just been greatly reduced via Drupal’s E-Commerce setup featuring Ubercart and Paypal.
Paypal Payments – Paypal Account Required After First Transaction
The easiest and most popular way to get up and running to accept payments online is, without a doubt, Paypal. The drawback with Paypal is not only the increased fees you pay for the convenience and simplicity, but also the fact that a user has a Paypal account associated with their credit card number or email address.
Paypal: User Account Tied to Credit Card and Email
Paypal advertises the fact that all but one of their website payment solutions (Paypal Express Checkout) do not require the customer to have a Paypal account. While this is true, it only applies to the first transaction. You’ll notice that when you make a payment via a website that uses Paypal’s easy to implement Email Payments or Website Payments Standard (WPS) methods (both of which carry no monthly fee), Paypal will allow the transaction to go through the first time by simply having the customer enter their credit card information.
What is not made so clear, however, is that a Paypal account is then created for the customer, and if they ever use that credit card or email address again with Paypal, they will be prompted to login. In other words, they can only checkout without a Paypal account the first time. The obvious disadvantage for your customers is that they’ll need to safekeep their Paypal account information so they can use it to make a purchase from (or anyone that uses Paypal for payments) next time. This is a huge barrier to sales for any future transaction – for the simple fact that if the user has trouble logging in (ie. they can’t remember their password), they’ll be unable to complete payment, and will most likely go and purchase your product or service elsewhere.
So, what’s the next best solution – one that won’t have your customers needing to create a Paypal account or remember Paypal login details? In come Drupal, the Ubercart ECommerce module, and Paypal’s Website Payments Pro.
Drupal ECommerce: Ubercart and Paypal Website Payments Pro
The nice thing about Drupal’s Ubercart module is that it takes a great shopping cart and streamlines it for use with Drupal. With the two, you have a website that’s easy to use and administer as well as a solid, free, built-in shopping cart. Add Paypal Website Payments Pro to the mix, and you have a fully featured E-Commerce solution that is regularly updated by a large community of open source developers. To integrate Website Payments Pro in Drupal’s Ubercart, you simply adjust the “Payment Settings” under Ubercart’s “Store Configuration” menu.
Advantages to Using Website Payments Pro
Since Paypal’s Website Payments Pro cost $30/ month (USD), you may want to begin by using Paypal’s free Website Payments Standard. Once you’re familiar with how it works, and you have enough demand/ monthly volume to justify the monthly fee, I think you’ll find the following Payments Pro features useful (this is what caused us to finally upgrade):
- Integrated merchant account – this means your clients never need a Paypal account – not on the first transaction, and not on their last.
- Virtual terminal – you can take credit card numbers over the phone, via fax, etc. – just as in a retail store, and key them into your “virtual terminal” to process them. Once again, the convenience gets passed down to your customers, who won’t need to bother with a Paypal account, retaining login details, etc.
- Security handled by Paypal – if you choose to have your customers checkout on Paypal (most of the order process occurs on your website, with the final processing done on Paypal), you won’t have to setup a secure server.
- Customers check out on your site, not Paypal – If, on the other hand, you prefer to have customers go through the entire check out process on your website, you can have your host setup a secure environment on your server (SSL) for this to happen.
With the right level of experience, you can get slightly better transaction fee rates, and potentially a lower monthly cost, for an ECommerce setup with another merchant provider and gateway. But for simplicity, this Drupal Ubercart/ Paypal Website Payments setup can’t be beat.
Advantages to Using Paypal’s Website Payments Standard (WPS)
The advantage to Website Payments Standard is that you still get good website integration (people check out on your website, pay on Paypal, then are returned to your site) with Drupal + Ubercart + Paypal WPS. The primary advantages to Paypal WPS is the lack of a monthly fee, and no need to setup an SSL certificate on your site. The major difference between WPS and Pro is that with Pro you can complete the entire checkout on your website – similar to a traditional merchant account setup with SSL certificate. In addition, with Paypal Pro you’ll be able, with the addition of their subscription option (an additional $20/ month), to create recurring subscription charges. And if a credit card expires, the user will be notified (a standard gateway setup supports this option as well, thanks to Ubercart’s notifications system).
The main problem people have had with Ubercart and Paypal WPS is that it’s not always easy to get Paypal communicating with your website and updating the order status to reflect that a customer had paid (to “payment received” or “completed”).
Without further ado, here’s an updated guide on getting Drupal’s Ubercart and Paypal Website Payments Standard to work together harmoniously.
Getting Ubercart and Website Payments Standard (Paypal WPS) to Work Together
How to Get These Three to Sing the Same Song?
Drupal has long been one of the most powerful open source systems on the market. But it’s always had its shortcomings. There still isn’t a stable, reliable event/ calendar management system for Drupal (although CCK + Date + Calendar comes close), and for years the E-Commerce module fell short of the robust implementation required of loaded shopping sites. That has all changed with the latest iteration of Ubercart and support for Paypal WPS (Web Payments Standard) and Paypal Pro.
Drupal, Ubercart, and Paypal – a Harmonious Relationship
If you install the latest stable, recommended versions of Drupal 6 and the respective Ubercart module, you can more or less get up and running with a payment gateway such as Authorize.net without too much trouble. You simply fill in the appropriate values in the configuration fields, setup your server to support SSL, add some products and run a couple tests, and you’re off to the races. Believe it or not, this is easier than getting Paypal’s Website Payments Pro to cooperate.
Can’t Get Ubercart’s Paypal Payment Status to Update from “Pending” to “Completed”?
One of the biggest configuration problems with the Drupal/Ubercart/Paypal setup is the difficulty getting Paypal to communicate with your website. Currently, in most of the Ubercart support forums, they tell you to disable IPN and leave the IPN URL field blank. Unfortunately, with Paypal’s recent update, leaving this field blank in effect disables the IPN feature. What you’ll notice is that while a customer is able to checkout and complete their purchase in Paypal, their order is not recorded in Ubercart. If it is, the payment status is simply recorded as “pending,” with no IPN messages in the watchdog (check your log reports and filter by UC_… messages – if IPN is setup successfully, you’ll see messages from Paypal to your website).
Turn ON Paypal IPN and Use IPN URL
The solution? Turn on IPN and enter //example.com/uc_paypal/ipn (or //example.com/uc_paypal/ipn for non-SSL) in the IPN URL field. You can reach the IPN settings in your Paypal account by logging in and browsing to Profile > More Options > My Selling Tools > and selecting “update” next to Instant Payment Notifications. Turn on IPN and enter the above URL, replacing example.com with your website name, in the IPN URL field and save your settings.
Turn ON Auto Return
The other important setting is located in Profile > More Options > My Sellings Tools > Website Preferences. Here you’ll want to turn on Auto Return with the following Return URL (//www.example.com/cart/checkout/complete (substituting your site name in place of example.com, and change to // if not using SSL). Use this and not //www.example.com/uc_paypal/wps/complete, which was intended for an older version of Paypal/ Ubercart. All the other settings should be off, with the exception of “Paypal Account Optional,” which we like to leave on.
If Using Secure Pages (SSL)
If you’re using the Secure Pages module to handle your SSL pages, you’ll want to add the following pages to include SSL (make these paths secure):
Voila Test your setup either in Sandbox (Paypal Developer), or using a small transaction ($1) that you can later refund. If you still can’t get Paypal WPS and Ubercart to work together, please comment below.