Introducing ‘fsdumpviewer’: The Tool for File System ‘ls-lR’ Snapshot Comparison and Synchronization
In this article, we’re diving into the features that have emerged between versions 2023.1.1 and 2023.2.7 of the Plugin. No need for elaborate words, let’s get straight to the highlights:
- Project Import 2.0: An upgraded import process with automatic database integration and improved module management.
- Kotlin Integration: Now supporting Kotlin language seamlessly, making development smoother.
- CCv2 Enhancements: New icons and seamless module imports for CCv2. Improved HAC cluster support, OCC enhancements, and better Groovy script management.
- FlexibleSearch 2.0: A revamped FlexibleSearch language with new icons, folding, and improved formatting.
- Type System Evolution: Fresh icons for various types and relations, and a diagramming experience for Type System in Intellij IDEA Ultimate.
- Business Process Refinements: Better code completion, custom language injections, and enhanced scripting support for business processes.
- ImpEx Power-ups: Improved code completion, macro handling, and sld.enabled modifier support for ImpEx files.
- Bean System Mastery: New icons, code completion, and reference enhancements for beans, with conversion possibilities on the horizon.
- User Rights 2.0: Revamped User Rights support in ImpEx files, making management more intuitive.
The article highlights improvements such as:
- API Usage: How JetBrains’s latest batch of deprecated APIs impacts the plugin.
- SAP Commerce in the Public Cloud (CCv2): Dive into the new features simplifying developers’ lives, including the addition of code contributions based on JSON schema.
- SAP Data Hub on CCv2: Explore the complexities and solutions offered for projects utilizing SAP Data Hub.
- JavaScript Storefront: The essential tools and updates for developers working in the SAP Public Cloud.
- Type System: Discover the new usability improvements in preview mode and items.xml.
- ImpEx & FlexibleSearch: Understand the nuances and tweaks in action group displays and custom icons.
- Cockpit NG System: From commons to the business process, take a look at the new references added.
- Extension Info: Dive deep into the added extras for extensioninfo.xml.
…and a plethora of other essential updates, adjustments, and fixes to ensure smoother, more efficient operations for SAP Commerce developers.
Read More »In the previous part, we discussed the importance of redundancy and failover in a cluster setup and introduced JGroups as a crucial component of SAP Commerce Cloud for distributed messaging and eventing. In this part, we will delve deeper into troubleshooting common issues that arise with JGroups in SAP Commerce.
In this article, we will explore troubleshooting tips for common issues related to JGroups in SAP Commerce. We will discuss how to address data inconsistencies, handle dynamic IPs and membership discovery, and effectively monitor the cluster.
It is important to highlight that these recommendations were formulated and tested for the on-premise, self-hosted SAP Commerce. This setup is now rare, as many SAP Commerce projects have already been migrated to the cloud. In the cloud setup, such challenges may never be your concern, as they fall under the responsibility of SAP CCV2 support engineers. However, understanding the limitations and constraints will still help you build the solution correctly.
Read More »
This article focuses on how SAP Commerce stores models in memory, which is a vast topic. To begin with, we will explore a relatively simple aspect, such as the unusual structure that appears in the debugger when trying to view the contents of any SAP Commerce model. We will also discuss how to access all the object properties contained within it.


- stopping support on the previous Spartcus versions (4.x);
- that Version 5 would be only available within an authenticated policy to SAP partners / customers; and
- Spartacus is renamed to Composable Commerce.
Read More »


Many merchants have 3 such environments typically defined as development, staging and production and as time passes by, the production environment receives multiple BAU changes to core data areas such as web content, products/categories/classifications undertaken by merchandising teams or product management and of course a lot of data is generated through customer registrations and orders placed.
However, the non-production environments are frequently not kept in line in terms of web content, product data or representation in terms of quantities of customers or orders. I’m not referring here to the code and core configuration related data that is included in builds.
Read More »
Taking advantage of back-in-stock notifications, customers are informed that a product they were interested in recently has become available again. Alternatively, a customer may want to get subscribed to the product price updates and get notified when the price drops on a product.
As a result, customers are more likely to return to make a purchase. These two features are often considered as must-have for almost any marketplace solution.
Their implementation and design are also considered to be quick and easy. In fact, it is not so — there are many points for consideration easy to miss in the design phase. In this article, I focus on the potential pitfalls and best practices in implementing “Back-in-stock notifications” and “Price drop alerts”. Read More »



There are dozens, even hundreds of test automation frameworks available, and we developed our own. Why? Why? Was it worth the effort?
This article describes our needs and our solution, E2E CLI: the architecture of the API testing tool which has been used by our team for about 2 years. Back in 2020, it was developed by me from scratch over the course of a weekend — In other words, it is a very simple piece based on very simple ideas. That first version was supporting 80% of the functionality available today in the last version (and described below). We don’t add features without good reason.
We use this tool to end-to-end test all our services and integration flows. Whenever we make changes to a software system, we need to ensure that they do not break what was already working.
As the architect and lead developer, I designed and developed it from the ground up, so, of course, I am very proud of my brainchild. But the field cannot be well seen from within the field. You know, reinventing wheels is not always bad. When you build something on your own, you are in full control over what is being built, what its purpose will be, and when it is finally conceived and executed as you wish. It has been two years since I have encountered any alternative to our solution.
To reach a wider audience, I found it beneficial to share key concepts hoping to get some feedback from the community and enhance the product.
Technically, the tool has nothing to do with SAP Commerce; it’s for testing. However, our entire team, which uses this tool daily, is focused mainly on SAP Commerce development. And the tool is tailored to be used with SAP Commerce.
While the client (for whose benefit the tool is being used) has authorized me to share high-level details, I cannot disclose names or code. In spite of this, the conceptual view should be useful on its own and might become a good foundation for your own solution.
Read More »
A shopping cart is the centerpiece of almost every e-commerce website.
In fact, this component is the first thing that makes an e-commerce store different from just an online catalog. Working with issues and challenges related to the cart is something you’ll never forget.
The Russian novelist Leo Tolstoy, at the opening of his novel Anna Karenina, writes ‘All Happy families resemble one another, but each unhappy family is unhappy in its own way.’ You know, the diversity of cart-related issues I have been observing in the SAP Commerce projects, made me think that Tolstoy meant the developers as well. The diversity of the issues and challenges in this component is so vast that every case is different. However, when it comes to building or optimizing the shopping cart processes, understanding the limitations, pitfalls, and peculiarities is a huge plus.
Let’s have a look at how a shopping cart works in SAP Commerce under the hood and how to avoid making mistakes in shopping cart customization.
Read More »It all started with the idea of making the built-in flexible search console more convenient for a developer. It is common to find ourselves forgetting the name of an attribute or its type. Imagine my surprise when I found the traces of this feature in the HAC source code. SAP left them unfinished and probably abandoned. For example, for the Impex console, suggestions are basically implemented and almost ready, but for some reason, they have not been finished and not enabled.
In this article, I’m filling this gap and document how to enable autosuggestions in the Impex console. Additionally, I introduce my custom solution for Flexible Search suggestions and autocomplete. Read More »
The essentials were thoroughly explained in the first part of the series. Since the topic is controversial and should be used with caution, we highly recommend reading the introductory part before going further with this piece.
You need to be aware of the potential risks, limitations, pitfalls, and caveats of the ORM engine. In this work, we are explaining those details. We’d like to touch upon a few elements or aspects, you need to take into account when considering using native SQL in your SAP Commerce code. In this part you will learn more about the SAP Commerce L1 cache, multitenancy aspects, service layer direct, and performing faster bulk updates.
Come take a look into the v2005 release of SAP Commerce Cloud. I’ll cover cool and interesting new features, enhancements, and changes, and offer some commentary on what I like and what I like… less. Judge for yourself what SAP did well and what might warrant some extra polish.

Some say they believe they won’t be able to use the knowledge and experience anywhere else in their careers.
Some of them see this move as ‘boxing’ themselves in.
It is generally believed that focusing on the niche product may cause taking a lot of time in the future to get re-trained for a different product or technology if the current market conditions change and SAP Commerce will fade in relevance and popularity. Proprietary platforms come and go, and developers feel afraid to find themselves with useless knowledge and meaningless experience.
Even though I generally share the view and arguments above, I also believe that SAP Commerce is a special case. What I want to leave you, then, is with the explanation of why I think so.
Read More »
Read More »



When the coronavirus outbreak happened in China, it boosted local e-commerce as many stuck at their homes forced to buy their goods online. Sales of fresh food on JD.com reportedly jumped 215% during the 10-day period and counting. The ability to serve a large number of customers is growing every year. The traffic may be doubled in a week. How to make sure your system is capable to serve high traffic demand? In today’s article I’m sharing my experience with Tsung, a high-performance testing framework.
The SAP Commerce Cloud APIs are highly customizable, and even smallest changes in configuration, data model or Java code may result in performance degradation. Performance testing is especially important in cases where concurrency may be the source of the problem. To recognize and fix such issues timely, it is recommended to perform regular performance testing, ideally integrated into the build and deployment pipelines. This article is devoted to Apache JMeter, one of the well-known tools for automated (and) performance testing.
Any SAP Commerce Cloud setup is based on a multi-server setup organized as web cluster. This product comes with clustering support out of the box since very early versions. However, many years in a row, it is still one of the most challenging topics.
JGroups is an essential component of SAP Commerce Cloud. It is widely used as an embedded solution for distributed messaging and eventing in the cluster. It is hard to say that it is underdocumented or it has some quirks that nobody knows how to encounter. However, almost every large project stumbles with JGroups. This article is aimed to shed some light on the internals of the SAP Commerce Cloud clustering and JGroups.
Read More » SAP Commerce developers everywhere face the problem speed of building/restarting hybris. Probably everyone knows this is a long time waiting for the project to build and waiting for the server to start. In cases when the developer makes frequent changes in the code and wants to see the result immediately, the work is significantly slowed down. Many developers use JRebel and similar tools, but unfortunately, they are not suitable for everyone and don’t work for a number of cases. This article explains how to make the compile time shorter.

Product data is a core of e-commerce and integral part of the customer experience and customer journey. The well-organized product data drives customer acquisition, sales and eventually results in the increasing lifetime value of a customer.
SAP has recently announced a new SaaS offering, SAP Product Content Hub, a cloud-based solution for product and information management (PIM). The new product relies on the SaaS model only.
In this article, I’m basically just going to give a little bit of an introduction to what SAP Product Content Hub is as well as shed some light on what is under the hood in terms of architecture and customizability. Read More »
What content management system you use is of a much higher importance today than it was years ago. Today’s CMS needs to contend with a multi-device world with a wide variety of tablets, mobiles, laptops, and be architecturally ready for new not-yet-existing channels in the consumer’s universe, such as AR/VR and the Internet of Things.
A CMS typically consists of a frontend part, or a «head», and backend. The headless CMS, as their name says, don’t stick to a single predefined “head”. Theoretically, you can develop your own if it is good for your case. Another name for headless CMS is API-first because this interaction is based on APIs.
For example, the old hybris CMS Cockpit had both parts built with ZK Framework, which orchestrates both the HTML/Javascript “head” and was the essential part of the CMS backend. These parts were tightly connected and intertwined into a single unit called CMS Cockpit. Later, SAP announced Smartedit, which has been a big bet and a quantum leap for Commerce Cloud’s content management. Spartacus, the open-source Javascript storefront from SAP, well complemented Smartedit. I published the comprehensive reviews of both products in the blog earlier.
There are a number of headless content management systems that are mature enough to efficiently replace the built-in Smartedit CMS. Among them, I would highlight Contentful, Prismic, DotCMS, Cloud CMS, Amplience, and Contentstack as well-established and innovative products with a clear roadmap and good integration capabilities.
One of my recent research projects was aimed at using Contentstack as a headless content management system for SAP Commerce Cloud. This article uncovers the key highlights of the research. As a result of that work, I also created a data migration tool for moving existing CMS content from Commerce Cloud to Contentstack.
What is Contentstack? Contentstack is a SaaS headless CMS with an API-first approach that offers the approach known as Content-as-a-Service. It focuses on managing structured content into data feeds that other applications, such as Commerce Cloud, can consume. You can design a content data model interactively or via the Contentstack API and populate the structures with the content interactively or via the same API.
In this article, I pay special attention to the data migration from Commerce Cloud’s CMS to Contentstack. This exercise helped me to see the complexity in all its glory. Because when you design a system from scratch, you can evade the platform’s constraints by designing the structures compatible only with the new CMS. When you need to migrate data, you have to find a solution on how to adapt concepts and data models to get them compatible with Commerce Cloud.
Read More »

Payments is a critical part of any e-commerce system. Integrating with a new payment processor is often full of unknowns for developers, and the documentation is either too cumbersome and time-consuming or, on the contrary, scanty and, to the extent it is available, tends to focus only on technical details.


















