Normally when making sites I code everything myself but I had never been asked to make something really complex for a client that required a CMS but I think this new project Im working on qualifies. My client has a standard 5/6 page site with static content but they have a catalog of over 1500 products they would like to display (they dont need shopping cart functionality, they need to be contacted directly for sales).
I assume I would have to enter in all of the info for every product into a database and use a CMS to organize the gallery and dynamically create a product page pulling from common styles.
What CMS or plugins should I use? I know of the big 3, Dupal WP and Joomla, but I like the idea of Expression Engine even though its paid.
I have been looking deeper into WP and Joomla tutorials and it seems like a decent amount of work to learn one of their systems as far as building themes. I dont want to waste time learning one to realize it sucks. I want something where I have complete control over the CSS and page in general (I dont want to pay for or download themes and just change hex colors, I get paid for this and my clients deserve a completely custom design). The WP loop seems a little useless for this catalog and, I’m reading, has a ridiculous number of security issues. Any advice here?
If absolute control over code is your priority, it does not have to be cms, you could make a custom site using php and sql. If your client needs control over content, such as editing the products etc, then you will likely need a cms.
I have just started my first CMS blog site and ended up with Wordpress. I found a few smaller CMS sites that looked interesting but found problems. They were not very well supported and some were no longer being developed.
I hate to say it but going with a more well known CMS is probably better and they are a lot easier to maintain and customise than they were a few years ago when I had a look before.
It might be worth looking at a photo/portfolio CMS if you have a lot of product photos. I tried this when it first came out and I found it interesting: http://koken.me/
Drupal 8 is arguably the most powerful, flexible, and well architected CMS in the PHP ecosystem. You could probably achieve most of your needs with little to no programming besides building the theme. In the future if the client decides they would like to add payment functionality to the site the commerce package should be available for Drupal 8 in a few months as well.
Speaking as someone who uses ExpressionEngine day in day out it would be a good fit for this sort of project. Don’t let the licence fee put you off, you can easily spent more that in hours trying to wangle XYZ CMS to do what you want it to do.
For a product catalogue EE will give you
the ability to create as many custom fields to hold your product data, images, downloads etc
the ability to classify your products, either by different channels or categories etc
the ability to relate products to other products (eg for generating lists of similar products)
the ability to output products by category, in a certain order (eg A-Z), by most viewed etc, and using just the data you need per template type
full control of style and presentation for your data, you start with a blank sheet and build your way
and of course the ability to add/edit/delete products etc
…and that’s using no 3rd party addons whatsoever, of course you might need the odd addon depending what you want to achieve.
Another CMS to look at is Craft which is heavily influenced by EE.
I was taking a look at Drupal and it seems very robust but also quite complex for what Im trying to achieve. I appreciate all of the replies and advice.
I think ExpressionEngine is the way to go honestly and seems very powerful for any project so the licensing fee isn’t so bad in the long run. Also as someone who is new to building extensively dynamic sites, and don’t want to risk a clients security, I’d rather stay away from WP in particular since it seems like a security nightmare
Expression engine is built on Code Ignitor and having used Code Ignitor for half a year it is complete, and utter antiquated garbage. You’re basically beginning a project with code that smells like 10 year old socks that have never been washed.
Cool thanks everyone! Ill mess around with Craft and see what its like before I buy expression engine. Also, whats stopping someone from using the free version of Craft for a client? I know the client wouldnt have their own login separate from mine, but I dont see that being an issue really
I’f you’re checking things out anyway, have a look at the b2evolution demo, or if you’re really desperate, take a look at my article on it here at Sitepoint
For production sites the free version of Craft is only for use on personal sites “For sites built by and for the developer”. EE’s core version has the same restriction.
Why go with a CMS if you typically hand code everything anyway? Do you know PHP and MySQL?
For displaying products in a non-ecommerce website, you could easily setup a DB table or two for all the product data, then use a couple PHP libraries for adding/editing/finding stuff, and any normal template engine like Blade or Twig to show stuff in your templates.
Obviously this is somewhat complex, but if you’re a hand coder, you are probably 70 or 80% of the way there already.
I would agree with everybody not to try Wordpress. It’s still blog software at it’s core, despite what people have been able to hack out of it.
One of my favorites is MODX which I wrote about recently. But I wouldn’t say there will be any higher or lower learning curve than any other CMS product.
A modern favorite a lot of people are liking is going to be ProcessWire. I’ve used it on small projects before but not with any kind of custom databases, or projects requiring thousands of items like a store.
You might also look at Silverstripe, October, and Concrete5.
If you want a compromise between a full CMS, and hand-coding, you could go with a framework-only, or CMF (Content Management Framework) which typically do not have backend interfaces. Laravel would be probably the most popular right now. Also try Kohana, which is an evolution of Codeigniter.