{{announcement.body}}
{{announcement.title}}
Refcard #348

E-Commerce Development Essentials

The Building Blocks to a Successful E-Commerce Architecture

Since the dot com boom, e-commerce has meant big business for all involved. If you are considering setting up your own e-commerce offering, there is a lot you need to consider. From SDKs and APIs to general architecture decisions, this Refcard will help you navigate those options.

Published: Mar. 31, 2021
1,235
Free PDF for easy Reference

Brought to you by

Shopify
refcard cover

Written by

author avatar James Sugrue Chief Technology Officer, Over-C
asset cover
Refcard #348

E-Commerce Development Essentials

The Building Blocks to a Successful E-Commerce Architecture

Since the dot com boom, e-commerce has meant big business for all involved. If you are considering setting up your own e-commerce offering, there is a lot you need to consider. From SDKs and APIs to general architecture decisions, this Refcard will help you navigate those options.

Published: Mar. 31, 2021
1,235
Free PDF for easy Reference

Written by

author avatar James Sugrue Chief Technology Officer, Over-C

Brought to you by

Shopify
Table of Contents

Introduction

Build or Buy

Overview of E-Commerce Architecture

Utilizing Third-Party Services for Your Architecture 

APIs for e-Commerce Platforms

A Look at Open-Source Alternatives

Conclusion

Section 1

Introduction

Since the dot com boom, e-commerce has meant big business for all involved. Amazon, eBay, and Etsy all used the technology to their advantage, while PayPal, Stripe, and Shopify have positioned themselves as integral components to the fabric of the internet, providing services that make buying and selling on the internet simple and frictionless for the shopper and the merchant. 

If you are considering setting up your own e-commerce offering, there is a lot you need to consider, and this Refcard will help you navigate these options. You should first gather the requirements for your online store and decide which features are essential. From there, build or buy decisions will become clearer. Alternatively, you may be looking to build your own platform for others to use; if that’s the case, this will act as a resource, highlighting the necessary steps involved.    

This Refcard is broken up into five key sections: 

  • Build or Buy — An overview of common approaches to building e-commerce applications. 
  • Overview of e-Commerce Architectures  A high-level view of various components of the e-commerce system. 
  • Utilizing Third-Party Services — An examination of third-party services that can be used to create hybrid e-commerce offerings focused on payment services, chatbots, and recommendation engines.  
  • APIs for e-Commerce Platforms — An assessment of five APIs provided by the most popular e-commerce solutions.    
  • Open-Source Alternatives — A list of several open-source e-commerce solutions that allow the flexibility and freedom to deploy your own service. 

This is a preview of the E-Commerce Development Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 2

Build or Buy

There are three main options available that include using an existing off-the-shelf solution, taking parts from existing services to build a hybrid offering or taking the leap to building it all yourself.    

The following table will help you balance the pros and cons of each approach: 

Approach 

Pros 

Cons 

Off-the-Shelf Solutions
Use a proven e-commerce platform to avoid any development work. The most straightforward and fastest approach to get selling. 

  • Hosting and security are the providers concern 
  • Inventory management will be included 
  • Proven features and simple setup  
  • Quick startup time  
  • You will need to pay for the service  
  • Limited customization options 
  • Recovery from service outages is not in your control  

Hybrid 
Best of both worlds. Customize parts of the system but leverage an existing platform or set of services. This is the approach that will suit most. 

  • Bring in the services that you don’t want to implement  
  • Better customization options to help differentiate from other online stores  
  • Multiple systems to manage  
  • Service costs  

DIY
Build your own system from scratch — with all the benefits and drawbacks of full ownership. Recommended only if creating a platform or marketplace is part of your strategy.  

  • Full creative and technical control  
  • Lower, or no, service costs 
  • You will need to work hard to build a feature set to match existing services 
  • Responsibility for entire system 
  • Scaling concerns 
  • Cost of development 
  • Delay in time to retail 

 Of all the options listed above, the DIY option is by far the riskiest if you are building an offering that you expect to scale. As well as all the functional considerations, the non-functional requirements such as security and scalability become critical.  

As you are building something that deals with cash, expect your system to get the attention of hackers. Make sure to put a significant amount of investment into securing your system and make frequent penetration tests part of the product development cycle once the initial implementation is built.  


This is a preview of the E-Commerce Development Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 3

Overview of E-Commerce Architecture

Any e-commerce system is composed of multiple complex parts. Each module is focused on either the shopper or the merchant. The following diagram looks under the hood of a typical e-commerce platform, highlighting both the functional and non-functional requirements: 

Diagram

Description automatically generated


This is a preview of the E-Commerce Development Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 4

Utilizing Third-Party Services for Your Architecture 

Now that we have outlined core components of the system, let’s look at how each part might be implemented using existing services available. Note that for complete implementations, you might want to skip this section and move to the Paid e-Commerce Platforms part of this card. This list is by no means exhaustive but looks to capture the most popular solutions available. All services listed here have a developer API available, meaning that integration between systems is possible.  

You will find some of the categories we listed earlier are not covered here. In the case of Order Management, Product Catalog, and Shopping Cart, these are the core services provided by the larger e-commerce platforms and separating out those services does not make huge business sense.   

Another example is Account Management for customers. In all three cases, if you were not using a central e-commerce system, you would likely build them yourself, powering it all through a database. This is one of the caveats of hybrid architectures; unless you are willing to build some parts from scratch, you will need to consider one of the large e-commerce players. 

Billing and Invoice Systems  

For both the shopper and merchant sides of the business, a single service can suffice, managing everything from checkout to billing and invoicing. The services listed below are considered the premium players in online payments and provide numerous permutations of services and integrations.  

In the case of all the services listed below, payment details are stored by the provider, reducing risk and exposure to fraud.

Service 

Description 

Stripe 

Fast becoming one of the internet's most popular payment services, Stripe prides itself in being developer first, with client and server libraries available for all platforms, and pre-built integrations into platforms such as Shopify, WooCommerce, and NetSuite. Detailed analytics and reports are available for merchants.  

PayPal 

One of the original payment providers, PayPal provides a basic Smart Payments integration, along with additional features for shipping changes, advanced look and feel, refunds, and dispute handling. Customization of checkout pages is also available for merchants.  

A complete set of REST APIs are available, covering anything you need for a payment system.  

Square 

As well as providing an e-commerce platform, Square unsurprisingly provides a complete payment service that integrates with everything from WooCommerce and Magneto to Wix and Wordpress. This all works with the physical Square terminal, a point-of-sale device. Full developer APIs also exist to accept payments and create and track orders. 


This is a preview of the E-Commerce Development Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 5

APIs for e-Commerce Platforms

If the prospect of building an entire e-commerce application appears daunting, but you still want to maintain some creative control, there are a number of approaches that you can take. Using SDKs and APIs, you can integrate with existing platforms, saving yourself infrastructure headaches.    

Rather than needing to build your own infrastructure for an e-commerce application, you can leverage a number of different APIs and SDKs from established platforms. With these APIs, you can integrate and extend the built-in features of the platform.

This chart looks at the developer API functionality that is exposed across five of the most used e-commerce platforms: 

 

Shopify 

WooCommerce 

Wix 

SquareSpace 

Magneto 

API Type 

 

 

 

 

 

REST  

 

 

 

 

 

GraphQL 

 

 

 

 

 

Specialized Access 

 

 

Velo 

 

 

API Categories 

 

 

 

 

 

Inventory 

 

 

 

 

 

Orders 

 

 

 

 

 

Products 

 

 

 

 

 

Profiles / Users 

 

 

 

 

 

Transactions 

 

 

 

 

 

CRM 

 

 

 

 

 

Cart 

 

 

 

 

 

Analytics 

 

 

 

 

 

Extras 

 

 

 

 

 

Webhooks 

 

 

 

 

 

Open Source 

 

 

 

 

 


This is a preview of the E-Commerce Development Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 6

A Look at Open-Source Alternatives

If you wish to have the option of full control over your store, without needing to consider any third-party platforms, but want to avoid building the architecture from scratch, you should investigate some open-source e-commerce libraries. It’s notable that PHP has been the most popular language for open-source platforms. Along with WooCommerce and Magneto, the following are some of the most used open-source alternatives: 

Product  

Description 

Language 

Shopizer 

Includes shopping cart, product catalog, search, checkout, administration, and a REST API. Includes a CloudFormation stack for deploying on the AWS cloud.  

Java 

OpenCart 

Allows management of multiple stores from a single administration backend, with a large feature set, mobile and SEO friendly. Additional modules and themes are available in the OpenCart marketplace and include a REST API. 

PHP 

PrestaShop 

With an Addons Marketplace full of templates for e-commerce sites and additional modules for metrics and checkouts, this is one of the best open-source options out there. 

PHP 


This is a preview of the E-Commerce Development Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 7

Conclusion

This Refcard has highlighted the considerations and components of an e-commerce system, and it’s clear that it’s far from trivial. Online shopping has never been more popular, and there are a huge variety of paid and open-source choices if you want to build your system.   

The gains can be great for those who roll out their own solutions; however, it is not an undertaking for the risk-averse with the associated security and data privacy concerns. A hybrid approach is likely to suit most entrants, with each of the major platforms offering customizations to differentiate your store from the competition 


This is a preview of the E-Commerce Development Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}