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. For
more information, see Creating the rule-based sales category evaluation scheduled job
- 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. The
UpdateSearchIndex scheduled job that updates the search index marks the
rule-based sales categories that need to be re-evaluated. This also occurs when an administrator
runs the di-buildindex utility. The
EvaluateRuleBasedCategories utility is by default scheduled to run after
these utilities. EvaluateRuleBasedCategories evaluates the rules that have
changed.
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.