Should We Use PrestaShop?
I'm getting ready to put together an e-commerce site soon and, with the budget what it is (sigh), I have to use a third party package to build on instead of writing a custom platform. Not a new scenario, at a basic level, but it's been a while since I've had to go with this strategy. Put plainly; I have no idea what my options are when it comes to e-commerce though I know I don't want to go with OsCommerce or CubeCart or, and only because the client forbids it (seriously), Magento.
PrestaShop is an open source licensed (3.0) e-commerce platform that I was recently introduced to by my friend Caroline; it's not without it's faults but there's also a lot to like once you get past the boogers. PrestaShop has one of those open source business models that's good for developers but kind of bad for the civilians. By that I mean if you know what you're doing you can get a shop up and running with little to no cost outside of development time. If not, well you have to spend money in the PrestaStore to buy modules for payment gateways and additional functionality.
Out of the box PrestaShop includes payment modules for Bank Wire, Cash on Delivery (COD), Google Checkout, Paypal, Paypal API and, seriously, checks (I imagine because nothing screams competent company like check by mail and COD payment options). If you want to use any other payment gateway, like Authorize.net for example, you either have to buy it from the PrestaStore for 255 fucking dollars or write your own. Seriously.
The documentation is lacking to say the least. There are all sorts of references to a mythical "Developers Guide" which is coming soon with no hint as to when it's going to be made available. Since they have an entire site dedicated to selling modules it's hard not to think of this as intentional (which makes PrestaShop look like dicks in my opinion).
One thing that's pretty refreshing though is their honesty about incompatibilities with various versions of php. They even know what's wrong with each version. Right there on the download page they have a very nice warning:
* Some PHP 5 versions are bugged and prevent PrestaShop from working correctly:
* - PHP 5.2.1 (authentication is impossible)
* - PHP 5.2.6 (authentication is impossible under 64bits servers)
* - PHP 5.2.9 (image management/upload broken)
* - PHP < 5.2 (invalid date timezone)
On the one hand it's really cool that they know there are issues with their software depending on the configuration. On the other hand though it's a little unnerving that they know about the issues but haven't fixed them yet. That says to me, and maybe it's just me, that development is a little inconsistent and poorly managed; something you DON'T want when choosing any third party solution.
The PrestaShop installation process is actually pretty nice, though the design is guaranteed to make your eyes bleed and it's not without it's bugs. The installer goes through the normal and standard system checks we've all became used to with third party packages which is nice. The only real issue is that the installer needs the last name field to be capitalized. Weird but really a non issue in the big picture.
As to the larger issues of bugs and management, Nick Bartlett has spent quite a bit of time documenting those. I haven't had a chance to look into the extent of them yet, not having used PrestaShop in a production environment yet, but according to Nick's blog, which I highly recommend checking out if you're interested in PrestaShop, there are bugs and issues with timezones, removing orders, overzealous security hacks and the product attributes leaves much to be desired.
It should also be noted that I was never able to get the search engine friendly URLs to work. This was on Apache 2.2 CentOS 5 box. I don't know why though I didn't look into it too much. Could be my fault but I doubt it.
The default theme is really gross for both the admin and client sites but it's possible to create custom themes for the client site. You'll have to suck it up for the admin site though.
Digging through the code leads to all sorts of insights. For example, the code style is a bit of a hybrid between procedural and OOP but in a very familiar way. It reminds me of a lot of projects; very logical. Interestingly, PrestaShop uses Smarty as it's templating mechanism. For me, this is really nice; especially since I'm already familiar with Smarty.
Also, as previously mentioned, there's a module framework though, also as previously mentioned, the documentation doesn't exist. So, in theory, it's possible to extend on PrestaShop though I haven't had a chance to dig into how that's done exactly. Expect that to happen in the future though.
All and all, even with the bugs and "issues", and keeping in mind that I haven't actually used PrestaShop, I'm not against it. Yes, it sucks that the module everyone and their mother is going to need (Authorize.net) is a paid module but it's still better than OsCommerce.