Building out an eCommerce solution can be one of the most tedious tasks in web development without all the correct information. The best solution will depend on a number of factors. These should be outlined prior to starting the development of the cart. I have outlined the areas of consideration based on my experience building shopping carts on almost all of the major PHP based platforms.

The two basic types of carts are self-hosted and hosted as a provided software service:


A self-hosted cart is one that you install on your own server, and the cart maker is just providing the software. The advantage in most cases is that there are many open source solutions that provide free shopping cart software that can be downloaded via the internet. There are also commercial versions that can be hosted for a fee to purchase the software outright:

Some examples of self-hosted carts include Magento, X-cart and WooCommerce. The self-hosted cart has the advantage of the possibility to modify how the cart functions as the developer can get access to the code files.

  • Many are available for free or at least for a one time purchase (no monthly fees).
  • Ability to modify how the cart functions as the code is available.
  • You own the software.
  • Less secure then a cart hosted as a service.
  • Business owner is responsible for maintenance and security of the cart.
  • Limited support is available for free open source carts.

Shopping cart software as a service.

This type of cart is hosted on the server of the software provider.  There is a monthly fee associated with this type of cart. The monthly cost will depend on the number of products (storage) and traffic. The general range will be $20 to just less than $200 a month. A developer will have access to modify the HTML / CSS files as part of a templating system, but in almost all cases, will not have access to the core files to modify the way the functionality works. Some examples of this type of cart include Shopify, Pinnacle Cart and Big Commerce.

  • On demand phone / chat support
  • Not responsible to maintain the cart software or server security.
  • Monthly cost
  • Unable to modify the core functionality of the cart

Here are some of the general considerations when deciding on the best cart.

  1. Shipping:

    Outside of what payment gateway the cart will be using, shipping is the second most important consideration when picking a cart. How the cart will add shipping and any potential discounts will need to be examined to verify if the cart will support it.

  2. Live VS flat rate shipping:

    It is important to understand whether the cart will use flat rate, live rate calculated shipping, or if it will connect to a carrier server to determine shipping costs based on the customer’s address, product weight and quantity. The advantage of live rate shipping is the customer should in theory get the best possible rate per their location. It is important to understand if the cart that is being picked will support this method of shipping.

  3. Discount shipping considerations:

    This can be an area that can also cause problems if the cart does not natively support the desired process flow or the configuration that the business model dictates. Modifying how a cart functions is not practical in almost all cases.

    Shipping requirements must be well defined prior to beginning the production. This will determine what cart is the best fit for your business.

  4. Sales Tax Considerations / Configurations:

    All carts will natively support adding sales tax as part of the checkout process. It is important to flag anything that would be more involved in adding a tax rate percentage per the customer state. In some cases, the business requirements dictate that some products have sales tax and some do not. This type of configuration would need to be well defined before selecting the cart platform.

  5. Product Configuration:

    How a product is configured and any variations of the product is an important consideration when selecting the best cart. The best example of a project variant is a t-shirt. A t-shirt will be a single product but contains variations that the user can select (color and size). Most carts will support a standard product and variations of the product, but it is very important to define this in order to select the cart that will natively support this.

  6. Product / category relationship:

    By default, all carts support setting up categories and planning products under those categories. Anything that is more complex such as a product related to multiple categories or anything involving sub-categories should be listed out in advance.

  7. Featured products:

    A featured product is used to define products the company wishes to feature in a particular area of the cart, such as the home page or category pages. This is normally on the home page, but they can be on any page that will support cart products. Any featured product requirement should be well defined in the scope of the project.

  8. Related products:

    A related product is a product that is shown to the user as one that is likely to be purchased based on the initial product. A generic example is if you were purchasing hotdogs, the related product could be hotdog buns. A product can have multiple related products natively supported in most carts.

  9. Product discounts:

    A product discount can be triggered in two ways. The first would be the user enters a coupon code and then is given a discount on his / her purchase.  This can be as a fixed discount or a percentage of the sale. This would depend on how the cart is set up and to what level it will support discounts.

  10. Product Images:

    All carts support product images. Where it would be important to clearly define it is when the product contains multiple images related to that product. This may possibly require an add-on or customizations, depending on the specific cart.

  11. Product data:

    How the products will be populated into the cart is a major consideration. In a small cart with a stable and defined number of products, this can be easily managed by a single administrator of the cart. If the cart has thousands of products coming from multiple vendors, this will take extra considerations in order to keep the cart populated with the correct data. Each vendor may or may not have a method to automatically populate data into the cart. This may require extensive modifications to the cart.

  12. Payment Configuration:

    How the payment is processed within the cart, or if it pushes to a third party web site will be important to define. All carts will support standard payment gateways such as Authorize.Net and PayPal. Smaller payment gateways may or may not be supported. These will have to be researched prior to the start of development.