The Payment Module: A Simpler Alternative to Drupal Commerce
Here at OSTraining we’ve given significant coverage to Drupal Commerce. You can watch a video class with nearly 30 lessons and download a book, “Building E-commerce Sites with Drupal Commerce“.
However, Drupal Commerce is an enterprise-quality solution and a good number of OSTraining members have asked for simpler solutions.
For those members, we often recommend the Payment module, which makes it easy to add e-commerce fields to your content.
Payment supports about half-a-dozen gateways (PayPal, Stripe, iDEAL, Authorize.net, Ogone, Rabo OmniKassa).
In this tutorial, we’ll show you how to use the Payment module, together with PayPal.
Installation and Configuration
- Install the Payment module: https://www.drupal.org/project/payment (it does have several dependencies)
- Install the PayPal gateway module: https://www.drupal.org/project/paypal_payment
- Enable all the Payment sub-modules:
- Go to Configuration > Payment.
- Click “Add payment method”
- Choose “PayPal Payments Standard”.
- Enter a Title, such as “PayPal”.
- Enter your PayPal email into the “PayPal account email address” field.
- By default, there are two default payment options, “Collect on delivery” and “No payment required”. If you don’t want users to be able to choose those options, you can go to Configuration > Payment > Payment methods and you can disable them.
Add a field to the content type
- Go to Structure > Content types
- Add a field using the “Payment form” type:
- On the field settings, choose the currency you want to use:
Create a product
- Click Add content and choose a content item you want to add a PayPal button to.
- Under the Body, in the fields area, you’ll be able to enter the product details:
- Save the content.
- This is how your content will appear on the site:
- If people click the “Pay” button, they’ll be redirected off your site and to Paypal.com:
- Once the payment is finished, the user will be able see details of the payment:
Seeing the payments
After people have made purchases on your site, you’ll be able to see and organize all the payments.
- Go to Content > Find Content
- Click the Payments tab in the top-right corner.
- You’ll now be able to see all the payments that have been made, including their status.
Payments does also integrate with Views (the image see above uses Views) so you can create your own layouts to see payments.
Summary
The Payment module is a basic, but effective alternative to Drupal Commerce.
Particularly if you don’t want to require user registration or do significant configuration of your site, Payment is a good option for collecting money via your Drupal site.
Thanks for writing this article! I just wanted to add that Payment was designed to process payments (and not much else) and if you don’t need a complex order management or checkout process, it can indeed be used as a basic alternative to any e-commerce package for Drupal. It mostly just does a better job at payment processing than Drupal Commerce or Ubercart and can even be used as a replacement for those packages’ own payment processing APIs.
Thanks for writing the module, Bart
It definitely fills a large hole that had existed in the Drupal ecosystem for simpler shopping carts.
Because of a lack of options, we used to sometimes recommended that people use Shopify or similar systems, and drop the embed code into a node. It wasn’t ideal.
Very interesting. Bookmarked! Thought this is a domain for other systems like Joomla, WP.
Thnx for the article !!!!!!! I just wanted to ask if it is safe with that process?
Hello, I was wondering if you knew of any way to leave the payment amount open-ended. Similar to a way that the paypal donate buttons work? I cannot use a paypal donate button because it is for invoice payment, not donations, and paypal specifies that button only be used for non-profits. For example, a user would fill out a simple webform, or click a button, and be able to enter any amount they wanted to pay, and make a payment that way. Can this be done with Drupal Payments?
Hi Teresa
Maybe try any additional module such as: [url=https://www.drupal.org/project/payment_donation]https://www.drupal.org/proj…[/url] (caveat, I haven’t used that particular one)
Teresa, did you have any luck solving your issue? I too would like to use a form to collect information (preferably webform) and have an open-ended payment amount.
Thanks for the good writeup! the payment form field also requires the currency api module. perhaps not that obvious.
This sounds very promising! I thought Commerce was too complicated as well. Will definitely be playing with Payment instead..
Is there a simple way to allow user to put in the $ amount they want to pay?
Hi.
i am looking for a way to build an employee paiement system.
Should i start with drupal commerce?( Wich looks like just to be paid and not to pay for services )
Should is tart with a paiement module?
Should i start with a work trackin module ?
Mine is a marketplace website which allows sellers to sell electronic product, and buyer pays to my website (via paypal), and then my website pays the seller also via paypal. There are two paypal fees involved.
Is it possible to send money from buyer’s paypal to seller’s paypal directly from my website?
Hi,
Thank you for this module. It is exactly for what I looked.
1 questions :
– when the Paypal page is displayed, it’s the Drupal system name that is displayed, not my description. How I may change it ?
Thank you very much for your response
Francois
Hi,
Is it possible to create a page to buy something like credits?
A page where the person can say how many credits wants to buy and after will pay with paypal?
Thanks!
Hello,
Thanks for this article !!
I have 2 questions :
– On the “Payment” page I dont have “Payment methods” like you, how to enable or manage payment methods ?
– Is it possible to allow the user to change quantities ?
Thanks you !!
Hi Julie,
Glad you enjoyed the article!
Please sign up for one of our support plans at
[url=https://www.ostraining.com/pricing/]https://www.ostraining.com/…[/url] and our Drupal tech will be glad to
help.
@stephenrcork, @golihoussou, @frlevel,
If you still need help, please sign up for one of our support plans at [url=https://www.ostraining.com/pricing/]https://www.ostraining.com/…[/url] and our Drupal tech will be glad to help.
For the past day and a half or so, I’ve been wrestling with Drupal 8 + Commerce 2 attempting to get a client’s store up and running—the client is insistent on Drupal 8, warts and all. Finding the pieces to make it so is not easy, and neither is making the changes from Drupal 7 to Drupal 8. All in all, this has been helpful. Thanks.
@jubadoobai Definitely looks like early days for Drupal Commerce on Drupal 8 [url=https://drupalcommerce.org/blog/45961/drupal-commerce-20-enters-beta]https://drupalcommerce.org/…[/url]
Is there anyway to combine multiple payments into a cart? Like I am making a webform with multiple amounts you can choose from based on your level of interest in becoming a conference Vendor. I attached the paper version of the “form”. Any ideas will help! 🙂 [url]https://uploads.disquscdn.c…[/url]
Hi pfhenley
What I would do is make variants of the product that have different payment groups and brackets.
Thanks
Daniel
Hmm, so with Panels? I’ve tried to avoid panels but I’m willing to try anything right now to get it done. I wanted to more of a dropdown of prices with conditionals if the check box is checked. and then once the form is submitted it creates a payment node with the total of the values selected using rules but I couldn’t figure out how to really connect the two properly. Like I can list everything as payments but the problem is that if they want to pay for a booth and donate a grant I can’t combine the payments into one total payment. If that makes sense.
Hello,
Is it possible to integrate this module payment field to programatically created forms, not just content types?
Thanks in advance
On PayPal Express Checkout, the password is stored as clear text.
Crating a new payment item requires tax. My itmes do not have tax.
More errors: Quantity “1” is no integer, Quantity “1,0” is no number Quantity should be given as..?
What the heck..