Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

Following my previous question, I'm now evaluating the possibility of using a hosted platform for the ecommerce project I have to implement. Before I start "playing" with each one of them, I'd like ask if anybody knows which ones allow a good degree of customization.

At the moment I'm looking at BigCommerce, but it seems that customization is limited to templates, while I need additional features which require PHP Coding. Also, I'd need to be able to import additional product data into the system, and I'd need to do this via code; I had a look at some integrations, but they gave me the impression that they all run on the rendered page via JavaScript. For example, if I want to show Facebook Reviews on a product, I'll have to add some JS that will fetch it and show it on the page. This is not optimal, as I must cater for people with JS disabled, therefore I'd need to run my own PHP code.

Update
As suggested, I'd like to explain that "customization", in my case, means altering or extending the normal ecommerce workflow by "tapping" into events and performing specific operations (in my case, I'd have to add a handler of a hypotetical "AfterPurchaseComplete" event). This can't be achieved in a system that just allows to add JavaScript (which, as I wrote above, can be disabled and, therefore, useless), as it has to be executed by the server itself, in the same way many framework's run plugins. I could understand that hosted solutions don't normally allow arbitrary code to run on their systems, but, unfortunately, this would preclude all chances of using them.

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

All hosted e-commerce solutions allow customization, so your question title doesn't make a lot of sense. If you're looking for a SaaS e-commerce platform that lets you run custom server-side code, you're not likely to find it.

People choose hosted stores because they don't want the hassle of setting up and maintaining their own web application. Hosted stores allow you to do this at a reasonably low cost—much lower than the cost of managed web hosting + a developer familiar enough with the codebase to fix any problems with the application.

But this comes at the cost of flexibility. Hosted stores can afford to offer these low rates for managed web hosting + application maintenance because, unlike a regular web host, they don't need to allow customers to run custom code or different applications on their servers. They simply host thousands of instances of a single application in a standard configuration that their staff are extremely familiar with.

If hosted stores had to support customer modifications to their codebase, then they'd have to go over every line of code that customers add/remove and all of its potential interactions. And since customers are unlikely to have the same commitment to software testing and code coverage, they would no longer be able to guarantee the stability & reliability of the hosted store.

In any case, a good SaaS e-commerce platform will be able to provide the most critical 90% of the functionality needed by 90% of all store owners. That's why these services are so popular.

For the rest, SaaS providers typically provide APIs that allow you to run custom code on your own web server that can interact with the SaaS application. This allow store owners to achieve the last 10% of functionality that aren't common to all stores and requires custom development.

And BigCommerce has this functionality as well, as does Magento Go and probably all the major hosted stores. A standard API will allow you to edit your catalog (add/remove/update products), create/edit/delete orders, etc. If that's not enough, and you need to edit the actual application code, then you probably need to look at self-hosted e-commerce options.

share|improve this answer
    
Thanks for your answer. I came to the same conclusion today, which puts me in an awkward position. I studied BigCommerce platform, but their API is not sufficient for what my customer is trying to achieve. Specifically, there's the need to "tap" into the workflow and do some operations immediately after a purchase is made. API systems don't normally implement real-time events. Also, even if their system were able to initiate a conversation towards our own server, it would have to pass sensitive data and, again, server side coding would be required (Javascript is not suitable for this purpose). –  Diego Apr 6 '12 at 0:38
    
On the other hand, I can't seem to be able to find a reliable framework for a self-hosted solution, as described in my original post. So far I got time and budget constraints from my customer and technical constraints from all possible solutions (either hosted or self-hosted). I'm starting to think that there isn't a way to do what customer is asking, the way he's expecting it. –  Diego Apr 6 '12 at 0:43
    
@Diego: Unfortunately this is frequently a problem with a lot of projects as clients always want to have their cake and eat it too. However, I do think that some sort of reasonable compromise can usually be found if you sit the client down and help them sort out their immediate priorities. –  Lèse majesté Apr 6 '12 at 5:34
    
I know you rejected Magento in the other thread, but, just as an example, you could cut down on development/setup time and achieve an earlier launch by going with Magento Go. This should be enough to meet 90% of the project requirements and give you extra time to work on the other 10% that requires a self-hosted solution and custom development. In this case, you can use Magento's event/observer model to implement your custom after-purchase event. And migrating from Magento Go to a self-hosted Magento install should be relatively simple. –  Lèse majesté Apr 6 '12 at 5:38
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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