World is now on Opti ID! Learn more

Quan Mai
May 6, 2020
  8188
(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
Password protect your Optimizely CMS content

Want to share some private content on your website with basic password protection? You can do this with an Optimizely form and Audience based...

Brian Gerby | Jul 17, 2025 |

Importing Form Submission Data into Optimizely Forms Using DdsPermanentStorage

Recently, we needed to import a large number of records from a third-party system into Optimizely Forms . The data was available in CSV format, and...

Pawan Singh | Jul 16, 2025

Cancelling CMS Scheduled Jobs

From flags to tokens: making Optimizely CMS scheduled jobs more elegant with .NET cancellation tokens.

Damian Smutek | Jul 16, 2025 |

Optimizely Frontend Hosting: Deploy Without PowerShell Using the @kunalshetye/opticloud Package

In my last two blog posts, I walked through how to get started with deploying a headless app to Optimizely Frontend Hosting using PowerShell and th...

Szymon Uryga | Jul 15, 2025