A developers guide to e-commerce

An article that examines the core components of processing orders and payments online.

Over the last 3 years of running Anchor I've been asked the same question over and over again by our clients: can you host my site for free? No. Seriously though, one of the most common questions is how do we sell our products or services online? So rather than continue to answer each question indpendently this article outlines the answers that most clients get over the phone.

This article will examine the underlying technologies for dealing with online ordering. Part two of this series will look at some existing applications available to make this task easier.

E-commerce from first principles

To start with lets look at the very basic components of selling services online and processing payments. We can break the process down into four key steps from a development perspective:

  • Collect the order details from the client
  • Get the order details to the merchant
  • Process credit card transactions
  • Order fulfillment

Step 1 - Get the order details

We need a form on the website that allows the user to provide all the information that is needed for the order to be processed. At the minimum this will include:

  • Contact information
  • Product or service selection
  • Payment details

If we are requesting credit card details from the client then it is important that it is done in a secure fashion. Secure Socket Layer (or SSL) is the defacto standard for doing this and is supported by most hosting providers.

Step 2 - Get the order details to the merchant

The order information collected can either be stored in an online database (at the hosting company) or sent via email directly to the merchant. If the order details include credit card details then sending this information via email might not be such a good idea.

Step 3 - Process credit card transactions

The most important part to understand about processing credit card transactions is that the company processing the payments needs to have what the banks call 'Merchant services' in place. Merchant services give the business the ability to process credit card transactions.

We'll sidetrack here for a minute to examine some merchant services in a little more detail

Many existing businesses will already have these in place and probably use a machine supplied by the bank to swipe cards or input numbers for orders taken when the card is not accessible. If you are dealing with a new business then merchant services need to be established. The best starting point is with the bank that holds the business accounts. Be warned that due to the ability for abuse of merchant services they are not always easy to get for a startup company or new business.

Merchant services generally cost anywhere from $30/month upwards and the bank will deduct a percentage of every transaction as a processing fee. This is normally between 1 and 4 % of the transaction value. If you would like to accept payments via Diners card and American express you'll need to apply for these seperately and they'll be linked to your merchant account once established.

Now that we've dealt with merchant services lets look at how the credit card payment will be processed. There are a number of options available and the appropriate solution will depend both on the volume of orders and the type of product or service being sold, more specifically on the logistics of order fulfillment.

The options include:

  • Bank hosted payment systems
  • Internet payment gateways
  • Manual processing
  • Third party payment providers

Bank hosted pages are used by both small business and corporate users. When the site visitor gets to the point of providing credit card details they are redirected to a bank hosted and branded page, credit card details are given to the bank and the user is returned to the website to complete the order process. Information such as payment value and order identifiers are passed through to track the payment. The advantage of this solution is that the clients credit card details are only ever held by the bank so you don't have to worry about security or fraud. The second benefit is that the end user should have a higher level of confidence giving their credit card details to a bank rather than a normal website.

Internet payment gateways are provided by most of the major banks. You are given a set of code which is installed in the web hosting account on the server running the website and this code talks directly to the bank to process payments. Internet payment gateways generally work fine within the confines of a virtual or shared hosting plan. The advantage of this solution is that the client never needs to leave your site, simplifying the order process.

Manual processing of payments by reading the credit card details from the computer and typing them into a credit card swipe machine (the client will already have one of these if they have a physical point of sales) may be a good option in some cases. Take into consideration how the order is fulfilled (see step 4) in looking at this option. It will be far simpler to build the website as no integration is required and hence lowering the development cost.

There are a number of third party payment providers in the market that can handle credit card processing on your behalf. The integration task is much the same as an Internet payment gateway but in some cases merchant services do not need to be established with a bank.

Step 4 - Order fulfillment

Whilst order fulfillment is obviously not the role of a website developer or controlled by the ordering process it is worth considering. The type of product or service being supplied may determine the most appropriate type of payment processing solution.

For example, if the client is buying a complex service that is typically low in volume but of high value, or which requires intensive manual involvement to produce or ship, the amount of time that can be saved by a fully automated payment processing system may not justify its development. Getting the credit card details to the merchant and processing them manually might be a perfectly good solution.

On the other hand if an electronic service is being provided (eg selling domain names online) which is of high volume and relatively low value, which has the capacity to be fully automated then there are many more benefits to be had from a fully automated payment system.

Keywords : ecommerce, e-commerce, online orders, payment gateway, credit card, ordering, shopping cart

Author : Andrew Rogers

Related links