Page 1 of 1

Ecommerce Integration Project

Posted: Fri Sep 26, 2008 3:38 pm
by crobinson
I'm planning on building a Members type ecommerce site.  I have to build it from the ground up because of the data environment I'm working in, and the fact that it's for a distributor and will be very unlike most ecommerce packages.  Most of the content updates will be done by our Marketing team, so I figured I would integrate this project with a good CMS.  While I have quite a lot of experience configuring, and coding ecommerce systems I have no experience with a pure CMS system.  I don't know what the best way of approaching this integration is.  At first it seemed logical to me that my ecommerce system would control the site's flow and the CMS bits would be "injected".  Something like this (obviously this is overly simplified):
ecommerce system code
ecommerce system code
$cms->getContent("privacy_policy");
ecommerce system code
ecommerce system code

As I mentioned this is obviously over simplified, but I had envisioned being able to inject many aspects of the CMS into my own system, even to the degree where the CMS system could create brand new pages linked off of already injected pages.  Basically, I integrate the "roots" of the CMS into my system and it can grow from there without stepping on the ecommerce functionality.

After looking through a few CMS systems I haven't seen any packages advertising themselves as being used in this way (injected through an API).  The development documentation seems mostly focused on creating modules.

So it seems to me, that at least CMSMadeSimple and I believe most other CMS systems, are designed so that *it* controls the site's flow and I would write an ecommerce module(s) to make the integration. 

If your question is "why would you want to inject CMSMadeSimple in the first place?" then here's my reasons.  I have no delusions that these reasons hold any merit so please tell me why I'm wrong:
1) The ecommerce system I have will be subject to some speed issues due to what I'm dealing with.  I feel that if I have control of the system (not the CMS) then I will have better success overcoming these issues.
2) I wanted to build my ecommerce system with Zend Framework using their MVC method, and don't know how ugly that would be if I were trying to do that in some other system's module code.
3) I envision the CMS bit of this project as a minor piece to the whole system.  90% of the changes will be things like sales promos, posting PDF files, and a few other Marketing type projects.  So I'm thinking, why should this smaller aspect of the whole project control the whole project?

I know this is a bit of a general CMS integration question, but I'm asking it at CMSMadeSimple's forum because I really like a number of aspects about this project.  I apologize for my lack of experience and what could be very obvious questions.

Thank you for any assistance!

Re: Ecommerce Integration Project

Posted: Fri Sep 26, 2008 8:16 pm
by calguy1000
At first it seemed logical to me that my ecommerce system would control the site's flow and the CMS bits would be "injected".  Something like this (obviously this is overly simplified):
ecommerce system code
ecommerce system code
$cms->getContent("privacy_policy");
ecommerce system code
ecommerce system code
If you're going to do this, the what do you need a content management system for?  You could just as easily include a .html file or read data from one of your own tables.

The whole point of a content management system is to take control and manage the content for you, and provide some added benefits like menu creation, multi-user capabilities, etc, etc.

CMS Made simple has an extensive module api that allows you to write pretty much any application you want inside it's shell.  I've written hundreds of thousands of lines of code in modules for CMS Made Simple.... some of them simple utilities, all the way up to complete e-commerce solutions (well, at least complete to some people).  They all work within CMS Made Simple, and I am not limited in any major way by it's infrastructure.