Logs tell us important stories, but they also ramble a lot. If we can’t find a log it is as if we didn’t log it.


In my last 2 articles about maintenance, we have talked about properly handling exceptions and how to log properly. Both subjects are simple enough, but done improperly will make our application unmaintainable.

In this article, I won’t explain how to configure these log aggregation and analysis tool. We rather are going to see the difference between the various tools I have tested. This way we can choose which tool we wish to have. There is plenty of tutorials on how to set up the tools.

Why aggregate logs

If we can’t find something it is as if we didn’t have it.

It is…

Magento2 Commerce has introduced a while ago a “staging” functionality. This functionality, which on paper is great has a dark secret.

First of all, let us see what is this staging functionality?

You might need a certain page, such as a CMS page, or a product, or even a category page to change at a very specific time & date. For example, you are selling a product for Christmas, and you would like to stop selling it on the 24th at midnight.

The staging functionality allows you to configure in the back office multiple states for a product, a category, or a CMS page. We can, for example, create a stage for our product in order for it to be enabled…

Don’t stuff your e-commerce with all the logic, split it up for stability, performance, security and maintainability.

Pixabay — Idea

This is quite an old subject of mine, one that I have trouble explaining to my clients. Often we are migrating from a Magento1 website, they are used to having all the development done in their monolith e-commerce solution. When they migrate to a new solution they expect to keep the same logic.

Times changes and we got more experience in building e-commerce websites. E-commerce websites are also more important for business then they used to be; their share in most companies income increases day by day. The current context with pandemic and restrictions have accelerated this even more.


Magento has been the reference for making an e-commerce website. But things change

Those who know me know very well that I don’t like much Magento. I have been working with Magento1 for the last 6 years and worked on Magento2 websites since it was published.

In my opinion, there are multiple technical reasons why Magento2 is a failure, and I have written a few articles on this subject.

But in this article, I will give you 5 reasons why as a shop owner you should not use Magento2.

The reasons

Magento 2 has a lot of bugs, in the CE and the EE edition. This can easily bee seen in their GitHub

A lot…

Maintenance 102

An application that logs properly will make maintenance easier.

In the first chapter, we saw how to handle exceptions and how to log them to:

  • not leak sensitive data to the user.
  • have user user-friendly messages displayed for your users.
  • have all the details for easy troubleshooting.

In this second article, we will see what needs to be logged beside exceptions, how to log them, and why we are logging them.

The examples in the article are in PHP, using the PSR-3: Logger Interface; but the logging concepts we will discuss are common to all languages.

What to Log & How to Log

To decide what needs to be logged, we must first decide why we…

Maintainability 101

Let’s see together why it’s important and how it can change the way you code.

This is an article I wrote a few years ago on my personal blog after stumbling on a Pull Request that was accepted on Akeneo. I wanted to revisit this article, as I still see this error often in code I review and even in software I use. I have tried to improve upon my first variation.

Let’s first see the Pull Request at the origin of this article; PIM-7915: Display a modal on deletion error

This pull request adds a nice catch try.

try {
} catch (\Exception $exception) {
return new JsonResponse(['message' => $exception->getMessage()], 500);


Am I crazy assuming you are doing pagination wrong? I mean how hard is pagination? it’s so simple how can you do it wrong?

Well, you might not be doing it wrong, but you are probably using LIMIT with OFFSET to do pagination. That has performance limitations you might not be aware of and you probably can do better or you need to secure some of your URL's.

You do not believe me? Well just check this graph down below.

This is done on a small dataset of a 100.000 lines with small 10 line pages. Using both Limit &…

First of all, this is my first article on medium. Hourayyy!

Until now I have been blogging on my personal website; https://oliver-decramer.com but without a lot of success.

I will be from now on, blogging here on what I consider “Important”. So some technical stuff or even maybe some fantasy. Time will tell exactly what I will publish.

To get into the subject; I am today, undecided whatever Magento2 is worse then Magento1.

Sacrilege you say?

Well, let’s see, In on one hand we have Magento1:

  • stable
  • relatively fast
  • easy to deploy;


  • it’s deprecated
  • not xsd for xml’s
  • no…

Oliver de Cramer

Passionate web developer. Symfony lover. Writing as a hobby. Sad Magento 2 developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store