Related Documents
Document Properties
Kbid
30S615
Last Modified
08-Dec-2022
Added to KB
28-Sep-2022
Public Access
Everyone
Status
Online
Doc Type
Guidelines, Concepts & Cookbooks
Product
ICM 7.10
Concept - SMC-Job ProcessActivePromotionProducts

Product Version

7.10.38.0

Product To Version


Status

Introduction

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.

Glossary

TermDescription
ICMIntershop Commerce Management
SMCIntershop 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.

References

SMC - Job Configuration

Job per Channel

ProcessActivePromotionProducts - jobs per Channel

The Jobs ProcessActivePromotionProducts_beta and ProcessActivePromotionProducts_both are new and are created manually. They will be described later in detail.

Job - Details

Job - Pipeline

Description

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.

  • Start is the old known starting point of the job (since ICM 7.0).
  • Start_Beta is the start node for a completely reworked and improved pipeline with a better performance.
  • Start and Start_Beta basically do the same thing and should therefore produce the same results. The new implementation does not replace the existing one. Both implementations work independently of each other and can be used alternately. The new node is named with the suffix "Beta", because it still has to be found out whether the job delivers the same result in all conceivable constellations on customer systems. This is due to the complexity of the promotion engine.
  • Start_Both can be used to determine possible differences for both jobs in a productive environment.

For further details, see the following sections.

Start Node: Start

Start performs basic tasks that lead to the creation and removal of data from the ActivePromoProducts table:

  1. Remove all entries for promotions where the end date has passed or where the promotions have been deleted.
  2. Analyze the database tables that were created when the promotion configuration was saved to find all products that are in some way related to the promotion.
  3. Write new found relation entries. It occurs when:
    • Promotion rules with product or category inclusions have been added, and/or
    • Discounts have been added.
  4. Remove obsolete relation entries. It happens when promotion rules with product or category exclusions have been added or inclusions removed and/or Discounts have been removed.
  5. Remove obsolete relation entries. It occurs when:
    • Promotion rules with product or category exclusions are added, or
    • Inclusions are removed, and/or
    • Discounts are removed.

Start Node: Start_Beta

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.

Manual Configuration of Start_Beta

The updated job has the same configuration, except that it uses the start node Start_Beta.

Choose the Channel Domain

  1. Open Intershop System Management.
  2. Click Schedules | Scheduling.
  3. Choose the domain, e.g. inSPIRED-inTRONICS
  4. Click Apply.
    The job ProcessActivePromotionProducts appears in the list.

Enter the General Tab Configuration

To use to the updated job, enter Start_Beta as Startnode:

Add Attributes

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.

Description of DryRunMode

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:

Click here to expand...
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.

Manual Configuration of Start_Both

Start_Both basically uses the same configuration as Start_Beta, except that it uses Start_Both as start node.

General Tab Configuration

Add Attributes

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.

Run Time Recommendation

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.

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Tickets