I'm about to open a site selling XYZ and need to allow users to order and pay online.

I need a self-hosted, Open Source (free to use commercially) solution in PHP.

My requirements are:

  • Great ease of use
  • Variety of payment options, including PayPal
  • Modular which will allow customising the site
  • HTML in descriptions
  • Product management
  • Stats with pretty graphs - gotta love the stats
  • Custom fields for products
  • Secure
  • Great dev community
  • Are you looking for a whole cms which allows you to build the site/shop, or do you want to integrate a shopping library with your existing PHP site?
    – unor
    Commented Aug 20, 2014 at 21:32
  • At this point, the former, though I will be in need of a PHP shopping library at a later date to handle payments. I think that's another problem for another day! Commented Aug 20, 2014 at 21:43

2 Answers 2


You can use PrestaShop:

  • Self-hosted, opensource and free to use commercially
  • Easy to use
  • Variety of payment options, including Paypal
  • Modular (but not all modules all free -> that's how PrestaShop makes money)
  • mostly written in PHP
  • support for bank card payment and payment from paypal
  • tons of other e-commerce features
  • Pretty active dev community
  • I'm torn between the big three - opencart / prestashop / magento. Guess I'm going to have to set up a VM to test! Commented Aug 21, 2014 at 11:34

You could use Drupal (7.x).

It’s a CMS/framework, written in PHP, and licensed under GPL 2.0 (thus Free/Libre Open Source).

It has, without a doubt, a great dev community. The core as well as every module has an own issue tracker (for support, bugs, and features requests). You can ask for help in the IRC chat or the forums. And we have an own Stack Exchange site, Drupal Answers. Many events and local groups worldwide.

To make sure that Drupal and its countless module are secure, there is a Security Team. If a vulnerability is found, the authors get contacted by the team to try to come up with a fix. After a fix is ready, an advisory about the vulnerability and its fix will be published.

Custom fields for products are one of the core strengths of Drupal. You can define custom fields (like text, image, URL, etc.) for any content type. HTML in descriptions is, of course, possible, too.

Ease of use: Well, this depends on your point of view. First-time users will probably be overwhelmed, trying to create a site with all the features they have in mind. As soon as you get the concepts Drupal uses, creating sites is hassle-free. Most sites can be built without having to program a single line yourself. (Ease of use for the site/shop users is, of course, a different story: this depends on what you build with Drupal.)

Drupal offers many shopping modules, but there are two very popular ones (quoting from my similar answer):

Drupal Commerce and Ubercart are the two best known shopping modules for Drupal 7 (and both already offer development versions for Drupal 8).

Variety of payment options: Both mentioned modules support the Payment module, which is an API that supports various payment sub-modules, including PayPal. For Commerce (if you don’t want/need the API) see Commerce PayPal. For Ubercart, PayPal seems to be integrated somehow (I didn’t use that): Using PayPal with Ubercart.

Personally, I use Commerce instead of Ubercart, but not because Ubercart would be bad, it’s just that I like the concepts used by Commerce more; however, I made this decision a long time ago, so things might have changed in the meantime. Back then, Ubercart was a well-known module also available for older Drupal versions, while Commerce started from scratch using much of Drupal 7’s new features. Ubercart was more like a "ready made" shop solution, while Commerce was more like a framework (making it more complex to get a running shop, but for the benefit of more flexibility).

Product management is another of Drupal’s strengths: You can have almost any information architecture, and thanks to the Views module (which almost any sites uses), you don’t have to fiddle with templates or custom modules for that.
You’ll use the same methods to structure the CMS backend (for admins/managers etc.) as well as the CMS frontend (your users): the nodes/pages just have different user/role permissions (for CRUD operations).

With Drupal, you can build any kind of website of any complexity (from one to thousands of pages); the shopping functionality of your choice will then integrate with your existing site.

FYI (quoting me again):

If you’re not familiar with Drupal and want to start a shop as fast as possible, have a look at the distribution Commerce Kickstart. It’s Drupal that comes pre-configured with Drupal Commerce and some other modules. I never used this distribtion myself, but I heard good things about it.

  • Oh, I misunderstood you when you asked about library vs CMS! In the context of shopping carts, I consider magento / prestashop etc to be CMS'! I've done my time with drupal, making a number of modestly popular modules for drupal 5/6. Drupal was a nightmare and over complicates things to the point it grinds you down. I don't want to spend 2 months creating a shopping cart when I can get one off the shelf. Take drupal 8 for example - It's been in development for about 4 years. Last I heard they gave up with their codebase, and started to use Symfony modules and that was about two years ago! Commented Aug 21, 2014 at 11:34
  • @user3791372: No, I think we are on the same page here. Magento and Drupal are both CMS. They have just a different focus: Magento is primarily for shops and has secondary site functionality, while Drupal is for all kind of sites and has shop functionality if you need it. -- You didn’t specify any details about how your shop should function exactly, so I assume it’s a "common" web shop. With Drupal + Commerce you can set up such a shop (without any custom programming) in ~ 1-2 hours, from nothing to being able to order products (by using Commerce Kickstart probably way faster).
    – unor
    Commented Aug 21, 2014 at 13:03
  • Commerce Kickstart patches core. That's just wrong imo! Also, Drupal is excessively slow, over complicated and the abundance of modules with duplicate functionality where one is programmed well and the other isn't is a lucky dip! Commented Aug 21, 2014 at 14:09
  • @user3791372: Good point about the core patches (seems to be common with distributions; you’d keep on their upgrade path if you want to use them); as I said, I don’t use the distribution, I install/configure Commerce on the usual way. Commerce Kickstart might still be useful as some kind of demo, though, as you can test the features effortless, and then start form scratch if you decide to use it. -- Well, I don’t agree with your review, but I probably can’t convince you here ;)
    – unor
    Commented Aug 21, 2014 at 14:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.