You can enable and administer rule-based sales categories to add support for
applying a business user-defined and search-based rule to find and automatically assign catalog
entries to the categories.
Rule-based sales categories are a type of sales categories that use a search-based,
business user-defined rule with WebSphere Commerce search to find, and automatically assign
catalog entries to the category. By enabling support for applying the rule, you can reduce the time
that is needed for business users to assign or update the catalog entries for a category. Business
users can create and use rule-based sales categories for almost the same purposes that they use
regular sales categories. For instance, in addition to displaying the categories in your storefront,
business users can use the categories in promotions, marketing activities, and Commerce Composer
widgets. Business users can also view, approve, work on, and undo changes for the categories in
workspaces. Users cannot use rule-based sales categories as parent categories or create versions of
the categories.
For more information about how business users can create and use rule-based
sales categories, see Rule-based sales categories.
Applying or reapplying the rule to a rule-based sales category involves the following
process:1 When an event triggers the process to evaluate and
potentially apply the rule, a call is made to the RuleBasedCategoryHelper utility class to begin the process. This class provides
helpers to call the commands for evaluating which rules need to be applied or reapplied, for
retrieving the catalog entries to assign to each category, and for assigning the catalog entries to
the categories.
The following events can trigger the call to the
RuleBasedCategoryHelper class to begin the process:
- A business user saves a rule-based sales category in the Catalogs tool after they define or
update the rule. The call to RuleBasedCategoryHelper class is for evaluating the
rule for only the specific category.
- A business user selects to reapply the rule in the Catalogs tool. The call for evaluating the
rule is for only the specific category.
- The time interval to run the EvaluateRuleBasedCategories job for a
category is reached. The call for evaluating the rule occurs when the configured time interval for
the evaluation job is reached for a category. This process runs separately for each category.
- A business user approves a task group in the Workspace
Management tool that includes changes for one or more rule-based sales categories. Workspaces must
be enabled. The call for evaluating the rule is for all categories that are flagged in the database
as needing the rule evaluated.
- A WebSphere Commerce search indexing operation completes. When the UpdateSearchIndex
scheduled job that updates the search index completes, a call is made to the RuleBasedCategoryHelper
to evaluate all of the rule-based sales categories. If an administrator runs the di-buildindex
utility, a call is also made to the RuleBasedCategoryHelper to evaluate all rule-based categories
when the utility completes rebuilding the index.
To call the RuleBasedCategoryHelper after the
search indexing or index building completes, an event listener is included for the search processes.
When an indexing process completes, the listener is triggered and calls for the evaluation of the
rule for all categories that are flagged in the database as needing the rule evaluated. The event
listener is configured in the WebSphere Commerce
wc-server.xml configuration file.
When the call for evaluating the rule is for all categories that are flagged in the database as
needing the rule evaluation, the process runs to evaluate rules that have one of the following
values in the
CATGRPRULE.EVALUATING database column:
"2"
- Indicates that the rule needs to be reevaluated. The
EvaluateRuleBasedCategories job ignores whether the interval since the last
time that the rule was evaluated does not exceed the value of the
evaluationTimeInterval
configuration property.
"0"
- Indicates that the rule is not currently being evaluated or in need of being evaluated.
Categories with this value are evaluated when the value for the
evaluationTimeInterval
configuration property is not "-1"
or when
the interval since the last time that the rule was evaluated exceeds the value of the
evaluationTimeInterval
property
"-2"
- Indicates that the previous attempt to evaluate the rule for the category failed. Categories
with this value are evaluated when the value for the
evaluationTimeInterval
configuration property is not "-1"
or when the interval since the last time that
the rule was evaluated exceeds the value of the evaluationTimeInterval
property
After the rule is evaluated, and if needed reapplied, the time interval resets and the
column value is reset to
"0"
.
2 Depending on how
the rule evaluation and application process is triggered, the
RuleBasedCategoryHelper class can call either of the following commands:
- RuleBasedCategoryEvaluationCmdImpl
- The RuleBasedCategoryHelper class calls this command to populate the
CATGPENREL database table with the relationships between catalog entries and a single rule-based
sales category. When a business user selects to apply or reapply the rule for a category in the
Catalogs tool, the helpers call this command directly. If an event triggers the process to reapply
rules for multiple categories, the RuleBasedCategoryHelper class calls
EvaluateRuleBasedCategoriesScheduledCmdImpl command directly.
- EvaluateRuleBasedCategoriesScheduledCmdImpl
- The RuleBasedCategoryHelper class calls this command when multiple rule-based
sales category rules need to be reapplied. For example, when the UpdateSearchIndex scheduled job
completes, an event listener triggers a call to reapply the rule for any category that is affected
by the index process. When this command is called, the command determines the rule-based sales
categories that need the rule to be reapplied. The
EvaluateRuleBasedCategoriesScheduledCmdImpl command then calls the
RuleBasedCategoryEvaluationCmdImpl to apply the rule for each category
individually.
The
RuleBasedCategoryEvaluationCmdImpl command calls the
following operations to evaluate whether a rule needs to be applied to a category, and if necessary
to apply the rule.
- 3 The catalog services retrieve the rule for the category from the
CATGRPRULE database table. Only the most current rule for a category is stored in this table.
- 4 The catalog services use the search filter conditions and
specified catalog entries to include in the category to construct a search query for use with
WebSphere Commerce search.
- 5
WebSphere Commerce search uses the query to retrieve the list catalog entries that match the
rule from the search index. The retrieved catalog entries are sorted based on the defined sort
criteria.
- 6 The catalog services compare the list of catalog entries that are
retrieved by WebSphere Commerce search with the catalog entries that are currently assigned to
the category. If there is a change, the catalog services remove the currently assigned catalog
entries from the category and assigns the new list of catalog entries. If a business user changes
the sort criteria for catalog entries, the list of catalog entries is considered changed and the
assigned catalog entries are replaced. The relationships between the catalog entries and the
category are stored in the CATGPENREL database table.
If there is not any change between the list
of catalog entries that is retrieved from the search index and the catalog entries that are
currently assigned, the assigned catalog entries are not replaced.
Note: If a catalog entry is
specified by a business user and it matches the search filter conditions, the catalog entry is
included only once in the category. The placement of the catalog entry in the category depends on
the display option that is selected by the business user. If a business user selects to display the
specific catalog entries before the catalog entries that match the search filter conditions, the
catalog entry displays before the catalog entries that match the search filter conditions. The
catalog entry displays according to the sequence that the business user sets for the catalog entries
that display before the catalog entries that match the search filter conditions. If the business
user selects to display specific catalog entries after the catalog entries that match the search
filter conditions, the catalog entry displays within the list of catalog entries that match the
search filter conditions according to the sort criteria for those catalog entries.
- 7 The catalog services update CATGRPRULE.EVALUATING column value
for the category to be
"0"
. If the
EvaluateRuleBasedCategories job is configured to run, the time interval
before the job next runs is reset for the category. The rule for the category is not evaluated again
until this time interval is reached or another event triggers the rule evaluation process.
8 When the rule application process completes for all
categories that were being evaluated, a call is made to WebSphere Commerce search to rebuild the
index for the updated categories.
Enabling rule-based sales categories
By default, business users can create,
change, and rule-based sales categories and define the rule for a category, but not apply the rule.
To apply the rule to a rule-based sales category, you must enable the application of the rule. After
you enable the application of rules, you can configure the rule evaluation process to automatically
reapply the rule for each category after a specific amount of time elapses from the last time that
the rule was reapplied. For more information, see Enabling rule-based sales categories.
Considerations and limitations
Before you enable support for applying
rule-based sales category rules, ensure that you review and are aware of the following
considerations and limitations:
- By default, you cannot evaluate and apply a rule to a category in a production environment
since this process can affect performance. If you want to update a category that is in the
production environment to include catalog entries that are also in your production environment, copy
the data into your authoring or staging environment. Then, reapply the rule in the authoring or
staging environment and propagate the updated category back to the production environment.
- You cannot create or place a rule-based sales category as a parent category. Rule-based sales
categories can exist in a sales catalog hierarchy only as child categories.
- You cannot use the Catalog Entries List for a rule-based sales category to
manually assign catalog entries the category. You can manually assign catalog entries to a
rules-based sales category within the Add specific catalog entries to this
category section of the properties view Rule tab for the
category.
- You must use attribute dictionary attributes that are for use in merchandising when you select
to use an attribute in a search filter condition.
- You must index catalog entries with WebSphere Commerce search before the catalog entries can
be found and assigned to any rule-based sales category.
- You cannot create, update, or delete rule-based sales categories with any loading utilities,
such as Catalog Upload.
- You cannot use content versioning with rule-based sales categories.
- You cannot link a rule-based sales category to another sales category.
- When workspaces are enabled, you cannot use quick publish to
publish a rule-based sales category and the catalog entry assignments for the category to
production. Request that an administrator use the stagingprop utility to publish your rule-bases
sales category data to production and run the indexprop utility to update the search index.
When a
task group that includes a rule-based category is approved, the category properties and rule are
merged into approved content, not the catalog entry assignments. The task group approval process
sets the CATGRPRULE.EVALUATING column value for the new or changed rule-based sales categories to be
"2"
. When the EvaluateRuleBasedCategories job next runs, the
rules for these categories are evaluated and applied. Since the catalog entry assignments from
within the workspace are not merged into approved content, the assignments are not available for
quick publish.