It isn’t likely that most developers begin developing an e-commerce solution with the thought of “this commerce platform will be my biggest enemy”. However, it eventually becomes apparent to developers that they spend most of their time working around their commerce platform.
It isn’t usually because of the tools or lack of expertise.
Opinionated frameworks versus reality
The majority of e-commerce frameworks rely on a preconceived notion of how a shop should be structured. They tell you how to design your products, how your checkout flow will work, and what kinds of plugins you can use. That's great as long as your product follows the assumptions made by the framework.
Everything changes once it no longer does. From the moment your requirements start to diverge even slightly from what the framework assumes, you start having common problems. Business logic starts getting mixed into your templates and plugins, checkout flows become challenging to extend, your data structures no longer map to your product's domain, and constraints seem to crop up right when you need customization.
When abstraction becomes an issue
Platforms for commerce exist to make things simpler, yet sometimes they make things more complex. Instead of making it easy to develop, they introduce hidden restrictions, undocumented requirements, and platform customizations that become problematic during future upgrades. Eventually, people stop thinking about whether or how something should be done and start thinking about whether the platform allows it.
The questions regarding platform capability, stability, supportability and other aspects that revolve around these considerations tend to dominate the discussion. This is normally the point of no return.
First comes infrastructure, second comes storefront
There are an increasing number of people who start thinking of commerce as infrastructure rather than a "site builder". Essentially, it should handle commerce-related processes and operations without interfering with the product itself.
This is why the concept of commerce layers that allow for a seamless integration into an existing environment is becoming relevant. Examples include modern commerce layers such as Unstore, where commerce is considered infrastructure rather than storefront.
The real problem
This is not about the fact that the developer is against using the commerce platform out of some kind of instinctual distaste for abstraction.
Rather, when the platform starts imposing how the company should operate rather than letting things take their natural course, problems arise.
The best commerce platforms are often those that remain completely invisible, those that let the developer do what they want to do without having to worry about the platform.
Top comments (0)