Build a solid commerce website
To meet the demands and business requirements it is important to have a commerce website built on a solid foundation. The solid foundation will be created by having a core commerce platform. The platform needs to provide a consistent approach, responsive and distributed architecture. This approach will reduce cost and guarantee an accurate website.
The commerce platform should give you the tools to build the website and provide framework for the base commerce functionality. The commerce platform should provide the ability for a editing html in a user friendly editor (wysiwyg), standard shopping cart, product catalog, pricing, inventory, reports, authentication, search and modular architecture. This approach will allows developers to focus on the complex business requirements without reinventing the wheel.
Multiple commerce application exists to provide out of box functionality for a commerce website. When reviewing the commerce application it is important to review flexibile is the code to customize to your specific needs and how close the out of box feature meet your business specific needs. You want to have a commerce application that meets at least 70% of your needs and 30% of the will be required to customize the code to support your business specific needs. You do not want a commerce application that only meets 10% or your needs and 90% will require customization. When you require this much customization another application could meet your needs or a custom commerce application needs to be created.
After deciding the ecosystem of the core commerce platform it is important to correctly architecture and plan the commerce website to meet customer needs. This plan should contain a road map and the infrastructure diagram with technologies. During the design the integration points would be document, business requirements will be review and out of box functionality review against the business expected results will be compared with customization notes. The system will be architecture to meet the PAR standard (Performance, accuracy and reliability).
For performance you need a system that will handle unexpected traffic surges (2x peak traffic volume) and the ability to scale with the business growth.
The best method to create a commerce website to meet the PAR standard would be create a central commerce core. The commerce core is modular with built in redundancy. It is important to have a fail safe mindset. It better to capture the failed orders and fix the order the next business day then reject the order. You need to provide a friendly and helpful user experience or the user will go to your competitor.
Commerce website best practice have shown that is important a single checkout code base and shopping cart. The checkout code should be modular and support the ability to turn on and off feature for specific product, customer, country or other business specific use case. The code should never specifically reference a specific product or country. The business expect code should be developed to be reusable to maximize the return on investment and the minimize code changes. The company launching the website in a new country should not require additional code changes.
The core commerce functionality can be manipulated and called by external website or application. External website will call the core commerce add to cart functionality. During the checkout process the user will checkout using the core commerce.
This allows IT to quickly and timely create a marketing page with the ability to add commerce functionality on the page. Some example of core commerce functionality is shopping cart, add to cart, product inventory status, and price lookup. The external website will use web service to manipulate the user shopping cart. This approach allows code to be reused and reduce the chance of bug being introduced during the checkout process. This will reduce development time by decreasing how much has been created and create a standard process for commerce functionality.
The common core needs be designed to enable features. The business will not accept that it will require additional development time to reproduce the same functionality for another product or customer. A example is the business request the commerce website to be updated to limit how many quantities each customer can purchase of the new popular truck tire. If the business in the future expects it to require only a configuration change to add the ability to restrict quantity to another product or remove the quantity restrictions from the product. The business the expect the configuration changes to be small and to propage quickly to production while meeting the PAR standard.
To have a strong foundation the code needs most be modular. It is possible the company works in multiple jurisdiction and countries. With a modular approach the cost to support additional jurisdiction and countries is reduces by reusing code. The modular approach allows the ability to have a payment process for specific countries and reuse modular when possible. By reusing the module development cost is reduced by decreasing the effort and less code create means less bugs produced.
It is importanting when developming the modular code that the multiple combination of the configuration are tested in unit test. Ideally multiple combination are tested. Mutliple configuration should be test using only one specific module. In addition you have a unit test that uses a configuration with all possible modules enabled. The commerce core code will be used by multiple application and with different scenario. It is important to through test and review all code changes.
The configuration should be support the ability to change based time. Configuration can have the ability to turn on or off with time based restrictions. A example of time based restriction is the business will want to restrict a new product to a preferred list of customer until a specific time frame. In this scenario it is important to meet with the business to discuss the specific requirements when the product is restricted. For example the product could be hidden to all users or the product could be visible to allow users but only a specific set of users can add the product to the cart. It is possible for the core commerce configuration to support any of the options and have the configuration specify how the restrictions will work.
The core commerce modules need to be documented. The documentation will specify any dependency or restricted combinations of the module. It is important the documentation is accurate and kept up to date. The documentation should be located where it is easy for all developer find and update.
A major indicator if the commerce code will provide a strong foundation is if the business requirements are captured and the overall approach is designed to meet the current business needs. During the business requirments it is a preferrence to identify how the businesss requirements will change in the future and attempt to plan for the changes.
Gathering and documenting the requirements earlier will minimize the rework during development, help identify and plan for any complex business rules. While watching for any specific unique requirements.
A plan needs to be created to ensure all developers understand and research the core commerce code. The commerce functionality will be useless to the business if the developer do not know the code exists and how to use it. Having everyone use the same framework will help to standardize the code. This will allow developer feel comfortable when jumping to a section of a code that are not familiar with due to the standard framework.
Failure to create a strong foundation for your commerce website using a core comerce project will cause developers taking different approaches when extending the website. The adhoc approach will the wheel to reinvented multiple times. Each time the code is recreated additional bugs will be created. In addition the code will not provide consitent user experience. Each time a user experience a poor shopping experience increase the chance to go to your competitors website.
Today customer have a higher expectation of the website. In the 90's people would not complain if the website took more than a minute to load. Today a user will leave a website if it takes 2 seconds to load the page.
To create a solid commerce website that exceed the user exceptions requires a solid commerce foundation. When setting up or migrating your code to solid commerce found it is important to work with companies that have experience in the commerce development. A lot our clients have the same technical challenges and requirements. It is helpful to have a partner that experience and understands the challenges and risk with the different approaches. Xcentium has spent a lot of time effort and gained experience driving our clients to have the best solution and to be fiscial responsible with the budget.
The commerce platform should give you the tools to build the website and the provide framework for commerce functionality (CMS, shopping cart, product catalog, pricing, inventory, reports, authentication, search). Creating a solid foundation for your commerce platform will allow your business to focus on gaining new customer and keep new customers.