View Full Version : First Project: Custom Online Retail Store

01-11-2012, 05:46 AM
Greetings my fellow coders,

Starting off 2012, I received my first freelance project for an online retail startup. I'll be independently coding the site with my girlfriend (who's a graphic designer) providing the designs. I'm pretty sure that's why they even considered giving me a shot, she's amazing :o

Anyways... I do have experience coding my own personal sites using PHP, MySQL, Javascript, JQuery and HTML/CSS. But this will be my first site that I'm actually selling items online and also the first one I'll be coding and handing off to someone else to maintain.

Being a business consultant by day, I am very much into designing a strong and flexible solution upfront rather than piecing it together as I go along. I'm stuck in this design phase right now! And am wondering if any of you much more brilliant and experienced minds out there might be able to give me some advice/guidance.

Here are the basic requirements:
-Online retail store
-After I hand the site over, the founders will need to be able to add more products, modify existing products, modify existing information (like descriptions or prices) ...this is the requirement I'm struggling with as I've never "handed a site over" before

My Open Questions:

What is the best way to code the site to allow the founders to add new products or take existing ones away without them delving into code? Perhaps I could create the products page as more of a framework in PHP and pull product images/information from a MySQL table? Is this the best approach and would there be an easy way for them to modify the MySQL table (because even that may be a little too technical for them)?
What shopping cart plugins have served you best before and do you have any recommendations (Magneto, OpenCart, OSCMax, etc.)?
What credit card plugins have served you best before and do you have any recommendations (Merchant Plus, PayPal Website Paytments Pro, etc.)?
Would I need a separate plugin to calculate Salestax?

Those are some of huge questions I have that define the foundation of this project. Any help would be GREATLY appreciated. Thanks so much for your time. Let's make 2012 a big year!! :D

01-11-2012, 07:08 PM
Your shopping cart options will determine the inventory control. So no matter
which one you pick, the owner will be upload photos, description, price, etc.
Those shopping cart scripts have plug-ins for various CC merchants, UPS, USPS
calculators, sales tax, etc.

So, I recommend you research Magento and find out how it works, what their
admin part looks like, and if they can play well with your CC merchant.

As far as merchant ... first contact your own bank and discuss it. Sometimes, a
person's bank already has a service that can meld with their existing accounts.
Otherwise, there is wide variety of fees between different merchants. I've worked
with Authorize.net (a very good one in my opinion), but if your business is small,
without many transactions, maybe PayPal is the better choice. It will be important
to research it and compare.

01-12-2012, 05:00 AM
mlseim, thanks for your reply. It was very enlightening to me. Being that I've always custom built everything, I knew I was disadvantaging myself... didn't know by how much. Always spent my time on learning how to build more myself, maybe should spend it researching what existing tools I can research.

I'll certainly research Magneto and see how much of the puzzle I can solve using it, and which pieces still need to be built afterwards. Will post back here with results of my research.

Maybe a stupid question... are there any other glaring shortcuts I'm missing in terms of general development of an online store? Or is it mostly Shopping Cart App plus CC Merchant... and I can build the other pieces I need around it or use other smaller apps?

Thanks again!

01-12-2012, 05:17 AM
Some ecommerce scripts are easier to "blend" into existing sites than others.
Check out several of them and compare. In all cases, they are built around templates,
so you need to customize the template to match the look of your remaining website.

You could always "build your own", but the time it takes is extremely consuming.

You'll also need access to a MySQL database (usually provided free with webhosts).
The ecommerce script uses MySQL ... the user doesn't need to access it directly.
Everything the user (site owner) uses is within the admin section ... where they log-in
on their website to access the online store operation.

Running an online store is exactly the same as a real store. You have inventory
control, pricing, packaging, shipping. They need to deal with damage goods returned,
payment problems, items not received, dissatisfied customers, phone calls, website
problems, email issues, etc. It's basically a full-time job for at least one person.

If they think they'll post their items, photos and prices ... then sit back and roll in the
money, they had better think again. Depending on what they're selling, it's going to
be tough to sell. Jewelry and clothing ... good luck. People like to touch, see, and
try on items before buying (can't do that online).

What will the retail items be? Is it something that 1 million other people are selling online?

You'll be facing a decision about how to handle credit cards ...

Processing credit cards comes two ways ... depending on whether or not you use a secure server,
and who your merchant is ... the prices of these vary between merchants and webhosts.

1) SIM - simple integration method, like PayPal, where the user leaves your site to enter
their credit card information, pays, then returns back to your site. You get the transaction
results, but no private information is saved on your site, or transmitted. You do not use a secure server.

2) AIM - advanced integration method, like Authorize.net, where you own or use a secure server,
and you are able to save all customer information yourself. They never leave your site ... but the
built-in API scripting transmits and receives data from your CC merchant in a secure manner.


01-12-2012, 06:03 AM
You need to define exactly what your client is looking for in an online store. Many webhosts these days offer store fronts free with account signup and allow you to make changes to visitor/admin templates. Like you I'm use to building my own sites and apps and have built an application to run my small business offline. Some conciderations are 'inventory control'. Online, inventory control does not sound feasable unless you're on a closed network. The store may have plenty of a single item in stock (locally) but multiply that times a million people (online) who may/may not order it. I believe Best Buy had that problem???

I have inventory control on my app but I don't allow things like back orders, so I have an inventory item limit setup. When my the item reaches it's lowest point I'm alerted to order more. When the item is at zero it's unavailable! Accounts is another thing, I allow accounts and keep track of the amount spent, when an account is paid off etc. So if an account has say a $30.00 balance ifthey try to purchase anything over that amount using their account the app asks for another type of payment. Generally cash.

Clients need to be aware of what all is involved in an online buisness just as much *** their offline one.

You have payment gateways, merchant accounts, open source store projects like zencart, OSCommerce etc. and even with these they will need someone who can work coding/database modifications if needed.

01-12-2012, 06:57 AM
Thanks for your replies. The founders own a few real-life coffee shops and are using the website to supplement sale of beans+merchandise, so they are fully committed to the business.

I looked into Magneto, the first “e-commerce platform” I checked out. It hit me like BAM, I’m way behind the times… Glad I spent time learning how to code everything from scratch in PHP, but I don’t think I’m ever doing that again. At least for an online store.

I was extremely impressed with the functionalities included in Magneto. From product mgt, order/shipping/payment mgt, customer account mgmt/crm/newsletter… even little things like product ratings, customer reviews, etc. c1lonewolf, it also looks like inventory mgmt is covered as well, although I’m still a little confused on what you’re referring to with the “offline” piece.

It does look like I would only need to add a CC Merchant to sit in btwn the Magneto store and the founders’ bank. If we choose an appropriate Magneto theme though, it looks like the rest of coding will just be tweaks on top of the template.

I do still have some questions though:
-Everything in Magneto seems to be managed from the admin area that’s on the web host. How can you “test” locally or in a test instance online as you’re making modifications to the site? Right now I do everything locally with Dreamweaver and Wamp… not sure if it will work like this with Magneto?
-Do you know if Magneto themes are written in PHP? Or which language will I need to learn to make modifications to the templates?

Lastly, am I understanding everything right or missing anything glaringly obvious? I’ll continue to research other e-commerce platforms and post here… Thanks again for the comments and discussion

01-12-2012, 07:15 PM
If I were you, I would do it like this ....

Find a nice, inexpensive webhost ... like cleverdot.com, 1and1.com, or similar.
Create a brand new website subscription and install Magento. Create the whole
thing on that new website ... even without a domain name. They will give you a
URL to access the site without a domain name.

Do all of the install, config, customizing online ... using FTP (FileZilla) to transfer
files back and forth. Get the MySQL database configured and working, upload
coffee items, do everything. Most of your coding will be by hand (using Notepad
or Notepad++ ... better yet). It's all PHP and MySQL, so Dreamweaver won't do
much for you. You'll be editing templates and uploading changes to the site.

Create a few admin logins and let the client go in and upload things, learn how it works.
You can set-up a test with your CC merchant to process real transactions using fake
accounts ... to make sure the gateway works properly. Your CC merchant will guide you
with all of the pre-testing you will be able to do. They are happy to let you test things
so it reduces problems later on.

Once it's all done, you go to the existing host that handles your client's domain name.
You point that domain name to your new website. You then turn-over the entire
account to your client. They can resubscribe using their own credit card.

If you client does not even own a website right now ... you're going to have to do
all of that anyhow, so do it that way, and they can register a domain name later on,
or do it right now.

They can search for a good domain name that is not yet taken if they don't already
have one. The webhost you choose will have a feature to check for domain name status.
They won't let you register a domain name that is already taken.

Note: the domain name and website account are two separate things. You can register
a domain name with any host, and pay for it using a credit card. You can subscribe to
a webhost (for the web site) with any host. Any domain name can be "pointed", or assigned
to a specific website. To make it all easier, if a person doesn't have a domain name or a
website, most webhosts allow you to do it all with them, in one place, to make it easier.

Just know that your client will need to pay twice each year or opt extend the subscription to X years.
Two payments, because they pay for "domain name hosting" and "website account hosting".


01-13-2012, 02:19 PM
Hi i think you are the best online store dealer.... I wish to be your client forever.

01-13-2012, 02:27 PM
Nomi123 ... what does that mean :confused:

01-15-2012, 06:15 AM
Thanks again for the reply. I haven't gone away - I've been researching a bunch of the platforms (like Magneto) that I could build this site on top of.

Looks like there are e-commerce platforms, with the 3 most popular looking like Magneto, OpenCart and PrestaShop. Out of these, it seems like OpenCart is in fact the cleanest and allows a developer to work with the code the best. As for Magneto, it looks like the code is inefficient/buggy and incredibly tedious to customize.

There are also CMS platforms, with the 3 most popular looking like WordPress, Joomla and Drupal. They all have e-commerce plugins that would allow these sites to be turned into an online store. Based on my research here, it looks WordPress is the simplest of all 3 platforms while Drupal is the most complex yet flexible. Joomla, like Mageneto, doesn't appear like a good option.

Based on the nature of my site - being a strict online retail store - I think I'm going to settle on using an e-commerce platform and adding blog and forum extensions if needed (rather than going the other way around by starting with a CMS platform). I think I'm going with OpenCart for ease of use as a developer.

This is just what I've found so far... please let me know if you have alternate suggestions for an approach. I will continue to update progress here. Thanks!

01-15-2012, 08:09 PM
Sounds like you picked the one you want.
I usually pick the one I'm most experienced at, but not necessarily always the best choice.
Since I've never used OpenCart, I can't speak for that one.
I agree that Drupal is the hardest ... and I have never had the nerve to tackle it.

01-16-2012, 06:26 PM
I think I'm having a change of heart now. I'm thinking the site may be more flexible to expand in other ways besides a strict online store if I use a cms platform (Wordpress probably) and add a shopping cart extension.

Does this make sense? Can anyone see any disadvantages to this?

I'll probably install both and try them out

01-16-2012, 08:30 PM
I can help more with customization if you pick WordPress. But which is better? ,
that's something I don't know. Installing both might be hard to manage, since they
both can't be installed in the same directory.

The thing about WP is, you should first see if you can find any free (or purchased)
themes that look fairly close to what you need ... in terms of layout. The graphics
can always be changed, but layouts are a bit harder to customize. Many WP sites
are not used like blogs anymore, so you might find some good ecommerce WP themes.


01-17-2012, 03:12 AM
Will try out WordPress. Out of curiosity, when you build a wordpress site, how much of your work is configuration (point and click, adding new extensions, etc.) and how much is custom coding?

Also, do you build your site directly on the Web Server? Seems like the most common method with all these platforms. And you simply pull down pages and modify as needed.

01-17-2012, 10:51 AM
I've just built an e-commerce site with WP using WP e-Commerce, and I although it's OK I found it far less flexible than using Opencart - which I've used on another installation.

The Opencart site doesn't have a blog but it does have a number of custom pages which are user updateable. Overall it isn't as user friendly for updating pages as WP is, but I'd rate it considerably higher for ease of managing shop products. You may find there's a blog extension for Opencart.

Probably boils down to the main purpose of the site - if it's a blog with a shop for occasional use, maybe WP, if it's a shop with a blog bolted on, maybe Opencart.

In terms of customising the look and feel I'd say Opencart is pretty much the same as customising a WP theme.

I considered Magento but it felt a bit over the top for my needs - depends on what your clients need.

EDIT AFTER SOME GOOGLING: Seems a few people have tried to combine WP and Opencart - but in most cases this seems to require the client to log in separately to each application - which for me would be a big no-no. There are Opencart blog plugins as well (e.g this one (http://www.opencart.com/index.php?route=extension/extension/info&extension_id=4552))- once again it probably depends on how sophisticated a blog you need.

01-17-2012, 03:04 PM
Always great to hear from people with different actual experiences. Interesting that you tried both, and prefer Opencart - that tells me something. Out of curiosity, what kind of online store did you implement? Was it very product intensive?

I think them being a coffee shop, the store won't be as complex as say an electronics store with lots of models that are continually updating. I think the online store may simply be a tab or section within their website - so at the moment, I'm still leaning towards WP. I will certainly try both though when I have a little more time...

Just quick question - logistically, I'm trying to understand the process of creating a website on a platform. Do you "configure" it directly on the web server? How often do you modify using point-n-click and/or adding extensions and how often do you need custom coding?

Also, if I have a specific design I want to implement... is it better to leverage an existing template with similar navigation and tweak it? Or is it pretty easy to build a custom template from scratch? <--I'd probably choose this way.

Thanks again for all the feedback.

01-17-2012, 03:12 PM
I usually do all of my coding by hand. I use FileZilla (FTP .. and it's free) to transfer
files back and forth. I use Notepad++ (it's free) to do the editing of PHP, HTML, CSS.

Make changes to the files, upload them, and test online. Some people install WAMP and
set up their computers as local servers to install and text scripts. I've never done that,
but that's an option.

One of the reasons I like to do development online and on the website, is in case I want
someone else to see something, demonstrate something, or point someone to a problem
when I need help. That's hard to do when everything is on your PC. Often times, I have
my client log into their "new website" before it's finished. They can start to learn how it
works, let me know if something doesn't work right, or if they wish to have me change
something. I develop the site with my client watching me, and participating as I do it.
This is especially useful with WordPress sites, because I'm affecting the theme and plug-ins,
not the main WP engine.


01-17-2012, 03:25 PM
That is my current setup, as I do everything from scratch and basically reproduce the graphic design files my girlfriend passes to me. I code PHP, AJAX, Javascript, HTML, CSS in Dreamweaver locally. I have WAMP setup and it's tied to a local MySQL database, which I use EMS SQL Manager to navigate. Only when I'm ready, I use FileZilla to move my files online to my web server.

However, with the new platform setup, it seems like much of the modifications require occur through configuration rather than coding. This sounded like it happened through admin screens, which is why I was wondering if most of the configuring is done online, on the web server?

01-17-2012, 04:11 PM
Out of curiosity, what kind of online store did you implement? Was it very product intensive?

It's a wool fibre retailer: http://www.adelaidewalker.co.uk/.

The characteristics of the store are such that buyers may buy lots of different items, with multiple quantities of each product, and we wanted adding products to the cart to be easy. There are also many repeat purchasers and we wanted the log on to be straightforward. (I'd say Opencart is significantly better than WP e-Commerce in the latter respect). The back end of Opencart - in terms of who's bought what, and the ability to manage order statuses and update customers - is also far superior to that of WP e-Commerce , but again, it depends what you want.

Just quick question - logistically, I'm trying to understand the process of creating a website on a platform. Do you "configure" it directly on the web server? How often do you modify using point-n-click and/or adding extensions and how often do you need custom coding?

I used a sub-folder off the main site to build the site and migrated it to the root when we were happy. As mlseim comments, this makes it much easier to review and carry out testing.

I used one extension to add discounts, and built another one myself to add a separate newsletter capability. I've also added on some functionality to the back end to allow discounts and shipping amendments to be carried out after the order is placed, and some more functionality to allow customers for whom we don't have a valid shipping option to request a quote. Also a fair amount of custom code - significantly more time on this than configuring from a developers perspective. As always, it's the bells and whistles that take the time....

Also, if I have a specific design I want to implement... is it better to leverage an existing template with similar navigation and tweak it? Or is it pretty easy to build a custom template from scratch?

I started with the default layout of Opencart and modified it to meet what was needed - you can probably see that the layout is not dissimilar to the out of the box stuff.

01-18-2012, 05:41 AM
Site looks great and loads very quickly for me. Maybe that OpenCart load time thing is more hyped up than it actually should be.

Makes sense about building the site in a sub-folder online. I think I just need to get used to the concept of configuring a website online rather than coding it from scratch offline and uploading it. Did you need to password protect the folder or anything like that?

I see that the layout is similar to OOTB - out of curiosity, why didn't you choose a theme to build on top of?

01-18-2012, 10:27 AM
Did you need to password protect the folder or anything like that?

I didn't - chances of someone accidentally typing in [domain]/ocart was pretty small - if they had it wouldn't have been disastrous.

I see that the layout is similar to OOTB - out of curiosity, why didn't you choose a theme to build on top of?

Didn't see the need. From a usability perspective the OOTB design is pretty good, so didn't see value in changing it. We were also trying to keep the site looking clean and simple, similar to the previous live (non e-Commerce) site to minimise change.