ERP-like CMS-based systems: a short overview

They sought it with thimbles, they sought it with care;
They pursued it with forks and hope;
They threatened its life with a railway-share;
They charmed it with smiles and soap.

Lewis Carroll, The Hunting of the Snark

CMS-based ERP-like systems (CMS stands for “(Website) Content Management System”) are, in a way, the opposite of industrial ERP systems we have already covered.

An SAP solution is originally software for managing resources of a classic industrial plant through dozens of more or less randomly plugged modules. These solutions have gained new functionality for decades and now aspire to be useful software for running a modern business, even have some e-commerce capabilities. For their part, systems that we are considering here originate from primitive administration tools for managing HTML pages.

There are literally thousands of derivatives of Jumla, Drupal, Prestoshop and scores of less-known “platforms.”

As the Internet and online business bloomed in the later 1990s-early 2000s, shoppers developed new needs and these programs’ functionality evolved to suit. Once static HTML pages began to feature product catalogues with a Buy button. Customer information – login, password, shipping address – could be kept at the site. Some companies have even added information on remaining stock (always wrong, but this was not a software problem) and payments to agents. Countless “integrations” of these systems with anything desired are now also available.





Practically all of these ERP-like systems are open-source, with the benefits and drawbacks that implies.

Open source development of add-ons to popular CMS platforms has produced an amazing variety of functions over the years. Since the “platforms” have always been free, this has had an interesting effect: while 1C systems permanently occupy the niche of cheap systems for small businesses in post-Soviet countries, in the West it is the motley crew of ERP-like CMS solutions that runs the same ship. Our home-grown businessmen know little about them.

A note by Ultima Consulting.

Причины такой в корне различной эволюции чрезвычайно любопытны для научного анализа, но уж слишком выбиваются за рамки настоящего текста.

As to functions, the most comprehensive of these systems, especially with a few extra modules, can formally claim membership in the ERP class of software. The bolder among them do.

Even so™, for all of their parvenu pretensions and the eagerness to be crowned with the acronym ERP, we must sit them at the low table of “likes.”
The low table is where the less important guests of a medieval lord would be seated, out in the dim candlelight. Just so you know.

Snubbery? Au contraire! We are going to examine them further so that you see and know these solutions’ proper place.





The table below compares technical characteristics common to the whole software family and Ultimate ERP systems:



Here is what the table says.

CMS systems were originally instruments for managing sites (web page content), NOT business processes and sorting through big and fast-changing data
– strictly standardized and, for the most part, rigidly typed.

The advantages of CMS certainly include the ease of creating new pages and managing their common style.

Their disadvantages (here we everywhere mean, for our field of application) are many more. Naturally, they derive mainly from the difference in purpose of ERP and CMS platforms.

The security system of CMS, at best, allows controlling edit permissions for templates of particular pages.
​This means that using it for an ERP substitute requires developing a separate function of limiting access to business objects, DISTINCT from the platform’s basic operation, i.e. on top of it.

Programming languages of web development (PHP, JavaScript, Python etc.) usually lack:

  • strict typing;
  • functional extensions;
  • query language.

All of this is fine when using the languages as intended – because it simplifies writing site scripts.
When we attempt to turn them to our purposes (creation and development of industrial ERP systems), complete impossibility of automatic code verification means either:

  • huge amount of testing to be done (cost), or
  • huge amount of errors (quality).

For the ORM (object relational mapping) data model they either use a mechanism to eliminate direct SQL requests to the DBMS, or there is no data model at all.
Either way this ORM-like thing contains no useful logic functions (data conversion, rights control, validation etc.). Such systems appropriately tend to give in under significant loads.

Transaction management.
CMS systems, considering what they are for, have no need of this instrument.
But for ERP systems good transaction management (or of some quality, at least – the major brands are not all they are touted to be) is an obvious necessity, because a break in data integrity costs too dearly.
Consistency of complex business objects is a matter of multi-leveled branching validation rules. It can not always, and usually can not at all, be expressed through the functions of the usual relational databases.

CMS systems’ original purpose again indicates that they have almost no support of multithreading.
Industrial ERP systems must regularly process big data, a basic example is a price recalculation for 100К+ products when the currency exchange rate changes.
From the technical point of view this means updating several million records with a complex underlying business logic, i.e. there is no way to write up ONE request to recalculate them all.
Tasks of that magnitude must be performed in parallel threads just to get the results. If the recounting lasts more than a day, some products will never be updated.
Data may have to be processed at several application servers and at any rate with transaction integrity, data consistency and complete rights control.
As you understand by now, add-ons to CMS, whatever great functions they are said to have, are not up to the task – there is no carrying a country’s imports on board of a tea clipper.

Fast prototyping is completely absent, because CMS systems work with objects rather than data.
ERP-like systems produce the simplest screen forms of listing and editing records (which come by the thousands in the simplest Ultima configuration) by the cutting-edge method of cut and paste.
This means that the volume of application code that delivers identical functionality grows like an avalanche (monkey work).
And if (when) an error comes up, one has to fix it in a thousand places.
Every time.

The actual code of an ERP-like is stored in files on a web server.
This is all right so long as your company works off a single server, and only one application developer accesses that server.
If there are more servers, even just two, synchronizing becomes a problem.
In other words, a subsystem has to appear in some shape, which needs support too, i.e. who controls the controllers?

When there is more than one developer, they must synchronize their work and maintain logs, versions need to be recorded… and so on. The right kind of ERP system manages the code base on its own.

Corporations still print a lot.
Therefore, a proper ERP system must have controls for paper generation, e.g. a print form editor, a system to send the forms to the correct printer, including from a job list, a function to call on an external system etc.
No CMS system provides such functions, nor could they, again because of their original purpose, and the services they supply are limited to HTML page generation.
So that readers unfamiliar with web design understand, creating a layout for an invoice (drawing + preparing for a web programmer) in HTML is a several days’ entertainment even for a seasoned layout specialist. Never mind forms like the Russian TORG-12.

Et cetera, et cetera...





For all the critical things we say about this software, we are NOT claiming that it is bad. It is sometimes pretty good, and in a few cases excellent software – when used for its direct purpose.

ERP-like systems on content management platforms are a natural choice for small businesses, sometimes even the only choice. There is not much else a humble online store with a modest number of orders and five or even ten workers can use.

This is actually rather curious. In Russian-speaking countries offline companies have found the perfect product in 1C software.

If a small company decides to venture into online sales, it can use quite serviceable modules for 1C:Bitrix (a CMS originally).

Now, small online companies are the audience most interested in ERP-like CMS-based solutions. They want quality online stores with the minimum of functions required for basic accounting. The important thing is to pick the right system among thousands available, because improving it is a difficult proposition for reasons we have already discussed.

If a small business grows, there will be problems in both situations – the one platform type scales up as badly as the other. Luckily, that does not often happen. But if you take into account this risk from the beginning, we have a solution of our own to offer.




Other Brochures from the Atheist's Series