Quan Mai
May 6, 2020
  7775
(5 votes)

New "feature" in Commerce 13.16: Marketing UI statistics has been reworked

We released this feature a while back, but as the release notes are usually overlooked, the change might be seen as a bug. 

It's not a bug, it's a feature.

In the past, when you visit the Marketing UI, you can also see how many times a promotion has been redeemed, and how many orders have been created with that promotion/campaign, in real time. While it's fun to see the number changes - especially during a hot campaign, getting them are not as fun.

Getting the number of redemption is an easy task, it can be done by a simple COUNT in SQL. Counting the orders, in other hands, is a heavy task. An order might have multiple forms, and a form might have a promotion redeemed multiple times. To get the correct numbers, it has to be done by COUNT DISTINCT, which is (very) expensive.

And then because a campaign might contain multiple promotions, AND an order might have several promotions applied (which is good for your customers!), counting the number in that orders is even more expensive.

We got several reports from customers with huge number of orders (more than a few millions) that the Marketing UI is slow to load. After carefully investigation and consideration, we decided that we can make the SQL query better, but that alone is not enough. We need to change how data is collected. Getting the number of orders in real time is not a business critical feature, but slowing the UI down and potentially slowing down other queries, is a real concern.

So in Commerce 13.16, the statistisc in Marketing UI has been reworked. The order numbers are no longer updated in real time. The result: Marketing UI is now faster than ever before!

If you want to see the updates, you need to run the scheduled job manually (or set them to run, says, daily, or hourly). When you upgrade, the existing data will be migrated automatically. What to do after that is up to you. If you don't really care about those numbers, you can forget about it. More details can be read here: https://world.episerver.com/documentation/Release-Notes/ReleaseNote/?releaseNoteId=COM-10446

May 06, 2020

Comments

Praful Jangid
Praful Jangid May 7, 2020 07:41 AM

Good job team!

Johan Book
Johan Book May 7, 2020 10:41 PM

Yay! This is some really good news! Good job!

Kane Made It
Kane Made It May 13, 2020 10:27 AM

Yeah, I love the performance improvement. Nicely done there!

Sanjay Kumar
Sanjay Kumar Feb 18, 2021 03:41 AM

Awesome work team!

Please login to comment.
Latest blogs
Copy Optimizely SaaS CMS Settings to ENV Format Via Bookmarklet

Do you work with multiple Optimizely SaaS CMS instances? Use a bookmarklet to automatically copy them to your clipboard, ready to paste into your e...

Daniel Isaacs | Dec 22, 2024 | Syndicated blog

Increase timeout for long running SQL queries using SQL addon

Learn how to increase the timeout for long running SQL queries using the SQL addon.

Tomas Hensrud Gulla | Dec 20, 2024 | Syndicated blog

Overriding the help text for the Name property in Optimizely CMS

I recently received a question about how to override the Help text for the built-in Name property in Optimizely CMS, so I decided to document my...

Tomas Hensrud Gulla | Dec 20, 2024 | Syndicated blog

Resize Images on the Fly with Optimizely DXP's New CDN Feature

With the latest release, you can now resize images on demand using the Content Delivery Network (CDN). This means no more storing multiple versions...

Satata Satez | Dec 19, 2024

Simplify Optimizely CMS Configuration with JSON Schema

Optimizely CMS is a powerful and versatile platform for content management, offering extensive configuration options that allow developers to...

Hieu Nguyen | Dec 19, 2024

Useful Optimizely CMS Web Components

A list of useful Optimizely CMS components that can be used in add-ons.

Bartosz Sekula | Dec 18, 2024 | Syndicated blog