It so happened that for the past year and a half I have been working closely with
SAP hybris . There is great interest in ecommerce platforms in Russia, so I decided to tell this article based on my experience simply and easily about this topic.
The most important about eCommerce platforms
The foundation . To create any complex software, you need to prepare a "foundation", which will later make the development manageable, and the entire system visible and understandable for the architect. This foundation is a "multi-layered cake" of universal, standard and well-proven technologies and products. The correct choice of this set largely determines the development of the system in the coming years. Examples of the components of such a "cake" -
ORM ,
CMS ,
PCM , Search Engine, from specific technologies -
Hadoop ,
Apache ServiceMix ,
NodeJS and others. The set of these technologies is often determined by the experience of the development team, and not only and not so much by the needs of the business, so you can often find systems on
Scala ,
Erlang or
Haskell . In eCommerce-platforms, such a zoo of technologies is often found - Java, C ++, Perl, C #. This happens when a vendor purchases various components from third-party companies or companies themselves. We are lucky with the platform - there is only Java.
Thus, the eCommerce platform is an organic, prepared, customized, debugged, packaged and documented set of such technologies. For many typical tasks in e-commerce, the vendor has developed ready-made blocks that require only a small “fit” to the task, and some are implemented at an abstract level and require “file finishing”. The more organically intertwined the technologies are, the more thoughtful the architecture is, the easier it will be to expand it to fit your needs in the coming years.
Let's write everything yourself? Of course, you can develop a store without an industrial platform, collecting the "cake" yourself. The question is how long it will take and will it be possible to preserve a good architecture, scalability, performance, security, extensibility, reliability, and documentation in a year or two. A good and rare example when this has been possible for large e-commerce is
Amazon.com . Experience shows that, with today's requirements for quality, safety, functionality and development rates, writing everything “from scratch” ultimately turns out to be very expensive, time consuming and risky.
')
Do you need an eCommerce platform? Owners of online stores before deciding on the platform should think about where they see their business in five years. If in this future there are the words “multi-regional”, “multi-language”, “multi-currency”, “huge assortment”, “big traffic”, “personalization”, “hundreds of warehouses”, “hundreds of employees in the process”, then today you need to look for a platform supporting all of the above.
When using the platform, the daunting task of building a large online store becomes quite visible and manageable. At the forefront are features of business automation, integration with internal systems, specific business processes, user interfaces, and features of goods and services. The cost of development and implementation consists of a substantial part of these components.
Timing . It is impossible to name even the average time, but it is possible to name the minimum from personal experience. Our team has a successful experience when the system is put into production 3 months after signing the contract. The first release in the "production" was two months after the start of work - a catalog without the possibility of ordering goods. The team on this project consisted of six people, including me. There are other examples where the team and deadlines are longer.
For e-commerce project term is very important. If there is an opportunity to increase the team, reducing the time - it must be done (as F. Brooks
said , so not always). While we are developing a new website, the development of an existing customer will never stop. Therefore, each additional month creates huge risks that the project will not be launched.
Cost It is possible to roughly estimate the cost of such a project by multiplying the planned project duration, the average team size and the average cost per person-day of the specialists. The cost of licenses is usually lower than the alternative cost of purchasing, developing and integrating into a single set of software of comparable functionality.
How to choose an ecommerce platform?
In order not to be mistaken with the choice of eCommerce platform, you should pay attention to
- Western successful projects . Why western? Because they exist longer than the Russian, and they have long gone the path that Russian e-commerce is taking today.
- the number of implementations in Russia for the last 2-3 years . Many platforms in the world have received a high rating because they have been developed for a very long time, and have collected many implementations over the history of their existence. Others have appeared recently. A rich history can be a sign of both a good accumulated experience, and a large amount of code “from the nineties”. Why in Russia? eCommerce in Russia is very different from the west.
- "Openness" and the availability of components of the "pie" technology . It’s bad when the customer has no other alternative than to contact the vendor or partner for the support of the launched site. It is good when there is a choice - to assemble and train your team or work with an experienced partner.
- number of companies and professionals in the market . Assess the potential, how much they will be given the current pace of development in a year or two.
- Frequency of release of versions by vendor . If the platform is updated only once a year or less, it is worth considering what priority it has among other vendor products.
- standard integration mechanisms . If the platform has an API, this makes the integration work very easy.
- complexity and cost of scaling . Increase all your numbers in traffic and SKU volume once in a hundred and estimate how much a license will cost, how many servers you will need, and whether the platform will cope with this at all. Rest assured, well, not a hundred, but ten times your business should grow by these indicators in five years. If there are no such ambitions, you hardly need a platform)
- quality of documentation . It is important that the documentation includes both a block for business users and programmers, reflecting the difference in versions, is relevant, complete, accessible and well structured.
- Gartner and Forrester ratings . These companies are recognized leaders whose opinions in the market are trusted.
I would not advise paying much attention to:
- Ready modules . eCommerce in Russia is so different and so dynamic that ready-made modules are more a headache than a blessing. It is better to look for ready-made “frameworks” for the task + documented prototypes for solving specific tasks on them. For example, the integration module with payment systems "in general" with an example for one PS is better than a set of disparate integration modules with any specific payment systems.
- Ready-made design templates . Appearance in large e-commerce is never an extension of demo stores, it is always replaced by a new, specific to the client. Taking standard visual templates as a basis is always more difficult, more incorrect, and even longer than re-creating them for a specific design and specific functional requirements. But this approach requires more experience than the refinement of ready-made templates.
Fast start?
On the one hand, using the platform allows you to start the store in a matter of months. On the other hand, not a single e-commerce platform is a ready-made template for a store that was bought today, ticked off in the admin panel and clicked on. That is, technically it is possible, of course ... But in 100% of cases, you need to preprogramming for features like the client’s internal information systems, its processes, our market, our user experience, the automation of data migration, etc.
What is a project on the ecommerce platform?
The eCommerce system includes interaction with the customer through various channels - from a call center and a web-shop window to a mobile application and kiosks.
Manage e-commerce master data . This includes a set of software for managing master data of online commerce — with content, promotions, and other important e-commerce sites. Some components of this unit, like product management, can be used outside the online store as a standalone system. The project for the implementation of the platform includes the configuration and expansion of this software.
Web showcase . On the one hand, an online store is, albeit a big one, but a website. Design concept, design layouts, back office, frontend - HTML layout, javascript automation, data exchange with internal systems, content are typical steps familiar to any web site project.
Business processes and workflow . On the other hand, these are business processes for automating online trading. This includes work with a catalog of products, and marketing, warehouses, logistics and call center. When many people are involved in the sale of goods, it is important to ensure a transparent and reliable workflow system.
Other channels of interaction with the client . Mobile application comes in the form of a working prototype and a set of API. The version for kiosks and the version for mobile devices are additional versions of the web storefront, using almost the same functionality and the same data as the main website, but in a different “wrapper”.
Special functionality . It also includes such important topics as returns, defective goods, partial payment, loyalty systems, timing, cost and delivery options, trigger and bulk mailings.
Search. In the field of e-commerce, search is one of the most important components of the system, as it directly affects the conversion of visitors into buyers.
Architecture
Each of the above topics has a “blank” of varying degrees of elaboration in the platform, it can be a module ready for connection, and it can be a “semi-finished product”. Ready modules have a minus in that they cannot always be easily changed for specific requirements, and it is more difficult to study them - ambiguity and opacity of logic require more time to study and prototyping. The “semi-finished products” do not have this problem, but they require more time to adjust and refine. But they have a plus in that the system turns out slimmer, safer and more reliable due to a more solid and scalable architecture.
On the basis of one “semi-finished product” you can make hundreds of different options for implementing the functional, and only one of them can be implemented in a demo store, which will be presented to customers at the first meetings. That is why you can not call seen in the demo store "best practice", since this is just one of the possible implementations of a very flexible mechanism.
The professionalism of the architect of the eCommerce system is also in understanding this flexibility, limitations and opportunities. We almost never tell customers “no, this cannot be done”, because on modern ecommerce systems you can do absolutely everything at one price or another.
The eCommerce platform includes a set of back office tools that automate the work of specialists involved in eCommerce processes by the online store - call center operators, marketer, content manager, product manager, and others. Since many of these components are often customized for specific processes, ideally they should be implemented on a single technology, with common interfaces and approaches to expansion.
Large platforms are initially designed for large amounts of data, for complex business processes, for high attendance, performance and availability. For example, clustering and caching in them are performed at the industrial level.
Basic principles of development
The platform has thousands of places where a programmer with his own logic can “wedge in”, redefine or expand the standard behavior of the system. The development of an online store is the design, development and testing of such modules separately and as part of a platform. As you can see, there are two boundary options here - replace all business logic with your own or use the one supplied in the distribution.
The development uses well-known technologies such as JSP / Spring / Java, which makes it easy for programmers to connect to a project without experience with a specific eCommerce platform.
Search
From the point of view of the online buyer, search is the receipt of goods or pages of the site in response to the keywords indicated by it. The closer the search results to his query, the higher the likelihood that he will buy from you and not from competitors. Therefore, all major online stores continuously work on improving search.
You can write the search by yourself "from scratch". So does the vast majority of online stores with a small assortment and traffic. But with the growth of the product base and traffic, the search is slower, the online store is losing customers, and, starting from a certain moment, it becomes clear that you need to completely rewrite the mechanism to a more complex one or connect an external search engine.
Simplified, the “search engine” is a specialized database that puts information about products and pages so that it can then be removed quickly and often, using, if necessary, quite complex queries. This feature allows you to use “search engines” not only for searching by keywords, but also for searching, for example, by product characteristics or for displaying a list of products of a selected category. Search with a gradual refinement of the request through the convenient interface of the buyer - must have for any large store. For non-platform stores, this functionality is one of the bottlenecks in terms of performance and flexibility.
Among the "search engines" in the field of e-commerce are respected Apache SOLR, ElasticSearch, Endeca, Sphinx. Connecting to the online store search engine can be quite time-consuming procedure, if everything is done properly. In e-commerce platforms, this issue is usually resolved with one of the products in the out-of-box version.
For example, Apache SOLR is used in all our projects, and all product listings are also built on requests for it. This approach allows you to have a huge performance margin.
Product Management
Catalog of goods - the main thing with which the online store begins. Data on goods can be used, for example, on price tags in a store or in a printed catalog. Good practice is to store so-called. “Enriched data on goods” - images, technical characteristics (including dynamic), attached files - in a separate system, specialized knowledge base on goods. Such systems can be a separate product, and can be supplied as part of platforms.
The common name for such systems is PIM (Product Information Management) or PCM (Product Content Management).
These systems have no direct relation to the online store, since their purpose is to automate the management of information about products and their groups. If you plan to display them on a website, then this is a matter of a content management system (CMS), which I will discuss in the next section.
A typical project to develop an online store on the eCommerce platform includes setting up and implementing PIM / PCM, as well as integration with internal accounting systems. Usually the development of a directory is the first thing a project begins with.
For example, in the
RIV GOSH online store, a part of goods has a unit of measurement “grams”; there are options in color and volume; goods can be linked to several headings from different hierarchies of headings, some of which are not navigational. Products may be difficult to relate to each other, and some of the information may be downloaded from various sources automatically.
Content management system
For the layout and display of pages content management system is responsible. This is also a mandatory component of any eCommerce platform, since, as mentioned above, an online store is also just a big website. Tasks such as placing banners, adding a menu item, adding a page with information, personalizing the display of individual blocks and many others are performed in the CMS.
The eCommerce platform already includes many ready-made components (“widgets”), which are very likely to be useful in any store, such as “basket”, “product listing”, “product card” and others. Also, with the help of CMS they manage both trigger mailings and mobile version pages.
CMS also includes personalization of pages and components. The system will be in different ways to arrange pages for different users, exactly following the logic. For a buyer who likes the brand on Facebook, when entering the site, the corresponding banner will be displayed, the main page will be branded, and a new item will appear in the menu.
A typical project to develop an online store on the eCommerce platform includes the development, processing or customization of the widget components listed above.
For example, in the 1Platform project for the company TechnoNIKOL, CMS provides different page templates and widget components for the mobile version / desktop version, while the functionality of the pages and components is identical.
Fulfillment and order-related business processes
This is the most eCommerce-part of the platform. After the order has been issued and possibly paid for by the buyer, the chain of processing is launched. In a sense, this is a document flow: an order can be broken up into several, orders for specific warehouses should be formed for each, abnormal situations such as “oh, there are no goods” or “suspicious order - must be checked before shipping”.
This is the most "abstract" part of the platform, containing a lot of things that are almost impossible to show at the demonstration, because Without integration, this will not work. Here, like an iceberg, there are few visible user interfaces, but a very large and massive “underwater” part.
A typical project to develop an online store on the eCommerce platform includes designing or studying business processes, setting up order processing logic, integrating with WMS, with payment gateways, uploading an order to ERP or an external order management system.