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 »

End-to-End Test Automation: Why Was It Worth to Write Our Custom Framework

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 »
Shopping Cart in SAP Commerce: Performance, Architecture, Pitfalls, Testing

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 »

SAP Commerce released version 2011 of Commerce Cloud. As usual, the version number refers to November 2020. How big is this update? Should we rush with the upgrade? What new will the update of the platform bring you?  Read More »
Today I am sharing three great open source projects:
  • FlexibleSearch builder (Java Library),
  • HAC VCS Info (extension),
  • jHac (a console app for automating HAC operations).
  • Read More »
    Being at Crossroads, Take a Perspective View
    I often interview strong Java developers who were offered a move to SAP Commerce. What I see regularly is uncertainty and sometimes reluctance to learn SAP Commerce.

    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 »
    This quick post is about how to troubleshoot issues with Cronjob, specifically on the situation when a cronjob is not started. Read More »
    Product data integration is an essential component of almost all e-commerce solutions. For large and frequently updated catalogs, there are common challenges related to concurrent data modifications. In this article, I explain one of them: how to update the products and categories in a safe and reliable manner. Read More »
    If you need to create complex behavior from the simulated virtual users in the load test, the built-in capabilities of out-of-the-shelf products may not be sufficient. For example, parsing output formats from an API response to create the formatted inputs for an API request may be difficult for a particular load testing tool, but a quick and easy exercise for a high-level programming language.One of the possible ways is using designated libraries to write our own simple load generator from scratch. For our project, this approach has proven to be a faster and reliable way to address the concurrency issues in the SAP Commerce Cloud custom code.  In this article, we explain how to write a load generator from scratch with Python.  Read More »