This document describes the SMC job ProcessActivePromotionProducts and provides recommendations on how to use it.
The job gets automatically created for each channel and usually runs once per day at 10 pm, see job description.
It checks all promotions which are related to products via inclusion/exclusion for promotion conditions and promotion discounts, see ICM Online Help | Discount Rules for details.
The result is a list of all products developed with promotions stored in the ActivePromoProducts table. It is used in the storefront to show the customer which product might be cheaper due to a promotion.
Term | Description |
---|---|
ICM | Intershop Commerce Management |
SMC | Intershop System Management |
Job | A process in ICM which can be triggered manually or automatically via scheduling in SMC. It performs tasks that, among other things, improve the performance of the ICM system, see Reference - Intershop 7.10 Jobs for all available ICM 7.10 jobs. |
The ProcessActivePromotionProducts job is available for each channel.
The Jobs ProcessActivePromotionProducts_beta and ProcessActivePromotionProducts_both are new and are created manually. They will be described later in detail.
The pipeline has three start nodes: Start, Start_Beta, and Start_Both. Start_Beta and Start_Both are available from ICM 7.10.38.0.
For further details, see the following sections.
Start performs basic tasks that lead to the creation and removal of data from the ActivePromoProducts table:
Start_Beta basically does the same thing, but uses mainly queries, while the Start node uses only a few queries and mainly pipeline logic.
This node is called Beta because it is experimental. It has not yet been tested with real customer data. Therefore, it is hard to make a statement about its accuracy and performance.
A dry run option has been added to test the successful execution of the job before changing the data in the database, which allows comparing the results of both jobs without changing the data.
It is described in detail in the following section.
The updated job has the same configuration, except that it uses the start node Start_Beta.
To use to the updated job, enter Start_Beta as Startnode:
In the Attributes tab add DomainName with type String and the channel name as its value (e.g., inSPIRED-inTRONICS).
Furthermore, the DryRunMode might be enabled by adding the attribute DryRunMode of type String with value true.
The ActivePromotionProductsDryRunLog attribute shown in the screenshot is described in the next section.
The configuration DryRunMode has been added to run the job and compare the results of both jobs without breaking anything.
The DryRunMode runs all the logic to analyze the data but only writes detailed debug log entries and a summary into the Attributes tab attribute ActivePromotionProductsDryRunLog.
Here is an example that shows what kind of data might appear in the ActivePromotionProductsDryRunLog attribute if there are differences. It contains promotion UUIDs and product UUIDs to make it easier to find the problematic promotion configuration:
SetActivePromoProductsV2-Summary - createdCount:4 - removedCount:3 - existingCount:417 - postRemovedCount:2 - RunDate:2021/Nov/23-11:07:17 Removed DtysGwQxfeQAAAF9FRdpuC_3 | ThsKDgAXUfMAAAF9vlZJeAo. Removed DtysGwQxfeQAAAF9FRdpuC_3 | V7sKDgAXuegAAAF9CklJeAo. Removed DtysGwQxfeQAAAF9FRdpuC_3 | g2sKDgAXHyQAAAF9CUlJeAo. Created DtysGwQxfeQAAAF9FRdpuC_3 | 19AKDgAXYb4AAAF9hklJeAo. Created DtysGwQxfeQAAAF9FRdpuC_3 | ow8KDgAXD20AAAF9gElJeAo. Created DtysGwQxfeQAAAF9FRdpuC_3 | adMKDgAXOXIAAAF9fElJeAo. Created DtysGwQxfeQAAAF9FRdpuC_3 | p_UKDgAXmDsAAAF9iklJeAo. SetActivePromoProductsV2-PromotionUUID:DtysGwQxfeQAAAF9FRdpuC_3-createdCount:4-removedCount:3-existingCount:166 Erased(PostRemoved) 28SsGwQxmzEAAAF9zSppuDLq | tk0KDgAXHA8AAAF9HWBJeAo. Erased(PostRemoved) 28SsGwQxmzEAAAF9zSppuDLq | viYKDgAX2A4AAAF9NGBJeAo. RemoveActivePromoProducts-PromotionUUID:28SsGwQxmzEAAAF9zSppuDLq - postRemovedCount:2 RemoveActivePromoProducts-over-all-promotions-PostRemovedCount:2
If everything works smoothly, only data such as SetActivePromoProductsV2-Summary - createdCount:0 - removedCount:0 - existingCount:432 - postRemovedCount:0 - RunDate:2021/Dez/01-21:13:55 is displayed.
If this is the case, the Start_Beta job start node can replace the Start Job start node entirely. Do not forget to disable DryRunMode by either removing the attribute or setting its value to anything but true (e.g., false or not_true).
Note
The ActivePromotionProductsDryRunLog attribute value does not always change and is not automatically removed. Therefore, check RunDate to make sure that the data belongs to the last run.
Start Node: Start_Both
As the name implies, this node executes both, Start and Start_Beta, one after the other. By using this configuration, the start node Start_Beta always runs in DryRunMode.
With mass data, running this can take some time to execute, so, run this only on test systems and never on live ones.
Intershop recommends to enable the debug log and select the package com.intershop.component.marketing.pipelet.promotion as category.
This provides a lot of data, which can be used to analyze if something is wrong or if there are differences.
Start_Both basically uses the same configuration as Start_Beta, except that it uses Start_Both as start node.
In the Attributes tab add DomainName with type String and the channel name as its value, e.g., inSPIRED-inTRONICS.
Furthermore, the DryRunMode might be enabled by adding an attribute DryRunMode of type String with value true.
The attribute ActivePromotionProductsDryRunLog shown in the screenshot is described in section Description of DryRunMode.
If there is more than one channel on which this job must be executed, the start time should be set with a five-minute delay per channel.