Sie sind auf Seite 1von 233

Launch Readiness Boot Camp (LRBC)

Prep Doc for Business Manager


V 0.2 2/19/2013

Revision History
Date

Description

Description

Author

12/14/2012
2/19/2013

V 0.1
V 0.2

First draft
Updates based on feedback on team. Added 13.1
newURL feature

Shelby Walker
Shelby Walker

Contents
Revision History ............................................................................................................................................ 2
Introduction .................................................................................................................................................. 8
LRBC Prep Timeline ................................................................................................................................... 8
Additional Documentation Available to Provide to the Client ................................................................. 8
Site Backup Settings ...................................................................................................................................... 9
Catalog Management.................................................................................................................................. 12
Storefront Categorization ....................................................................................................................... 12
Sequencing Categories ............................................................................................................................ 12
Enabling Comparison Charts ................................................................................................................... 12
Using Search Placement & Search Rank ................................................................................................. 12
Uploading Category & Product SEO Attributes....................................................................................... 13
Search Refinements ................................................................................................................................ 13
Search Query Window ............................................................................................................................ 21
Product Management ................................................................................................................................. 22
Types of Products.................................................................................................................................... 22
Assigning Products to a Category ........................................................................................................... 25
Uploading Supplemental Product Data .................................................................................................. 26
Product Options ...................................................................................................................................... 26
Variation Attributes ................................................................................................................................ 28
Creating Product Sets.............................................................................................................................. 28
Recommendations .................................................................................................................................. 29
Price Books .............................................................................................................................................. 31
Inventory ................................................................................................................................................. 32
Sitemaps.................................................................................................................................................. 32
Import & Export ...................................................................................................................................... 36
Search.......................................................................................................................................................... 37
Search Indexes ........................................................................................................................................ 37
Query Processing Overview .................................................................................................................... 44
Searchable Attributes ............................................................................................................................. 46
Stopword Dictionary ............................................................................................................................... 47
Synonym Dictionary ................................................................................................................................ 47
3

Compound Word Dictionary ................................................................................................................... 47


Search Suggestions ................................................................................................................................. 49
Category Name Exclusions ...................................................................................................................... 50
Hypernym Dictionary .............................................................................................................................. 50
Common Phrase Dictionary .................................................................................................................... 50
Creating Search Driven Redirects ........................................................................................................... 51
Creating Sorting Rules ............................................................................................................................. 52
Product & Customer Active Data Attributes ........................................................................................... 54
Defining Storefront Sorting Options ....................................................................................................... 56
Configuring Search Preferences .............................................................................................................. 57
Import & Export ...................................................................................................................................... 59
Online Marketing ........................................................................................................................................ 60
Promotions.............................................................................................................................................. 60
Campaigns ............................................................................................................................................... 66
Coupons .................................................................................................................................................. 69
Source Codes........................................................................................................................................... 70
Gift Certificates ....................................................................................................................................... 73
Stores ...................................................................................................................................................... 73
Import & Export ...................................................................................................................................... 74
Customers ................................................................................................................................................... 75
Customer Groups .................................................................................................................................... 78
Batch Processing ..................................................................................................................................... 85
Import & Export ...................................................................................................................................... 85
Content ....................................................................................................................................................... 86
Content Slots ........................................................................................................................................... 86
Content Assets ........................................................................................................................................ 88
Library Folder .......................................................................................................................................... 94
Import & Export ...................................................................................................................................... 96
Custom Objects ........................................................................................................................................... 97
Batch Processes ...................................................................................................................................... 98
Import & Export ...................................................................................................................................... 98
Ordering ...................................................................................................................................................... 99
4

Orders ..................................................................................................................................................... 99
Site Preferences Order Page ................................................................................................................. 102
Payment Processors .............................................................................................................................. 103
Shipping Methods ................................................................................................................................. 104
Taxation................................................................................................................................................. 106
Import & Export .................................................................................................................................... 108
Analytics .................................................................................................................................................... 109
Site URLs.................................................................................................................................................... 112
SEO / Search Support (Deprecated with 13.1 Release) ........................................................................ 112
Upgrading from SEO Support to URL Rules .......................................................................................... 112
URL Rules Module (New with 13.1 Release) ......................................................................................... 115
When to Use the Alias, Mapping Rule, Static Mapping, and URL Redirect Features ........................... 121
Mapping Rules ...................................................................................................................................... 122
URL Redirects ........................................................................................................................................ 127
Static Mappings..................................................................................................................................... 133
Aliases ................................................................................................................................................... 136
Canonical Tags ...................................................................................................................................... 141
Site Preferences ........................................................................................................................................ 143
Products ................................................................................................................................................ 143
Baskets .................................................................................................................................................. 143
Customers ............................................................................................................................................. 144
AB Test Preferences .............................................................................................................................. 146
Locales................................................................................................................................................... 146
Source Codes......................................................................................................................................... 147
Gift Certificates ..................................................................................................................................... 148
Guided Search ....................................................................................................................................... 148
Sequence Numbers ............................................................................................................................... 149
Order ..................................................................................................................................................... 150
Coupons ................................................................................................................................................ 151
Promotions............................................................................................................................................ 151
Storefront Toolkit.................................................................................................................................. 152
Custom Site Preferences ....................................................................................................................... 154
5

Replication ............................................................................................................................................... 155


Data Replication .................................................................................................................................... 159
Code Replication ................................................................................................................................... 163
Clearing Page Caches ............................................................................................................................ 166
Organization .............................................................................................................................................. 167
Creating an Organization Profile ........................................................................................................... 167
Roles & Permissions .............................................................................................................................. 167
Adding New Users ................................................................................................................................. 171
Sites.......................................................................................................................................................... 172
Manage Sites ......................................................................................................................................... 172
Robots ................................................................................................................................................... 176
Site Development ................................................................................................................................... 180
Development Setup .............................................................................................................................. 180
System Object Definitions..................................................................................................................... 181
Custom Error Pages............................................................................................................................... 183
Import & Export .................................................................................................................................... 183
Open Commerce API Settings ............................................................................................................... 183
Code Deployment ................................................................................................................................. 184
Custom Object Definitions .................................................................................................................... 187
Deprecated API Usage .......................................................................................................................... 188
Site Import & Export ............................................................................................................................. 188
Global Preferences .................................................................................................................................... 191
Locales................................................................................................................................................... 191
Instance Time Zone ............................................................................................................................... 191
Change History (Beta) ........................................................................................................................... 192
Security ................................................................................................................................................. 193
Geolocations ......................................................................................................................................... 193
Sequence Numbers ............................................................................................................................... 194
Products ................................................................................................................................................ 195
Custom Preferences .............................................................................................................................. 195
Operations ................................................................................................................................................ 196
Job Schedules ........................................................................................................................................ 196
6

Job History ............................................................................................................................................ 200


Job Statistics .......................................................................................................................................... 201
Import & Export .................................................................................................................................... 202
GMV Reports ......................................................................................................................................... 203
Custom Log Settings.............................................................................................................................. 207
Pipeline Profiler..................................................................................................................................... 207
Quota Status ......................................................................................................................................... 208
Change History (Beta) ........................................................................................................................... 211
Encryption Keys..................................................................................................................................... 211
Private Keys and Certificates ................................................................................................................ 212
Appendix ................................................................................................................................................... 214
Demandware Image Storage ................................................................................................................ 214
Recommended Naming Conventions within Business Manager .......................................................... 214
Object IDs .............................................................................................................................................. 216
Pipelines ................................................................................................................................................ 217
Demandware SEO Capabilities in Commerce Center Fact Sheet.......................................................... 218
HTML5-CSS3 is More Than Just Responsive Design .............................................................................. 221
Utilizing Hidden Categories ................................................................................................................... 224
Source Codes......................................................................................................................................... 229

Introduction
The following document is a guideline for preparing and delivering a Launch Readiness Boot Camp (LRBC). The boot camp is a
multi-day hands-on activity conducted by a Solution Strategist who works with the business team to setup the staging instance
with merchandised data, promotions, coupons, SEO, legacy URLs, search and other configurations required for launch.
This workshop is conducted after the Managing the Storefront (MTS) training has been completed.

LRBC Prep Timeline


4 weeks out:
1.

2.

Reach out to the Client and introduction yourself.


a) Advise youll be setting up a call the following week to review / revise agenda, and review the pre-boot camp task
list (i.e. Client deliverables).
b) Provide Site Readiness Task List: https://xchange.demandware.com/docs/DOC-13295.
c) Provide Launch Readiness Boot Camp Overview.pdf https://xchange.demandware.com/docs/DOC-10091.
d) Confirm dates and location to have the LRBC. Timing should be after development has been completed, within
the first weeks of QA.
Set up pre-boot camp call with Client typically 1 hr.

3 weeks out:
1.
2.
3.
4.

Meet with Client to review and finalize agenda and clarify Client deliverables needed.
Request access to Staging, if not already granted.
Book travel.
Prep for boot camp by reviewing project documentation (i.e. FSD, wireframes, tech spec, data modeling spreadsheet).

2 weeks out:
1.

Meet with tech lead to review customization and implementation questions. Obtain a good understanding of all custom
attributes, objects, and site preferences.

1 week out:
1.

Walk through business manager again and do checklist to ensure the Client is ready for boot camp. Staging
environment must be stable for a successful boot camp.

Additional Documentation Available to Provide to the Client


1.

2.
3.
4.
5.

Encourage everyone to follow the Solution Strategy space on xChange under Merchants and Marketers. This is where we
store how-to guides, fact sheets, best practice guidelines, etc.
https://xchange.demandware.com/community/merchants_and_marketers/solution-strategy

301 Mapping Spreadsheet and how-to video: https://xchange.demandware.com/thread/6256

Product & Category SEO Upload Template and how-to video: https://xchange.demandware.com/docs/DOC-6087

Import Coupon excel and how-to video: https://xchange.demandware.com/thread/7828

Alt Image Mapping Spreadsheet (Scene7 or DW): https://xchange.demandware.com/docs/DOC-11493

Maximizing Demandware Analytics doc: https://xchange.demandware.com/docs/DOC-10177


Demandware Launch Checklist: https://xchange.demandware.com/docs/DOC-1566
SEO Resource Center: https://xchange.demandware.com/docs/DOC-9023
Commerce Center: what is in/out for first release: https://xchange.demandware.com/docs/DOC-9290
Commerce Center Backlog: https://xchange.demandware.com/docs/DOC-11231

Site Backup Settings


Navigate to: Administration> Site Development> Site Import & Export> Schedule Backups
1.
2.

Check that regular Backups are set so that if data is lost during Boot Camp for whatever reason, there is an easy way of
restoring.
Demandware recommends disabling cache during Boot Camp: Administration> Sites

Backup Schedule

Enabled: check this box to enable backups. No backup is run if this box is not checked. Backups are normally only enabled
on production systems.
Job Settings

Max Backups To Keep: Select the number of backups you want to keep.
Job Status

Status: indicates the status of backup.

Last Run: displays the date and time when the last backup was run.
Backup Schedule Information
Enter how often you want the backup to run.In the From and at fields enter the time when you want the scheduled backups to
start. In the Every field enter how often you want all subsequent backups to run.

From: MM/dd/yyyy at: h:mm am/pm


Note:
Make sure to enter am or pm, not a or p.

Every:
Apply - click to save any changes.

Data Units to Backup


Select the checkbox for any data you want to backup.
Note:
It is not possible to create multiple backup jobs, so you should select everything you want to backup. Generally, it is a
good practice to backup any data that cannot be replicated from your Staging instance.

Apply - click to save any changes.

Database Backup vs. Database Snapshot


This topic describes the difference between Demandware's snapshot and backup methods of backing up data from the database
and the best practices for using them.
Demandware uses two methods to back up data from the database: snapshot and backup.
Snapshots versus Backup Snapshot
A database snapshot is a locally retained point-in-time image of data. See http://www.netapp.com/ftp/snapshot-brochure.pdf.
Because a Primary Instance Group (PIG) uses one database, a snapshot includes all three instances (Development, Staging and
Production):

Restoring a snapshot restores all three instances to that point-in-time.

Subsequent snapshots (future in relation to the restored snapshot) become irrelevant and cannot be used after the
restore.
A snapshot can only be taken when the database is not running. All three instances in a PIG must be down and the database
stopped. Snapshots are instantaneous.
Backup
A backup is a script that exports all tables and values to a file. They can be run against individual instances. Backups can take
between 15 minutes to more than an hour, depending on database size and certain table content.
If a backup fails for any reason, the system still generates a zip file, but appends the suffix "-invalid" to the filename.
Demandware recommends that you establish a mechanism to detect if an invalid file is produced.
Note:
The individual instance must be down for the duration of the backup (not the database, however).

Scenarios and Policies

This section describes when Demandware Operations uses one method over the other.

General

Operations recommend the snapshot method. However, there are several scenarios that require the backup method.
Customer Requests

If a customer requests the backup of a non-live PIG instance or instances, Operations will assume the backup method is
required unless a snapshot is specifically requested.

If a customer requests the backup of a live Development or Staging instance, Operations will always use the backup
method, like in a live migration scenario (to avoids Production downtime).

If a customer requests the backup of a live Production instance, Operations will always use the snapshot method, like in
the live migration scenario (to reduce downtime). In this scenario, a restore will also return Development and Staging
instances to this point-in-time. Any changes on Development and Staging in the interim will be lost.
Sandbox Instances

We only use the backup method for sandbox instances.


Load Testing

A customer can request either backup or snapshot methods.

Operations requires a sign-off on which method the customer prefers after understanding the basic impact.

Snapshot means short downtime and recovery, but no changes in development/Staging will be accounted for the
duration of testing.

Backup means long downtime for production during backup and recovery. Development/staging are not impacted, and
can be used as long as a Staging operation is not triggered for the duration of load testing.
Migration - Non-live PIG

Because a non-live PIG is not as sensitive to downtime, either method can be used. It is the customer's choice.

A snapshot is preferred when a restore is expected in the near future.

10

Snapshots are commonly used at Demandware during a testing phase where the effects of the testing must be rolled
back quickly.
It is important to understand that all three instances are affected with snapshots.
A backup is preferred if the need to restore is unknown or if a restore will take place in more than a few days.

Migration - Live PIG

Migrations always start with the Staging instance and are usually followed by Development and then Production.

To avoid Production downtime, Operations will always use the backup method for the Staging and Development
instances.

To avoid excessive downtime for the Production instance, Operations will always use the snapshot method for the
Production instance.

Because all three instances are affected, Staging and Development instances will remain down for the duration of a
Production migration. This prevents changes to these instances during the migration, which will be lost in the event that
a snapshot restore is required.

If a snapshot restore is required (for example, with a migration failure), all three instances will be restored. Because
they were down, there is no risk of data loss.

11

Catalog Management
Storefront Categorization
Navigate to: Products and Catalogs> Catalogs
1.
2.
3.
4.

Review the catalog structure and discuss how it will be maintained going forward (i.e. manual vs feed).
Ensure categories that are intended to display on the website have the online flag enabled: Products and Catalogs>
Catalogs> edit > General
Ensure categories that are intended to display as part of the global navigation have the Show in Menu Navigation flag
enabled: Products and Catalogs> Catalogs> edit> Category Attributes
Review the Presentation and Custom Attributes: Products and Catalogs> Catalogs> edit> Category Attributes

Sequencing Categories
Navigate to: Products and Catalogs> Catalogs
1.

Work with Client to ensure categories have been sequenced properly.

Enabling Comparison Charts


Navigate to: Products and Catalogs> Catalogs> edit> Category Attributes
1.
2.

Ensure categories that are intended to utilize comparison charts have the Enable Compare flag enabled.
Based on the Clients product catalog, if necessary, ensure that the product compare attributes for each category have been
set up and visible at the (classification) category level under product attribute groupings.

Using Search Placement & Search Rank


1.

2.

If a product is assigned to multiple categories with multiple search placements or search ranks assigned to them, in search
results, the PRIMARY category assigned to the product overrides. So if the primary category has a rank/placement of 1 and
another category has a 5, the system will look at the 1.
The catalog default sorting rule MUST include search rank/placement b/c the catalog default sorting rule is what is returned
for all search results.

Explicit Search Placement


Explicit search placement is used to indicate the relevance of a particular product within a category. For example, if you had a
"Ski Clothing" category, you might want Jackets and Ski Boots to be featured products that appear first in the search results and
hats and gloves to be accessories that appear at the end of the search results. If you set the value for the category, it is inherited by
the product, unless a value is set specifically for the product. If search placement values already exist in your external catalog
data, they can be set through the catalog import feed. Even if you intend to manually assign values, it is recommended that you
assign a default value to all new products in your catalog import feeds. If you do not set a value, the value is set to zero and
appears after any 1 (NLA Products).
1.
2.

In Business Manager, set the Search Placement attribute value for the category or product.
To set it for the category: Products and Catalogs> Catalogs> edit> Category Attributes
All products in this category are assigned this value, unless a different value is selected for a subcategory or the
product itself.

3.
4.

To set it for the product: Catalogs and Products> Products> Product Attributes
Select one of the following values:

NONE - This is the default value.

8 (Top Featured Product)

7 (Featured Product)

6 (Product)

5 (Secondary Product)

4 (Featured Accessory)

3 (Accessory)

12

5.
6.
7.
8.

2 (Spare Part)

1 (NLA Product)
Include the Search Placement product attribute in a sorting rule. Search Placement is selected as a product attribute in
sorting rules, even although the values might be defined at a category-level.
Search Placement values can be added so youre not limited to 8.
Edit Category values at Administration> Site Development> Category> Attribute Definitions> searchPlacement
Edit Product values at Administration> Site Development> Product> Attribute Definitions> searchPlacement

Explicit Search Rank


You set the explicit search rank to promote a group of products. For example, if you wanted to phase out seasonal products, you
might give them all a search rank which could change over time. You can use other ranking techniques, such as availability to
sort items within search rank. You can explicitly set the search rank for a product to one of three values: 3 ( High), 2 (Medium), 1
(Low).If search rank values already exist in your external catalog data, they can be set through the catalog import feed. Even if
you intend to manually assign values, it is recommended that you assign a default value to all new products in your catalog
import feeds. If you do not set a value, the value is set to zero and appears after any products explicitly ranked 1 (Low).
1.

2.

3.
4.
5.
6.

In Business Manager, set the Search Rank attribute value for the category or product.
a. To set it for the category: Products and Catalogs> Catalogs> edit> Category Attributes
All products in this category are assigned this value, unless a different value is selected for a subcategory or
the product itself.
b. To set it for the product Catalogs and Products> Products> Product Attributes
Select one of the following values:

NONE- This is the default value.

3 (High)

2 (Medium)

1 (Low)
Include the Search Rank product attribute in a sorting rule. Search Rank is selected as a product attribute in sorting
rules, even although the values might be defined at a category level.
Search Rank values can be added so youre not limited to 3.
Edit Category values at Administration> Site Development> Category> Attribute Definitions> searchRank
Edit Product values at Administration> Site Development> Product> Attribute Definitions> searchRank

Uploading Category & Product SEO Attributes


Navigate to: Products and Catalogs> Catalogs> edit> Category Attributes | Products and Catalogs> Products
1.
2.
3.
4.

Review category SEO (page title, page description, page keywords, page urls).
Review product SEO (page title, page description, page keywords, page urls).
Product & Category SEO Upload Template and How-To Video: https://xchange.demandware.com/docs/DOC-6087
Utilize completed spreadsheet to upload category and product SEO attributes: Products and Catalogs> Import & Export>
Import and Export Files> Upload. Catalogs> Import.

Search Refinements
Navigate to: Products and Catalogs> Catalogs> edit> Search Refinement Definitions
1.
2.

Identify search refinements at the global and category level and set them up with the Client.
You can import search refinements from the catalog import file.

13

The graphic above shows the refinements as they appear in the storefront and how they are configured in Business Manager.
1. Category refinements - customers refine by subcategory. This is most useful for customers who have navigated to a
top level category from the menu on the main page.
2. Attribute refinements - customers refine by attribute values, in this case, by selecting a particular shade of the color
attribute.
3. Boolean refinements - customers refine by whether a boolean value is set to true or false.
4. Date refinements - customers refine by whether the date set in a date refinement matches a period set up as a bucket.
When a customer clicks on a bucket, the link creates a new query and passes the value for the refinement to the Search-Show
subpipeline as an additional parameter. The search query is performed again, rather than iterating over the existing results.
Refinement Inheritance
Refinement definitions are inherited by subcategories by default, but they can be blocked in the subcategory search refinement
configuration, so they do not appear in the storefront.
Deepest Common Category
For all products in a search result set, the deepest common category is the category highest in the catalog structure that all of the
products have in common. If you navigate to a category, that category is usually the deepest common category. If you use search
to find a result set, the deepest common category can often be the root category of the catalog.
The deepest common category determines the search refinements that are displayed for a particular search. The deepest common
category is calculated based on category assignments below the current refinement category only. The system ignores any
assignments to categories outside the current refinement tree. If a search is refined by category, the deepest common category is
still calculated based on the actual search result and can therefore be any category below the refinement category.
To find out why a particular set of search refinements is used for a search result, use the Storefront Toolkit Search Information
tool to determine the deepest common category. The refinements configured for this category are the ones used for the search
result.
For more information about how to determine the deepest common category for a search, see the Search Query window.

14

Search Refinement Definitions Tab


Navigate to: Products and Catalogs> Catalog> edit >Search Refinement Definitions
1.

Use this tab to create new search refinements, block inherited search refinements, reorder search refinements, or delete
search refinements.

Sorting: Click the up or down arrows to change the order in which refinements appear in the storefront.
Action - Click Block to stop an inherited refinement from being displayed for this category in the storefront.
Apply - Click to apply changes to all selected refinements.
Reset - Click to reset items to how they appeared when you first opened the page.
New - Click to create a new search refinement.
Delete - Click to delete any selected refinements.

Creating New Search Refinements


Navigate to: Products and Catalogs> Catalog> edit> Search Refinement Definitions Tab> New or Edit
1.

Before creating search refinements, if you are refining by attribute values, make sure the attribute has data and is indexed.

Select Language: Select the language for the refinement display name and click Apply. A single refinement can have a
different display name for each locale. The name for the local is only visible in the page if the locale is selected and applied.
Name The name you enter is displayed in Business Manager when you sort refinement conditions and in the storefront as
the name of the refinement.
Refinement Type Select one of the following refinement types:
Attribute Refinement - creates a refinement for a specific product attribute; for example, length, CPU speed, or team
logo.
Category Refinement - creates a refinement based on the subcategories of the current category. This is standard for
most products.

15

Price Refinement - creates a refinement based on the prices of the products in the category. Usually, this reflects price
ranges that are configured for the specific category as price thresholds.
Attribute ID This field is only available for attribute refinements.
Click the browse button to select an attribute or enter the attribute ID of the attribute to refine on. For example, to create a
brand refinement, select the brand attribute. Custom object attributes are not included here and cannot be used for refining
searches.
Value Set This field is only used by attribute refinements.
Select one of the following value sets:
Search Result Values - this displays only the values used by products in the search results. For example, if there are
only red and pink shirts, only red and pink appear as possible refinement values.
All Values of Category - this displays all values present for the category, rather than those present in the search results.
However, it is possible to display values not present in the search results different from those that are present. For
example, this value is selected in the color refinement for the SiteGenesis application. All color refinements are always
present in the refinement bar, even if there are only red and pink shirts in the search results. However, the available
colors of red and pink appear as squares and the unavailable colors appear as squares with a corner missing. The
display of unavailable colors depends on the ISML template for the refinement bar, and requires a developer to change.
If you select this option you must add a presentation ID for any buckets you create.
Bucket Type Select one of the following types:
None - all of the possible refinement values are displayed. If the bucket type is set to None , Demandware
automatically creates buckets for each value name.
Values - this allows a merchant to group products by value. If this is selected, additional fields for custom buckets
appear on the page. You can group multiple values, such as brand names into a bucket such as A-D.
Threshold - this allows a merchant to group values within a range. This is only available for attributes with numeric
values. If this is selected, additional fields for custom buckets appear on the page. Defining explicit sorting positions
for the bucket values is not supported for threshold refinements.
Periods - this allows a merchant to group values within a date range. This is only available for attributes with a Date
date type. If this is selected, additional fields for custom buckets appear on the page. You can specify the different
periods in days. For example, if you use the releaseDate for a product as the Attribute in an attribute refinement, you
can create the following buckets:
Duration
in Days

Display Value

Products Displayed

30

Coming Soon

Products that are planned for release in the next month.

-7

Last Week

Products that were released in the last week.

-14

New Releases

Products that were released in the last two weeks.

Unbucketed Values: An unbucketed value is a value that is currently not assigned to any bucket. Select one of the
following methods of displaying unbucketed values in the storefront:
Shown as individual values - Select this option to show each value as an individual bucket. If you select this option
you must check regularly to make sure that new products with new refinement values do not make the refinement
unusable by introducing new options.
Shown as single bucket - Select this option to show all unbucketed values as single bucket. You can specifiy a Display
Name, Desciption and Presentation ID for the bucket called "Values not part of any bucket". This bucket is always
displayed at the end of the refinement list.
Not Shown - Select this option if you do not want unbucketed values shown in the storefront. If you select this option
you must check regularly to make sure that new products with new refinement values can be found by refinement.
Sorting Mode Select one of the following sorting modes:
Sort by Value Name - sorts the buckets alphabetically. If the bucket type is set to None , Demandware automatically
creates buckets for each value name. For example, if you have an ascending sort by value name for a brand refinement,
the brands are listed alphabetically. Otherwise, the bucket
Sort by Value Count - sorts the buckets by the number of values for that attribute. If the bucket type is set to None ,
Demandware automatically creates buckets for each value count. For example, if you have a descending sort by value
count for a brand refinement, the brand with the most search hits shows at the top, regardless of its name.

16

Sort by Price Threshold - sort according to price threshold. If the bucket type is set to None , Demandware
automatically creates buckets for each price. Otherwise, the bucket type must be set to Thresholds to define custom
price buckets.
Sorting Direction Select one of the following sorting directions:
Ascending - If the refinement attribute has numeric values, then buckets are displayed from top to bottom with values
that are low to high. If the refinement attribute has text values, then buckets are displayed from top to bottom from a to
z.
Descending - If the refinement attribute has numeric values, then buckets are displayed from top to bottom with values
that are high to low. If the refinement attribute has text values, then buckets are displayed from top to bottom from z to
a.
Cutoff Threshold
This is the number of refinement categories that should be listed before the rest are scrollable in the list box.
The cutoff threshold depends on the type of refinement. For example, for price refinements there is no cutoff threshold,
because you will be bucketing all search results into custom-defined price buckets.

Search Attribute Refinement Buckets


Search attribute buckets are only visible if you have selected attribute refinements and selected the Values bucket type. As part of
a search refinement definition, you can control how refinement values are grouped. For example, what sizes (10-14) are
considered "small" or what colors (ruby, crimson, scarlet) are considered "red".

Bucketed Values Enter a list of values that you want to group together.
Bucket Display This is the name for the bucket that the customer sees in the search refinement bar.
Bucket Description This is a description of the bucket that can be seen in Business Manager.
Bucket Presentation ID The bucket presentation ID can be used to identify a bucket for complex styling, such as a color
swatch. This is an optional field. For example, if a merchant configures an attribute refinement based on the product
attribute "color" and wants to show color buckets as images, then they can use the presentationID in the template to
reference an image using the presentation ID (per attribute refinement). Alternately, if the merchant wanted to represent the
color as an HTML color, the color can be used as the presentation ID and reference in the ISML template.
Sorting If you have created more than one custom bucket, you can sort the order in which they appear in the search
refinement bar. Use the up and down arrows to control the order in which buckets appear.

Price Refinement Buckets


Price refinement buckets are only visible if you have selected attribute refinements and the Thresholds bucket type.

17

Price Threshold Enter the maximum value for the price threshold.
Display Value Enter the label for the bucket that the customer sees in the search refinement bar. Buckets appear in the order
in which they are entered.

Search Refinement Buckets


If you create a search refinement without buckets, then every separate value for refinement is displayed in the refinement. For
example, a brand refinement usually does not include buckets. However, the number of values can easily become overwhelming
for a user.
Customers typically search for basic colors, such as red, green or blue. The merchant can define buckets that group colors.

Bucket

Values

Red

Crimson, Garnet, Ruby, Maroon,


Cherry, Rouge

Blue

Sky Blue, Navy, Cerulean, Cobalt

Bucketing Types
For a specific refinement, the options available for the customer to query on are referred to as buckets. For example, for a color
refinement, you might create red, blue, and brown buckets. You can assign value buckets for each refinement directly or have the
buckets created automatically based on value name, value count, or category. If you assign buckets, you can create a group of
values that are all included in the bucket. The example below includes search refinements with and without buckets.

Bucket by Value
You can create custom bucket names or icons and manually assign specific values to them. Examples of this type of bucket
include color or style indicators (retro, modern, etc). For example, the same color (#CC0033) can appear in the red-orange bucket
in the Men's category, the pink-red bucket in Women's category, and the Red bucket in the Unisex category.
The buckets displayed to the customer are those of the deepest common category for the search result set. To determine the
deepest common category, use the Storefront Toolkit Search Information tool. To access this information, click the
information icon in your application header.

Search

18

Note:
You must rebuild the search index if you move refinement definitions from one category to another. Such changes are not
covered by incremental indexing and therefore require a full index rebuild. If you do not, the search refinement definitions
may not work as expected.

Although different categories can have different buckets, the same category cannot have different buckets for the same attribute
in subcategories. For example, you cannot create an Age refinement that gets more specific with every category level.
Bucket by Value Count
A value count bucket allows you to assign different values to specific buckets. Examples of this type of bucket include sizes,
weights, and other groupable options. For example, you might want a bucket for small sizes that includes 1X, size 2 , and size 2
petite . You might also want to reduce the number of refinements to those that are the most commonly used. For example, you
might want to create buckets for laptops that are: under 1 kg , 1 kg - 3 kg , and over 4kg .
Bucket by Price Threshold
You can choose to create price buckets that include a range of prices. If you use this option, you do not have to manually assign
values to the buckets. This is very efficient when creating search refinements for prices.
Bucket by Period
You can choose to create period buckets for ranges of dates related to the product. For example, how new the product is, when it
is available for sale, or other seasonal information. . If you use this option, you do not have to manually assign values to the
buckets. This is very efficient when creating search refinements by date.
Bucket for All Values
Although customers can de-select search refinement values, you might want to create a bucket for "All" values so that it is clear
to customers that they can broaden as well as refine their search.
Allowed Characters for Bucket Values
You can include commas or backslashes in bucket definitions by escaping them with a backslash ('\').
For example, to create a bucket value as follows: one each of pure white, blueberry, brown
Enter the following: one each of pure white\, blueberry\, brown in order for the text to be processed as single refinement value.
Otherwise, each color is included as a separate bucketing value.
Unbucketed Value Display
If you have some values that are not bucketed, you decide whether to include all unbucketed values in a single bucket, as single
values, or not show them at all. For example, for a color refinement, you may have some items that are not a single color, but
multi-color. You can have a multi-color bucket that contains all unbucketed values, you can have each unbucketed value, such as
blue/brown or red/black display independently, or you can hide all multi-color items, assuming that a customer using the color
refinement is looking for an item of a specific color.
Relaxing Refinements
You can allow users to remove a search refinement in several ways. For buckets with values by assignment, the easiest way to do
this is to create an "All" bucket that the user can select. For buckets that are assigned by name or value count, you can create links
that allow the user to relax the refinement. You can use the ProductSearchModel or ContentSearchModel canRelax() methods to
determine whether the search can be expanded. If the search can be relaxed, there are a number of methods you can use to relax
the search. There are different methods for relaxing a category refinement, folder refinement, or an attribute refinement.
For an example of relaxing a search, see the productsearchrefinebar.isml template in the SiteGenesis Application.
Variation Products in Refinements
If you refine on an attribute value, any variation products with that value are included in the search refinement, if the attribute is a
slicing attribute for the product. For example, if you have a T-shirt in several colors and are using color as a slicing attribute, so
that the T-shirt appears in the storefront in several colors, if you refined by 'red', then the red T-shirt variation appears in the
search results.
Product Sets in Refinements

19

Product sets are included in refinements if any items in the set match the refinement. For example, if a product set for an outfit
includes a red T-shirt, then the outfit is included in the search results.
Testing Tips
If you use bucketing and the value list changes, or you have updated the catalog, remember to refresh the index and view the
buckets to make sure all changes have been made correctly. Repeat this after every catalog update.
Localization
If you want to use localized bucket labels, supply a localized label for the bucket values for attribute refinements.
the attribute used for the refinement is defined as localizable, the values provided in the bucket value list are as well. For
localized refinement attributes, one value list must be supported per active locale (for example, "Red" = "Dark Red" and "Rot" =
"Dunkelrot"). If the attribute used for refinement is non-localized, only one bucket value list is necessary.
Price Refinements
Bucket definitions for price refinements capture the following information:
The currency code of the price bucket
One localized bucket label per active locale
Price threshold of the bucket
The localized bucket label can be used to render the price range independently of the actual numerical bounds (for example,
'Inexpensive" as the label for price bucket <= $10).

Manage Bucketed Window


Navigate to: Products and Catalogs> Catalog> edit> Search Refinement Definitions Tab> Manage Buckets
This window is used to add attribute values to search refinement buckets. If you create a refinement with a Bucket Type of
Values, an Attribute Refinement Buckets section of the Search Refinement Definitions Tab appears, which includes the Manage
Buckets button.

Available Values
Filter by Value - Enter the value are looking for. The list is filtered by whatever characters you enter. For example, enter "p" to
see all values that start with p. Wildcards are currently not supported for filtering. As of 12.5, you can use an asterisk as a
wildcard in the filter. For example, you can use the following search terms to find values that contain red as part of the value:
red
*
*red
red*

20

Filter by Bucket - select either All to see bucketed and unbucketed values or Unbucketed to see only unbucketed values.
You can also enter the name of any bucket to see the associated values.
Value box - select this box if you want to assign the value to a bucket.

Buckets

Filter - Enter the bucket name you are looking for. The list is filtered by whatever characters you enter. Wildcards are
currently not supported for filtering.

Add to New Bucket - Check this option, enter a bucket name, and click Add to add a new bucket. Any currently checked
values are automatically added to this bucket. Since values can be assigned to more than one bucket, this does not change
any existing assignments.

Bucket box - select this box for any buckets you want to assign the values to.

Add - Click this to add checked values to checked buckets.

Search Query Window


To use the Page Information tool, click the
hover over the

icon in the upper left corner of the storefront and select Search Information then

icon in the top left corner of the storefront.

This window displays basic information about the search query, with buttons that link to detailed information about query
processing and sorting rule configuration.

Note:
If there is no search phrase, then category navigation is displayed.

Search Phrase: Displays the search phrase entered into the search box in the storefront. Click the
icon to open the
Search Phrase Processing window.
Refinements: Displays the attribute and selected attribute values used to refine the current search.
Deepest Common Category: displays the category path using localized names of the deepest common category of a search
result. If the deepest common category is the root category of the catalog, the localized name of the catalog is shown instead
of the category path to the deepest common category.
Sorting Rule: Displays the search phrase entered into the search box in the storefront. Click the
icon to open the Sorting
Rule Configuration window.
Note:
You can keep the Search Phrase Processing or Sorting Rule Configuration window open by clicking the
changes to
window.

icon. The icon

and closes the window if clicked. The window also closes if you move the mouse beyond the borders of the

21

Product Management
Navigate to: Products and Catalogs> Products
1.
2.
3.
4.
5.
6.

Walk Client thru bulk update process.


Walk Client thru how to bulk assign products to a category.
Review requirements a product must be active, and categorized to display on the site.
Explain difference between Classification & Primary Category
Review the Storefront and Custom Attributes.
Walk thru how to customize product results table: Global Preferences> Products

Types of Products
Different types of products require different ordering information, such as size, color, and customization options. Products can
also be displayed or sold in different combinations. Demandware product types reflect how merchants retail their products and
determine how products are presented on the storefront to the customer, how inventory and availability are controlled, and how
orders for the product are recorded and analyzed. The following table allows you to compare how the Demandware Platform
manages different product types. In addition to the product types listed in the table, there are additional complexities, such as a
variation product with options in a product set, but the following table gives you the basic logic for each type.
Standard Product

purpose

Any product that is


sold and displayed
alone and does not
have variations, such
as different sizes or
colors. If you include
a standard products in
a product sets or
product bundle, it is
considered a set
product or bundled
product, and not a
standard product.

Variation
Master

Product
Variation

A product which
represents all the
variations for a
particular
product. For
example a
specific style of
t-shirt.
A variation
master cannot be
purchased
directly, only
product
variations with
specific variation
information can
be purchased. For
example, if a
master has color
and size variation
attributes, you
must specify the
color and size of
a specific variant
to purchase it.
If you have more
than three
variation
attribute, you
might want to
consider using
options.

A product that is
a specific
variation. For
example, if a
Vegas brand tshirt is
represented by a
variation master,
then a product
variation is a size
10, blue Vegas
brand t-shirt.
Variation
products
associated with
the same
variation master
share most of the
attributes defined
for the product
master, but have
their own product
IDs and images.

Product Set

A product that
includes several
products that are
displayed together
and can be
purchased together
or separately. For
example: an
accessories kit that
includes a hairbrush,
comb, and mirror,
each of which can
also be bought
separately. Another
common example is
an outfit, with a
jacket, shirt, and
pants, which can be
purchased together
or each item can be
purchased
separately.

Product Bundle

A product that
includes several
products that are
only sold
together. For
example: a
gaming bundle
that includes a
video game
console and
several games.

22

active data
calculation

Calculated as a single
product.

For most metrics,


calculated as the
average of the
variation
products.

For most metrics,


not calculated.

For most metrics,


calculated as the
average of products
in the set.

Calculated as a
single product.
Identical to
standard product
calculations.

availability

Product is available
based on the product
inventory record.

A master product
is considered
orderable or in
stock if at least
one of its variants
is orderable or instock.

A variation
product is
considered
orderable or in
stock based on its
inventory record.

A product set is
considered orderable
or in stock if at least
one of the set
products is orderable
or in-stock.

If a bundle has its


own inventory
record, both the
bundle and the
bundled products
must be available
for a bundle to be
considered
orderable or in
stock.
If a bundle has its
own inventory
record and the
Use Bundle
Inventory Only
option is selected
in the inventory
list, then the
bundle must be
available, but the
bundled products
do not need to be
available for the
bundle to be
considered
orderable and in
stock.
If a bundle has no
inventory record,
only the records
of bundled
products are used
to determine
availability.

If a master
product is
imported without
its variants, then
the products
specified in the
<variants>
section remain
related to the
master. Other
variants are

If a variant
product is
imported without
its master, the
product remains a
variant.
A variant is
owned by exactly
one master. You
cannot reliably
change this

If a set-product is
imported without its
parent product-set, it
remains a member
of the set.

If a bundled
product is
imported without
its bundle, it
remains a
member of the
bundle.
Deleting a bundle
does not delete
the bundled

import/export

23

unlinked from the


master and
become normal
products.
Deleting a master
product does not
delete the
variants.

ownership from
one master to
another in a
single import
process. You can,
however, release
the relationship
with one import
process and
establish the
relationship with
a subsequent
import process.

products.

inventory

Has a single
inventory record

Does not have an


inventory record.
However, some
legacy variation
masters,
configured before
version 2.10,
have an inventory
record.

Has an inventory
record.
However, some
legacy variation
products,
configured before
version 2.10, do
not have an
inventory record.
In this case
inventory levels
are managed
through the
master product.

The set does not


have an inventory
record, but all the
products in the set
have their own
inventory records.

The product
bundle has an
inventory record
and all products
in the bundle have
inventory records.

options

Options can be
configured and
purchased.

Options are
defined the
variation master,
but only
purchased with
the variation
product.

Options are
defined the
variation master,
but only
purchased with
the variation
product.

Options can be
configured and
purchased for the
product set and/or
for each individual
product in the set.

Options can be
configured and
purchased for the
product bundle
and/or for
products within
the bundle.

pricing

Single price unless


configured for
options. Option
prices are configured
as part of the product
option.

Variation masters
cannot be
purchased.

Separate prices
for all variation
products. Option
prices are
configured as
part of the
product option.

One price for the set


and separate prices
for each of the
products in the set.

One price for the


bundle. Individual
products within
the bundle do not
have prices.

search

If the search
preference Show
Orderable Products
Only is selected, then
only orderable
products show in the

The master
product only
appears in search
results if no
slicing is used. In
this case it uses

The variation
product appears
in the search
results if slicing
is used.

A product set is not


shown in search
results if none if the
set products the
product set is
representing in the

A product bundle
depends on its
availability status
to determine
whether it appears

24

search results.
Otherwise all
products appear in
search results.
Note:
This search
preference
applies to all
other product
types as well.

promotions

Any standard product


can have an
associated promotion.

the information
and images of the
default variation.
The master does
not appear in
search results if
none of its
variants in the
current search
result is
orderable.

Master products
cannot have
promotions, since
master are not
orderable.

Variation
products can
have individual
promotions that
are managed
separately.

current search result


is orderable.

in search results.

A product set cannot


have promotions,
since it is not
orderable, but the
products within it
can have
promotions.

A product bundle
has its own
promotions, but
products within it
cannot.

Assigning Products to a Category


Navigate to: Products and Catalogs> Products> Categories Tab
1.
2.

You must assign a product to a category (that is assigned to a catalog, that is assigned to a site) for the product to be
included on the storefront.
In Business Manager, you can assign products to categories from the product editor and from a category page.
1.
2.
3.
4.

5.

6.
7.

In Business Manager, navigate to Products and Catalogs > Products, then search for and select a product.
Lock the product and click the Categories tab.
The categories that are listed under the Categories tab are already assigned. To assign or deselect categories, click Edit
Categories and then select or deselect categories from the category tree.
If there are no categories (or appropriate categories) listed, click Edit Categories to assign a category. (You can make
multiple category assignments from one page this way.) Using this interface you can:

Search for a category

Expand and contract the category tree

Select one or more categories


Click Apply when you are finished.
Now you can specify which category is used for the product attribute set and which is used for display on the
storefront.
Classification This category defines the attribute set of the product.
This category is the default category used to define the attributes that appear when the product is
Primary
accessed from outside a category, for example, based on a direct search or a product number or ID.
Click a radio button in the Primary column and click Apply.
You can also assign products to a category in the Catalogs module (Products and Catalogs > Catalogs > [Catalog] ).
a) In the Products section, click Assign. A list of all the products in the current catalog appears:
See the Select products page.
b) Select products you want to assign to the category these ways:
Use the check boxes to select specific products and click Select. Click the Select All link to select all of the
products on a page and click Select. You must click Select before navigating to a new page of products. If you
want to select larger groups of products, change the number of products displayed per page by clicking 100 or
1000.

25

Classification vs. Primary Category


The primary and classification categories are used to determine what information is displayed for a product in the storefront. The
classification and primary categories are also used in SEO; to determine the URL and sitemap attributes used for the product.
When selecting classification vs. primary category:

Primary category - the category where you think the consumer searches for the product. This should be a category in
the storefront catalog. This is the category that sets which attributes are used to define the product.

Classification category - in the storefront catalog, this is the category that determines what attributes are displayed for
the product. In the catalog that owns the product, this is the category where you manage the product.
Each product has only one classification category and primary category. However, products can be assigned to additional
categories. If the categories are in the storefront catalog, the products are available for sale in those categories.

Breadcrumbs on the Product Detail Page


The primary category you select for an item determines the breadcrumb for the search result of the product or content detail page.
If no primary category is set for a product, the classification is used to determine the category links. This breadcrumb remains the
same, no matter what category you view the product in.
For example, if a customer searches for boots and selects a man's boot from the results, the breadcrumb for the result should not
point to a category that is too broad, such as shoes, or one that is not applicable, such as women's shoes. The classification you
select determines the attributes shown for the result. If no classification value is set, the attribute value is taken from the primary
category.

Product URLs
The order of precedence for a product item URL is:
1. The product's Site URL attribute. This is referred to elsewhere as the page-specific URL
2. Then the classification category's Site URL attribute.
3. Then the primary category's Site URL attribute.
4. If there are no values supplied for the product's primary or classification category Site URL attribute, the default settings
configured in the default URLs are used.

Sitemap Attributes
The order of precedence for Change Frequency and Priority values are:
1. The page-specific attributes of the item.
2. Then the classification category of the product.
3. Then the primary category of the product.
4. If no category attributes are found, the default settings configured in the catalog feed are used.

Uploading Supplemental Product Data


Navigate to: Products and Catalogs> Import & Export> Import and Export Files > Upload. Catalogs> Import.
1.
2.

Product Data Upload Template and How-To Video: https://xchange.demandware.com/docs/DOC-2035


Utilize completed spreadsheet to upload product attributes.

Product Options
Navigate to: Products and Catalogs> Product Options
1.
2.
3.
4.

If applicable, walk Client thru creating product options. Note: an Object Attribute must exist first if creating a new option.
Options are always purchased with a product and cannot be purchased separately.
Options have their own price and display name, but do not have their own thumbnail images.
Options cannot be searched by the consumer, but are usually visible on the product detail page.

Creating Product Options


Navigate to: Products and Catalogs> Product Options> select catalog> new

26

Currency: select the currency for the product option values. By default, the storefront default locale data is displayed.
Sort by: shows whether options in the storefront are sorted by price or by an explicit order set by the merchant.
Product Attribute Definition: shows the name and ID for the attribute definition that the product option is based on. This
cannot be changed once the product option is created.
Name: click to change the custom name for the product option that appears in the storefront product details page. If no value
is supplied in this field, the platform uses the attribute name defined in the attribute definition. However, if a value is
supplied in the Products - Options page Display Name field, it overrides the value in this field.
Description: click to change the description for this product option. This is not visible in the storefront.
Image: shows the image of this product option that displays in the storefront.
Value Sorting: select the order in which option values are displayed in the storefront: by price or by explicit sorting ID. If
you select Price , options are sorted If you select Explicit , a new column is added to the values added grid, which allows
you to set explicit sorting values.

Grid Columns
Sort: click the up and down arrow to change the position of the sort order when it is displayed in the storefront. You can
also enter a sort position.
ID: shows the unique option value ID.
Product Option ID Extension: shows an extended SKU number for a specific option value. This is included for backward
compatibility only.
Value: shows the product option value name displayed in the storefront.
Price : shows the option price added to base price. If this is an included option, the price is deducted.
Default: choose the option value that is automatically selected when the product is displayed in the storefront.

Assigning Product Options


Products and Catalogs> Products> product> Options> ID
1. Use this page to add options available in the catalog to the product or create new options that are specific to the product.

Search Product Option: displays all of the shared options available for the product.
Product Option ID or Name: enter an ID or name to search on and click Find.

27

Product Option Grid: displays any product options found in the search.
ID - click the ID of the product option to edit it.
Name - displays the name of the product option.
Cancel: click to return to the previous page.

Variation Attributes
Navigate to: Products and Catalogs> Variation Attributes> new
1.

Client can set up variation attributes at this global level and apply to products as necessary at the product level.

Product Attribute Definition: shows the Name (ID) of the product attribute definition that the variation attribute is based
on.
Name: optional label in the storefront if you do not want to use the product attribute definition name. For example, if you
have a product definition attribute whose name is color and you want the attribute to be labeled as colour in the storefront,
you enter the name colour here. If no name is entered the name of the product attribute definition is used.
ID: shows the attribute ID. The attribute ID cannot be changed after the attribute is created. To change the ID you must
recreate the attribute.
Custom Display Name: shows the attribute value display name shown to the customer in the storefront.
Slicing Attribute: shows whether the variation attribute is a slicing attribute.

Creating Product Sets


Navigate to: Products and Catalogs> Product Sets
1.
2.
3.
4.
5.
6.
7.
8.

The Demandware platform allows you to represent a group of products for display on a storefront as a product set, whereby
the customer can purchase the entire set of products one of its elements.
A product set can have its own display attributes, such as name and images, and can be assigned to categories.
Product sets can also have recommendations.
A product set can contain zero, one or many products as well as other product sets. (You may want to create an empty
product set to populate at a later time.)
In the Demandware structure, a product set is owned by a specific catalog (just like a product). A product set can be
assigned to any number of categories. It has a primary category and a classification category.
Products sets can be positioned explicitly in a category, along with other product sets and regular products.
Searchable product set attributes are included in the search index. Rebuild or update the search index to make these changes
available in the storefront.
You can manage product sets via import. A product set can be imported and exported. Product sets are imported as an
element of a catalog import/export.

Use this page to specify the products to be included in the product set.

28

New: Click to add products to the product set. The Product Search page appears.
<< Back to list: Click to return to the previous page.

Product Set Containing Products


Use this view to manage products already assigned to a product set.

Select All: Select all products included in the product set.


Product ID: Shows links to the ID of each product in the product set.
Name: Shows links to the name of each product in the product set.
Catalog: Shows the catalog of each product in the product set.
Status: Shows the status of each product in the product set.
Online
Available/Not Available
Searchable
View: Click to view a product in the storefront.
To view the product set, click the << Back to List button and then the View icon beside the product set.
Sorting: Use the down and up arrows to sort the products as they will appear on the storefront.
New: Click to add new products to the product set.
Delete: Select one or more products and then click to delete them.
<< Back to List: Click to return to the product set list.

Recommendations
Navigate to: Products and Catalogs> Recommendations
1.
2.

Allows client to view all recommendations set up for their catalog.


Can do assignments from this level or at the specific product level.

You can create product recommendations as follows:

29

1.

Navigate to Products and Catalogs > Recommendations or access a product's Recommendations tab through the
Product Editor.

2.

Select the required catalog and Product Recommendations tab.

3.

Click New.

4.
5.

Enter valid product ID of product for which you are creating recommendations or browse for list of products..
Click Next>> and select type of recommendation to create.

Cross-sell
Up-sell
Other

6.

In the SiteGenesis Application, the product is displayed under the Accessories


label.
In the SiteGenesis Application, the product is displayed May We Recommend
list.
In the SiteGenesis Application, the product is displayed in the Features in this
department and Other cool stuff sections (driven by a special rendering template)

From the list, select the product(s) to recommend

30

Price Books
Navigate to: Products and Catalogs> Price Books
When you create or edit a price book, you can view its summary information:
ID: shows the unique ID of the price book.
Name: shows the descriptive name of the price book, which is generally longer and more readable than the ID.
Parent Price Book: shows the name of the price book on which this price book is based. A price book inherits the prices of
its parent, but can override those values as needed.
Enabled: shows if the price book is enabled. You must enable a price book if you want to make it active. A price book can
be active only if it is enabled, assigned to a site, and currently scheduled. A price book must be active to be used in a
storefront.
Yes: the price book can become active, provided it is assigned to a site and is currently scheduled.
No: the price book cannot become active.
Currency: shows the currency for values in the price book. A price book must use the same currency as the site to which it
is assigned. You can assign multiple price books to a site, provided they all use the same currency as the site.
Created: shows the date the price book was created and the date it was last updated.
Edit Price Book Buttons
Delete: click to delete the price book.
Copy to Tab: click to copy the price book into a new workspace.
Save: click to save without exiting. Save and Close: click to save and return to the previous screen.
Close: click to exit the page without saving. Once you close this page, you cannot retrieve your changes.

31

Inventory
Navigate to: Products and Catalogs> Inventory
When you create or edit an inventory book, you can view its summary information:
ID: shows the inventory ID.
Attributes: click to manage the inventory list attributes.
Site Assignments: shows a list of sites assigned to this inventory list.
Records: click to manage the inventory record attributes.
Information Contained in an Inventory Record
Demandware supports inventory records for none, some, or all products sold in a storefront. An inventory record includes
availability information about a product, including:

Initial allocation

Stock level (initial allocations minus sales)

Quantity available for backorder or pre-order

When backorder or pre-order units are expected to arrive

Units available to sell (ATS)

An initial allocation represents a quantity of items made available to sell in the storefront at a particular time. The quantity
currently on hand is called the "stock level". The inventory framework adjusts this quantity downward every time a customer
purchases the product in the storefront.
The difference between the initial allocation and the current stock level is called the turnover. A product can also have a preorder or backorder allocation. The sum of the items currently in-stock plus the quantity available for pre-order or backorder is
referred to as the Available To Sell (ATS) amount.
A merchant can modify or extend the inventory record to contain additional information.

Sitemaps
Navigate to: Products and Catalogs> Catalog Feeds> Sitemaps
1.
2.
3.
4.
5.
6.

Review how to setup up a sitemap for the site but do not configure anything in staging because it will send that to Search
engines.
All setup needs to be done in production.
Sitemaps are XML files that provide search engines (such as Google, Yahoo and MSN) with information about a given Web
site so the crawler can index it more efficiently.
These sitemaps contain the list of all the URLs available for indexing and can provide the search engine with additional
information, such as when a page was last updated, frequency of updates, and the relevance of a page.
The search engine uses this information to construct links to your site and control the ranking of links in its search results.
When entering instances hostname is needs to display exactly like the following www.mysite.com and shouldnt have http://
or / at the beginning or the end.

32

7.

8.

Change frequency numbers are arbitrary and only display the relative importance that 1 section has over the other. Example
if category is .8 and products are .4 we are telling search engines categories are twice as important to our site than products
are.
Example Sitemap: http://ntomaro.inside-na02.dw.demandware.net/sitemap1_default.xml

The main advantages of using sitemaps are:

Improved crawler coverage of your site. With sitemaps you can expose dynamic content that is not referenced by the
static content of the site and that cannot be found by the regular crawling process.

Improved search results. Sitemaps keep your content fresh in search engine indexes. You can avoid out-of-date indexed
content in search results by notifying the search engine of the frequency of changes to any given page, so the search
engine knows when it needs to reindex the page.

Improved understanding of your site. You can examine the reports made available by Google about the visibility of
your pages, statistics on searches resulting in traffic to your site and how the crawler indexes the different pages in the
site.
To optimize your site for search engines, you need to:

Expose your site to them via a robots.txt file.

Give the search engine the URLs to index via an XML sitemap.

Add keywords to your URLs and pages.


Google is an example of a search engine and SiteGenesis is an example of a site. Since Google has almost half the market share
of all search engines, a concentrated effort to optimize the traffic driven from Google makes good business sense. However, since
most search engines use the sitemap.org protocol to define their sitemaps, the sitemaps that you generate for Google can also be
registered and used with other search engines, such as Yahoo or MSN.
For more information, see - http://www.sitemaps.org

Generating Sitemaps
1.
2.
3.
4.

Before generating a sitemap, you must make sure that sitemap attributes have appropriate values. See Creating feeds for
sitemap attributes.
The Demandware storefront generated map contains a link to the homepage of your store in this format:
http://<alias>/on/demandware/Sites-<Sitename>-Site/default/Home-Show.
The existing sitemap is preserved until a new map is successfully generated in the background.
Configure sitemap settings individually for each instance type. You cannot replicate sitemap site preferences between
Staging and Production or Development. You must create the settings and job to generate the sitemap on each instance.

To Generate a Sitemap:
1. In Business Manager, navigate to Products and Catalogs > Catalog Feeds> Sitemaps.
2. Click Enabled to enable sitemap generation.
3. Enter the instance hostname. This must be one of the hostname aliases you have created for the instance.
4. Enter the job settings you want for your sitemap. For more information about these settings, see Sitemap Job Settings.
5. Click Apply to save.
6. Select when you want to run the job. You have two options:

Generate the sitemaps on demand by clicking Run Now. This approach is recommended for sites with infrequent
updates or for updates after major site changes where many page URLs have changed. After you run the job, you
can see the progress of the job in the Job Status section of the page.

Schedule automatic sitemap generation by enabling and configuring the scheduler. This approach is recommended
for sites with daily or more frequent updates to their pages.
7. Run the job.

Creating Feeds for Sitemap Attributes


You can populate sitemap attribute values through the catalog and content import feeds, which allow you to set values for
sitemap attributes of products and content respectively. You can also use a custom import pipeline to create the attributes and
populate them with values.
The sitemap attributes Change Frequency, Priority, and Inclusion Status are represented in the import/export XML schema of
the catalog.xsd and library.xsd.

33

Demandware recommends that you automate the creation of the values for sitemap attributes, so that you do not have to manually
enter them for each category or product. Since content items are rarely imported, attribute values are usually entered manually for
them. See also Manually creating the SEO attribute values.

Manually Creating SEO Attribute Values


While you are developing a strategy for your URLs, you may want to manually create Page URL attribute values to test them.
Instead of using an input feed, you can manually enter these in Business Manager.
To create category URLs manually:
1. In Business Manager, select a site and click Products and Catalogs.
2. Click Catalogs. A list of catalogs appears.
3. Click Edit for the catalog that you want to create URLs for.
4. Click the Category Attributes tab and enter a value for the External Search Attributes attributes.
5. Click Apply to apply the change.
To create product URLs manually:
1. In Business Manager, select a site and click Products and Catalogs > Products > Product .
2. Enter information to search for a product. You can search using wildcards or a specific product ID.
3. Click on a product in the search results to select it.
4. Click the Attributes tab and enter a value for the Search Engine Optimization Support attributes.
5. Click Apply to apply the change.
To create content URLs manually:
1. In Business Manager, select a site and click Content.
2. Click Library Folder and navigate until you can click on the content ID or Name to select the page.
3. On the General tab and enter a value for the External Search attributes.
4. Click Apply to apply the change.

Product Sitemap Attributes


Included Attribute
The Included attribute is set to NONE by default.
You can set the Included attribute to one of the following values:

NONE

1 (YES) - the item is always included in the sitemap, no matter what setting a parent category has.

0 (NO) - the item is always excluded from the sitemap. Demandware recommends setting content snippets, like footers
and headers, to NO.
The order of precedence for Included values is:
1. Classification category.
2. Then the primary category if there is no value for classification category.
3. Then the 'root' category if there are no classification or primary category values.
4. If the root category is also set to NONE, the item is included.
Change Frequency Attribute
The change frequency of a page indicates to search engines how frequently the page might change. However, this does not dictate
how often the search engine crawls the page.
You can set the Change Frequency attribute to one of the following values:

always - use this value to describe documents that change each time they are accessed.

hourly

daily

weekly

monthly

yearly

never - use this value to describe archived URLs.


Note:
If you are using content slotting, make sure that the frequency matches that of the scheduled changes to content.
The order of precedence for Change Frequency and Priority values are:
1. The page-specific attributes of the item.

34

2.
3.
4.

Then the classification category of the product.


Then the primary category of the product.
If no category attributes are found, the default settings configured in the catalog feed are used.

Priority Attribute
You can set the Priority value from 0.0 to 1.0 for one digit past the decimal (0.1, 0.2, etc). This is used by search engines to
determine which pages to crawl first. While this has no effect on the rank of your page in search results, it does ensure that if a
page is important that it is more likely to be present in the search index. If no value is specified then the default priority of the
page is assumed to be .5 by the search engine. Pages with higher values are assumed to be more important and pages with lower
values are assumed to be less important.

Sitemap Job Settings Values


The job settings that you select determine many of the values included in the sitemap you generate. Create the job that generates
the sitemap directly on Production and run it to generate your sitemap. If you want to create a sitemap on Staging, create and run
it on Staging.
Note:
A sitemap created on an instance always includes URLs to products and content on that instance only.
Field

Description

Enabled

Enables/disables the sitemap generation job

Host

Your domain (for example, YourSite.com)

Number of Links per Sitemap

The number of allowed links per sitemap (0 to 50,000). When a file, such
as sitemap1_default.xml, reaches this number of links an additional file is
created, such as sitemap2_default.xml. So if your site has 25,000 links
and you set this to 5,000, five sitemap files are produced. If you set it to
25,00, only one file is produced.

Default Change Frequency for categories

The standard change frequency for categories (always, hourly, daily,


weekly, monthly, yearly, never)

Default Priority for categories

The standard priority for categories (0.0 to 1.0) - assign high priorities to
often-changed pages

Default Change Frequency for products

The standard change frequency for products (always, hourly, daily,


weekly, monthly, yearly, never)

Default Priority for products

The standard priority for products (0.0 to 1.0) - assign high priorities to
often-changed pages

Default Change Frequency for content assets

The standard change frequency for content assets (always, hourly, daily,
weekly, monthly, yearly, never)

Default Priority for contents

The standard priority for content assets (0.0 to 1.0) - assign high priorities
to often-changed areas

Image View Type

From
Every

The view type for the images to be included. Each catalog has its own
view types. The view types in Business Manager are set on the Catalog
Details Page Image Settings Tab. Including the view type adds the image
location, title, and alternative text for the image to the sitemap.
The start date for the sitemap generation job (date and time)
The job interval (minutes, hours, days, weeks, months, years)
Demandware recommends that you schedule this job for low traffic
times, such as the early morning, to avoid unnecessary CPU demands and
memory consumption.

35

Note:
You must specify a host domain, or Google returns a 404 error when you submit your sitemap. If you have not specified
a host domain, an IP address is included in URLs to the sitemaps in your sitemap_index.xml file.

Import & Export


Import

Export

Product Image Upload


Catalogs
Price Books
Inventory Lists

Description
Manage product images. Create a directory structure and upload
product images.

Catalogs
Price Books

Import or export catalogs from or into XML files.


Import or export price books from or into XML files.
Import inventory lists from XML files.

36

Search
Search Indexes
1.
2.
3.
4.
5.
6.
7.

In a Sandbox you cant configure regularly scheduled jobs.


Incremental Index: automatically updates whenever a change is made to the products, content, or search configuration
underlying the index. Changes to the index are available 30 seconds after a merchant makes a change.
Scheduled Index: does the same as incremental but on a set schedule.
If Incremental indexing is disabled for an index, then the index must be rebuilt if changes are made to the products, content,
or search configuration.
Since search performance can be affected if indexes become too fragmented, it is recommended that you rebuild indexes on
a regular basis, even if you enable incremental indexing.
As a best practice, Demandware recommends rebuilding indexes daily during off peak hours.
Heres a thread about best practices on search indexes and page caching:
https://xchange.demandware.com/message/3227#3227

Managing Search Indexes


Navigate to: Search> Search Indexes
1.
2.

Used to monitor index status and manage individual indexes.


This page does not allow you to select scheduled search features if you are on a Cloudbox or a Sandbox

Locale - Indicates the locale for the grouped indexes.

Scheduled Index Rebuild: select the box to allow automatic rebuild of the index on a schedule. You configure the schedule
for the index rebuild on the Index Update Schedule.
Incremental Index Updates: select the box to enable incremental index updates.

Disabled - requires manual or scheduled rebuilds of the index.

Enabled - the Demandware platform automatically checks the indexed data for changes every thirty seconds, including
the search dictionaries, and automatically updates the portion of the index that changed. It is recommended that if you
select this option that you still perform a full index rebuild once a day.

Reindex - check this box if you want to reindex the index.


Status - indicates whether the index is offline or online.
Documents - lists the number of documents being indexed.
Index Size - lists the total index size.

37

Last Update - displays the date the index was last re-indexed.

Managing Search Indexes


1.
2.

Click the name of the index you want to manage. For example, click Product Index to manage the product index.
Click the General tab to view information about the index. Set the language for search stemming. Control index size by
setting the index mode.

Index Settings

Stemmer - This can be set to any available locale. By default it is set to the English locale. Demandware recommends that if
you have a German or Japanese site that you use the associated stemmers for that locale.
German Locale Stemmers
For the German locale, two stemming options are available:
German - algorithmic - This derives German word stems by removing or converting portions of the word into a
standard form. For example: Mode and Modem are both stemmed to mod
Kuechen and Kuchen are both stemmed to kuch
German - dictionary - This uses a stemmer that lemmatizes the term. It derives German word stems based on the
dictionary form of the word. This stemmer is generally recommended for German sites.
Japanese Locale Stemmer
The Japanese locale stemmer is optimized for tokenization of Japanese characters. It supports the tokenization of Kanji,
Katakana, and Hiragana character sets. The correct tokenization by this stemmer cuts down on noise in search results
substantially in comparison to using the English stemmer.

Indexing Mode - set this to one of the following choices:

Compact - Production - Use this to reduce the size of the index. This is recommended for production
instances.

Verbose - Development - Use this to get more information for debugging purposes. This is recommended
for sandbox or staging instances.

Apply - click to save your changes.

3.
4.

Click the Text Relevance tab to get to the Searchable Attributes page. Text relevance boosting factors are now set through
the searchable attributes feature. This feature was replaced with the Searchable Attributes feature in 2.10.4.
Click the Sorting Attributes tab to add sorting attributes that are called directly from a pipeline. Note that this is only
required for sorting attributes that are not used by the sorting rules feature. Adding an attribute here causes this attribute to
be indexed so that it can be used as explicit sort criteria by the Search pipelet. For more information about using the explicit
sorting via the Search pipelet SortBy input parameters, see Using explicit sorting.
Note:
Index size influences the speed of search results, so it is better to index a minimum of attributes.

38

Select Sorting Attribute -Browse (...) or type the name of the attribute you want to sort by and click Add.
Select All - click the box for any attribute you want to reset or delete.
Sorting Attribute - displays the attribute (id) and display name.
Attribute Type - displays whether the attribute is a system or custom attribute.
Value Type - displays the attribute value type.
Reset - click to undo any changes made since opening this page.
Delete - click to delete any checked sorting attributes.

5.

Click the Statistics tab to view information about the elements, fields, and terms indexes. Other indexes besides the product
index may also contain relevant indexing information, such as availability or the size of grams used to offer spelling
suggestions.

6.

Click the Documents tab to view information about the index. Set the language for search stemming. Control index size by
setting the index mode.

Product ID: enter a valid product ID and click Find.


Index Document Grid: displays all the keywords indexed for searchable product attributes.

39

Name - the name of indexed fields


Type - the type of index
Value - the indexed value.

Index Update Schedule


Navigate to: Search> Index Update Schedule
1.
2.

The search index update schedule automatically runs a scheduled job that reindexes all Demandware indexes that have the
Scheduled Index Rebuild enabled on the Search Indexes Page.
Demandware recommends reindexing daily on your production instance to prevent index fragmentation and improve search
efficiency. However, you may want to reindex less often on other instance types.
Note:
Scheduled indexing is available on Staging, Production, and Development instances. Scheduled indexing features are not
available for Cloudboxes or Sandboxes. This is because these instance types do not execute scheduled processes.

Job Status: indicates the job status.


Status: displays either Waiting or Running. Any errors in the job are reported in the standard log files and are not indicated
here.
Last Run: displays the date and time that the indexing job ran in MM/dd/yy hh:mm:ss format. When a job is actually
running, this becomes Since and displays the time the reindexing was started. Next Run: displays the date and time that the
indexing job will next run in MM/dd/yy hh:mm:ss format.
From: select or enter the date and time you want the job to start running.
Every: select or enter how often you want the job to run. You can only schedule an index to be rebuilt once a day at most.
However, you can manually reindex if you need to rebuild the index more often. If you rebuild an index that is dependant on
other indexes, all dependent indexes are rebuilt in the correct order when the index you selected is rebuilt. For information
on index dependencies, see Index Dependencies.
Run Now: click to run the reindexing job immediately.
Apply: click to apply any changes you made to the schedule.
Reset: click to remove any changes and return the page to its original state.

Types of Indexes
1.

Before creating indexes, you must make sure the appropriate search features are enabled in Business Manager using
Search> Search Preferences.

Index Localization
If you have multiple locales defined for your storefront, indexes are created for each locale. A locale-specific search index uses
synonyms, hypernyms, stop words, compound words, and the searchable data defined for that locale. If you configure
incremental indexing and/or scheduled automatic reindexing for an index, that configuration applies to all locales

40

Product Index
For a product to be indexed, it must be searchable, online, and assigned to at least one online category. If a product is assigned to
both online and offline categories, it is still indexed. Only product attributes that are configured as searchable attributes are
indexed. See also Configuring searchable attributes.
Index terms are derived from product data by processing data as follows:
All words in searchable product attributes are stemmed based on the stemmer configured for each index type.
Compound words are split into their parts based on the compound words dictionary
Stop words are removed based on stop word dictionary
Special characters*! ( ) : [ ] { } + ~ ^ ? '* are removed
Product numbers are split into their parts
Synonyms are added for words with German umlauts, i.e. kche, kueche
Note:
Only those price books with the same currency as the site that is being indexed are indexed. For example, if the site's
currency is USD, all EUR prices are not included in the index for the site.

Spelling Index
The spelling index is used to produce "Did you mean" suggestions. The spelling index is compiled using an algorithm and does
not need to be manually configured. However, you must enable the feature on the Search Preferences page in Business Manager.
The spelling index uses the product and content indexes and must be rebuilt after them.

Content Index
The content index is built based on content assets, library folders, and libraries. For a content asset to be indexed, it must be
searchable and online. Content attributes that are configured as searchable are indexed. The content index uses the same
processing rules as the product index to derive index terms.

Redirect Index
The redirect index is built based on search redirects. Redirect terms are not stemmed, resolved with compound words, synonyms,
or otherwise processed.

Synonym Index
The synonym index is built based on synonyms/synonym groups defined for a specific language. All synonyms are stemmed
based on the configured stemmer.

Suggest Index
The suggest index is built based on category names, brand names, and terms added or excluded on the Search Suggestions page
in Business Manager.
All suggestions are converted to appear in lower case, even if their original values include uppercase letters. Suggestions only
appear if there is at least one result associated with the suggestion.
To determine search result counts, a search is executed for each suggestion during indexing, using the current product index. You
must build the product index before building the suggest index in order to get accurate counts.

Availability Index
The availability index is built based on information about product availability that is used to sort and filter search results. This
index relies on a transaction that updates inventory amounts and therefore must be rebuilt regularly, such as once an hour. The
availability index is not replicated from the staging system to the production system. Instead, it is created and updated on the
production system.
Incremental indexing is useful for this index if you have a high sales velocity that requires hourly or more frequent updates of
availability information.
Inventory data is included in the availability index even if no product exists for the inventory record. This decouples availability
updates and data replication so that they are not dependent on each other. You can update the availability index for a new product

41

and when the new product is replicated from Staging to Production, it immediately appears in search results because the related
availability data is already included in the availability index on Production.
The following specific rules apply:
Availability indexer processes inventory records for all existing site products.
Availability indexer processes inventory records if no product exists for it and if the inventory record was created or
modified within the last 5 days.
Availability indexer skips inventory records if no product exists for it and if the inventory records were not created or
modified within the last 5 days. This is to prevent the processing of inventory records that are considered outdated and
obsolete.
If the new product is a master or product set, or is a variant or part of a product set, search result sorting may be
incorrect if the applied sorting rule uses any aggregated availability attributes, such as SKUCoverage or TTOOS (Time
to Out of Stock). This is because the search indexer cannot aggregate data for complex products if it does not have any
information about the product. Once the product data has been replicated, the availability index has been rebuilt, and
the page cache has been refreshed, the sorting will be correct.

Active Data Index


The active data index allows you to include active data attributes collected from the storefront, imported from backend systems,
or calculated in Demandware, which are used when presenting sorting options to customers or for sorting rules for category or
keyword searches. The active data index contains information about product active data such as sales velocity. The daily active
data feed automatically causes this index to rebuild once a day. The index only needs to be manually rebuilt after any import of
custom feeds.

Rebuilding Indexes vs. Incremental Indexing


There are two ways to update an index:
1. Rebuilding the index - updates every search facet available on the storefront. You can rebuild an index manually or
schedule it to be rebuilt daily. Rebuilding indexes requires time and platform resources, and can take anywhere from a
few minutes to several hours, depending on the size of the storefront product data and the complexity of the search
configuration. However, daily index rebuilds are recommended to keep indexes from fragmenting.
2. Incremental indexing - only updates some search features. Index updates are triggered by specific actions in Business
Manager, such as a change to product data and the index is updated in near real-time with the change.
Index definitions can be imported and exported; including whether scheduled updating and incremental updating are enabled.
However, it is not possible to replicate this information, since search indexes are usually configured differently for Staging and
Production instances.

Rebuilding Indexes
If you rebuild an index, all information used by search is updated. This is a complex task and rebuilding indexes can require a
long time, up to hours, for customers with very large data sets. The configuration for each index applies to all locales of that
index. Scheduled indexing automatically rebuilds the full index on a schedule that you configure. Incremental indexing updates
an index for any change made and only updates the part of the index that is changed.
You should expect to rebuild your indexes when updating product or content data. Rebuilding search indexes in Business
Manager are run sequentially, in case a selected index relies on another index. For example, the suggest index relies on a product
index. The rebuild of the dependent index runs once the main index rebuild has finished. For more information on index
dependencies, see Index dependencies.
Note:
Incremental or scheduled indexing is configured in the Business Manager.

1.
2.
3.
4.

In Business Manager, navigate to the Search > Search Indexes page. The Search Indexes page appears.
Select the box for any indexes you want to rebuild.
Click Reindex.
Click to refresh the page. You may not see changes to index status without clicking Refresh.

42

Incremental Indexing
Indexes can be configured to rebuild incrementally, when product or category assignments are updated or on a schedule. If you
enable incremental indexing for an index, then the index is automatically updated whenever a change is made to the products,
content, or search configuration underlying the index. Changes to the index are available 30 seconds after a merchant makes a
change.
Incremental indexing is useful in development for seeing changes to the index immediately, since you do not have to manually
trigger a reindex or wait for the full index to rebuild. Incremental indexing is useful for availability ranking indexes on staging
and production systems.
If incremental indexing is disabled for an index, then the index must be rebuilt if changes are made to the products, content, or
search configuration.
Since search performance can be affected if indexes become too fragmented, it is recommended that you rebuild indexes on a
regular basis, even if you enable incremental indexing. As a best practice, Demandware recommends rebuilding indexes daily.
Data Updated by Incremental Indexing
If incremental indexing is enabled for a specific index, changes to data made in Business Manager or imported into the platform
are detected and the index is updated.
Index

Object indexed

Details of incremental indexing

Product Index

Product

If product attributes, variation assignments, or category assignments are modified, the


index is updated.

Content Index

Content Asset

Index updated when modified, added, or deleted.

Redirect Index

Search Redirect

Index updated when modified, added, or deleted.

Synonym Index

Synonyms,
Hypernyms

Index updated when modified, added, or deleted.

Suggest Index

Search Suggestions

Index updated when modified, added, or deleted.

Availability
Index

Product Inventory
Record

Index updated when modified, added, or deleted.

Activedata
Index

Active Data record

The active data record is usually imported via feed. Changes to products are
identified and cause an update to the active data record if the product was modified
after the latest rebuild of the active data index.

Data Not Updated by Incremental Indexing


In order to allow for high performance in incremental indexing, there are a number of objects that are not updated when they are
modified, added, or deleted. These objects are only updated in the search index when a full index rebuild is performed.
Data

Details of incremental indexing

Prices and Price book site assignments Prices and pricebook site assignments are not updated.
Catalogs

Catalog structure and catalog site assignments are not updated.

Search refinement definitions

Search refinement definitions are not updated.

Searchable attributes

Searchable attributes are not updated.

Index settings

Index settings are not updated.

Tips and Tricks

43

If you plan to import many product and/or category structure changes, Demandware recommends that you turn off incremental
indexing and rebuild the product index at the end of the import, as this is less costly to system performance.
The incremental indexing updates indexes as soon as the first changes are available from an import. Demandware recommends
that import pipelines configure imports in a single transaction so that all changes are visible at once. This ensures that no partial
catalog updates are published into an index.

Index Dependencies
If you change your search configuration, you must reindex the appropriate index to see the changes in your storefront.
When you configure or
change:

You must reindex:

Active data

Activedata index

Availability information

Availability index

Common phrases

Product index, Content index

Compound words

Product index, Content index

Content attributes

Content index, Spelling index, Suggest


index

Hypernym dictionary

Synonym index

Product attributes

Product index, Spelling index, Suggest


index

Search redirects

Redirect index

Search suggestions

Suggest index

Stop words

Product index, Content index

Synonym dictionary

Synonym index

If more than one index is selected for reindexing, the search indexes are rebuilt in the order they are listed in the Business
Manager Search > Search Indexes page. This is because some search indexes rely on other indexes as input and so must be
rebuilt in the correct order.
For example, the suggest index relies on a product index. The rebuild of the dependent index runs once the main index rebuild
has finished. If you choose to reindex multiple indexes separately, make sure to run the reindexing in the order that the indexes
are listed in order to make sure that you see the correct changes in your storefront.

Query Processing Overview


Once indexes are created, the storefront must include the controls that access a search pipeline that uses the indexes. You can
create your own pipeline for processing search queries or use the Search pipeline provided in the SiteGenesis Application. The
Search pipeline allows configuration of recursive search, paging models, and error handling, among other options. You can
extend the Search pipeline to include any additional logic you want for query processing.
This section describes the functionality used in the SiteGenesis Application as an example of how you can implement search in
your site.

44

The storefront includes a keyword search box and category navigation links, as you can see in the following picture of the
SiteGenesis Application.

When a customer clicks a category link, a query is generated against the category and submitted to the Search pipeline. When a
customer enters a search term, this also generates a query that is submitted to the Search pipeline.
The Search pipeline processes the query and accesses the index files and ranking criteria. The Search pipeline returns the results
to the storefront.

If the Search pipeline finds a merchant-defined redirect, it returns the page specified in the redirect definition. If no redirect is
found and search results are found, it returns the search results. By default, in the SiteGenesis Application, if both products and
contents are found, the product search results are displayed, with a link to the content search results. The following graphic shows
how content is displayed in the SiteGenesis Application search results. You can see this link by searching on "customer support"
in SiteGenesis.

In the SiteGenesis Application, if no results are found, the nohits.isml template checks for a spelling suggestion. If one exists, it
displays a "Did you mean?" message. If there are no spelling suggestions, then it displays a message indicating that there are no
results. You can change the spelling suggestion settings so that the message for no results is never shown, or so that only
reasonable spelling suggestions are shown.
Configurable querying features include:

Search redirects - the merchant can redirect searches for a specific term to a landing page or category page, rather than
performing a product search. For example, if a customer searches for "customer service" they can be directed to a
customer service page or if they search for "jobs" they can be directed to a career opportunities page.

Search refinements - the merchant can configure a refinement bar that allows customers to refine results based on an
attribute. For example, they may want to only see items in red or with a specific size.

Orderable Products Only - this setting excludes un-orderable products (having an inventory record with ATS=0 )
from search results.

45

Availability Low Ranking Threshold - the percentage of availability from which products are to be ranked lower and
pushed to the end of search results.

Searchable Attributes
Navigate to: Search> Searchable Attributes
1.

2.

3.

4.
5.

Determine which search attributes they want to include for products.


Typical Product attributes to start with include:

ID (ID)

Brand (brand)

Product Name (Product)

Display Name (Category)

Consider description as an indexable, but better to set boost factor lower to avoid excess noise.
Determine search attributes for content. Typical content attributes to start with include:

Body (custom.body)

Description (description)

Name (name)
Boost Factor considerations

is the default and does not change the order of default search results

1.01-100.00 increases the importance of the field in search results. Generally, however, DW does not recommend
boosts higher than 5.00

.01-.99 reduces the impact in the search results.


Youll need to re-index the Product and Content index after updating searchable attributes.
You can export and import searchable attributes as part of an index definition file.

Use this page to set which attributes are indexed and searchable. Searchable attributes are site-specific.

Product Index Attributes

New: click to add a new searchable attribute. Note: the attribute must already exist on the platform.
Attribute: click in the field and select an attribute from the list of attributes. Attributes are listed by name with the attribute
ID in parentheses. Attributes with a data type that is not suitable for a search attribute are not included in the list.
Object Type: displays the object type of the selected attribute.

46

Attribute Type: displays the data type of the selected attribute. Attributes with boolean, email, date, or date + time data
types are not available because they are not suitable for search queries.
Boost Factor: click in the field and enter a boost factor.
Remove: click to remove the searchable attribute.

Section Controls: Use these controls to page through selected attributes and refresh your view.

Content Index Attributes

New: click to add a new searchable attribute. Note: the attribute must already exist on the platform.
Attribute: click in the field and select an attribute from the list of attributes. Attributes are listed by name with the attribute
ID in parentheses.
Object Type: Displays the object type of the selected attribute. Attribute Type: Displays the data type of the selected
attribute.
Boost Factor: click in the field and enter a boost factor.
Remove: click to remove the searchable attribute.
Section Controls: Use these controls to page through selected attributes and refresh your view.

Stopword Dictionary
Navigate to: Search> Stopword Dictionary
1.
2.

3.
4.
5.
6.

Stopwords are terms that are ignored/not indexed by the search engine because they are too common to drive meaningful
search results. This has a significant effect on the size of the index and the efficiency of the search result.
Example:
a. a is a stopword: a dress returns 39 results
b. a is NOT a stopword: a dress returns 6 result
Helps when there are articles in front of specific words within a long description.
You can set Clients stopwords with whats in base SG which are: a, an, and, are, as, at, be, but, by, for, if, in, into, is, it, no,
not, of, on, or, s, such, t, that, the, their, then, there, these, they, this, to, was, will, with, x
Use groups to create groupings that are specific to, say, holidays, seasonality, special events.
You can export and import stopwords as part of an index definition file.

Synonym Dictionary
Navigate to: Search> Synonym Dictionary
1.
2.
3.

4.
5.
6.

Search synonyms support searching for one term returns the results for multiple variations on an item. For example, you
might want GPS or Global Positioning System to return the same set of results.
You might also want multiple terms to resolve to a single search. For example, you might want "iPod" and "MP3 player" to
resolve to the same search for music players.
Example: dresses, dress, -dress shirts, -shirts
a. Included as synonyms: 39 results
b. Not Included as synonyms: 46 results (picks up dress shirts as well)
Can also be used for frequently misspelled words: Color, colors, colour, colours
Youll need to re-index the synonym index after updating.
You can export and import as part of an index definition file.

Compound Word Dictionary


Navigate to: Search> Compound Word Dictionary
1.

Entered as compound words to allow single or two word terms to be used interchangeably and to provide the exact same
search results
a. No compound word: back pack- 5 results; backpack 0 results
Added compound word back-back

47

2.
3.
4.
5.
6.
7.
8.
9.

b. back pack - 5 results; backpack 5 results


The order in which compound words are processed is designed to let the most specific rule to override less specific rules.
Compound words without wildcards are processed first, from the rules with the smallest number of words to the largest.
After this compound words with wildcards are processed, from the smallest to largest number of words in the rule.
If a compound word appears in a search phrase as a single term, it is automatically split. Each part of the split word is treated
as a separate search term.
Unlike synonyms, compound words must be entered exactly. For example, singular and plural compound words must be
entered separately.
Multi-word search terms can be configured as either compound words or common phrases. For example, "t-shirt" is usually
configured as a compound word and "x-mas" is usually configured as a common phrase.
Compound words are not necessarily hyphenated when the customer searches for them. Hyphens are only used when
configuring the term so that the platform can recognize them.
The difference between compound words and common phrases is how they are processed.
You can export and import as part of an index definition file.

Simple Compound Words


A simple compound word must include a hyphen

and there must be more than one character on each side of the hyphen.

The following are valid compound word definitions:


work-shirt , ice-cream
The following definitions result in only the term after the hyphen being searched:
t-shirt , x-mas, 1-trig

Using Wildcards
A compound word definition can only contain one wildcard. The wildcard must have at least three other characters with it: a
hyphen and two characters.
The following are valid compound word definitions:
*-kleid , herren-* , herren-*-hose
The following definitions are invalid:
* , *-* , *-herren-* herren-*-*

Using Phrases
Compound word phrases are enclosed in quotes and require that both terms be found in each searchable attribute. Wildcards are
not allowed in search phrases. Phrases must include a hyphen to be valid.
For example, if you configure "work-shirt" then both work and shirt must both be found in a searchable attribute for the product
to be returned as a search result. The following are valid compound word definitions:
"cheese-cake" , "digital-camera"
The following definitions are invalid:
"ice cream" , "*-shirt"

Using Synonyms with Compound Words


Once a compound word is split into its component parts, any synonyms configured for each individual term apply.
For example, if the following is true:
herrenhose is a German compound word.
maennerhose is not a German compound word
herren and maenner are synonyms
*-hose is specified as a compound word ruleThen any of the following user searches:
Maennerhose
Herrenhose
Hose Herren
Maenner-Hose
Return the following products:

48

"Hose fuer Maenner"


"Hose fuer Herren"
"Herrenhose"
"Maennerhose"

Search Suggestions
Navigate to: Search> Search Suggestions
1.

When a customer starts to enter a search term, they are offered a list of up to ten possible completions of the query. The list
of terms is updated with each letter they enter into the search box. If the customer selects a suggestion, it is used in the
search query.
2. Search suggestions always appear in lower case to avoid duplicates based on capitalization. The case in which the search
term is entered does not affect the suggestions that appear.
3. If both single and plural values are added when creating suggestions, the single value is treated as a duplicate and only the
plural form of the suggestion appears in the storefront. For example, even if you create blouses and blouse as search
suggestions, only blouses appears as a search suggestion. The exception to this is if the plural form of the word has a
different stem. For example, scarf and scarves both appear. However, if only the singular form is added as a suggestion, it
appears in the singular.
4. All characters are retained from category names for search suggestions, including hyphens and ampersands.
5. The full name of categories and brands always appears in the search suggestion.
6. Can include/exclude search terms
7. Beside each search term, the customer sees the hit count for the search term on your site.
8. Suggestions are sorted by hit count. The hit count indicates the number of products or articles that search has found in the
storefront.
9. Enabling search suggestions: Search> Search Preference> enable
10. Youll need to re-index the suggest index after updating. Once built, you can review the search suggestions included in the
suggest index by opening the Documents tab of the suggest index. This tab lists all the suggestions derived from category
names, product brands and your custom suggestions, along with the calculated hit counts a particular suggestion will drive.
11. You can export and import as part of an index definition file.

Search Suggestions

Demandware automatically includes the following in the Suggest index:

all brand names for all products in the storefront catalog

all display names of all categories from the site's storefront catalog
In addition, you can also add terms or prevent terms from being suggested. For example, if you wanted to add fringe as a
suggestion for a new line of clothing. Alternatively, if you do not want the term Adult Videos suggested to the customer, adding it
to the blacklist prevents it from appearing as a suggestion.
German umlaut and eszett characters ( , ) and standard replacement characters (ue, ss) can be entered by the user. Search
suggestions appear as they are stored in the product catalog. For example, whether you enter trger or traeger, you see
trgertops and trger-tops as suggestions for both.

Search Suggestion Limitations


For optimal performance, Demandware has placed some limitations on the terms included in the suggestion index:

Suggestions that do not lead to results are not included in the suggest index.

Query terms with more than fifty characters are not included in the suggest index.

49

When adding custom search suggestions, the term must appear in indexed catalog data. Search suggestions for indexed
content data are currently not supported.

Category Name Exclusions


Navigate to: Search> Category Name Exclusions
1.

2.
3.

4.
5.
6.

Category names that are excluded are not indexed as keywords for the product and are not included in search phrase
suggestions. This is generally useful for combination categories that have subcategories with very distinct products. For
example, if your storefront has a 'Boy & Girl' category and the customer searches for boy , you do not want girl items to be
included in the search result because of the 'Boy & Girl' category name that is inherited by all products in that catalog tree.
Do not exclude categories if they contain products that are not assigned to subcategories or additional categories that can be
indexed.
There may also be combination categories that you do not want to exclude, such as ipod & MP3 player where you want
related products to appear. For example, if a customer searches for ipod, you may want lower cost MP3 player products to
also appear in the search.
The list of category names in a group must be delimited by comma. If a category name contains a comma, it must be
escaped with '\', for example example 'Consoles\, Games and more'.
If the category does not exist in the default locale, set the Locale field before clicking Find.
You can export and import as part of an index definition file. Negative synonyms keep them out.

Hypernym Dictionary
Navigate to: Search> Hypernym Dictionary
1.

2.
3.
4.

Configure the storefront search so that searching for a term returns the results for a number of other terms, but searching for
those terms only returns their own results. For example, you might want a search for jeans to return results for bootcut,
skinny, and wide leg jeans, but not have a search on any of the individual terms return only their own results.
Each hypo- and hypernym must not be defined with more than four words. Multi-word phrase
Configure hypernyms and hyponyms in Business Manager before building the synonym index.
You can export and import as part of an index definition file.

In the Keyword field, search to see if the words you want to include as a hyponym or hypernym are already included in a
synonym group. Words can be included in more than one hyponym group. However, the system searches for all hypernyms
that the word is a hyponym for. Since hypernyms are usually broad terms, this can lead to large numbers of irrelevant search
results.
In the Locale list, select the local for the hypernyms to be applied. You can create a separate hypernym for different locales.
In the Hyponym (the special term) field, enter a single term. To add multiple terms, add additional hyponyms that point to
the same Hypernym.
Click Apply to save the hypernyms you created.

Common Phrase Dictionary


Navigate to: Search> Common Phrase Dictionary
1.

Common phrases are search phrases of two up to 5 words separated by spaces that should be searched as a whole and not as
separate words, such as 'bed in a bag', 'sleeping bag' or 'tank top'.

50

2.

You can export and import as part of an index definition file.

Keyword: enter search term to see if a common phrase was already configured that includes that term. This prevents the
accidental creation of duplicate entries.
Locale: select the locale that you want to create or edit common phrases for. You only see the common phrases for the
locale you have selected in the dialog.
Select All: select any items and then click Reset or Delete.
Exact Match: select one of the following options:

Exact Match - If you search on the exact phrase, only products that include the exact phrase are returned. The exact
phrase is all the words in the phrase in the same order and adjacent to one another. Search queries that include terms
from the common phrase do not return any of the products that contain the common phrase. For example, if table
lamps is an common phrase with exact match, then searching on table lamp returns only table lamps. Searching on
table, lamp, or lamp table does not return table lamps.

Last Word Match - if you search on the last word in the phrase or the exact phrase, products including the exact
phrase are returned. For example, if table lamps is a common phrase with last word match, then searching on table
lamp returns only table lamps. Unlike exact match, however, searching on lamps returns all types of lamps, including
table lamps.
New Phrase: Enter a new common phrase and click Apply. If you do not click Apply your changes are not saved.
Apply - click to apply any changes made since opening this page.
Reset - click to undo any changes made since opening this page.
Delete - click to delete any checked items.

Creating Search Driven Redirects


Navigate to: Search> Search Driven Redirects
1.

2.
3.
4.

There are 5 types of redirects:


a) Redirect to Pipeline
b) Show Product Page
c) Show Category Page
d) Show Content Page
e) Redirect to URL
Use pipeline when theres a path in the breadcrumb.
The SiteGenesis Application always searches the Search Redirect index before performing a catalog and content search.
Merchants must adjust their storefront search pipelines in the same way to benefit from this functionality.
You can export and import as part of an index definition file.

Use this page to maintain localized search terms, online state and valid periods and redirect actions.

51

Simple - click to perform an advanced search for a redirect. Click to hide advance search options. Simple search options
include the following:
Keyword or Target: enter the keyword you expect a customer to search on or the name of the page, URL, or pipeline you
want to redirect the customer to.
Advanced - click to perform an advanced search for a redirect. Advanced search options include the following:

Keyword: enter the search keyword you expect a customer to enter when searching for a product.

Action: select one of the available redirect actions.

Target: enter part or all of the target. The target can be a pipeline name, a content asset ID, or a URL.

Status: select search redirects that have online or offline status.


Find - click to find redirects.
Redirect Grid - displays the following information about search redirects:
Search keyword s: displays the keywords that trigger a redirect when a customer enters them in the storefront search box.
Action: displays the action type for the redirect. Actions include:

Show Product Page - redirects the customer to a specific product detail page.

Show Category Page - redirects the customer to a category page.

Show Content Page - redirects the customer to a specific content asset.

Redirect to URL - redirects the customer to a specific URL, such as a microsite or alternate language site.

Redirect to Pipeline - redirects the customer to a page rendered by a specific pipeline.


Target: displays the name of the page, URL, or pipeline that is the target of the redirect.
Status: displays whether the redirect is online or offline. If the redirect is offline, it is not used by the platform.
Edit - click to edit the redirect.
New - click to create a new redirect.
Delete - click to delete any redirects whose box is checked.

Creating Sorting Rules


Navigate to: Search> Sorting Rules
1.

2.
3.

Typically start with the following which you can pull out of your sandbox:
a) Best-matches
b) Price High to Low
c) Price Low to High
d) Product Name A Z
e) Product Name Z A
Most popular and best sellers are based on active merchandising data so wont kick in until after launch, but you can help
set them up for future use.
Additional documentation - Best Practices for Searchandising Sorting Rules White Paper:
https://xchange.demandware.com/docs/DOC-5832

52

New: click to create a new rule.


Copy: click to copy the rule that is currently highlighted in the window below.
Dynamic Attributes: click to create a new dynamic attribute.
ID: Displays the IDs for all sorting rules available in the storefront.
Description: Displays the descriptions of all sorting rules available in the storefront.

Remove: click to remove the sorting rule. Be careful when using this control, since this cannot be undone.
Section Controls: Use these controls to page through selected attributes and refresh your view.

Sorting Attributes
For each sorting rule, you can define sorting attributes.

Add - click add to add an attribute to the list. Select an attribute to sort by from the drop-down list. The list is organized by
the following attribute types:
Standard attributes: Standard attributes allow you to intervene in sorting using explicit placement of search results for
categories, based on specific attributes intended for search ranking, or using availability.
Product attributes: You can select any attribute of the product system object to use in a sorting rule, as long as it is
not a Password, Image, Text, Html, or Email type of attribute. Product attributes do not have to be flagged as online or
searchable to be used in sorting rules.
Active Data attributes: These attributes require the active merchandising feature to be implemented for the attribute
data to be useful in sorting. These attributes include data collected from orders on your production system and
information collected from storefront pages.
Availability model attributes: These attributes require the availability, active merchandising, or both features to be
implemented for the attribute data to be useful in sorting.
Dynamic attributes: Dynamic attributes are custom combination of attributes that are created by the merchant.
Attribute: Displays the name and ID of the attribute. All system attributes are listed as Name ( type.ID ). All custom
attributes are listed as Name ( type. custom. ID ). Since it is possible to have multiple attributes with the same name, check
to make sure you are selecting the correct attribute type and ID in addition to the correct name.
Text Relevancy: select whether you want to combine text relevance with the attribute score using the following options:
Yes: Use a 50%-50% weighting between the selected attribute and the text relevance score. The text relevance score
(between 0 and 1) is multiplied by the score of the attribute selected for the rule. This is appropriate when there are
multiple items that may have the same score from the sorting attribute or when it will not be readily apparent to the user

53

that more than just the selected attribute is being used for sorting. For example, sorting by recommendation or
bestselling.
No: Only the score for the attribute selected for the rule is used. This is appropriate when it is unlikely that multiple
items will have the same score or when the customer expects the results to only be sorted by the selected attribute. For
example, alphabetical and price sorts are expected to be sorted only by the selected attribute.
N/A: The selected attribute cannot use text relevancy.
Direction: click to add an attribute to the list.

Ascending: Sorts the results from top to bottom in the search results from the lowest value to the highest (A-Z, 1-100).

Descending: Sorts the results from top to bottom in the search results from the highest value to the lowest (Z-A, 1001).
Remove - click to remove the attribute from the sorting rule.

Sorting Preview

Select a category: select a category to view results for a category navigation. To preview a keyword search, select the All
Categories option.
Enter a search term: enter a search phrase to preview the results from this search.
Preview: click to preview results for the selected category and search term.
Clear: click to clear the current result set.

Product & Customer Active Data Attributes


Product
Attribute

Description

Type

Sample
Value

Availability

Ratio between inventory allocation and current


stock level

Real-Time

Availability Rank

Indicates in-stock or out-of-stock

SKU Coverage

Ratio between total number of variants and


their availability status

Real-Time

0.9

N/A

Time to out of
Stock (TTOOS)

Estimated time in hours before products goes


out of stock

Real-Time

14

N/A

Return Rate

The percentage of orders that result in the


product being returned

Imported

4.50%

N/A

Cost Price

The cost of goods sold for the product

Imported

10.19

N/A

Average Sales
Price

The average sales price for the product in


orders, after discounts

Near-Time

13.99

Day, Week,
Month, Year

Impressions

The number of times the product was shown


on a search results page, was recommended to
a customer, or was shown as a member of a

Near-Time

17774

Day, Week,
Month, Year

0.59

Period
N/A

1 or 0

54

product set
Views

The number of times the product was shown


on a product details page

Near-Time

564

Day, Week,
Month, Year

Revenue

The total revenue for the product

Near-Time

2244.66

Day, Week,
Month, Year

Units

The number of units of the product ordered

Near-Time

456

Day, Week,
Month, Year

Conversion

The percentage of total visits that resulted in


an order of the product

Near-Time

4.70%

Day, Week,
Month, Year

Days Available

Real-Time

Average Gross
Margin Value

The number of days the product since the


product became available, based on the
imported "Available Date" for the product. If
no available date has been imported, the date
the product was created in Demandware is
used
The average sales price minus the cost of
goods sold for the product

Near-Time

3.8

Day, Week,
Month, Year

Average Gross
Margin Percent

The average gross margin value divided by the


average sales price for the product

Near-Time

27.20%

Day, Week,
Month, Year

Look To Book
Ratio

The number of orders for the product divided


by the number of visits in which the product
was viewed
The number of units sold divided by the
number of hours

Near-Time

5.00%

Day, Week,
Month, Year

Near-Time

30.8

Day, Week,
Month, Year

Sales Velocity

Customer Attributes
Attribute

Description

Type

Sample Value

Period

Visits

The number of times the customer


visited the site

Near-Time

Week, Month,
Year

Orders

The number of orders placed by the


customer
The number of return "orders" placed
by the customer
The amount of negative revenue for
the customer due to returns
The amount of revenue for the
customer minus the return value
The amount of revenue for the
customer divided by the number of
orders
The discount amount on customer
orders applied for implicit (i.e. not
coupon) promotions
The discount amount on customer
orders applied for coupon promotions

Near-Time

21

Lifetime

Near-Time

Lifetime

Near-Time

9.99

Lifetime

Near-Time

2387.89

Near-Time

127.51

Month,
Lifetime
Lifetime

Near-Time

188.45

Lifetime

Near-Time

90

Lifetime

The number of customer orders with a


source code applied
The number of product units marked

Near-Time

Lifetime

Near-Time

Lifetime

Returns
Return Value
Order Value
Average Order
Value
Discount
Value without
Coupon
Discount
Value with
Coupon
Source Code
Orders
Gift Units

55

as "gift" on customer orders


Gift Orders

Top
Categories
Ordered
Ordered
Products
Viewed
Products
Abandoned
Products

The number of customer orders with


one or more product units marked as
"gift"
The (up to) 3 categories from which
the customer has purchased the most
product units
The products ordered by the customer

Near-Time

Lifetime

Near-Time

Video,
Audio,Top
Sellers
S123,S456,S7
89
S123,S456,S7
89,S999,S888,
S777
S999,S888

Lifetime

Near-Time

The products viewed by the customer

Near-Time

The products added to carts by the


customer for which an order was not
placed

Near-Time

Lifetime
Month

Month

Defining Storefront Sorting Options


Navigate to: Search> Storefront Sorting Options
1.
2.
3.

This is where you set sorting options for the storefront.


Show the Client how to control the default sorting rule at the category level.
You can create up to 100 sorting options.

To create a storefront sorting option:

Select a language for the storefront option. If you do not have sites in different languages, select Default or the locale for the
current site.
Enter a unique ID for the Sorting option. This ID is only used internally and in Demandware to identify the sorting option.
For example, you may want to distinguish between two rules with the same display name "Hot sellers" that are intended for
different categories and so have different IDs "womensHotSellers" and "mensHotSellers".
Select a sorting rule from the drop-down list.
Enter a description for the storefront option. This description is optional and can be used to show additional help text to the
customer.
Click Apply at the bottom of the screen.
Note:
You must click Apply at the bottom of the screen to save your changes. Clicking Apply for the Select Language option does
not save changes.

56

Localizing Storefront Sorting Options


To localize a storefront sorting option:

On the Storefront Sorting Options page, use the Select language drop-down to select the language for a site and click the
Apply button to the right.

Enter the other information for the sorting option and click Apply at the bottom of the page.

Select another language from the Select language drop-down and click the Apply button to the right. The values for the
Display Name and Description are cleared for this language.

Enter the display name and description for the selected language and click Apply at the bottom of the page.

Configuring Search Preferences


Navigate to: Search> Search Preferences
1.
2.

The search preferences you configure control the behavior of the search feature for your instance.
These preferences can be exported.

Set Availability Settings


a) Set Show Orderable Products Only to Enabled if you want to hide any products that are not available.
You can also set this at the product level.
See Show orderable products only at the product level.
b)

Set the Availability Low Ranking Threshold to indicate the percentage of availability from which products are to be
ranked lower and pushed to the end of the search results. (For example, 0.3 indicates that all products with an
availability of 0.3 and below should be pushed to the end of the search result.)
Ranking is done at query time instead of indexing time. Thus, a change to a rule or threshold takes effect
immediately. The results are not sorted by availability; products are shifted via additional sorting criteria. To
control the priority of Availability Ranking and any other sorting criteria in the storefront, use the Sorting
Configuration to change the predefined order of possible sorting conditions

Spell Checking Settings


a) Set Spell Checking to Enabled if you want the customer to see alternative spelling suggestions. This is especially
helpful for unusual or non-phonetic brand names. If you do not want to enable spell checking, you do not need to
configure the other spell check settings.
b) Set Spell Checking Index Threshold: to the percentage of terms to use in spelling suggestions. For example, if you
want the top 30% of most frequent words to be used, set this to .3.
c) Set Spell Checking Smooth Accuracy: to a percentage indicating how closely matched suggestions must be to the
search phrase.
d) Set Spell Checking Strict Accuracy: to a percentage indicating how closely matched suggestions must be to the
search phrase when search results are found.
Search Suggestion Settings
a) Set Search Suggestions to Enabled to display search suggestions to the customer when they enter a search term.
Compatibility Settings
a) This setting is used to control whether Boolean and Date search refinements are returned by the Scripting API
Set Spelling Settings
a) Spelling suggestions are usually offered if the customer has not retrieved any results in their search or if they indicated
that the search results were not what they were looking for. It is also possible to offer suggestions for search results.

57

If a search query yields no results, the Demandware spellchecker checks the search query to detect misspellings that could
cause empty search results. If it identifies an alternate spelling, it asks the customer "Did you mean: (alternative spelling)?".
Customers can click the suggested spelling to launch a new search for that term.
You can set an accuracy parameter to increase the chances for more results, but this may product less accurate results.
Increasing the accuracy of the spellchecker may decrease the chance for a result, but provides more accurate results. A
suggestion can also be provided if a search query leads to results; this can be controlled with the "Spell Checking Strict
Accuracy" value. For more information on these settings, see the "Enabling Spell Checking" topic, below.
Implementation of suggested spell correction enables online retailers to provide a better user search experience and increase
visibility of the product catalog. This should improve search conversion and average order value as users find relevant
products more easily.
Demandware's search engine creates an "n-gram" based spelling index. N-gram refers to a set of n characters which are part
of the search term(s) entered. Each string from the user search query is transformed into a set of n-grams, and Demandware
performs a search against the spelling index with the relevant n-grams. Short words have 1-grams and 2-grams, whereas
longer words have 3-grams and 4-grams.
The following is an example n-gram table for the word "software" (not a complete list):

Gram-type

Value

Id

Software

end3

Are

end4

Ware

gram3

Sof

gram3

Oft

gram3

Ftw

gram4

Soft

gram4

Ftwa

gram4

Ware

If the user inputs the search query "sofware", the result of this query could be the word "software" because its n-grams match the
n-grams of "sofware" best. This is what would appear on the browser. The following is another example of a no results page.

58

There are several features you can configure that control the behavior of the spelling suggestions feature.

Spell Checking Enabled (Enabled/Disabled) - Completely disable or enable the spellchecking feature; changing this
selection requires a rebuild of the spelling indexes to take effect.

Spell Checking Index Threshold (0..100% expressed in decimal form, 0.0 to 1.0) - Percentage of the most frequent
words that should be indexed in the spell correction index. This percentage leads to a minimum required word frequency.
Best practice is 0.3. This means that 70% of the most frequent words are indexed.

Spell Checking Smooth Accuracy (0..100% expressed in decimal form, 0.0 to 1.0) - Spellchecker accuracy used in case
no search results are found. Increasing this accuracy may result in fewer, but more accurate, suggestions. Decreasing this
accuracy may result in more, but less accurate, results. Best practice is neutral, 0.5.

Spell Checking Strict Accuracy (0..100% expressed in decimal form, 0.0 to 1.0) - Spellchecker accuracy in case search
results are found. Best practice is high, 0.9.

Import & Export


Import
Search Settings
Sorting Rules

Export
Search Settings
Sorting Rules

Description
Import or export search settings from or into XML files.
Import or export sorting rules and storefront sorting options from or into
XML files.

59

Online Marketing
Promotions
Navigate to: Online Marketing> Promotions
1. Create the clients go live promotions.
2. How to doc - Where promo messaging displays in this area (https://xchange.demandware.com/docs/DOC-13246)

Promotion Details

Select Language: select a language from the dropdown and click Apply.
ID: enter a unique promotion ID. This is the internal identifier.
Name: enter a promotion name (appears in the shopping cart).
Enabled: select Edit to enable the promotion. The promotion is not available to customers unless Enabled is Yes (and the
campaign or AB test is also enabled).
Searchable: select Yes to make the promotion searchable. This is for product promotions. You must also change you
application to use this feature. See APIs for Get promotion products.
Callout Message: enter a callout message (appears on the product detail page). Click the HTML Editor link to edit the
callout message in the HTML editor.
Promotion Details: enter the promotion details. Click the HTML Editor link to edit the promotion details in the HTML
editor.
Image: click Select to select the image you want associate with the promotion (appears in the storefront, if supported by
storefront).
Compatibility: select compatibility settings.
Exclusivity: select a (mandatory) exclusivity type.
No: can be combined with any promotion.
CLASS: cannot be combined with promotions of the same class.
GLOBAL: cannot be combined with any promotion. (Use Global for the best offer or the one you want to
supersede all others.)
Apply: click to save the new promotion. The Promotion Rule section appears. See below.
Copy: click to copy the current promotion to another promotion.
Delete: click to delete the current promotion.
<<Back to List: click to return to the Promotion List page.

Promotion Rule
This section is where you configure or modify the rules for this promotion.

60

Promotion Class: select a promotion class.


Product
Order
Shipping
Type: select a type from the dropdown.

For this promotion class ...

You can select ...

Product

Without qualifying products


With amount of qualifying products
With number of qualifying products
With combination of qualifying products
Buy X / Get Y
Buy X and Y / Get Z
Buy X For Total

Order

With amount of qualifying products

Shipping

With amount of shipment qualifying products


With number of shipment qualifying products

Discount: fields vary by promotion class and type. Enter the discount amount (for example, 20), and then select the
discount.

For this discount type ...

You can select ...

Without qualifying products

Percent Off, Amount Off, Fixed Price, Price from Pricebook, Bonus Product(s),
Choice of Bonus Product(s) (see Choice of bonus products discount details below),
Fixed Price Shipping, Free Shipping

With amount of qualifying products

Percent Off, Amount Off, Fixed Price, Price from Pricebook, Bonus Product(s),
Choice of Bonus Product(s) (see Choice of bonus products discount details below),
Fixed Price Shipping, Free Shipping

With number of qualifying products

Percent Off, Amount Off, Fixed Price, Price from Pricebook, Bonus Product(s),
Choice of Bonus Product(s), Fixed Price Shipping, Free Shipping

With combination of qualifying products

Percent Off, Amount Off, Fixed Price, Total Price, Price from Pricebook, Fixed
Price Shipping, Free Shipping

Buy X / Get Y

Percent Off, Amount Off, Fixed Price, Price from Pricebook, Free

Buy X and Y / Get Z

Percent Off, Amount Off, Fixed Price, Price from Pricebook, Free

Buy X For Total

Buy N for total price of Y.

With amount of shipment qualifying

Percent Off, Amount Off, Fixed Price, Free

61

products
With number of shipment qualifying
products

Percent Off, Amount Off, Fixed Price, Free

Product Class

Qualifying Products: click Edit to specify discounted products if your promotion has specific product-purchase conditions
(for example, Spend $100 in our electronics department and get 15% off entire order). The Product Include/Exclude dialog
opens. Otherwise, leave this section blank, indicating that the promotion does not have any specific product conditions.
Discounted Products: select Same as qualifying products to specify that the discounted products are the same as the
qualifying products.
Exclusions: select to disable any global product exclusions. This means that any product can qualify for the promotion, even
if it is a globally excluded product.
Restrictions: select apply the promotion to identical products only, up to the application limit for each separate product.
(For Buy X For Total only.)
Maximum Application: enter the number of times a customer can use this promotion per order.

Order Class

Excluded Products: click Edit to define a product rule identifying products that are excluded from the promotion. The
Product Include/Exclude dialog appears. Excluded products do not contribute toward the merchandise total of the promotion
condition, and do not receive a discount.
Qualifying Products: click Edit to specify discounted products if your promotion has specific product-purchase conditions
(for example, Spend $100 in our electronics department and get 15% off entire order). The Product Include/Exclude dialog
opens. Otherwise, leave this section blank, indicating that the promotion does not have any specific product conditions.
Discounted Products: select Same as qualifying products to specify that the discounted products are the same as the
qualifying products.
Payment Methods: click Edit to specify payment methods or cards that can qualify a customer for a percent off discount on
their order. This opens the Available Payment Methods Window.
Alert: Return as approaching promotion. (Only if merchandise total is within $ ____ of the purchase condition.):
select if you want to alert the customer about this promotion when merchandise total is within a monetary value of the
discount threshold. The customer is always alerted if the value is omitted.
Note:
This optional setting requires template changes for the feature to display in the storefront.
Enter the monetary amount, for example $50.
See Alert on approaching discounts.

Shipping Class

Qualifying Products: click Edit to specify discounted products if your promotion has specific product-purchase conditions
(for example, Spend $100 in our electronics department and get 15% off entire order). The Product Include/Exclude dialog
opens. Otherwise, leave this section blank, indicating that the promotion does not have any specific product conditions.
Shipping Methods: click Edit to specify the shipping methods. The Shipping Methods Assignment page appears.
Restrictions:
select if the shipment must contain only qualifying products.
Alert: Return as approaching promotion. (Only if merchandise total is within $ ____ of the purchase). select if you
want to alert the customer about this promotion when merchandise total is within a monetary value of the discount threshold.
The customer is always alerted if the value is omitted.
Note:
This optional setting requires template changes for the feature to display in the storefront.
Enter the monetary amount, for example $50.
See Alert on approaching discounts.
Maximum Application: enter the number of times a customer can use this promotion per order.

Choice of Bonus Product Discount


When you select a choice of bonus product discount, you can specify a price for the bonus products. After you select the bonus
products (up to 20), another window opens where you can specify the prices for each bonus product.
The fields are:
ID: product ID

62

Name: product name


Price: double-click to change the discount price. $0.00 is for free
The buttons are:
Cancel: click to exit without saving changes.
Add Products: click to add selected products.
Save: save the list of selected products with any price changes.
A choice of bonus product(s) discount requires that you change your storefront application. See Implementing a choice of bonus
product(s) discount.

Alert on Approaching Discounts


The Demandware platform can calculate discounts for which a basket almost qualifies. These discounts are called approaching
discounts or upsell discounts. The API retrieves the collection of discounts that almost qualify and displays a message for one or
more of them in the storefront.
These promotion types have an Alert flag in Business Manager that controls whether customers should be notified of the
promotion before they fully meet the merchandise conditions:

Order: with amount of order merchandise total

Shipping: with amount of shipment merchandise total


If the Alert flag is set, you can specify a monetary value threshold that determines how close the customer must be in order to be
notified of the discount. If the value is omitted, the customer is alerted as long as his or her basket is under the discount threshold.
Examples
Suppose a merchant has three active promotions:
Promotion

Description

Enable upsells

Upsell threshold

10% off orders over $150

true

50

20% off orders over $200

true

75

Free ground shipping for orders over $200 true

60

Case 1
Burt Green has $140 worth of merchandise in his cart. He does not qualify for any of the promotions. The API returns all three
approaching discounts because the cart is within the thresholds defined by all three promotions.
Case 2
Sara York has $150 worth of merchandise in her cart. She receives 10% off her order due to Promotion 1. This brings her
merchandise total to $135. The basket is within the threshold for Promotion 2 (here the $150 is used to determine this, not the
$135), and so she sees the upsell message for Promotion 2:
"Buy $50 more worth of merchandise and receive '20% off orders over $200.00'"
The upsell message says "$50 more worth of merchandise" instead of "$65 more." This is because the merchandise total that is
used is after product promotions but before order promotions are considered. The assumption is that merchants typically do not
stack order promotions (i.e. they are class-exclusive), and that when the customer reaches the threshold for the second promotion,
the first will no longer apply.
Sara does not see upsell message for Promotion 3 because her merchandise total after order discounts is $135, which is less than
$140 and therefore not within the threshold range defined by that promotion.
Note:
The Demandware platform does not consider the exclusivity or rank of promotions in the PromotionPlan during this process.
The reason is that the rank of two promotions that are based on the amount of merchandise total is irrelevant if the cart

63

satisfies one condition threshold but not the other. In this case, the cart receives the discount for the promotions whose
condition is satisfied, regardless of rank. Only when the cart satisfies the thresholds for both, can rank make a difference.

Globally Excluded Products


Navigate to: Promotions > Globally Exclude Products
You can exclude products from product and order promotions within each promotion individually. You can also exclude products
from all promotions globally, which allows you to prevent discounts on low margin products, for example, without having to
configure this for every promotion. For example, a merchant globally excluded Product-1. A customer has the following in her
cart:
SKU

Quantity

Price

Product-1 1

$10

Product-2 1

$50

Product-3 1

$40

The merchant has configured the product promotion 10%OffOnAny, "Get 10% on any product."

When the Disable Global Excluded Products flag is off for_10%OffOnAny,_ this promotion will apply to Product-2 and
Product-3, but not Product-1.

When the Disable Global Excluded Products flag is on for_10%OffOnAny,_ this promotion will apply to all products in the
cart
These are some considerations

Products that match the Global Product Exclusions rule cannot be a qualifying and/or discounted product for any product
promotion, unless global exclusions are disabled for this promotion.

Products that match the Global Product Exclusions rule must be excluded from any order promotion, unless global
exclusions are disabled for this promotion.

Though you cannot exclude products from shipment-level shipping promotions, a product-level shipping promotion is a
product promotion, to which global rules can apply.
Merchandise Total
Product exclusions, whether global or individual, do not count toward the merchandise total used to trigger a promotion. For this
promotion, for example, Spend $100 get a 10% discount on qualifying products, excluded products are not counted.
SKU

Price

Product-1

$50

Product-2 (excluded) $10


Product-3

$40

The customer would not receive the promotion because the total is not $100 or more with the $10 excluded.
Examples
If you want ...

You open the global product exclusion


rule and ...

to exclude products of brand "NoRebates" from all promotions.

define a condition 'brand equals NoRebates'.

to use a product flag 'FixPrice' to indicate whether a product must be excluded


from all promotions.

define a condition 'custom.FixPrice is true'.

to exclude a list of 50 SKUs that will never have any discounts

paste the 50 SKUs into the Product ID value


field.

Global exclusions are enabled by default for new promotions.

64

Globally Excluded Products Window


Navigate to: Site > Online Marketing Promotions > Actions (dropdown) > Globally Excluded Products
Use this window to configure a set of products to exclude (globally) from all promotions by defining a rule. You define the rule
using inclusion and exclusion filters (for example, all televisions, except very cheap televisions, or all ipods except ipodshuffles). The Demandware platform uses these filters to identify the set of products that are excluded from receiving
promotional discounts. In the following example, the products that are excluded from receiving a promotional discount are Canon
brand products less than $30, except those that are in the vip-member-pricing price book.

Add Include: click to configure included products.


Add Exclude: click to configure excluded products.
Apply: click to apply your changes.
Cancel: click to cancel your changes.

Included
Products

Qualifier: click in the field and select a qualifier from the list.

Operator: click in the field and select an operator from the list. You must select a qualifier before you can select an
operator.

Value: click in the field and enter a value or select one from the list. You must select a qualifier before you can enter or
select a value.

Catalog: click in the field and select a catalog. This field is only active if the qualifier is Category.

Add: click to add a qualifier and create AND statements between them.

- click to delete a qualifier.


Excluded
Products

Qualifier: click in the field and select a qualifier from the list.

Operator: click in the field and select an operator from the list. You must select a qualifier before you can select an
operator.

Value: click in the field and enter a value or select one from the list. You must select a qualifier before you can enter or
select a value.

Catalog: click in the field and select a catalog. This field is only active if the qualifier is Category.

Add: click to add a qualifier and create AND statements between them.

- click to delete a qualifier.

Schedule/Qualifiers/Compatibility
This section shows the settings that were assigned in the campaign or AB test.

65

ID: shows the ID of the Campaign or AB test.


Description: shows a description of the campaign or AB test.
Type: shows the container type:

Campaign

AB Test
Schedule: shows the schedule that is assigned to the promotion via the campaign or AB test.
Customer Groups: shows the customer groups that are assigned to the campaign or AB test.
Source Codes: shows the source codes that are assigned to the promotion via the campaign or AB test.
Coupons: shows the coupons that are assigned to the promotion via the campaign or AB test.
Required Qualifiers: shows if the promotion requires all or any of multiple qualifiers to be satisfied in order to apply.

Any: any qualifier can be satisfied for the promotion to apply.

All: all qualifiers must be satisfied for the promotion to apply.

Campaigns
Navigate to: Online Marketing> Campaigns
1.
1.

Identify any promotions / campaigns set up during Boot Camp by pre-pending names with boot camp or your name. This
way client can turn them off and use for reference later on.
Popular launch promotions include:

Free/Discounted Shipping

BOGOs

2 for $<##>

$ or % off a Category

12.5 new promos

Promos tied to payment method

Buy X, Y, get Z

Customer group based on email (employee discounts)

Use this page to configure general campaign settings. Fields with a red asterisk are mandatory.

Copy: click to copy this campaign to a new campaign.


Delete: click to delete this campaign.
Locale: select a locale for this campaign.
Cancel: click to cancel the new campaign (or changes to an existing campaign) and return to the main Campaigns page.
Apply: click to apply your changes.

General

ID: enter an ID name.


Enabled: Specify if the campaign is enabled.

Enabled: The campaign is enabled.

Disabled: The campaign is disabled.

66

Schedules & Qualifiers

Start Date: Specify a start date and time.

enter a start date or click the calendar icon


to select a date.

Select a start time from the dropdown.

No Start Date: select to specify that the campaign will start now.
End Date: Specify an end date and time.

enter an end date or click the calendar icon


to select a date.

Select an end time from the dropdown.

No Start Date: select to specify that the campaign will run continuously.
Customer Groups: click Edit to specify one or more customer groups. The Assign Customer Groups page appears.
Source Codes: click the Edit button to specify one or more source codes. The Assign Source Codes page appears.
Coupons: click the Edit button to specify one or more coupons. The Assign Coupons page appears.

Experiences

Add Experience: click to add a new experience.

Add Promotion: select to add a promotion. The Assign Promotions page opens.

Add Slot Configuration: select to add a slot configuration. The Assign Slot Configuration page opens.

Add Sorting Rule: select to add a sorting rule: The Assign Sorting Rule page opens.

For each experience, use the navigation controls to locate the experience you want. Pageable grids can show 20 rows at
a time. If sorting was applied to a grid and a new experience is added, the sort is removed and the new experience is
placed at the end of the results set.

Promotions (# experiences)

Note:
A promotions must be part of a campaign or AB test in order to run.
ID: shows the ID of each promotion.
Schedule: initially shows the schedule of the containing campaign. Double-click the calendar icon
to change
the dates with the boundaries of the campaign's start and end dates. The Edit Scheduling page opens.
Customer Groups: shows the assigned customer groups. Double click the field and click the Elipses (...) to select customer
groups. The Use customer groups as promotion qualifiers ? checkbox appears.

If this checkbox is checked, the promotion uses customer group qualifiers. You cannot deselect customer groups
inherited from the campaign. You can only add customer groups.

If the checkbox is not selected, customer groups are not used as qualifiers.
Source Codes: shows the assigned source codes. Double click the field and click the Elipses (...) to select source code
groups. The Use source code groups as promotion qualifiers ? checkbox appears.

If this checkbox is checked, the promotion uses source code group qualifiers. You cannot deselect source code groups
inherited from the campaign. You can only add source code groups.

If the checkbox is not selected, source code groups are not used as qualifiers.
Coupons: shows the assigned coupons. Double click the field and click the Elipses (...) to select additional coupons. The
Use coupons as promotion qualifiers ? checkbox appears. This flag, selected by default, indicates that coupons are to be
inherited by the promotion from the parent campaign. Within a campaign, you configure a schedule and qualifiers. All
experiences inherit the relevant qualifiers by default.

If this checkbox is checked, the promotion uses coupon qualifiers. You cannot deselect coupons inherited from the
campaign. You can only add coupons.

If the checkbox is not selected, coupons are not used as qualifiers.


Required Qualifiers: select if the promotion requires all or any of multiple qualifiers to be satisfied in order to apply. See
Managing qualifiers.

Any: any qualifier can be satisfied for the promotion to apply.

All: all qualifiers must be satisfied for the promotion to apply.


Rank: click the field and select a rank (10 through 100). See Promotion Compatibility.
Enabled: indicates if a promotion is enabled.

Enabled: set to Yes.

Disabled: set to No.

67

- click to delete the experience.

Slot Configurations (# experiences)

Note:
Slot configurations can be part of a campaign or AB test, but they can also run independently.
ID: shows the unique ID of each slot configuration
Slot: shows the slot name of each slot configuration.
Context: shows the context of the slot configuration.
Schedule: initially shows the schedule of the containing campaign. Double-click the calendar icon
to change
the dates. The Edit Scheduling page appears.
Customer Groups: shows the assigned customer groups. Double click the field and click the Elipses (...) to select customer
groups. The Use customer groups as promotion qualifiers ? checkbox appears.

If this checkbox is checked, the slot configuration uses customer group qualifiers. You cannot deselect customer groups
inherited from the campaign. You can only add customer groups.

If the checkbox is not selected, customer groups are not used as qualifiers.
Rank: click the field and select a rank (10 through 100). See Promotion Compatibility.
Enabled: indicates if a promotion is enabled.

Enabled: set to Yes.

Disabled: set to No.


- click to delete the experience.

Sorting Rules (# experiences)


Note:
Sorting rules can be part of a campaign or AB test, but they can also run independently.

ID: shows the unique ID of the sorting rule.


Description: shows a description of the sorting rule.
Categories: show the categories assigned to the sorting rule.
- click to delete the experience.

Promotion Compatibility
You may not want to allow multiple order promotions at the same time, which is called stacking. For example, a customer might
have multiple coupons for different order promotions, but you only want them to redeem one coupon per order.
Your business rules may require that certain promotions cannot be combined (stacked). For example, if there is a global 10%
product promotion for everyone, and a special 20% product promotion for registered customers, registered customer should only
receive the 20% discount.
You may, however, want multiple promotions applied to an order. For example, you may want a consumer to receive a 10%
discount on a product in the cart, free shipping based on the order value and a free bonus product with the same order.
You can control which promotions are applied and in what order using compatibility rules, so that all promotions for which a
consumer is eligible are not automatically applied to the shopping cart. The system attributes rank and exclusivity let you do this.

Rank
The rank attribute lets you define which promotions take precedence (with 10 = highest and 100 = lowest, for example). Using
the Business Manager's Promotion editing page, you can set the (optional) rank of a promotion. By default, a promotion has no
rank.

A promotion without a defined rank has a lower ranking than promotions with a defined rank.

Promotions are applied in the order of their rank (highest rank first). To ensure predictable results, promotions with the
same rank are additionally sorted by the default sorting mechanism (see Default Sorting ).

Customize the rank values by editing the rank attribute of the system object Promotion.

68

Note:
The rank settings are configurable system objects. For access to these objects you must be a system administrator.
See Business Objects for Promotions.

Coupons
Navigate to: Online Marketing> Coupons
1.
2.
3.
4.
5.
6.

Configure single-code coupons if you want to issue a coupon with a specific code.
Configure a multiple-code coupon if you want to issue a coupon with multiple codes.
You can also configure a series of system-generated coupon codes.
Import Coupon excel and xml docs: https://xchange.demandware.com/thread/7828
Merchant-import coupon codes can be deleted one by one as needed. Use case would be a retailer who uses coupon
codes for their employees.
System generated coupon codes cannot be deleted one by one as needed. The workaround is to export the coupon codes
and then re-import them as merchant-imported which will then give you that capability.

Use this page to configure coupons. Fields with a red asterisk are mandatory.

ID: Enter a unique ID.


Description: Enter a description.
Coupon Type: Select a coupon type. This selection will determine the new few choices.

Merchant-defined single code

Merchant-defined multiple codes

System-generated codes

Coupon Code: Enter the coupon code (for merchant-defined single code coupons).

Coupon Prefix: Enter a coupon prefix (for system-generated code coupons). This is the prefix you want added to the
beginning of each code generated by the system (optional)

No. of Codes: Enter the number of codes (for system-generated code coupons) you want generated by the system.

Enabled: Check this to enable the coupon(s) so that consumers can redeem them.

Redemption Limits

Per Coupon Code: Enter the number of redemptions per coupon code.

For merchant-defined single code:

For merchant-defined multiple codes:

For system-generated codes:


Per Customer: Enter the number of codes a customer can redeem.
Per Time Period: Specify the time period during which a customer can redeem the specified coupons.
Per day: enter the number of codes the consumer can redeem per day.
Apply: Click to apply your changes. For system-generated codes, your codes will appear in the Coupon Codes section.

69

Assignments
After you click Apply, the Assignments section opens.

Campaigns: Click Edit to specify the campaigns you want to assign to this coupon. The Available Campaigns page opens.

Promotions
Lists the promotions assigned to this coupon.

Promotion ID: List the promotion IDs.

Container Type: Specifies the container type.

Container: Lists the containers names.

Coupon Codes
Lists the coupon codes assigned to this coupon and allows you to add new coupons. You will only add merchant-defined multiple
coupon codes.

Code: Lists the coupon codes.

Redemptions: Shows the number of redemptions.

Export Status: Shows the export status.

Exported

Not exported
Enter New Coupon Code...: Enter a new code and click Add Coupon Code. The new code appears in the list. Repeat as many
times as necessary to define all the required coupon codes.
- Click to delete a coupon code.
Note:
Coupon codes are generated on staging and included in data replication to Production. While testing them on staging, any
coupon codes redeemed on staging will not work on production.
Use the navigation controls to locate the items you want.

<<Back to List: Click to return to the Coupon List page.

Source Codes
Navigate to: Online Marketing > Source-Code Groups > New
1.
2.

Source Code Group Information and how-to video: https://xchange.demandware.com/thread/7385


See Also Appendix A - Demandware Source Codes

General Tab

ID: Enter a unique ID (or view an existing ID).


Description: Enter a description.
Start Date: Enter a start date or click the (ellipses)... to select it. The Scheduling page appears.
End Date: Enter an end date or click the (ellipses)... to select it. The Scheduling page appears.
Enabled: Select to enable the source code group.
Campaigns: Click Edit to assign to one or more campaigns. The Available Campaigns page appears.
<< Back to List: Click to return to the previous page.

Assignments

70

Promotion ID: Shows the Promotion ID of each assigned promotion. After assigning a source code group to a promotion
(in the Campaign module), you must select the source code and enable it (here) to make it a promotion qualifier.
Container Type: Shows the container type of each promotion, for example, Campaign.

Campaign: The source code is part of a campaign


Container: Shows the container name, for example, the campaign name.
Apply: Click to apply any changes.
Delete: Click to delete the source-code group.
Save As: Click to copy the source code group into another file. This does not copy campaign assignments.

Codes Tab

Source-Code Specification: Enter a new source code specification and click Add to add a new set of codes.
Source-Code: Enter a source code and click Test Match to test that the source code matches the source code specification.
Select All: Click to select all source code specifications.

Redirects Tab

Apply: Click to apply any changes.


Reset: Click to restore the previous settings.

Attributes Tab

To create source-code attributes:

71

Navigate to Administration > Site Development > System Object Definitions > SourceCodeGroup.
Click the Attribute Definitions tab.
Click New to create one or more attribute definitions.
Click <<Back to return to the list.
Click the Attribute Grouping tab.
Enter an ID and name, then click Add.
Click the Edit button beneath the Attributes header.
Click the ellipses (...) beside ID to identify the attribute definition you just created. Select it, then click Select.
Navigate to Online Marketing > Source Code Groups > (source code groups) > Attributes tab to see the results.

Active
Use these settings to specify redirect behavior for active source codes.

Default: Select to use the default redirect.

Home Page: Select to redirect to the home page.

Product: Select to redirect to a product details page. Enter a product or click the (elipses) to browse for a product.

Category: Select to redirect to a category page. Enter a category or click the (elipses) to browse for a category.

Page: Select to redirect to a page. Enter a page or click the (elipses) to browse for a page.

URL: Enter a URL.


Inactive
Use these settings to specify redirect behavior for inactive source codes.

Default: Select to use the default redirect.

Home Page: Select to redirect to the home page.

Product: Select to redirect to a product details page. Enter a product or click the (elipses) to browse for a product.

Category: Select to redirect to a category page. Enter a category or click the (elipses) to browse for a category.

Page: Select to redirect to a page. Enter a page or click the (elipses) to browse for a page.

URL: Enter a URL.

Price Book Tab

Delete: Click to delete a selected price book.


<< Back to List: Click to return to the Source Codes page.

Assign Price Book

Price Book ID: Enter a price book ID and click Add, or click the (Ellipses...) and then the price book you want, and then
click Add to assign the price book to the source code group.

ID: Shows the ID of each price book assigned to a source code group.

Name: Shows the name of each price book assigned to a source code group.

Currency: Shows the currency of each price book assigned to a source code group.

Based On: Shows the price book on which the current price book is based.

Effective Period: Shows the effective period of the price book assigned to a source code group.

Status: Shows the status of a price book assigned to a source code group.

Activated

Deactivated

72

Gift Certificates
Navigate to: Online Marketing> Gift Certificates
1.
2.

3.

If client is intending to utilize gift certificates, then walk them through the UI in BM. Otherwise, you can skip over this
process.
In the Demandware SiteGenesis Application, functionality has been provided for storefront customers to:

Purchase a gift certificate (that is e-mailed to the recipient)

Use a gift certificate as a method of payment (redeem a gift certificate)

Check a gift certificate balance


In Business Manager you can:

Create and issue gift certificates

Report on gift certificate statistics

Import and export gift certificates

Stores
Navigate to: Online Marketing> Stores
1.
2.

Review Clients store details page and walk through area in BM on how to manage, change, add, make updates.
How-to upload Store via Excel doc: https://xchange.demandware.com/thread/7837

Use this page to add information about a new store. Fields with a red asterisk are mandatory.

Select Language: select the language to be used with this store on the storefront.
Apply: click to apply your changes.

Basic Attributes

ID: enter a store ID.

Name: enter a store name.


Address

Address 1: enter address, for example street name..

Address 2: enter additional address information.

Postal Code: enter the postal code where the store is located.

City: enter the city where the store is located.

State: select the state where the store is located.

Country: select the country where the store is located.

Latitude: enter the latitude of the store.

Longitude: enter the longitude of the store.


Contact Details

Phone: enter the store's phone number.

Fax: enter the store's fax number.

Email: enter the store's email address.

73

Store Details

Store Hours: enter the store hours. Click HTML Editor to edit the text in an HTML editor.

Store Events: enter details about store events. Click HTML Editor to edit the text in an HTML editor.

Image: enter an image name or click Select to locate and/or upload an image.

Create: click to create a new store record.

Reset: click to redisplay the previous information.

<< Back to List: click to return to the Stores page.

Import & Export


Export
Promotions
Coupons

Gift Certificates
Source-Code Groups
Stores
Content Slots
AB Tests

Promotions
Coupons
Coupon Code Export
(CSV)
Coupon Redemption
Export (CSV)
Gift Certificates
Source-Code Groups
Stores
Content Slots
AB Tests

Description
Import or export promotions from or into XML files.
Import or export coupons from or into XML files.
Export coupon codes by exporting codes into a CSV file.
Export coupon redemptions by exporting codes and related
information into a CSV file.
Import and export gift certificates from or to XML files.
Import or export source-code groups from or into XML files.
Import or export stores from or into XML files.
Import or export content slots from or into XML files.
Import or export AB-tests from or into XML files.

74

Customers
Navigate to Customers> Customers> new
1.
2.
3.
4.
5.

Manage basic customer data such as name, ID, login and password.
Search the customer database.
Add, edit and delete customers and import customer profiles.
Create and manage new customer attributes.
Import/export customer data from/to external databases.

General Tab

Apply: Click to apply the changes. The tabs appear dimmed until you click this button.
Reset: Click to reset the fields.

Customer
Credentials

Enabled: Select to activate the customer in the storefront.

Login: Enter the customer's login ID.

Customer No: Enter the customer's number.

Generate: Click to automatically generate a customer number. The customer number appears in the field.

Password: Enter the customer's password.

Generate: Click to automatically generate the customer's password. The customer's password appears to the right and in the
Confirm Password field.

Confirm Password: Reenter the password

Send Password Update Mail: Select to send an email to the customer with the new password.
Note:
Customer site preferences control how your storefront responds to failed login attempts by visitors to your site. See
Customer Preferences page.
Profile Attributes
Enter this customer information. These attributes are defined in the Profile system object definition.

Salutation

Title

Company

Job Title

First Name

Last Name

Name Suffix

Gender

None

75

1 (Male)
2 (Female)
Birthday
Email Address
Next Birthday
Second Name: the customer's second (or middle) name.

Phone Numbers

Home Phone: Enter the customer's home phone number.

Business Phone: Enter the customer's business phone number.

Mobile Phone: Enter the customer's mobile phone number.

Fax Number: Enter the customer's fax number.


Customer Preferences

Preferred Locale: Select the customer's preferred locale or none.

Addresses Tab

New: click to create a new address. The [Create New Address] page appears.
Delete: click to delete selected addresses.
<< Back to List: click to return to the Customer List page.

Address List

Select All: click to select all addresses.

- click to select an address.


Address Name: shows the address name. Click the address name to edit it. The [Manage Customer Address] page appears.
Address Summary: shows first and last name, city, state and country.

Customer Groups Tab

Assign: click to assign the customer to a customer group. The Select Customer Groups page appears. You can only assign
customers to static customer groups.
Unassign: click to unassign selected customer groups. You can only unassign static customer groups.
<< Back to List: click to return to the Customer List page.

Customer Group List

- click to select a customer group. Click the top select box to select all customer groups.
ID: shows the customer group ID.

76

Description: shows a description of the customer groups.


Type: shows the customer group type. Dynamic customer groups will not appear because customers are assigned to these
groups dynamically.

Static

Dynamic
Customers: shows the number of customers assigned to the customer group.

Active Data Tab

<< Back to List: Click to return to the Customers page.

Traffic

Visits (7 days): Shows the number of visits in the past 7 days.

Visits (30 Days): Shows the number of visits in the last 30 days.

Visits (365 Days): Shows the number of visits in the last 365 days.
Conversion

Orders: Shows the number of orders.

Order Value (30 Days): Shows the order value f or the last 30 days.

Order Value (Lifetime): Shows the order value for the entire time the customer has been registered.

Average Order Value: Shows the average order value.

Discount Value (Without Coupon): Shows the discount value without coupons.

Discount Value (With Coupon): Shows the discount value including coupons.

Source Code Orders: Shows the number of orders with source codes.
Gifts

Gift Orders: Shows the number of gift orders.

Gift Units: Shows the number of products that were gifts.


Products

Top Categories Ordered: Lists the categories that were ordered the most.

Products: Lists the products that were ordered the most.

Products Viewed (30 Days): Lists the products that were viewed in the last 30 days.

Products Abandoned (30 Days): Lists products added to the basket and not ordered while the basket persisted. You can set
how long the basket persists in the Basket Persistence option for site preferences. This shows variation SKUs. The
maximum number of SKUs shown equals 4000 characters.

77

Notes Tab

Subject: enter a subject. This field is required.


Text: enter your note. You can drag the corner of the text area to enlarge it. Each note can have to 1000 characters.
Add: click to add the note to the customer account. You can add up to 20 notes per customer. You cannot modify notes.
You can only delete them.
<< Back to List: click to return to the Customer List page.

Note List

Select All: click to select all notes.

- click to select a note.


User: shows the user login name.
Time: shows the date and time the note was created.
Note: shows the subject (bold) and text of the note.
Delete: click to delete the selected notes.

Customer Groups
Navigate to: Customers> Customer Groups
1.

2.

There are 4 kinds of customer groups:


a) Customer groups with type Static have customer assigned explicitly.
b) Customer groups with type Dynamic owns a rule that defines which data a customer need to become member of the
group.
c) In case such a customer group owns a rule that evaluates not only on customer data, but also on customers session, it is
marked with Dynamic (uses session data).
d) Customer groups with type System are predefined, common customer groups.
Define customer groups to target specific customers for marketing campaigns.

Use this page to create or modify a customer group configuration.

ID: enter a unique ID.

78

Type: shows the customer group type.

Dynamic: customers are identified dynamically. See Creating a Dynamic Customer Group.

Static: customers are identified individually.

System: customer are predefined by the system. You cannot create or modify a system customer group.
Note:
If you specify the wrong type, delete the customer group and start again.
Description: enter a description.
Apply: click to apply your changes. The page changes, depending on whether you selected a static or dynamic type. See the
section below.
Reset: click to reset your changes.
Cancel: click to delete the customer group (if new) or your changes and return to the Manage Customer Groups page.
<< Back to List: click to return to the previous page.

Selecting Customers
This section changes relative to the type you selected.

For Dynamic, the Membership Rule section appears. Click Edit to add membership rules. The Customer Group
Include/Exclude dialog box appears.

For Static, the Customer Count section appears. Click the Members tab to add customers.

For some System customer groups, for example Registered customer, the Customer Count section appears. In this case,
you can click the Members tab to add customers. For most System customer groups, however, no Customer Count
section appears and the Members tab is inactive. This is because, as in the case of Unregistered Customers, there is no
way for the Demandware platform to determine how many unregistered customers there are or who they are.

Creating a Dynamic Customer Group


You can create a dynamic customer group for targeted campaigns, micro-sites and product lines that is based on purchase history
and other metrics such as profile (name, gender, birthday), address (city, state, postal code), or active data (average order value,
gift orders, gift units). You can also base membership on membership in system and static customer groups.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

11.
12.
13.
14.
15.
16.
17.
18.
19.

Open Business Manager and navigate to Site > Customers > Customer Groups.
Click New to add a new customer group.
Enter the ID (mandatory).
Select the Dynamic type from the drop down. You must select a type before you can add a new customer group.
Enter a description (for example, Female customers from the United States and Canada who spend an average of $100
or more per order) .
Click Apply. The Membership Rule section appears.
Click Edit.
Click Add to add a rule. See Dynamic customer group attributes for details on the available rules.
Click in the Attribute field.
Select from the drop-down and continue across each row with the following example selections:
Value
Attribute / Operator
Country / is equal
United States
Country / is equal
Canada
Average order size / is greater than or equals
100.00
Gender / is equal
Female
Click Save to save these entries.
Click Cancel to exit.
Click the Add Include or Add Exclude buttons to include or exclude certain customers.
This feature uses the same interface as the above described Attribute fields.
To delete a rule, click the delete icon.
To create a rule for a Session Custom Attribute:
Select the condition type Session Custom Attribute in the Attribute column. The select box will be hidden and a text
field will appear.
Enter the name of the session custom attribute, for example, Release_Number.
Select an operator from the list of string operators.
Enter a value.
To change the name of a session custom attribute, click the cell and the text field appears. You will not be
able to change the condition type (for example, from Session Custom Attribute to Birthday ). You must delete
the condition and create a new one.

79

See Using session custom attributes.

Dynamic Customer Group Attributes


Attribute

Type

Operators

Profile

Birthday (customer.profile.birthday)

Date

Creation Date (customer.profile.creationDate)

Date

Gender (customer.profile.gender)

String

Last Login Time (customer.profile.lastLoginTime)

Last Visit Time (customer.profile.lastVisitTime)

Date

Date

is on, is after, is before, is in range, is not in range, is


today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists
is on, is after, is before, is in range, is not in range, is
today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, exists, does
not exist
is on, is after, is before, is in range, is not in range, is
today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists
is on, is after, is before, is in range, is not in range, is
today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists
is on, is after, is before, is in range, is not in range, is
today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists

Next Birthday (customer.profile.nextBirthday)

Date

Preferred Locale (customer.profile.preferredLocale

String

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

Salutation (customer.profile.salutation)

String

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

City (customer.addressBook.preferredAddress.city)

String

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

Country
(customer.addressBook.preferredAddress.countryCode)

Enum-of-Int

is equal, is not equal, exists, does not exist

Postal Code
(customer.addressBook.preferredAddress.postalCode)

Boolean

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

Address

80

State (customer.addressBook.preferredAddress.stateCode)

Boolean

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

Active Data
Average Order Value
(customer.activeData.avgOrderValue)

Integer

Creation Date (customer.activeData.creationDate)

Date

Discount Value (With Coupon)


(customer.activeData.discountValueWithCoupon)

Integer

Discount Value (Without Coupon)


(customer.activeData.discountValueWithoutCoupon)

Integer

Gift Orders (customer.activeData.giftOrders)

Integer

Gift Units (customer.activeData.giftUnits)

Integer

Last Modified (customer.activeData.lastModified)

Date

is equal, is not equal, is greater than, is less than, is


greater than or equals, is less than or equals, is in range,
exists, does not exist
is on, is after, is before, is in range, is not in range, is
today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is on, is after, is before, is in range, is not in range, is
today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists
is on, is after, is before, is in range, is not in range, is
today, is yesterday, is tomorrow, is in the last x days, is
not in the last x days, is in the next x days, is not in the
next x days, is in the last, is in the current, is in the next,
exists

Last Order Date (customer.activeData.lastOrderDate)

Date

Order Value (30 Days)


(customer.activeData.orderValueMonth)

Integer

Order Value (Lifetime) (customer.activeData.orderValue)

Integer

Orders (customer.activeData.orders)

Integer

Product Masters Ordered


(customer.activeData.productMastersOrdered)

Set-of-String

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

Products Abandoned (30 Days)


(customer.activeData.productsAbandoned)

Set-of-String

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

is equal, is not equal, is greater than, is less than, is


greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist

81

Products Ordered (customer.activeData.productsOrdered)

Set-of-String

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

Products Viewed (30 Days)


(customer.activeData.productsViewedMonth)

Set-of-String

is equal, is not equal, starts with, ends with, contains,


does not contain, exists, does not exist

Return Value (customer.activeData.returnValue)

Integer

Returned Items (customer.activeData.custom.returnItems)

Set-of-String

Returns (customer.activeData.returns)

Integer

Source Code Orders


(customer.activeData.sourceCodeOrders)

Set-of-String

Top Categories Ordered


(customer.activeData.topCategoriesOrdered)

Set-of-String

Visits (30 Days) (customer.activeData.visitsMonth)

Integer

Visits (365 Days) (customer.activeData.visitsYear)

Integer

Visits (7 Days) (customer.activeData.visitsWeek)

Integer

is equal, is not equal, is greater than, is less than, is


greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, starts with, ends with, contains,
does not contain, exists, does not exist

is equal, is not equal, is greater than, is less than, is


greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist
is equal, is not equal, is greater than, is less than, is
greater than or equals, is less than or equals, is in range,
exists, does not exist

Storefront Session
Referrer URL (session.referrerURL)

String, user can


enter a single value

is equal, is not equal, starts with, ends with, contains,


does not contain

Referrer Host (session.referrerHost)

String, user can


enter a single value

is equal, is not equal, starts with, ends with, contains,


does not contain

Referrer Keywords (session.referrer.Keywords)

String, user can


enter a single value

is equal, is not equal, starts with, ends with, contains,


does not contain

Active Source Code Group (session.sourceCodeGroups)

String, user can


enter multiple,
comma-separated

is equal, is not equal, starts with, ends with, contains,


does not contain

Authenticated (session.authenticated)

Enum-of-Boolean

is true, is false

Registered (customer.registered)

Enum-of-Boolean

is true, is false

Request Locale (request.locale)

Enum-of-String, "is
equal" or "is not

is equal, is not equal

82

Session Custom Attribute

Customer Groups (customer.customerGroups)

String (see Using


session custom
attributes for details
on how this rule is
evaluated). See

is equal, is not equal, starts with, ends with, contains,


does not contain, is greater than, is less than, is greater
than or equals, is less than or equals, is in range, is true,
is false, exists, does not exist

String. User selects


a value from the

is equal, is not equal

Include / Exclude Dialog Box


Navigate to: Customers> Customer Groups> New> (Dynamic)> Edit (Membership Rule section)
Use this dialog box to define included or excluded customers.

Add Include: click to add more included conditions and create OR statement between them.
Add Exclude: click to add more excluded conditions and create OR statement between them.
Match: select the matching rule.

All Conditions (AND)

Any Conditions (OR)


Save: click to save your changes.
Cancel: click to cancel your changes.

Included
Attributes

Attribute: click in the field and select an attribute from the list.
(See Dynamic customer group attributes for the supported operators per attribute.)

Profile (for example, Birthday, Creation Date, Gender)

Address (for example, City, Country, Postal Code, State)

Active Data (for example, Average Order Value, Gift Orders, Visits)

Storefront Session (for example, Referrer URL, Registered, Session Custom Attribute)

Operator: click in the field and select an operator from the list. You must select a qualifier before you can select an
operator. These are some of the operators, which depend on the attribute:

is equal

is not equal

starts with

ends with

contains - You can enter multiple values separated by a comma. Each value is then compared against the Attribute
contents, for example City. If the City name contains at least one of your values, the condition will match.

does not contain - see contains.

exists

does not exist

is greater than

is greater than or equals

is less than

is less than or equals

is in range

Value: Click in the field and enter a value or select one from the list. You must select an attribute before you can enter or
select a value.

Add: Click to add an attribute and create AND statements between them.

83

- Click to delete an attribute.

Using Session Custom Attributes


Using session custom attributes, you can customize unique session information to identify customers for a customer group. To do
this you will need to configure customized session custom attributes in Business Manager and in your application.

Setting Session Custom Attributes


First, you must define a customer group to use session custom attributes in Business Manager. See Creating a Dynamic Customer
group.
Then, you must set a custom session attribute using "session.custom.<attributename> =" in your application.
For example: session.custom.firstname = "Suri"; _firstName = session.custom.firstname
These attributes are defined implicitly when they are set and are stored in the session.

Parsing Session Custom Attributes


The Demandware platform does not have metadata about session custom attributes and hence does not know the actual attribute
type. It can only evaluate session custom attribute conditions in a meaningful way if the condition is applicable for the actual type
of the session custom attribute. It tries to determine the intended session type when creating a condition rather than determining it
during rule evaluation.
If the selected operator used is ...
The Demandware platform assumes
'exists', 'don't exist'
String
'is greater than', 'is less than', 'is greater than or equals',
Number
'is less than or equals', 'is in range'
'is true', 'is false'
Boolean
'starts with', 'ends with', 'contains', 'does not contain'
String
If the value string representation is "true" or
'is equal', 'is not equal'
"false", we assume Boolean
If the value string starts with a number, we
assume Number
Else, we assume String
If a condition is not applicable for the actual type of the session custom attribute, the condition will not match. For example, if
during rule evaluation, the session custom attribute evaluates to a number from the customer's session, but the actual type is
Boolean, the condition will evaluate to false.

Using "is equal" with Session Custom Attributes


With Release 2.10.6, we changed how Business Manager and Customer Group import handle session custom attribute conditions
with dynamic customer groups, though your existing rules will continue to work. Conditions on string values are now converted
into conditions on numeric or Boolean values, with these specific conditions, all of which must apply:

A rule condition evaluates on a session custom attribute

The operator of the rule condition is is equal

The condition value(s) and the session custom attributes are numeric or Boolean-like data
If it is not a session custom attribute, or the operator is not is equal, or at least one condition value is not numeric or boolean,
Business Manager treats it as a string. Previously, the assignment to a session-based customer group did not work when the
membership rule had the above conditions.
For example, with customers with the session custom attribute 'solvencyScore' = '4', where the session attribute is a number, i.e.
Double(4.0), the conditions were stored and evaluated like conditions on strings. The number was converted into a string "4.0",
and compared with the condition value "4", which did not match.
In Business Manager, when you define the values for session custom attributes:

For numeric values, they must be like "4", "4.0", "4.567", but not "foo", 123,456.67", or "123,45". For example,
"myAttribute is equal [4.5] " will be converted to "myAttribute = 4.5".

# For boolean values, they must be like "true", "false", "True", but not "foo", "123,456.67", or "123,45". For example, a
condition "myAttribute is equal [true] " is converted to "myAttribute is true".

84

Rule Evaluation
Numeric conditions on session custom attributes now match if the value of the session custom attribute is a string. Previously, a
numeric condition did not match in this situation.
Numeric Condition on a String Attribute
For example, this rule with a numeric condition applies on a session custom attribute with a string value:
"session.custom.myAttribute = 4.0"
Value of myAttribute Rule matched previously Rule matched now
"foobar"

No

No

"4"

No

Yes

"4.0"

No

Yes

"4.5"

No

No

String Condition on Numeric Attribute


We did not change the way the Demandware platform processes a rule with a string condition on a session custom attribute with
a numeric value. For example "session.custom.myAttribute is equal [4,4.1 beta] " applies as follows:
Value of myAttribute
Rule matched previously
4

Yes

Decimal("4")

Yes

BigInteger("4")

Yes

4.0

No

4.5

No

Number("4")

No

Number("4.5")

No

Decimal("4.5")

No

Tip:
If you like the way this rule works, use
"session.custom.myAttribute is equal [4,4.0] ".

Batch Processing
Navigate to Customers> Batch Processes
1.

Use batch processes in this area to delete customers.

Import & Export


Import
Customers

Export
Customers

Description
Import or export customer from or into XML files.

Customer Groups

Product Lists
Customer Groups

Export product lists into XML files.


Import or export customer group from or into XML files.

85

Content
1.
2.

Upload creative, configure launch assets and slots.


Partner should provide a content matrix to the Client which contains asset and slot names along with their location on the
website.

Content Slots
Navigate to: Online Marketing> Content Slots
1.
2.
3.

4.

5.

6.

A developer needs to add content slots to your storefront templates before you can configure them.
Slots can be scheduled to display products, categories, content assets or static HTML.
You create a slot configuration that determines the content asset to display and schedules when it is displayed. This allows
you to use space in your storefront to display new content by configuring it in Business Manager, rather than needing to
change your storefront code.
Use the Storefront toolkit to identify content slots in the storefront. If you select the content information tool in the toolkit
and hover over the area where you want to add content, if there is a content slot you see an Edit Content link. Clicking the
link opens the correct content slot in Business Manager.
There are two slot types:

Global - displays on any page in the site

Category - displays on category pages (as defined by the merchant).


Demandware slotting rules specify what content is displayed at any given time within a slot type. You can use promotion or
customer group rules to determine the content displayed in the slot.

Creating Slot Configurations


The Demandware platform scans all templates to identify where slots have been defined by an <isslot> tag. The resulting list
appears on the Slots page, as shown below. After a slot exists, you can create one or more content slot configurations for that
slot.
Note:
If you see no slots listed and no New button to create them, you need to add references to <isslot> tags in your cartridge.
Once the platform finds the slots, then slot configurations can be created for them. You can then click on the slot name to get
to the slot configuration screen. For example, <isslot id="homepage_banner" description="This is the top left banner on the
home page, width 705px by height 356px." context="global"/>

The processes and tasks involved in creating and managing content slot configurations are the same for both global and category
content slot configurations.
Note:
These instructions also apply to modifying an existing slot configuration.

1.
2.
3.
4.

Open Business Manager and navigate to Online Marketing> Content Slots.


Click Advanced to search by date and time, customer groups or whether the content slot is active or inactive (or all).
Click the slot name link to view the list of slot configurations defined for that slot.
The Slot Configurations page lists all configurations for that slot. By default, this page shows the following details
about the slot:

86

ID

A slot configuration's unique identifier.

Description The description of the slot configuration.

5.

Default

The slot configuration that appears when nothing else is scheduled. It is set to True for the default slot
configuration and False if the slot configuration is not the default.

Preview

Click this icon to view the slot in the storefront.

Click the slot configuration name link to view details about a specific slot configuration.

This section shows the following details about the slot:


Select
Select the language.
Language
ID
A slot configuration's unique identifier.
Enabled

Enabled in the storefront: Yes or No.

Default

The slot configuration that appears when nothing else is scheduled. It is set to True for the default slot
configuration and False if the slot configuration is not the default.

Description

The description of the slot configuration.

Select the content type:

Product - Select one or more products from the list of products.


Content Type

Category - Select one or more categories from the list.

Content Asset - Select one or more content assets from the list.

HTML - Use the field to create HTML, using the HTML editor that becomes available (click
the HTML Editor link).
Template

Indicate the path to the rendering template; click the ellipsis to open a dialog box that lists all contenttype appropriate templates that have been uploaded by the web developer.

87

Callout
6.

Use the mini-HTML editor to format a callout for the slot configuration in the storefront.

To schedule a slot configuration, click the Add Schedule button in the Schedule/Qualifiers/Compatibility section and
select a schedule type:
Default Schedule

The default schedule, it no other schedule exists

Campaign Schedule The slot configuration uses a campaign schedule


AB Test Schedule
7.

The slot configuration uses an AB Test schedule

The Schedule/Qualifiers/Compatibility provides a matrix of the scheduling information with the following information
that you can view or edit:
ID

Name of schedule: Slot Default Schedule, Campaign Schedule, AB Test Schedule

Description Default, Campaign or AB Test


Type

Site or Organization

Schedule
Click the ellipses to define when this slot configuration is to be used. Use start/end dates, days of the week and/or times of day.
A slot interval cannot be shorter than one hour (60 minutes). Time conditions are always subject to time zone and daylight saving
time considerations.
Customer
Groups

Click the field dropdown to configure a customer group. The Assign Customer Groups page appears.

Rank

Select a number from 10 to 100 (as set by the system; these are configurable system objects). A slot configuration
without a rank (NONE) is considered the lowest rank and evaluated last. Slot configurations are applied in order of
lowest rank value to highest rank value. Rank determines which slot configuration appears when multiple slot
configurations are running on the same schedule. If multiple slot configurations are scheduled and have the same
rank, then the last edited slot configuration appears.

Content Assets
Navigate to: Content> Content Assets

1.
2.

A content asset can be a flash graphic, product carousel, product search result set, or marketing graphic.
You can import content assets.

Use this page to create a new content asset within Business Manager.

Select Language: select a language, then click Apply.

88

Apply: click to apply your changes.


Cancel: click to cancel your changes.
<< Back to list: click to return to the Content page.

Standard

ID: enter the content asset ID. Once created, this is view-only.

Name: enter the content asset name.

Description: enter a description of the content asset.

Online: select if the content asset is visible on the storefront:

Selected: the content asset appears in the storefront.

Not selected: the content asset does not appear in the storefront.

Searchable: select if the content asset is searchable in the storefront.

Selected: the content asset is searchable in the storefront.

Not selected: the content asset is not searchable in the storefront.


Search Engine Optimization Support

Page Title: enter a search-friendly page title.

Page Description: enter a search-friendly page description.

Page Keywords: enter search-friendly keywords.

Page URL: enter a search-friendly page URL.


Sitemap Attributes

Included: specify if the sitemap attributes are to be included.

NONE

1 (YES)

0 (NO)

Change Frequency: select the change frequency:

always

hourly

daily

weekly

monthly

yearly

never

Priority: enter a value between 0.00 and 1.00.


Presentation

Rendering Template: enter the name of the rendering template.

Custom CSS File: enter the name of the custom CSS file.
Content
Enter text content into the entry field, or click the HTML Editor link to create and/or edit the material using the HTML editor.
See the HTML Editor page.

HTML Editor Page


Navigate to: Site> Content> Content Assets
Use this page to edit text in HTML.

89

Source: click to toggle between editing in HTML and plain text.


New Page: click to open a new page, which basically clears the page.
Preview: click to preview the information in a browser.
Templates: click to select a preformatted template.

Use the other icons as you would in any editing software.

Link Page
Navigate to: Site> Content> Content Assets> HTML Editor> Link icon
Use this page to specify links in HTML code.

OK: click to accept changes.


Cancel: click to cancel changes and return to the HTML Editor.

Link Info Tab

Link Type: select a link type:

URL

Product detail page URL

Category page URL

Content page URL

Keyword Search URL

Link to anchor in the text

E-Mail

Select additional parameters based on the link type:

URL

Protocol: http, https, ftp, news, other

URL

Product detail page URL

90

Product SKU

URL
Category page URL

Category ID

URL
Content page URL

Content Asset ID

URL
Keyword Search URL

Search Phrase

URL
Link to anchor in the text
E-Mail

E-Mail Address

Message Subject

Message Body

Target Tab
Appears for all URL link types except Link to anchor in the text and E-Mail.

Target: select a target type:

<not set>

<frame>

<popup window>: specify parameters.

New Window (_blank)

Topmost Window (_top)

Same Window (_self)

Parent Window (_parent)

Target Frame Name: enter the frame name, if not already in field.

Advanced Tab

Id: enter the link ID.


Language Direction: select the language direction.

<not set>

Left to Right

Right to Left
Access Key: enter the access key.
Name: enter the link name.
Language Code: enter the language code.
Tab Index: enter the tab index.
Advisory Title: enter the advisory title.
Advisory Content Type: enter the advisory content type.
Stylesheet Classes: enter the stylesheet classes.
Linked Resource Charset: enter the linked resource characterset.
Style: enter the style.

Creating Content Asset Links


You can create links to other sites or content assets.
Decide if you want to link to:

Another site

Static content in your site - can be an image, product page or article

Dynamic content in your site - Is content that is determined when the link is clicked. For example, if you want to link to
a set of search results, you need to create a link to a pipeline that performs the search and returns the search results.
Developers for your site can tell you the name and parameters of pipelines you can use.
Determine the type of link you need to create.
1. Open your browser and look at the URL of the page or image you want to link to.

91

2.

3.

If your URL looks like a URL outside your domain (www.otherstore.com), you should link to another site's
domain.

If your URL looks like a category page or search result, you should use the Product or Category page URL
hyperlink feature.

If your URL looks like an image, product or content asset, you should link to a static content asset.
When creating or editing a hyperlink within a content asset, select one of these link types:

URL

Product detail page URL

Category page URL

Content page URL

Link to anchor in the text

E-Mail
For Product, Category and Content page URLs, enter a product SKU, category ID (of a category in the site catalog) or
content asset ID (of an asset in the site library) respectively, and the system will generate the appropriate URL. If you
are creating a new hyperlink, the link text will default to the display name of the product, category or content asset in
the currently selected locale. This is from the HTML view.

Note:
Content asset links for images are usually to folders in your image library. If you want to dynamically create an absolute URL for an
image in a content asset link that includes the full path to the image, you cannot do this in the content asset editor. Instead, you must
either post-process the markup of your assets by using placeholders such as #hostname# , which are replaced with the correct value
programatically before outputting the markup or hard-code the full image URLs from production into your asset. This is usually only
a consideration if you are including content assets in emails.

Using Content Link Functions


These are the content asset link functions:

$staticlink$ - Creates a static link.

$url()$ - Creates an absolute URL that retains the protocol of the outer request.

$httpUrl()$ - Creates an absolute URL, but with the http protocol.

$httpsUrl()$ - Creates an absolute URL, but with the https protocol.

$include()$ - Can be used to include the result of another server call.

$link$ - Calls the Link pipeline in the Reference Application to call pipelines. In previous versions of Demandware,
this was the only way to link to pipelines.
$staticlink$
Creates a static content link.
Syntax ="...?$staticlink$"
When using $staticlink$ placeholders in content markup, the resulting generated links are absolute URLs and contain a host
name, no matter whether they are on production or sandbox system. CDN-based URLs are also absolute URLs.
For example, the following content:
<p><a href="$url('Search-Show','cgid','mens')$">Mens</a>&lt;$&quot;
/&gt;&nbsp;</p> <p><img width="400" height="400" alt="" src="images/large/10152_230.jpg?$staticlink$" />
&nbsp;</p>
Generates the following HTML:
<p><a href="http://localhost/on/demandware.store/Sites-SiteGenesis-Site/default/SearchShow?cgid=mens">
<p><img width="400" height="400" alt="" src="http://localhost/on/demandware.static/Sites-SiteGenesis-Site/Site
Example
This example shows how to include the function in your content asset, and the results of the link in the browser.
Asset Link - <img src="site/content/promo_small_1.gif?$staticlink$">
Result - Displays the image in the content asset.

92

$url()$
Creates an absolute URL and retains the protocol of the outer request.
Syntax - $url(' <pipeline>' [, '<key1>', '<value1>', '<key2>', '<value2>', ...])$
Example
This example shows the construction of the function, how to create a link in your content asset, and how the link appears in the
browser. This example creates a link to the ABOUT_US content asset.
Function - $Url('Search-ShowContent', 'q', 'customer')$
Asset Link - <a title="My URL Search Link" target="_new" href="$Url('Search-ShowContent', 'q', 'customer')$"><span>URL
Search Link Content Asset Link </span></a>
Result - http://[host]/default/Search-ShowContent?q=customer
$httpUrl()$
Creates an absolute URL and retains the protocol "http".
Syntax - $httpUrl(' <pipeline>' [, '<key1>', '<value1>', '<key2>', '<value2>', ...])$
Example
This example shows the construction of the function, how to create a link in your content asset, and how the link appears in the
browser. This example creates a link to the Video category page.
Function - $httpUrl('Search-Show', 'cgid', 'J','psortb1','category-pos_J')$
Asset Link - <a title="My Http Link" target="_new" href="$httpUrl('Search-Show', 'cgid', 'J','psortb1','categorypos_J')$"><span>Http Link Content Asset Link </span></a>
Result - http://user-tw.inside.dw.customer.net/Video/J,default,sc.html?
psortb1=category-pos_J
$httpsUrl()$
Creates an absolute URL and retains the protocol "https".
Syntax - $httpsUrl(' <pipeline>' (, '<key1>', '<value1>', '<key2>', '<value2>', ...))$
Examples
This example creates a link to the Audio category page in the Reference Application. This is a link to dynamic content that uses
the Search pipeline.
Function - $httpsUrl('Search-Show', 'cgid', 'K')$
Asset Link - <a title="My Https Category Link" target="_new" href="$httpsUrl('Search-Show', 'cgid', 'K')$"><span>Https
Category Link Content Asset Link </span></a>
Result - https://<host>:<port>/on/demandware.store/Audio/K,default,sc.html
$include()$
Creates a WAInclude with the given pipeline name and creates a relative URL. Can be used to include the result of another server
call.
Syntax - $include('<pipeline>' [, '<key1>', '<value1>', '<key2>', '<value2>', ...])$
Examples
Function - $include('Search-Show', 'cgid', 'J','psortb1','category-pos_J')$

93

Asset Link - <a title="My Include Link" target="_new" href="$include('Search-Show', 'cgid', 'J','psortb1','categorypos_J')$"><span>Include Link Content Asset Link </span></a>
Result - <wainclude url="<URL without protocol, host and port>"/>
$link$
Creates a link to the Link pipeline in the Reference Application. If you need to extend behavior you can add additional start
nodes to the Link pipeline. This is an older version of static linking that may be present in code based on previous versions of
Demandware.
Caution
If a user makes a mistake in the definition, such as: $link-something&test=1$
then the content object can never be opened again. The correct definition is: $link-something:test...$.
Syntax - $link- <type>[:key1=value1;key2=value2; ...]$
Example
This example links to the ABOUT_US content asset.
Function - $link-page:cid=ABOUT_US$ Asset Link
<a href="$link-page:cid=ABOUT_US$" title="Read more about us">
Result - http://[host]/About.Us/ABOUT_US,default,pg.html

Library Folder
Navigate to: Content> Library Folder

1.
2.

You can organize non-product content into folders within the library.
You can import library structure.

Use this page to manage library folders.

Edit: Enables you to edit the properties of the library folder. See Creating a library folder and New Library Folder Page
General Tab.

Library Folders

Select All: click to select all folders. Check a specific box to select a specific folder.

94

Folder grid

ID: shows unique identifier of the library folder.

Name: shows name of the library folder.

Description: shows description of the folder contents.

Sorting: change the sorting order of selected library folders by moving items up or down in the list; items in the list are
sorted top to bottom.

Edit: click to edit the properties of the corresponding library folder. See New Library Folder Page General Tab.

Sort: click to add selected folders to the list of sorted folders.

Unsort: click to remove selected folders from the list of sorted folders.

New: click to create a new library folder. See Creating a library folder and New Library Folder Page General Tab.

Delete: click to delete selected folders from the list.


Folder Content

Select All: click to select all subfolders. Check a specific box to select a specific subfolder.

ID: shows unique identifier of the library subfolder.

Name: shows name of the library subfolder.

Description: shows description of the subfolder contents.

Status: shows status of the subfolder. Valid status values are:

Online

Searchable

Categorized

Sort: click to add selected folders to the list of sorted subfolders.

Unsort: click to remove selected folders from the list of sorted subfolders.

New: click to create a new library folder. See Creating a library folder and New Library Folder Page General Tab.

Delete: click to delete the selected subfolders from the list.

<< Back to Parent: click to return to the parent library folder, if one is available.

Creating Library Folders


Navigate to: Content> Library Folder> new

General Tab

Select Language: Select a language to filter your view of the libraries subfolders or content assets.
Name: Name of the library folder.
ID: Unique ID of the library folder.
Description: Description of the library folder.

Search Engine Optimization Support

Page Title: enter the page title to display in the URL. This corresponds to the pageTitle parameter that can be set in the
Search Support Preferences page.

Page Description: enter a short product or page description. This is used in the URL and so should be very brief. This
corresponds to the shortDescription parameter that can be set in the Search Support Preferences page.

95

Page Keywords: enter the page keywords for the library contents. You may want these keywords to reflect static mappings
or mapping rules that redirect incoming URLs to specific pages. The page keywords are used by external search engines
when indexing the site.
Page URL: enter the portion of the URL relating to the page name that you want to be displayed to the customer in their
browser. This corresponds to the pageURL parameter that can be set in the Search Support Preferences page .

Presentation

Rendering Template: Specify the name of the rendering template to use for the library folder or subfolder. You need to get
the name of the available templates from a developer.

Custom CSS File: Enter the name of the custom CSS, if any. This file is loaded for all content assets in the library folder
(or its subfolders) when the content assets are returned as part of a content search.

Search Refinements Definition Tab


You can specify different drill-down or search refinement options for the display of content by configuring content search
refinements at the library folder level. For each refinement, you can specify sorting mode and direction. If multiple refinements
are defined, you can specify the order in which the refinements display.
1. Open Business Manager and navigate to Content > Library Folder.
The Library Folders page appears.
2. Click Edit for the folder that contains the content that require search refinements.
3. Select the Search Refinement Definitions tab.
4. Click New to create a new search refinement definition.
The New Search Refinement Definition page appears.
5. Provide the following information for the refinement:

Name - The internal name of the refinement.

Refinement Type - Attribute or Folder (select Attribute to create a refinement on a specific attribute; select Folder
to create a refinement on the entire folder).

Attribute ID - The internal ID of the specific attribute (not applicable to folder refinements)

Sorting Mode - Either By Value Name (listed alphabetically by the value name), By Value Count (listed
numerically by value) or By Folder (for refinement type Folder only).Sort By Folder refinement allows you to sort
refinement values (folders) by their explicit position within the parent folder.

Sorting Direction - Select either ascending or descending.

Cutoff Threshold Threshold - Specify the number of refinement groupings to be displayed before the rest are
scrollable in the list box.
6. Click Apply.

Import & Export


Navigate to: Content> Import & Export
Import
Content Image Upload
Library Folders

Export

Library Folders

Description
Manage content images. Create a directory structure and upload
content images.
Import or export content library folders along with their assets from
or into XML files.

96

Custom Objects
1.
2.

3.

4.
5.
6.

Custom objects allow you to extend the Demandware model to suit your business needs.
Custom object types are created for an organization and are then available for use in all storefronts defined for the
organization. You have a choice, when creating instances of the object, whether to make those instances site-specific or
organization-wide.
You use two Business Manager modules to create and manage your custom objects:

Custom Object Definitions - located under Site Development in Administration in Business Manager

Custom Objects - located under the Storefront section of Business Manager


Custom objects can be stored globally (which makes the instances available to the entire organization and all sites), or
locally (that is, per site). The custom object type itself is always available to the entire organization.
Localizable attributes for custom objects are deprecated.
Keep in mind that custom object attributes cannot be used in search refinement.

Creating Custom Objects


Navigate to: Administration> Custom Objects> Custom Object Editor
You must create custom object definitions before you create custom objects. A custom object is a specific instance of a custom
object definition.
1.
2.
3.

4.

In Business Manager, navigate to Site > Custom Objects > Custom Object Editor
In the Object Type list, select the object definition you want to create a new object for.
Click New to create a new object of the type selected.
Enter values for any attributes required by the custom object. Click the ? icon beside each attribute for more
information.
Click Apply to create the object.

Creating Custom Object Definitions


Navigate to: Administration> Site Development> Custom Object Definitions
You create and manage custom object types for additional business objects required by your storefront and/or business logic to
extend the Demandware model. For example, you could create an object type of 'Sample'. You create the custom object type
'Sample' and then give it attributes, for instance, 'SKU' and 'Date.'
Custom objects can be stored globally (which makes the instances available to the entire organization and all sites), or local (that
is, per site). The custom object type itself is always available to the entire organization.
1.
2.
3.

4.

5.

6.

Navigate to Administration > Site Development > Custom Object Definitions. A table of custom object definitions
appears, if any exist.
Click New to begin the definition process.
The Custom Object Types Page General Tab appears.
Enter the following information and click Apply.

ID - enter a unique ID for the custom object definition. This is the name that you select in Business Manager when
you want to create objects of this for the new object type you are defining.

Key Attribute - this is the name of the attribute that is used to provide a unique key for every custom object of this
type. The attribute does not have to exist when you specify it, but it must exist before any custom objects of this
type are created.

Data Replication - select whether you want the custom object to be replicable between instances.

Storage Scope - select whether you want the custom object to be available for the entire organization (all sites) or
a specific site.
To create new attributes and assign attributes to the custom object type, click the Attribute Definitions tab.
This page allows you to add or remove attributes for the object.
The Custom Object Types Page Attribute Definitions Tab appears.
Click New to add a new custom attribute or Edit to edit an existing attribute.
Localizable attributes for custom objects are deprecated for this release. Existing localizable attributes for
custom objects are supported until the Winter 2011 Release.
The Custom Attribute Definition Details Page appears.
Enter the following information:
a) ID - enter a unique ID for the attribute. The pipe symbol '|' is not allowed in attribute definition IDs, as it is used
internally for versioning purposes. Demandware recommends using alphanumeric characters only for the ID.
b) Display Name - enter a display name. This is the name shown in Business Manager and in the storefront.

97

c)

Value Type - select a data type. The data type changes the other configuration options for the attribute once you
apply it.
If you change the language or type, you must confirm the change before it is applied. Changing the language
or type of an attribute causes existing values of that attribute to be lost.
Additional fields appear depending on the data type you selected. Enter the relevant information and click Apply. After
you create attributes, you must add the attribute to an Attribute Group in order to manage the custom object through the
Business Manager (Custom Object module for the storefront).
7. Click the Attribute Grouping tab.
The Custom Object Types Page Attribute Grouping Tab appears.
8. Specify a name and ID for the attribute group and click Add.
The new attribute group appears in the grid below.
9. Click the Edit link for the group to add attributes to the group.
Make sure to add the key attribute you specified on the Custom Object General tab. Custom objects cannot be
created for this definition unless the key attribute is included in an attribute group. Do not add the creationDate or
lastModified attribute, as these values are automatically supplied by the platform and do not need to be specified
when creating custom objects of this type definition.
The Custom Object Attribute Definition Assignments Page appears.
10. At first there will be no attributes assigned to this group, so click the ellipsis (... ) to see the attributes that exist for this
custom object type:
The Select Object Type Attribute for Custom Object Page appears.
11. Select the boxes for the attributes you want and click Add.
12. You can sort the attributes in the Custom Object Attribute Definition Assignments Page, to define the order in which
the attributes are presented.
To manage the custom object type that you have just created, use the Custom Objects module under the site area in
the Business Manager. See Custom Objects for more information.

Batch Processes
Navigate to: Custom Objects> Custom Object Editor> Edit All | Edit Selected> Next> Finish
Use this page to see the status of batch processes.

Batch Processes Grid - displays the batch processes associated with the product.
Select All - click to select all batch processes. Check a specific box to select a specific product option.
Description - click the name of the batch process to edit it.
Start - displays the time when the batch process was started.
Duration - displays the length of time the batch processes has run.
Status - indicates whether the batch process was successful.
Refresh: click to see changes in the status.
Note:
This page does not automatically update. You must click Refresh to see any changes.
Delete - click to delete any selected batch processes.
Reset: click to reset the value to those displayed when you first opened the page.

Import & Export


Import
Custom Objects
(XML)

Export
Custom Objects
(XML)

Description
Import or export custom objects from or into XML files.

98

Ordering
Orders
Navigate to: Ordering> Orders
1.
2.
3.
4.
5.
6.
7.
8.

View and modify general order information.


Edit order attributes.
View payment information.
Add a note to an order record.
View order history.
Send emails to confirm order, payment or shipping status, cancel an order or create a custom email.
Configure site preferences relevant to orders.
Import and export order details.

Use this page to search for and manage your orders.

Advanced: click to search for an order via advanced search. The Orders Advanced Search Page opens.
By No: click to search by or or more order numbers. The Orders By No Search page opens.
Order No: enter an order number to locate an order or use wildcard syntax.
Find: click to locate an order using the entered information. If you do not enter search criteria, all orders opwns.

Order List

Number: shows the order numbers. Click this link to view or edit order details. The Orders page opens.

Order Date: shows the date each order was created.

Created By: shows the user that created the order: System or Customer.

Registration Status: shows the registration status of the customer: Registered or Unregistered.

Customer: shows the customer name for each order.

Email: show the email address for each customer who created an order.

Total: shows the order total of each order.

Status: shows the status of each order.

Orders Page General Tab

99

Information: shows information about the order, such as number of line items, shipping location and total price.
Date Received: shows the date received.
Created By: shows who created the order:

Customer

System

Any Agent

Specific Agent
Customer: shows the customer name. On the Order Details page, (unregistered customer) appears beside the customer's
name for an unregistered customer.
Customer No: shows the customer number.
IP Address: shows the customer's IP address if Site Preferences are configured to show this. Otherwise, N/A appears. See
Site Preferences Order page.
Email: click to change. The Apply and Cancel buttons appear.

Apply: click to apply any changes you have made to the email address.

Cancel: click to cancel any changes you have made to the email address.
Phone: click to change the phone number. The Apply and Cancel buttons appear.

Apply: click to apply any changes you have made to the email address.

Cancel: click to cancel any changes you have made to the email address.
Order Status: click to change the order status. A dropdown and the Apply and Cancel buttons appear.

Dropdown

Open: click to open the order (default).

Canceled: click to cancel the order.

Apply: click to apply any changes you have made to the order status.

Cancel: click to cancel any changes you have made to the order status.
Confirmation Status: click to change the confirmation status. A dropdown and the Apply and Cancel buttons appear.

Dropdown

Not Confirmed: click to set the order to not confirmed.

Confirmed: click to confirm the order (default).

Apply: click to apply any changes you have made to the confirmation status.

Cancel: click to cancel any changes you have made to the confirmation status.
Shipping Status: click to change the shipping status. A dropdown and the Apply and Cancel buttons appear.

Dropdown

Not Shipped: click to change the shipping status (default).

Shipped: click to change the shipping status.

Apply: click to apply any changes you have made to the shipping status.

Cancel: click to cancel any changes you have made to the shipping status.
Export Status: click to change the export status. A dropdown and the Apply and Cancel buttons appear.

Dropdown

Not Exported: click to change the export status to Not Exported.

Exported: click to change the export status to Exported.

Ready for Export: click to change the export status to Ready to Export (default).

Export Failed: click to change the export status to Note Exported.

Shipped: click to change the export status to Shipped.

Apply: click to apply any changes you have made to the export status.

Cancel: click to cancel any changes you have made to the export status.
Shipment xxx: click to view the Orders Shipment page.
Qty.: shows the quantity of an item in an order.
Product ID: shows a list of the product IDs included in an order.
Name: shows a list of the products (by product name) included in an order.
Manufacturer: shows a list of the manufacturer name of the items included in an order.
Tax Rate: shows the tax rate of each item included in an order.
Unit Sales Price: shows the unit sales price of each item included in an order
Item Total: shows the total for each item included in an order.
Send Email: click to send an email. The Send Order Email page appears.
Print Order: click to print the order.

100

Orders Page Payment Tab

Order Total: Shows the order total.


Amount Paid: Click to change the amount paid. An entry field appears. Enter an amount paid.

Apply: Click to accept the change.

Cancel: Click to cancel the change.


Balance Due: Shows the balance due. This changes if the amount paid changes.
Invoice Number: Shows the invoice number.
Payment Status: Click to change the payment status. Select a dropdown, then click Apply or Cancel.

Not Paid: Select to indicate that the order is not paid. This is the default.

Apply: Click to accept the change.

Cancel: Click to cancel the change.

Part Paid: Select to indicate that the order is partially paid.

Apply: Click to accept the change.

Cancel: Click to cancel the change.

Paid: Select to indicate that the order is paid in full.

Apply: Click to accept the change.

Cancel: Click to cancel the change.


Payment Method: Shows the payment method, amount applied and details.
Billing Address: Click to change the billing address that appears. The Customer Billing Address page appears.
Print Invoice: Click to print the invoice.
<< Back to List: Click to return to the Orders List page.

Orders Page Notes Tab

Subject: Enter the subject of your note.


Text: Enter the text of your note.
Add: Click to add your note.
<< Back to list: Click to return to the Order List page.

Note List

Select All: Click to select all notes.

101

Click the select box for one or more notes to select them.
User: Shows the user who created the note.
Time: Shows the time the note was created.
Note: Shows the note: Subject and Text.
Delete: Click to delete any selected notes.

Orders Page History Tab

User: Shows the user that performed each action.


Time: Shows the time each order action took place.
Action: Shows a description of what happened for each order action.
<< Back to List: Click to return to the Order List page.

Site Preferences Order Page


Navigate to: Site Preferences> Orders
Use this page to configure order parameters.

Order Export Settings

Order Export Delay: enter the number of minutes after order creation that an order can be exported. After this delay, the
order is a candidate for export.
Order Edit Export Delay: enter the number of minutes after an order is opened for editing that it can be exported.

Order Storage Settings

Order IP Logging: Enable to activate storage of customer IP address during order creation. When an order is placed by a
customer, his or her IP address can be stored within the order. The IP address appears on the order detail page and will be
exported as well for further usage. This feature supports IPv4 and IPv6 addresses. IP logging must be enabled for a specific
site.

102

Enabled: select to enable.


Disabled: select to disable.
Note:
For European customers, particularly in Germany, we strongly advise that merchants include the acceptance of IP number
storage as part of their terms and conditions. This because a pending supreme court decision may prohibit the storage of
customer IP numbers at all, for privacy reasons.

Order Data Retention

Payment Information Retention: enter the number of days the system stores credit card and bank account payment
information. Payment information used for orders older than the specified number of days is masked so that the original
numbers are no longer recoverable. This masking is permanent and cannot be undone if the number of days is changed later.
If you leave the field blank, payment information is masked after 365 days.
Order Retention: enter the number of days the system stores orders. Orders older than the specified number of days are
automatically removed from the system. Leave the field blank if orders should never be purged from the system.
Apply - click to save any changes.
Reset - click to reset the value to those displayed when you first opened the page.
<< Back: click to return to the Site Preferences landing page.

Payment Processors
Navigate to: Ordering> Payment Processors
1.
2.

3.

The list shows all payment processors currently defined for this site.
The Demandware scripting API allows multiple payment instruments per basket/order. For example, an order can be
associated with multiple credit cards, gift certificates or other payment methods (i.e. customer can redeem multiple gift
certificates and pay the remaining amount with a credit card or BillMeLater).
Use the Demandware platform tools to:
a) Create custom payment processor
b) Administer the payment processor available in your storefront site, including the pre-defined processors of:

Basic credit card

Basic Gift Certificate

Cybersource BML

Cybersource Credit

PayPal Credit

PayPal Express

Verisign credit
c) Activate payment processors for all customers or specific customer groups:

No one

All customers

Selected Customer Groups

Configuring a New Payment Processor


When you create a new payment processor, you may need to define the preferences needed for this payment processor. (Obtain
these preferences from the payment provider's specifications.)
For the payment processor to be fully functional, you must code to the payment provider's API per their specifications, and
possibly also obtain a certificate from them. If a certificate is required, notify Demandware Support (support@demandware.com)
when you have the certificate so it can be included in your application.
Configuring a payment processor involves these steps:
1. Create payment processor in Business Manager.
2. Create preference definitions and default values in Business Manager.
3. Implement storefront extension points in Studio.
4. Implement back office extension points in Studio.
5. If required, obtain a certificate for use with your payment provider and have Demandware install it on your instance.
Steps 1, 2 and 5 are described below. For details on steps 3 and 4, see Studio documentation.

103

1.
2.
3.
4.

5.
6.
7.
8.
9.
10.
11.
12.
13.

In Business Manager, navigate to Ordering > Payment Processors for your site.
The Payment Processors List page appears.
On the Payment Processors page, click New. The General page for the payment method appears.
The New Payment Processor page appears.
Enter the ID (for example, Discover_PM ). Enter an optional description of the payment processor.
Click Apply. Now you must define the preferences needed for this payment processor. (Obtain preferences from the
payment provider's specifications.)
The Settings tab only shows settings for standard payment processors. For new payment processors, the Settings tab
shows instructions on how to configure the preferences, but not the actual configuration user interface. For new
payment processors, you must define a new preference group with the same name as the ID you just created (for
example, Discover_PM) in the System Object Definitions module and then enter the configuration information in the
Custom Preferences module (per the following instructions).
In Business Manager, navigate to Site Development > System Object Definitions and select the SitePreferences
system object.
Click the Attribute Definitions tab.
Click New and create a new attribute (for example, create the attributes accountid (integer, mandatory and a minimum
of 5 characters) and accountname (string, mandatory and a minimum of 10 characters).
Click the Attribute Grouping tab.
Enter the name of the payment processor you just created (for example, Discover_PM ) in the ID field. Enter a name in
the Name field and click Add. The ID appears in the list.
Click Edit beside the attribute grouping you just created.
Click the ellipses (...) to view the available attributes and select those you just created (for example, accountid and
accountname).
Navigate to Site Preferences > Custom Preferences and select the Attribute Group ID that you just created.
Enter the credit card provider's credentials and click Apply. You can now use the credentials in your application. See
Site Development for more information on developing an application.

Shipping Methods
Navigate to: Ordering> Shipping Methods
1.

2.

Manage the shipping methods of this site where you can specify the following:

Shipping costs based on shipment merchandise value

Fixed shipping costs per item

Surcharge shipping costs per item

Product exclusions: products that cannot be shipped with a particular shipping method. For example, certain goods
cannot ship via shipping methods that use airlines.

Address exclusions: excluding addresses that are not serviced by a particular shipping methods. For example, shipping
methods that do not ship to post office boxes or military addresses.
The following rules apply:
If a product is a member of multiple shipping cost groups, the lowest shipping cost takes precedence.

If fixed and surcharge shipping costs are defined for a product, the fixed cost takes precedence.
Shipping cost defined for a master product is also defined for all variants of the master. That is, variants inherit the
item-level shipping cost from their master product. The variant can add its own shipping cost as well. Note that
variants' shipping cost is only effective if it is less than the shipping cost of the master product.
Shipping cost is not applied to bundle product line items or options line items. That is,iIf a product bundle is added to
the cart and it has an individual shipping cost only this cost is added to the order. If the products are purchased
individually and they have (or some of them have) individual shipping costs, then these costs are added to the cart.
Product line items with product-level shipping costs do not count toward the merchandise total used to evaluate
shipment-level shipping promotions.

Use this page to creating a new shipping method or modify an existing one. Fields marked with an asterisk are mandatory.

104

Select Language: select the language to be used for the shipping method.
ID: enter a unique ID.
Name: enter the shipping method name.
Enabled: click to set this shipping method as active in the storefront.
Default: select this shipping method as the default shipping method.
Based on: select the shipping method on which this shipping method is based.
Tax Class: select a tax class.

Undefined

exempt

standard
Apply: click to accept the changes.
<<Back to List: click to return to the list of shipping methods.

Shipment Cost
Use this section to define the costs for the selected shipping method.

To specify a flat cost, add one entry to the cost table. Use '0' as the value.

To define scaled shipping costs, add as many table entries as needed and set the respective order values and costs.

Shipment Value: enter the shipment value for a flat cost or click Add for as many values as you need for scaled shipping
costs.

Shipment Cost: specify the shipment costs.

USD: enter the shipment cost.

Select fixed price or % of shipment value. You can define a fix cost amount (for example, $4.99), or let the system
calculate shipping cost as a percentage of the actual order value (for example, 3%).

- click to delete a table entry.

Apply: click to accept the changes.

Product Fixed Cost


Use this section to define the fixed shipping costs of specific product groups.

Product Group: specify one or more product groups that use the specified shipping method.

Edit: click to qualify the products that are included in or excluded from the product group. The Product Include
Exclude dialog box appears.

Add: click to add another product group.

Shipping Cost: enter the shipping cost to be applied to each product group.

- click to delete a table entry.

Apply: click to accept the changes.

Product Surcharge Cost


Use this section to define the surcharge shipping costs for specific product groups.

Product Group: specify one or more product groups that use the specified shipping method.

Edit: click to qualify the products that are included in or excluded from the product group. The Product Include
Exclude dialog box appears.

Add: click to add another product group.

Shipping Cost: enter the shipping cost to be applied to each product group.

- click to delete a table entry.

Apply: click to accept the changes.

105

Exclusions
In this view, you can define the excluded products and shipping addresses for this shipping method. Operators depend on the
selected product/address attributes.

Excluded Products: click Edit to define product groups. The Product Include Exclude dialog box appears.

Excluded Addresses: click Edit to define address groups. The Address Include Exclude dialog box appears.

- click to delete a table entry.

Apply: click to accept the changes.

Taxation
Navigate to: Ordering> Taxation
1.
2.
3.

Configure how tax is estimated.


The displayed site taxation policy determines whether product and service prices are treated as gross or as net prices.
The taxation policy is configured during site creation and can only be changed by Demandware Support.

General Tab

Taxation Policy: Shows the taxation policy for the site. This policy determines whether products and service prices are
treated as gross or as net prices. The taxation policy is configured during site creation and can only be changed by
Demandware Support.
Note:
See Taxation impact on subscription fees to understand how tax calculations can significantly impact the
Demandware subscription fees that you pay.
Map Address To: Select is specify how tax jurisdictions are looked up based on the customers shipping address.

Jurisdiction ID (Default): The address attribute configured with the setting 'Address Mapping 1' is matched
against the ID of your jurisdictions.
Note:
The system automatically sets Mapping Attribute 2 to not used.

Jurisdiction Mappings: The address attributes configured with the settings 'Address Mapping 1' and 'Address
Mapping 2' are matched against the jurisdiction mappings configured for your site.
Note:
For Address 1 and Address 2, you can select Country, State or Zip and define a combination of these
attributes, such as Country/State or Country/Zip.
Address Mapping 1: Select the address attributes that are used to determine a tax jurisdiction.

Country (Default)

State

Zip
Address Mapping 2: Select the address attributes that are used to determine a tax jurisdiction.

not used: This setting is used for Jurisdiction ID

State

Zip
Apply: Click to apply any changes.
Reset: Click to return to the previous settings.

106

Tax Classes Tab

Select All: Click to select all tax classes.


Select a tax class to delete or assign as the default.
New: Click to define a new tax class. The New Tax Class page appears.

Tax Class List


Code: Shows each tax class code.
Name: Shows each tax class name.
Description: Shows a description of each tax class.
Default: Select a tax class to assign as the default.

Tax Jurisdiction Tab

Select All: Click to select all tax rates.


New: Click to create a new tax jurisdiction. The New Tax Jurisdiction tab appears.
Apply: Click to accept your changes.
Delete: Click to delete one or more selected tax jurisdictions.
Code: Chows the name of each tax jurisdiction code.
Name: Shows the name of each tax jurisdiction.
Default: Select one tax jurisdictions at act as the site default.

Tax Classes Tab

107

Exempt: Enter the exempt tax rate for the tax class/tax jurisdiction combination.
Standard: Enter the standard tax rate for the tax class/tax jurisdiction combination.
Apply: Click to apply your changes.
Reset: Click to return to the previous settings.

Import & Export


Import
Tax Table

Export
Orders (XML)
Tax Table

Description
Export orders into XML files.
Import tax classes, tax jurisdictions and tax rates from or into
XML files.

Shipping Methods
Payment Methods

Shipping Methods
Payment Methods

Import or export shipping methods from or into XML files.


Import or export payment methods from or into XML files.

108

Analytics
Navigate to: Analytics
1.
2.
3.

4.

For the analytics reports, all analytics are compiled in the en_US locale. Do not modify the reporting template locale for any
reason. If you have questions, please contact Demandware Support.
The precision of the conversion and percentage values in reports is two decimal places, to show really small conversion
rates. For example, instead of reporting 0.0% for 250,000 visits and 95 orders (one decimal place), analytics reports 0.04%.
When employing the reporting features described here, keep in mind the following:

Due to the nature of the technology used, no report can be considered 100% accurate 100% of the time.

Visits are ended for a single time period when necessary (for example, at the end of a day) but continued for the next
larger time period (for example, the next day). Therefore, summing up the days in a report does not necessarily match
the number of days in a given month.

In order to run some reports, you need to have 'includes' in your storefront. See the SiteGenesis Application for
examples.
Additional documentation on analytics can be found here: https://xchange.demandware.com/docs/DOC-10177

Analytics Reports
These are the types of analytics reports available in the Business Manager Analytics module:
1. Conversion Reports
Include data on the conversion of visits, shopping carts and checkouts to order, conversion of source codes to orders, as
well as visits to shopping carts, to checkout and to orders.
2. Purchase Reports
Include data on the orders and revenue, average revenue, average order, and ordered products.
3. Catalog Reports
Include data on the top products ordered by quantity and by revenue.
4. Search & Navigation Reports
Include data on the top search terms, and the top referring search engines.
5. Customer Reports
Include data on the number of new customers, number of first time buyers and the total number of registered
customers.
6. Traffic Reports
Include data on the top pages, top referrers, top user agents, top robots, total requests, request runtime, total visits, and
visit duration.
7. AB Testing Reports
Provide an overview of the AB tests performed on your store and include data on group segmentation and conversion
rates.
8. Technical Reports
Provide insight into technical operations data of your store such as pipeline performance numbers and page caching
characteristics.

Data Capture and Source


Demandware uses session IDs to capture web activities. While this does not distinguish between visits and visitors (unique
visits), it does circumvent the issue with users blocking cookies or not allowing JavaScript and therefore not being counted.
Demandware uses web logs for analytics. Using web logs is faster than pulling data from the database. The web logs represent all
storefront web activities, for example, orders entered by consumers. They do not represent, for example, order cancelations, order
modifications and returns performed off-line by the merchant.

Terms and Definitions


Term

Definition

109

A visit can take part in AB testing with one or more tests. Each test has a name and several segments (for
example, name FastCheckout and segments "one step", "two step").
AB testing
(visit-based)

The total number of visits is the base number.


The sum of all visits that took part in a certain test and test segment is the AB test result number.A
visit can be part of multiple segments within a test and can take part in multiple tests at once. It will be
counted for all tests it took part in.

A basket or cart is a shopping cart created by a user during an-add-to-cart operation.

Basket / Cart

Buyer

A visit can have zero or more carts (usually zero or one cart).
Multiple carts occur when a user has checked-out a cart but continues to use the open visit and creates
another cart. Each cart has a unique identifier and is counted separately. The counting time is the start
time of the visit.
A cart is counted multiple times when the cart spans two or more visits (persistent cart feature).For
example: Joe goes to IDemand.com thus creating a visit or session. The session ID is 1234 with time
stamp March 20, 2006 12:20:37. He adds a product to a cart. The new cart has Cart ID 99999 with
time stamp March 20, 2006 12:24:19. He does not check-out the cart but leaves the store, ending the
visit/session. At 20:56:44 in the evening, Joe returns. Since Joe allows cookies on his computer, the
cart still exists. The system detects this, counts the cart as a new cart and sets the time stamp of the
cart to the time stamp of the new visit/session, i.e. March 20, 2006 20:56:44. He adds one more
product, checks-out and leaves. The end result is 2 visits, 2 carts and 1 checkout.

A customer; a visitor who registered an account in the storefront and who may or may not have made a
purchase.

Checkout

The process of ordering a cart. This process can be stopped at any time and does not necessarily end with an
order. A visit can have more than one checkout process for the same cart. Each checkout is counted separately.
The counting starts from the start time of the visit.

Customer

A buyer; a visitor who registered an account in the storefront and who may or may not have made a purchase.

External
Search

Any search that led to the storefront, regardless of source. Phrases are not separated or reordered. A list of
recognized search engines is maintained by Demandware. If you know of a search engine that should be added
to the list, please contact Demandware via Support@demandware.com.

IP Address

The IP address of the sender of the request. The real IP address of the sender can be masked by proxies or
network address translation.

Order

The final result of a finished checkout process. Each order is counted separately. The order time is the start time
of the visit. A visit can have more than one order (that is, a new cart for each order).
All reports use orders as they were captured by Demandware at the time they were placed. Any subsequent
changes to orders are not captured by Demandware.

Page Request

An http-request to the system. Only HTML requests are counted, no media requests (images, CSS, Flash etc.)
are counted.

Product

An item with a unique ID.

Quantity

The number of items sold of a specific product.

Referrer

When visiting a web page, the referrer or referring page is the URL of the previous web page from which a link
was followed. More generally, it is the URL of a previous item which led to this request. The referrer of an
image, for example, is generally the HTML page on which it is to be displayed.

110

Registered

A registered customer who has made at least one purchase.

Revenue

The sum of all merchandise totals, including shipping and tax.

Robot

Runtime

Also known as a web crawler or spider; a program that browses the World Wide Web in an automated manner.
Web crawlers are mainly used to create a copy of all the visited pages for later processing by a search engine
that will index the downloaded pages to provide fast searches. Crawlers can also be used for automating
maintenance tasks on a web site, such as checking links or validating HTML code.
A list of recognized robots is maintained by Demandware.
Time needed to deliver a response back to the client. This time includes the time needed by the system to create
as well as send the response.

Search

Any search performed in the storefront. A search can contain one or more search words. For example "Apple
ipod" represents one search and one search phrase. Phrases are not separated into single words or reordered.
For analytics, only the 10,000 most recent search phrases are used.

Unique Page

A unique Demandware URL, for example, /Link-Category?catalog=StandardCatalog&name=226.

Unregistered
Buyer

An unregistered user who makes a purchase. Given the nature of being unregistered, the same user will be
counted for each purchase.

User Agent /
Browser

The client application used with a particular network protocol. The phrase is most commonly used in reference
to those that access the World Wide Web. Web user agents range from web browsers to search engine crawlers
("spiders"), as well as screen readers and Braille browsers. When Internet users visit a web site, a text string is
generally sent to identify the user agent to the server.
A session by a registered / unregistered person or robot as indicated by a unique session ID that spans all
requests.

Visit

The start time of the visit determines the time of the count. If a visit spans more than one hour or day,
it will be counted once for its start time (time and date).
All registered and unregistered visits are listed separately in certain reports.
All non-customer visits are listed separately in certain reports.
The start time of a visit is also the start time for all sub-activities, such as orders, checkout, and carts.
For analytics, only the first 1000 requests are counted. The limit prevents robots from biasing reports.
The maximal lifetime of a visit is determined by the session ID lifetime. The Demandware Web
Server session ID lifetime is currently set to 6 hours (security) and the session expiration (application
server) session timeout is set to 30 minutes (resource and run-time performance).
The session timeout is fired if a session is inactive for this period of time (there are no requests during
this time).
A session times out after 6 hours even if the session is active. A new session is automatically created
and all active entities are recounted.

Visit Duration

The time between the first request that started the visit and the full delivery of the last request of the visit.

Visitor

A visitor to the storefront, registered or unregistered.

111

Site URLs
SEO / Search Support (Deprecated with 13.1 Release)
Navigate to: Site URLs> SEO Support
1.
2.
3.

Ability to set up search friendly urls.


Users have the ability to Define URL Syntax (SEO Friendly URLs).
Below are the conventions that can be used to construct an SEO friendly URL. Note this structure would look like the
following: www.domain.com/pageURL/{ID},default,pd.html. The user has the ability to manipulate the highlighted red
section but there is currently a limitation on removing text at the end which is currently used to carry along refinement data
and breadcrumbs.
a) Category Page - Default display is set to ${pageURL||displayName}. This uses the Page URL and Display Name
attributes to construct the default URL. If you want to create a custom URL, supported category attributes include
pageURL, pageTitle, ID and displayName.
b) Product Page - Default display is set to ${pageURL||name}. This uses the Page URL and product Name attributes to
construct the default URL. If you want to create a custom URL, supported product attributes are pageURL, pageTitle,
productID, name, brand and shortDescription.
c) Content Pages - Default display is set to ${pageURL||name}. This uses the Page URL and content Name attributes to
construct the default URL. If you want to create a custom URL, supported content attributes are pageURL, pageTitle,
ID and name.

This page controls how your site URLs appear.

Instance Type: select the type of instance you are working on.
Enable Search Friendly URLs: click to change the URLs from the default Demandware URLs to URLs optimized for
search engines.
Default Page URL for Categories: If nothing is specified the default is ${pageURL||displayName}. This uses the Page
URL and Display Name attributes to construct the default URL. If you want to create a custom URL, supported category
attributes include pageURL , pageTitle , ID and displayName .
Default Page URL for Content Pages: If nothing is specified the default is ${pageURL||name}. This uses the Page URL
and product Name attributes to construct the default URL. If you want to create a custom URL, supported product attributes
are pageURL , pageTitle , productID , name , brand and shortDescription .
Substitute blanks in URLs with: If nothing is specified the default is ${pageURL||name}. This uses the Page URL and
content Name attributes to construct the default URL. If you want to create a custom URL, supported content attributes are
pageURL , pageTitle , ID and name .
Apply: click to save any changes.
Reset: click to reset the value to those displayed when you first opened the page.

Upgrading from SEO Support to URL Rules


Note: For customers who are implementing their site using Demandware 13.1 or later releases, the SEO Support
functionality is not visible and this topic does not apply to you.

112

If you implemented your site before Demandware 13.1 was released, this topic contains the information you need to upgrade to
the new module.
In release 13.1, Demandware added the URL Rules module, which allows you to customize storefront URLs to optimize search
engine results. The SEO Support feature, which provided a limited version of the same functionality, is deprecated for 13.1 and is
planned for removal at a future date. The SEO Support functionality is accessible under the URL Rules module, until the new
URL Rules module is enabled using the site preference for Storefront URLs.
The URL Rules module helps you optimize your site URLs in the following ways:

URLs do not contain a page type indicator or a proprietary extension sc.html

URLs are short and meaningful

URLs do not contain demandware


Note: The SEO Support module is hidden once the URL Rules module is enabled.

Step 1: Sandbox Configuration and Testing


To use the new URL Rules feature, you must enable it. The URL Rules module displays the SEO Support page until the URL
Rules module is enabled. This is a one-way transition and no redirects are created if you decide to disable URL Rules and
reenable the deprecated SEO Support feature. Demandware strongly recommends that you test your new configuration on
Sandboxes before enabling the feature on Staging or Production.
a)

Add Permissions to the URL Rules Module


The permissions for the SEO Support module are migrated to the URL Rules module. You only need to follow these steps if
you have additional roles to add for the module or if you did not use the SEO Support module and so are upgrading from
standard Demandware URLs.
1. In Business Manager, navigate to Administration > Organization > Roles & Permissions. The Roles Page
appears.
2. Click the role you want to add the permission to. The Roles Page General Tab appears.
3. Click the Business Manager Modules tab. The Roles Page Business Manager Modules Tab appears.
4. In the Select Context list select the site you want to add permissions for.
5. Under Site URLs check the box for the URL Rules module.

b)

Enable URL Rules on your Sandbox


1. In Business Manager, navigate to Site Preferences > Storefront URL Preferences. The Storefront URL
Preferences page appears.
2. Check the Enable Storefront URL Rules box and click Apply.
3. Navigate to Site URLs > URL Rules. The URL Rules Page General Tab appears.

c)

Configure URL Rules


1. The next step is to configure URL rules for your storefront. See BM Creating SEO URLs.

d)

Test Other Features That May Be Impacted


After you have configured and tested your storefront URLs, investigate whether you need to change the following:

code - If you use our SEO Support module without custom code for SEO, no code changes are necessary to take
advantage of this feature. If you have custom code or have additional integrations for SEO, you may need to alter the
code to work with the feature.

canonical links - Demandware best practice is to create canonical links for categories using the URLUtils method. If
you used the URLUtils method, no changes to code are necessary. However, if you have hardcoded canonical links in
your templates, you need to update them to use your new URLs.

content links - check links in your content assets to make sure they do not need to be updated to reflect the new URLs.
If you are using the content link functions, they do not need to be updated. However, if you have included hardcoded
links in your content assets, these may need to be updated.

URL redirects - check your URL redirects to make sure that your redirects do not need to be adjusted to your new
URLs. This may because the redirects are outdated or conflict with your new URLs.

static mappings and mapping rules - check your URL mappings to make sure that your redirects do not need to be
adjusted to your new URLs.
Note: If your old platform URLs now match the new storefront URLs, a redirect is no longer necessary.

product ID search - make sure that the product ID search works as you expect if customers enter the product ID as it
appears in the URL.

113

e)

Export URL Rules From your Sandbox


1. On your Sandbox, in Business Manager, navigate to Administration > Site Development > Site Import &
Export. The Site Import Export Page appears.
2. Scroll down to the Export section and enter a name for the export, such as sandRules .
3. Under Data Units to Export expand Sites > site and select Site Preferences and Site URLs.
4. Scroll to the top of the section and click Export.
5. Scroll to the bottom of the page and monitor the export in the Status section of the page. Click Refresh to refresh
the page.

Step 2: Staging Configuration and Testing


When you are confident that you can transition to the new URL Rules feature, enable it on your Staging system and import your
configuration from your Sandbox system.
Note: Once URL Rules are enabled, the SEO Support page is no longer visible under URL Rules.

a)

Disable SEO Support


This step prevents you from exporting unnecessary files in future site exports.
1. On Staging, in Business Manager, navigate to Site URLs > URL Rules. The Search Support Preferences Page
appears.
2. In the Instance Type list, select Staging .
3. Unheck the Enable Search Friendly URLs box.

b)

Add Permissions for the URL Rules Module


1. In Business Manager, navigate to Administration > Organization > Roles & Permissions. The Roles Page
appears.
2. Click the role you want to add the permission to. The Roles Page General Tab appears.
3. Click the Business Manager Modules tab. The Roles Page Business Manager Modules Tab appears.
4. In the Select Context list, select the site you want to add permissions for.
5. Under Site URLs , check the box for the URL Rules module.

c)

Enable URL Rules on Staging


1. In Business Manager, navigate to Site Preferences > Storefront URL Preferences. The Storefront URL
Preferences page appears.
2. Check the Enable Storefront URL Rules box and click Apply.
3. Navigate to Site URLs > URL Rules. The URL Rules Page General Tab appears.

d)

Import URL Rules into Staging


1. On your Sandbox, in Business Manager, navigate to Administration > Site Development > Site Import &
Export. The Site Import Export Page appears.
2. In the Import section, click Browse and select the archive you exported from your Sandbox system.
3. Click Upload .
4. Check the uploaded file in the list and click Import .
5. Scroll to the bottom of the page and monitor the import in the Status section of the page. Click Refresh to refresh
the page.

e)

Update Staging jobs


You need to update:

sitemap(s) - regenerate your sitemap to include your new URLs. The sitemap is not automatically regenerated.

replication jobs - update your replication jobs to include the new URL Rules.

site export jobs - update your job to include URL Rules.

site backup - update your scheduled site backups to include URL Rules.

f)

Replicate to Production and Update Sitemap


You need to replicate the URL rules and URL-related jobs to your production system:

replication jobs - update your replication jobs to include the new URL Rules functionality.

site export jobs - update your job to include URL Rules.

Regenerate your sitemap on production so it includes your new URLs. The sitemap is not automatically
regenerated, nor is it replicated from Staging.

114

Auto-redirect of Updated URLs


In this topic, old URLs refers to URLs configured prior to Demandware 13.1, whether they are search-friendly URLs configured
through the SEO Support module or standard Demandware URLs not optimized for external search engines.
New URLs refers to URLs configured using the URL Rules module. In Demandware 13.1, new URLs are disabled by default for
existing sites and are enabled for sites created after the release.
Old URLs work when the module URL Rules is disabled and are redirected when the URL Rules module is enabled.
Note: SiteGenesis is now updated to use new site URLs.

Old URLs to New URLs


If the URL Rules are enabled, existing URLs are automatically redirected to the new site URLs via a 301 redirect.
Example 1: Pipeline URL
Existing URL: www.sitegenesis.com/on/demandware.store/Sites-SiteGenesis-Site/default/Account-Show is redirected to new
URL www.sitegenesis.com/account
Example 2: Category URL
Existing URL: www.sitegenesis.com/mens-clothing-shorts,default,sc.html www.sitegenesis.com/on./demandware.store/SitesSiteGenesis-Site/default/Search-Show?cgid=mens-clothing-shorts is redirected to new URL www.sitegenesis.com/mensclothing-shorts
Example 3: Product URL
Existing URL: www.sitegenesis.com/on/demandware.store/Sites-SiteGenesis-Site/default/Product-Show?pid=83536828 is
redirected to new URL www.sitegenesis.com/mens-clothing-shorts/straight-fit-shorts/83536828.html

New URLs to New URLs


New URLs can change for the following reasons:

one of the URL rule parameters has changed

the URL rule has changed


The system still accepts the old version of the object URL, and redirects to the new URL of the object.
Example 1: Pipeline URL
Existing URL: www.sitegenesis.com/account is redirected to new URL www.sitegenesis.com/my_account
Example 2: Category URL
Existing URL: www.sitegenesis.com/mens-clothing-shorts is redirected to new URL www.sitegenesis.com/mens-shorts
Example 3: Product URL
Existing URL: www.sitegenesis.com/mens-clothing-shorts/straight-fit-shorts/83536828.html is redirected to new URL
www.sitegenesis.com/mens-shorts/straight-fit-shorts/83536828.html
Note:
The system only archives URLs that have been replicated to Production before.

URL Rules Module (New with 13.1 Release)


Navigate to: Site URLs> URL Rules
1.

2.

Getting rid of Ugly URL structure:

Vanities for pipelines (www.retailer.com/account instead of www.retailer.com/on/demandware.store/Sites-SiteGenesisSite/default/Account-Show)

Drop locale and page type


New Rules - Greater control/flexibility for URL syntax

Carry breadcrumb/folder/path (www.retailer.com/mens/clothing/jackets/)

115

3.
4.
5.
6.
7.
8.

Carry other attributes such as brand, color, or size (www.retailer.com/mens-clothing-shorts/red/83536828.htm)

Drop ID where desired (except products)


International/Multilingual Ability to manage locales. User can define if, where, and how a locale should be contained in a
URL
Consistency & Efficiency - Same URLs on all instance types (Staging, Development, Production)
Business user control (no storefront coding needed)
Rules are global in nature they are inherited on all categories, across all products, and on all locales/languages
Overrides possible with pageURL (retain existing efforts to configure)
Preparation Consider timing of turning new URLs on. While 301 redirects are in place, it does take time for search engines
to crawl & reindex the site. There is always the potential for fluctuations.

FAQ
1. Will all my URLs change automatically when 13.1 rolls out? How can I prepare?
URL rule functionality will be disabled by default in your instances
2. Will I be able to preview all my storefront URLs before enabling/publishing?
Yes, the functionality contains a preview screen for global URL rules
Preview by Language also available.
Ability to preview each category via a selection tree
3. Do I need to setup redirects for my entire catalog?
No, all of your Demandware URLs will automatically be 301 redirected. In addition, internal links and Sitemaps will be
updated automatically.
Best Practice - URL Syntax
1. URLs should be short, clean, and contain keywords. Trailing slashes should be added to avoid duplicate content.
2. In addition:

URLs should always be in lowercase.

Special characters should be removed from URLs i.e. ! , :

All encoding should be removed from URLS i.e. %20, %2C etc

In the event that blanks exist between words in URLs use - as the separator i.e. this-is-test. Do not use underscores

No more than 3-5 separators should be used, unless it is for a content page.

The max character count should be 65 characters, per search engine guidelines and SEOMoz recommendation.

Best Practice Keyword Usage


1. Appropriate keywords should be utilized in the URL, as these are included as one of Googles ranking factors.
2. Ideally, keywords will be used in the catalog taxonomy and easily leveraged in URLs.
Category Name: Womens Casual Dresses becomes www.sitegenesis.com/womens-casual-dresses/

General Tab
Use this page to identify when URL rules are generated and any time identical URLs are generated for different catalogs,
categories, folders, content assets, or products.

116

Report
This section shows whether URLs are currently being updated, any conflicts between configured URL rules for catalogs, content,
and pipeline aliases, and the date of the last URL update.

refresh: click to refresh the report if a URL update is currently pending. URLs are automatically updated if the categories
are changed by import.

Run Update Now: click to update storefront URLs immediately.

Settings Tab
1.

Best Practice:

Hyphen-separate

Convert to lower case

International/Multilingual Considerations
FAQ
1. Can I configure different URLs for different countries?
No, the URL settings are established at the global catalog level.
2. Will my URLs be translated?
As URL rules are set at the global catalog level, they will apply to all language versions. The locale specific attributes will
be displayed in the URL if they are populated. So if you have both a French and English version of a site, and you
navigate to a category on each site, you should see the translated names, given there is a value specified at the category
level in Business Manager for each language storefront catalog.
www.sitegenesis.com/fr/homme/accessoires
www.sitegenesis.com/en/mens/accessories
3. How do I manage the new URLs for my site, which is in two different languages?
You should take the same steps as for a single language site, but define the languages/locales offered on your site.
Use this page to configure site URL generation.

Settings

Enable URL Rules: check the box to enable search engine optimization rules for the storefront URLs.
Lower Case URLs: check the box to convert all storefront URLs to lower case, even if you are dynamically including
product or category names that contain capitalization.
Substitute blanks in URLs with: select one of the following characters to replace any blanks in product or category names
that are included in the storefront URLs.

URL Encoding (%20) - replaces any spaces in the name with %20 space encoding.

Plus - replaces any spaces in the name with a plus sign.

Dash - replaces any spaces in the name with a dash.

Minus - replaces any spaces in the name with a minus sign.

Period - replaces any spaces in the name with a period.


Apply: click to save any changes.

117

Locale Mapping

Locale Mapping: select one of the following options to define whether host, path, or parameter represents the locale in the
URL:

None - no locale mapping is needed.

Host Name - specify mappings from host name to actual locale. For example, map de.sitegenesis.com to de_DE.

URL Parameter - specify mappings from locale name in the URL to actual locale. For example, map en to default .

Path - specify mappings from locale name in the URL to actual locale. For example, map / en to /default .
Apply: click to save any changes.
Note: If a locale mapping is already set and you change the locale mapping type or locale, Demandware updates your
automatic redirects to redirect from your original URLs at the time the URL Rules module was enabled to the new URL with
the new locale. If you have created redirects using the URL Redirects module, any redirect from the previous URL works,
but any redirect to the previous locale must be updated. In addition, any URL created using the URL Rules module with the
previous locale mapping will no longer work. To fix this, create a URL redirect using the URL Redirects module from the
URL with the previous locale mapping to the new locale mapping.

Catalog URL Tab


1.

Best Practice Category URL:

Enable pageURL override (allows for custom configuration on individual category level)

Best keyword match is the category name

If including category parent or path, carefully consider impact on length (keep URLs clean and short).

Append trailing slash to category URLs (to avoid duplicate content).

For most sites, the default of category name for the URL will suffice. With the new URL functionality, this will no
longer contain the category ID, unless specified.

Category URL Rule = Category Name

Note: URL syntax preview is also included on the main category page in Staging environments, to eliminate any
confusion.

2.

Best Practice Product URL:

Consider ID values if closely matching product name

Include product name if ID is not alpha value (ID still included by default)

Best keyword match is the product name

DW recommends keeping URLs flat. Only include the product name. If including the category path, limit this to only
the main category to minimize length of URL (keep URLs clean and short)

Enable override with page URL product attribute (ability to create better keyword match)

Note:

If left blank, Product URL rules will take the default structure, using only the product ID.

Additional Product Attributes color, size, etc. can now be brought into the URL. These values may not be SEOfriendly as they exist ie. JJV61XX or BLACKFB. Audit by searching on values in Advanced Product Finder [
[attribute, name], / , [attribute, custom.color]

Use this page to configure catalog URL generation.

118

Content URLs

Category URL Rule: enter a rule that defines the format for category URLs.
Enable override with 'pageURL' category attribute (if set) - check this box to allow configuration for individual
categories using the Page URL attribute for the content asset.
Append trailing slash to category URLs - check this box to add a slash at the end of the storefront URL for categories.
Demandware recommends that you select this option, as without the trailing slash, it is possible to have URLs with and
without slashes, which search engines sometimes identify as duplicate content.
Product URL Rule: enter a rule that defines the format for product detail page URLs.
Enable override with 'pageURL' content attribute (if set) - check this box to allow configuration for individual product
assets using the Page URL attribute for the product asset.
Use '-' as Product ID separator instead of '/' - check this box if you use a slash as a separator in your product IDs and
want to replace this in the URL, so that the ID does not appear to be part of the URL path. For example, if you have the ID
SKU/12441 if you check this box, the product ID appears in the URL as SKU-12441.

Rule Preview

Category/Product/Locale: select a category, product asset, and locale to use in previewing the URL rule you have
constructed.
Sample URL: displays the URL rule you have configured as applied to the selected category/product/locale.
Validate: click to validate the product rules.
Reset: click to cancel any changes made since opening the page.

119

Preview URL Syntax at Each Category Level

Content URL Tab


1.

Best Practice:

Keep URLs clean and short

Best keyword match is the page topic (Shipping & Handling) and main folder (Help section), if a subpage

Enable override with pageURL folder attribute allows for customization on individual category level

Append trailing slash to folder URLs

Folder Best Practice: include the folder parent and folder display name.

[folder-parent, [attribute, displayName], / ]

Content Best Practice: include the folder path and content page display name.

[ folder, [ folder-path, [ attribute, displayName ], - ] ]

Use this page to configure content URL generation.

Content URLs

Folder URL Rule: enter a rule that defines the format for library folder URLs.
Enable override with 'pageURL' folder attribute (if set) - check this box to allow configuration for individual library
folders using the Page URL attribute for the content asset.
Append trailing slash to folder URLs - check this box to add a slash at the end of the storefront URL for folders.
Content URL Rule: enter a rule that defines the format for content asset URLs.
Enable override with 'pageURL' content attribute (if set) - check this box to allow configuration for individual content
assets using the Page URL attribute for the content asset.

120

Use '-' as Content ID separator instead of '/' - check this box if you use a slash as a separator in your content IDs and
want to replace this in the URL, so that the ID does not appear to be part of the URL path. For example, if you have the ID
SKU/12441 if you check this box it appears in the URL as SKU-12441.

Rule Preview

Folder/Content/Locale: select a folder, content asset, and locale to use in previewing the URL rule you have constructed.
Sample URL: displays the URL rule you have configured as applied to the selected folder/content/locale.
Validate: click to validate the content rules.
Reset: click to cancel any changes made since opening the page.

Pipeline URLs Tab


1.

2.

3.

4.

Currently, non-SEO URLs look as follows:


www.sitegenesis.com/on/demandware.store/Sites-SiteGenesis-Site/default/Account-Show
www.sitegenesis.com/on/demandware.store/Sites-SiteGenesis-Site/default/Search-Show?q=shoes
If new URLs are turned on, and a mapping or vanity has been defined for a pipeline, the URL will change to the following
format
www.sitegenesis.com/account
www.sitegenesis.com/search?q=shoes
Mobile Sitegenesis URLs are treated as Demandware pipelines. To create friendly mobile storefront URLs, the mProductShow pipeline could be renamed with an alias of m or mobile
www.sitegenesis.com/mobile/search?q=shoes
Best Practice:

Take the time to create these short URLs for users and search engines

Esp. mobile, wishlist, cart

*Values entered are case-sensitive

Define alias (case sensitive, use lower case) vanity name

Enter the pipeline name for which you are creating the vanity (resolve to)

Use this page to configure URLs that are generated from pipelines.

Alias or Pipeline: enter the alias or pipeline name and click Find to find it.
New Alias: enter the term that displays in the storefront URL.
resolves to: enter the pipeline that is used when the term is displayed in the URL.
Save: click to save any changes.
Cancel - click to cancel any changes made since opening the page.

When to Use the Alias, Mapping Rule, Static Mapping, and URL Redirect
Features
1.

Mapping rules are generally used for large numbers of similar URLs that must be redirected. For example, for all URLs in a
specific category.

121

2.
3.

4.

5.

To redirect one specific URL, it is more common to use static mappings.


You must always configure Site URLs > Aliases. Aliases are only intended to redirect the host portion of a URL. Hostname
aliases generate 301 redirects for host-only URLs. They also allow you to redirect URLs to locale- or device-specific sites.
(continue to the next step)
Is the incoming URL to redirect..

a Demandware URL - in this case you want to use Site URLs > URL redirects, which are used for redirects of
obsolete pages hosted on the Demandware platform to current pages on the Demandware platform. For example, if you
change the name of a category. This is the only feature that can be used to redirect Demandware URLs. See Creating a
redirect from a Demandware URL. For more information about how this feature works, see URL redirect processing
and examples .

from an old platform other than Demandware - (continue to the next step)
Is the type of URL to redirect to.

a content page and/or unique or unusual - in this case you want to use Site URLs > Static mappings, which are
generally used for specific pages, whether they are landing pages or searches that do not conform to a general pattern.
A static mapping creates a one-to-one mapping between URLs where pattern mapping is not possible. This is
sometimes used for content pages. See Static mappings.

a product or category page and/or conforms to a pattern - in this case you want to use Site URLs > Mapping rules
- mapping rules identify the pattern of an incoming URL and map it to a pattern for a Demandware URL. Creating a
few mapping rules can allow you to manage many URLs from a legacy site efficiently.
Mapping rules are a very efficient way to migrate links and should be used in preference to static mapping. It is not
efficient for Demandware to handle large numbers of static mappings at a Web server level, so product and category
mappings should be mapped using rules.
Mappings can be maintained in Demandware for as long as you wish. We do not recommend removing them, since it is
not possible to predict when other site owners or search engines will update their links, and removing the mappings
prematurely causes you to lose traffic. See Mapping rules.

For more information, see Configuring 301 Redirects for Legacy URLs.

Mapping Rules
Navigate to: Site URLs> Mapping Rules
1. 301: You can configure mapping rules that use a pattern to identify a URL from your previous platform or site and
automatically redirect it to a Demandware URL. It is not possible to use mapping rules to redirect an existing or obsolete
Demandware URL to a different Demandware URL.
2. Also accounts for bookmarked urls.
3. Catch all rules should all be under Mapping Rules at the end.
4. When the system gets an incoming URL request, the Static Rule section is executed first in a top-down fashion. The
Mapping Rules section is interpreted (top-down as well) following that. Therefore, catch alls needs to be defined towards the
end of the Mapping Rules section to work as catch alls. You dont want a catch all to be triggered before a real mapping
definition for a given URL request.
5. ** are wild card characters.
6. There is no difference between one or two wild cards, we do it for readability purposes.
7. When creating the mapping use wild cards b/c of dns transfer.
8. Getting the list of legacy urls is easy do report from their old analytics system.
9. Some sites that are fairly large in terms of # of pages. They may find setting up 301s laborious. If they are stretched our
recommendation is to extract a report of your top 100 most viewed from analytics and set 301s for those first and then worry
about the rest later.
10. Mapping has to be copied to production.
11. Mapping rules must be edited on Staging, Development, or Sandbox instances and replicated to Production instances.
12. 2 options for moving over variation masters
a) Can do each as a line by line in static mapping
b) Insert a wild card in the legacy url and redirect them to the master product page on mapping rules
13. When its crawled it will be re-indexed
14. 301 Mapping Spreadsheet and how-to video: https://xchange.demandware.com/thread/6256

Before You Begin


Before you create mapping rules, you must have a host alias defined. Add the appropriate list of domain names for the site in the
Site URLs > Aliases module. By putting the simple site URL in the alias list (for example, "www.(store).com") you enable users

122

to get to the storefront without typing in the full Demandware URL. See also Assigning a hostname alias and Hostname alias file
format and processing.
Create Mapping Rules for Top Products and Categories
Mapping rules are created to preserve SEO rankings accumulated by your old site on your old platform and your new site on
Demandware. Demandware recommends that you google your top-selling categories and products and use the links that appear
on the first page of each search as the list of links that you want to redirect. Once you have the list of links, identify any patterns
you can use to apply rules to. For example, if there a large number of links in the same category or subcategory, you can use a
mapping rule to redirect any product in those categories from the old site to the new site.
Do Not Use Mapping Rules Instead of Hostname-only URLs
Avoid generating intra-site links back to the home page via a Demandware pipeline in those cases where a simpler "hostnameonly" URL can be used instead. For example, for a home page link in the top navigation menu, generating the link via pipeline
(<a href="${URLUtils.http('Home-Show')}">home</a>) results in the full Demandware URL being displayed.
For example:
http://www.yourshophere.com/on/demandware.store/Sites-YourShopHere-Site/
default/Home-Show
Instead, you can use a reference to a host name <a href="http://${request.httpHost}/">home</a> - provided that host is listed
under Site URLs > Aliases AND only one locale is used for the site - thus enabling that host name to be displayed instead. For
example: http://www.yourshophere.com/.
Both code borrowed from the SiteGenesis application and new custom code should be reviewed in this regard. For example, a
home page link is generated via the pipeline Home-Show in the various SiteGenesis application templates listed below. When
these are used in a custom application, the code may be modified in the manner described above to deliver instead the hostnameonly URL.

pagecomponents/header.isml
pagecomponents/breadcrumbs.isml
pagecomponents/contentbreadcrumbs.isml
pagecomponents/productbreadcrumbs.isml
pagecomponents/searchbreadcrumbs.isml

Mapping Rule Syntax


Each mapping rule is made up of a URL pattern and a Demandware URL template, separated by a white space. The URL pattern
identifies the incoming URL and the URL template generates the Demandware URL for the redirect. You can also add specific
options between the pattern and template.

Any part of the incoming URL matched by a wildcard ( ,* ) can be referenced by its position in the URL, using a numbered
parameter in the template ( {0} ). Wildcards match any text between forward slashes in the URL that is not a query string.
Example 1: redirecting the jewelry category from your old site
In this example, you want to redirect any products in the jewelry category of your old site to your new site, using the same
product ID and category name as you used to have.
Incoming URL Example:

123

http://www.oldsite.com/catalog/product/index.asp?ID=576416&Cat=Jewelry.html
Demandware URL Example:
http:///www.yourshop.com/pendant/576416,default,pd.html?cgid=Jewelry

Patterns for Incoming URLs


The incoming URL pattern contains some or all of the URL, with wildcards used to replace portions of the URL. The pattern can
be either an absolute pattern including a protocol and host name or a relative pattern without a host name, starting with '/'.

Wildcards
You can use wildcards to have one mapping represent many URLs dynamically by parsing out variables from the original legacy
URL. The wildcards are:
Wildcard

Meaning

Match any characters up until any forward slashes "/" ; query strings

**

Match any characters inclusive of forward slashes "/" ; query string


and parameters will not be matched.

Patterns can match both http and https protocols if the host name alias file is set up correctly.
Pattern Examples
/**/images/**
http://www.mystore.com/**/*.jpg
/news/articles/**.html
/catalog/special/*.*.*.html

URL Encoding
If a URL is passed as a parameter in a mapping rule, it is processed so that it retains the original URL encoding. For example, if
the original URL includes a plus (+ ) or dash (- ) as a replacement space, the character is retained and not encoded as text (%2B
or %2D).

Options
You can specify several options that control how patterns are matched or pattern parameters are encoded.
Option

Description
performs a case-insensitive match

i (lowercase
i)

allows upper, lower or mixed case matches

I (capital I)

converts the incoming parameters to lowercase before substituting into


the URL template

ie

specifies an encoding to use other than UTF-8.

Demandware URL Templates


The Demandware URL templates represent Demandware URLs.
The URL generation consists either of a definition for a static URL or a dynamic pipeline URL.
URL Template Types
Static URLs

124

A static URL has the format:


s,[<protocol>],[<host>],[<unit>],[<locale>],<path>
Pipeline URLs
A pipeline URL has the format:
p,[<protocol>],[<host>],<pipeline>[,<locale>][,<parameter name>,<parameter value>]*
If <parameter name> or <parameter value> contains white spaces they have to been enclosed in double quotes (" "). Do not use
single quotes(' ').
Dynamic Pipeline URLs
The parameter set for dynamic pipeline calls is:
<legacy URL> [i] p,[<protocol>],[<host>],<pipeline>[,<locale>][,<parameter name>,<parameter value>]*

Variables
The following variables can be used in the path or as parameter values:
Variable

Description

{0}, {1}, ...

The positional values from the pattern. A positional value is a string matched by a wildcard described by
the position of the wildcard in the pattern. See the section below on using parts of incoming URLS in
redirects to Demandware URLs.

{_url}

The whole original URL.

{_path}

The path part of the original URL.

{_host}

The host names used.

{_querystring}

The query string of the original URL.


Parameter from the original URL.
The {<name>} value is any parameter existing in the wildcard match; that is any [name]=[value] pattern.
For example:

{<name>}

/product.asp?ProductID=12345 (legacy URL for mapping rule/product.asp?**)


{ProductID}
You can mix placeholders (for example, {0}) with literals. For example:
literal1_\{0\}_literal2

Examples
You can use wildcards in your mapping rule patterns to match portions of incoming URLs and then use positional values in your
template to transfer those values to the Demandware URL you are redirecting to. The positional values are the matched wildcard
strings from the valid URL mapping, in the order they are found.
Example 1: using parts of incoming URLs in redirects to Demandware URLs
For example, with the following mapping rule:
/**/images/** s,,,,,/{0}/{1}
The following graphic shows how positional values work for a specific incoming URL with the mapping rule.

125

URLs that are found by the pattern:


http://www.shop.com/path/to/images/even/more/paths
{0} : path/to
{1} : even/more/paths
http://www.yourshop.com//images/
{0} :
{1} :
(both positional values are blank!)
URLs that will not be found

Reason

http://www.yourshop.com/images/even/more/paths URL does not contain the extra slash before images
http://www.yourshop.com/path/to/images

URL does not contain the extra slash after images

Example 2: product redirect with positional value from incoming URL


/**/products/*.gif p,,,Product-Show,,pid,{1}
URLs that will be found:
http://www.yourshop.com/path/to/products/123456.gif
{0} : path/to
{1} : 123456
URLs that will not be found

Reason

http://www.yourshop.com/path/to/products/images/123456.gif URL has an extra forward slash after products


Example 3: product redirect with parameter from incoming URL query string
/**/product.asp?** p,,,Product-Show,,pid,{ProductID}
URLs that will be found:
http://www.yourshop.com/path/to/product.asp?ProductID=123456
{0} : path/to
{1} : ProductID=123456
{ProductID} : 123456
http://www.yourshop.com///product.asp?SKU=123456
{0} : /
{1} : SKU=123456
{ProductID} : (ProductID is blank : there is no parameter named ProductID!)
URLs that will not be found

Reason

http://www.yourshop.com/products.asp?ProductID=123456 URL is missing the forward slash before products.asp


Example 4: source code redirects from an affiliate site
This rule identifies any incoming URLs that contain affiliate immediately after the hostname. It redirects to a Demandware URL
that uses the string that matches the first wildcard as a source code.
/affiliate/* p,,,SourceCodeRedirect-Start,,src,{0}
URL pattern: /affiliate/*
Incoming URL example: https://documentation.demandware.com/affiliate/DOC2114/Mapping+rules
Demandware URL template: p,,,SourceCodeRedirect-Start,,src,{0}
Demandware URL template: p,,,SourceCodeRedirect-Start,,src,{0}
Example 5: source code redirects from an email

126

This rule identifies any incoming URLs that contain immediately after the hostname. It redirects to a Demandware URL that uses
the first position match as a source code.
/VIP/email/* p,,,SourceCodeRedirect-Start,,src,{0}
URL pattern: /VIP/email/*
Demandware URL template: p,,,SourceCodeRedirect-Start,,src,{0}
Note:
It is currently not possible to redirect Demandware URLs to other Demandware URLs.

1.

Mapping rules are generally used for large numbers of similar URLs that must be redirected. For example, for all URLs in a
specific category. To redirect one specific URL, it is more common to use static mappings.

URL Redirects
Navigate to: Site URLs> URL Redirects
1.
2.
3.
4.

5.

Used to redirect current DW obsolete pages to current pages on DW. (i.e. if you change name of category).
Category, product, content to another category, product, content.
No need to refresh.
Can handle 301 & 302s (12.5 handles 307s)
a. 301: permanent redirects
b. 302: retain SEO rankings for content thats permanently moved and is removed when new ranking gains same seo
ranking/trust
c. 307: truly temporary redirect that will be available again.
Also example with uri: mens power lounger to womans coat.

Legacy URL Redirects and Site Rankings


Most merchants migrate from an existing site to Demandware. Usually, the existing site has built up search rankings and links on
other sites to their site that drive traffic to the merchant. You can use Demandware to create mappings between old links and new
pages so that you do not lose traffic from other sites and search engines. If you do not create these mappings, the old links do not
work, and your SEO rankings can be severely impacted.
To create redirects for these links we have three features: Demandware hostname aliases, Demandware Site URL Mapping Rules,
and Site URL Static Mapping. For more information, see Configuring 301 Redirects for Legacy URLs.
Links that become obsolete because you change a category name on the Demandware platform also need permanent redirects so
as not to lose customers who have bookmarked products and to retain your rankings.
To create redirects for these links, use the URL redirect feature

Configuring 301 HTTP Redirects for Legacy URLs


This topic describes how to install a permanent (301) redirect from one version of the home page URL (domain name) to another.
It is SEO best practice to have a single preferred domain name that other URLs point to. For example, if a customer types
"company.com" directly into their browser, they can be taken to "www.company.com" via a permanent "301" redirect. The
redirect is important because it helps ensure that you obtain an aggregated page rank and authority scores for all versions of your
site URLs, thus boosting your organic search engine rankings.
To Configure 301 HTTP Redirects:
1. Ensure all Demandware-generated URLs in the storefront use a single hostname, such as www.company.com .This is
achieved by setting the site's HTTP Hostname and HTTPS Hostname appropriately in the Hostname alias file.
Note:
This must be done right at go-live; it cannot be done earlier and should not be done later.

127

2.
3.
4.

Redirect from company.com to www.company.com .


Create a custom pipeline to redirect URLs (one named, for example, "RedirectURL-Domain" or
"RedirectSiteURL").The Reference Application has a sample redirect pipeline named RedirectURL.
Specify a static mapping between the legacy URL and the custom pipeline in the Site URLs > Static Mappings area of
Business Manager.The static mapping has the following format. <legacy URL> [i] p,[<protocol>], [<host>],
<pipeline>, [<locale>], [<parameter name>, <parameter value>]*
Note:
If you are on Demandware v2.6.4 or later, you do not need to specify the hostname as a parameter to the pipeline.
The pipeline can now read HTTP Hostname from the site configuration with fallback to the instance's hostname.

5.

Ensure that the 301 redirect is in place by specifying that the parameter Permanent is set to true within the ISML tag
("isredirect") used in the redirect pipeline template. <isredirect location="${pdict.Location}" permanent="true">
Note:
In the Reference Application, this code is included in the redirect_permanent.isml file.

6.

Define your external search engine settings to support the redirect.For example, in Google Webmaster Tools, set the
preferred domain to www.company.com.
Ensure Google sees you as the owner of both domains by following one of their ownership verification methods.

Creating a Redirect from a Demandware URL


To use this feature you must have the correct site-level permissions.
The URL redirects feature redirects obsolete or unavailable Demandware pages to currently available pages or a specific URL
outside the platform. For example, if you change a category name on your storefront and want to redirect incoming requests for
the old category to the new category. This feature is not intended for redirects from non-Demandware platforms.
You can also use this feature to create a redirect from the Demandware platform to an external URL, such as your marketing web
site.
Note:
URL redirects must be replicated from Staging to Production.

Tip:
Demandware recommends always using a single redirect from a source page to a destination page. Redirect chaining can
cause search engines to deindex pages or parts of sites if used indiscriminately. A customer reaching your site may already
have encountered one or more offsite redirects, which are outside of your control, so it is safer to simply use a single
redirect.
1.

In Business Manager, navigate to Site URLs > URL Redirects. The URL Redirects page appears.

128

2.

3.
4.

In the URI Search Term box, enter one or more words that identify the URI you want to redirect. Checking that the
URI does not already have a redirect prevents you from creating a duplicate redirect. If there is no search term unique
enough to identify the URI you want to redirect, click the Advanced link to add more filters for your search.
If no redirect exists for the URI, click New to create a new redirect. The Edit URL Redirect page appears.
You can identify the source URI directly or specify the source type and ID.
Demandware recommends using source type and ID for two reasons. First, all your redirects remain in place if you
switch from standard URLs to search-friendly URLs. Second, since you can select your source IDs directly, there is
less chance of a data entry error.

For URI , enter the portion of the Demandware URI after the host name and before the query string. Demandware
automatically selects the new URL that has the most parameters in common with the old URL. For example, if
you want to redirect any products in the women's category:

http://www.mystore.com/on/demandware.store/Sites-YourShopHere-Site/EN_US/Search-Show?_ie=iso-88591&cgid=womens
Enter:
/EN_US/Search-Show?cgid=womens
You can use an asterisk as a wildcard in the URI. Redirects with wildcards are processed after redirects without
wildcards. See URL redirect processing and examples for additional examples and information about wildcards.

5.
6.

For Source Type, select category, product, or content. For Source ID , select the ID of the category, product, or
content in the URL you want to redirect, such as womens. See also URL redirect processing and examples.
Check the Enabled box.
You can specify the URL you want to redirect to in one of two ways:

For Destination URL , enter the URL you want to redirect to. You can enter the URL as an absolute or
relative URL.

absolute URL - the URL must begin with a protocol. Example: http://www.example.com. Note: only the http and
https protocols are supported. Additional parameters must be specified in the Additional Parameters field, not in
this field.

relative URL - similar to the URLs entered for the URI field, enter only the portion of the URL after the host
name and before the query string. Additional parameters must be specified in the Additional Parameters field,
not in this field.

For Destination Type, select whether you are redirecting to a category, content asset, or product detail
page. Depending on the type you select, you need to add additional information:

Category: enter a category ID or click

Product: enter a product ID or click


category.

Content: enter a content asset ID or click

to select a category.
to select a product and enter a category ID or click

to select a

to select a content asset.

For Redirect Type, select whether you want the redirect to be temporary or permanent.
Permanent (301) redirects - retains the SEO trust and ranking of the source of the redirect. Although it may take some
time for search engines to recognize the redirect, any dip in rank should be quickly reversed. Permanent redirects are
usually never removed.
Found/Temporary (302) redirects - 302 redirects are used to retain SEO rankings for content that has permanently
moved to a new URL. A 302 redirect does not retain the SEO trust and ranking of the source of the redirect. You
should expect your SEO ranking for the page to drop until the new page has time to accumulate the same rankings and
trust. A 302 redirect is temporary, because it is usually removed when the new URL has accumulated the same
rankings and trust as the original URL. There is no expectation that the old URL will ever be used to access content
ever again. For example, 302 redirects are used if you change the name of a category. Demandware caches temporary
redirects, but the browser does not.
Temporary (307) redirects - 307 redirects are used as a truly temporary redirect for a URL that is undergoing
maintenance and will shortly be available again. A 307 redirect does not retain the SEO trust and ranking of the source
of the redirect. You should expect your SEO ranking for the page to drop until the new page has time to accumulate the
same rankings and trust. Temporary redirects are intended to be removed. Demandware caches temporary redirects, but
the browser does not. Use 307 redirects if the original content is temporarily removed and will be returned to the old
URL. For example, if an article or microsite is removed for editing or updating and will shortly be available again.

For Additional URL Parameters - enter parameters you want added to the end of the URL exactly as you
want to see them. For example: &cgid=electronics-digital-cameras&prefn1=displaySiz

129

7.

Click Apply.
Note:
You may periodically want to check for redirects that no longer have a valid destination. You can do
so by clicking Find Invalid URLs in the advanced search on the URL Redirects page.

130

URL Examples
The following are common uses of the redirect feature with examples of rules. All rules are assumed to be enabled. Each example
shows the equivalent URL in both standard and search-friendly format. See also URL syntax.
Example 1: redirecting category landing pages
This example redirects a discontinued or renamed women's category page to a new ladies category page:
Incoming URL:
www.mystore.com/on/demandware.store/Sites-YourShop-Site/womens/womens,default,sc.html
www.mystore.com/on/demandware.store/Sites-YourShop-Site/default/Search-Show?cgid=womens
Redirect Rule for search-friendly URLs:
This redirect rule uses an * for the locale, so that the rule is not locale-specific. The * symbol only indicates that the URI is
locale-neutral. The * symbol cannot be used in any other portion of the URL as a wildcard.

URI: /womens/womens,*,sc.html

Destination type: Category

Category Id: ladies


Redirect Rule for standard URLs:
This redirect rule does not include the locale and is therefore not locale-specific.

URI: /Search-Show?cgid=womens

Destination type: Category

Category Id: ladies


Example 2: redirecting content assets
This is most useful if you have microsites and want to redirect to a different content asset. For example, if you have a Harry
Potter microsite and want to redirect to a holiday-themed microsite for Harry Potter.
Incoming URL:
www.mystore.com/on/demandware.store/Sites-YourShop-Site/Information-About-Returns/returns,default,pg.htm
www.mystore.com/on/demandware.store/Sites-YourShop-Site/default/Page-Show?cid=returns
Redirect Rule for search-friendly URLs:

URI: /returns,*,pg.html

Destination type: Content

Content Id: ordering-canceling


Redirect Rule for standard URLs:

URI: /Page-Show?cid=returns

Destination type: Content

Content Id: ordering-canceling


Example 3: redirecting a product from one category to another
This example redirects any products in a discontinued or renamed Women's category to the same product in a new Ladies
category. We recommend using the import/export feature to create these redirects as it is currently necessary to create a separate
redirect for each product.
Incoming URL:
www.mystore.com/on/demandware.store/Sites-YourShopSite/Jacket/28436,default,pd.html?dwvar_28436_color=000128436360&start=3&cgid=womens-clothing
www.mystore.com/on/demandware.store/Sites-YourShop-Site/Product-Show?pid=28436
Redirect Rule for search-friendly URLs:

URI: /Jacket/28436,default,pd.html

Destination type: Product

Product Id: 28436


Redirect Rule for standard URLs:

URI: /Product-Show?pid=28436

Destination type: Product

131

Product Id: 28436

Example 4: redirecting a locale-specific URL


This example redirects a URL with a specific locale. If you have locale-specific redirect rules, they take precedence over localeneutral rules.
Incoming URL:
www.mystore.com/on/demandware.store/Sites-YourShop-Site/womens/womens,en_UK,sc.html
www.mystore.com/on/demandware.store/Sites-YourShop-Site/en_UK/Search-Show?cgid=womens
Redirect Rule for search-friendly URLs:
This redirect rule uses an * for the locale, so that the rule is not locale-specific. The * symbol only indicates that the URI is
locale-neutral and cannot be used in any other portion of the URL as a wildcard.

URI: /womens/womens,en_UK,sc.html

Destination type: Category

Category Id: ladies


Redirect Rule for standard URLs:
This redirect rule does not include the locale and is therefore not locale-specific.

URI: / en_UK/Search-Show?cgid=womens

Destination type: Category

Category Id: ladies


Example 5: using wild cards
An asterisk character can be used as a wildcard in the URI field for standard and search-friendly URLs. Asterisks can be used in
the URI portion of the URL, the query parameters, or both. For example:
/*-Show?cgid=mens
/default/Search-Show?*id=mens
/default/Search-Show?cgid=m*s
/default/Search-Show?*id=m*s
/*-Show?*id=m*s
/*ens,default,sc.html
/mens,*,sc.html
/mens,default,*.html
/*ens,*,sc.html
Note:
You can add a position for each redirect that controls the order in which they are processed. You can do this in Business
Manager on the URL Redirects Page.

URL Redirect Processing


This section describes how the Demandware platform selects the redirect rule to use, based on an incoming URL. In this topic,
URI refers to the portion of the URL after the domain name and before the query string. The URI portion of the URL is after
Sites-YourShopHere-Site in the following examples.
www.mystore.com/on/demandware.store/Sites-YourShopHere-Site/en_US/Search-Show?_ie=iso-8859-1&cgid=womens
www.mystore.com/on/demandware.store/Sites-YourShopHere-Site/Sony-PSP-Game-Console/sony-pspconsole,default,pd.html?cgid=electronics-gaming
1. Does the redirect contain wildcards?

Yes - If the redirect contains wildcards, then it is processed after any redirects that do not contain wildcards. Redirects
with wildcards are processed based on priority. See the last step for information on how wildcard URLs are processed.

No - Continue to the next step. URLs without wildcards are never assigned a priority.
2. Is the URI of the incoming URL an exact match for the URI entered for any redirect rules?
Note:
The URI must match exactly to be considered. Partial matches are ignored.

Yes - If only one redirect rule matches, then that rule is used. If multiple rules have URIs that match exactly, then those
rules are identified as candidates and processing continues.

No - No redirect is performed.
3. What redirect rule has the most parameters that match the incoming URL?
a) Demandware sorts the candidate redirect rules by number of query string parameters and processes the rules with the
largest number of parameters first. For example, /mens?cgid=hats&color=red is processed before /mens?cgid=hats

132

Demandware matches each parameter in the redirect rule to the parameters in the incoming URL. All parameters in the redirect
rule must be present and have the same value in the incoming URL to be considered a match. It does not matter what order the
parameters are listed in the redirect rule or incoming URL. Both search-friendly and standard Demandware URLs are processed
in the same way.
Note:
If the incoming URL has additional parameters, these parameters are irrelevant to the redirect matching logic.
4. For URLs containing wildcards: does the redirect have an assigned position?

Yes - Redirects are processed in order of priority, from low to high. The minimum value is 1. Only integers are
allowed.

No - Redirects with blanks for their priority are processed after any redirect with priority assigned. They are processed
in an undefined order, so the processing does not match any rule. If you want to control the order in which the redirect
is processed, add a priority.
Although the Demandware platform evaluates redirect rule candidates with the most parameters first, any incoming URL that
does not have all of the parameters in the redirect rule is not considered a match. In the example below, there are two the
candidate redirect rules that match the URI of the incoming URL. The redirect rules are processed from most to least number of
parameters. However, since the incoming URL does not have all of the parameters in the first redirect rule processed, it is not
considered a match and the second rule /abc?a=1 is selected as the redirect.

candidate redirect rules


/abc?a=1&b=2

incoming URL
www.mystore.com/on/demandware.store/Sites-MySite-Site /abc?a=1

/abc?a=1
It does not matter if the incoming URL has additional parameters. In the following example, all of the incoming URLs match the
same candidate redirect rules, and all select the second rule /abc?a=1 as the redirect.

candidate redirect rules

incoming URL

/abc?a=1&b=2

www.mystore.com/on/demandware.store/Sites-MySite-Site /abc?a=1 &c=1&d=1

/abc?a=1

www.mystore.com/on/demandware.store/Sites-MySite-Site /abc?a=1 &c=1


www.mystore.com/on/demandware.store/Sites-MySite-Site /abc?a=1

Even though the redirect with a wildcard is more specific, it is processed after the redirect without a wildcard.

candidate redirect rules


/abc?a=1&e=2

incoming URL
www.mystore.com/on/demandware.store/Sites-MySite-Site /abc?a=1 &b=2&c=1&d=1&e=2

/abc?a=1&b=2&c=1&d=1&e=* www.mystore.com/on/demandware.store/Sites-MySite-Site

Static Mappings
Navigate to: Site URLs> Static Mappings
1.
2.
3.

4.

You can create static mappings from existing legacy URLs to new URLs in the Demandware system. The URLs can be
either dynamic pipeline calls or static resources, like images.
The key is to have a unique identifier between the old and the new url to not impact SEO.
In a situation where a pattern cant be defined between old site product urls (product ID) and new DW urls, individual
product mappings are required. In that case, it may be better to find top 100 products and individually map each of those.
a. Recommendation: use google webmaster to review product level skus any under 10 impressions a month, dont
worry
You cannot create static mappings for current or legacy Demandware URLs to other Demandware URLs. All mappings
must be between an external URL and a Demandware URL.

133

5.

6.
7.
8.

9.

Can use 301 template to get the output.


a. Must use full urls, no wild cards.
b. Commonly used for vanity urls.
c. Legacy would be what they wanted vanity to be and output would be where it redirects to.
This requires the configuration of a hostname alias in the 'Aliases' section first. Tech should handle setting up aliases.
For the most part all static mappings should be 1:1 type mappings with the exclusion of adding in wildcards like ** at the
end of the url to catch refinement parameters.
When the system gets an incoming URL request, the Static Rule section is executed first in a top-down fashion. The
Mapping Rules section is interpreted (top-down as well) following that. Therefore, catch alls needs to be defined towards the
end of the Mapping Rules section to work as catch alls. You dont want a catch all to be triggered before a real mapping
definition for a given URL request.
Static mappings must be replicated from Staging to Production instances.

Use this page to direct specific legacy URLs to specific URLs in Demandware. If you have a large number of URLs that can be
mapped to a pattern, use the Mapping Rules feature instead of the Static Mapping feature.

Mapping box: enter a static mapping. Use the format documented in Static mappings.
Save: click to save any changes.
Cancel - click to cancel any changes made since opening the page.
Reset: click to reset the value to those displayed when you first opened the page.

Creating Static Mappings


A line contains one mapping definition where both parts are separated by a whitespace.
You can add a comment line by using an ASCII '#' or '!' as the first non-white space character in the line.
Dynamic pipeline calls follow this syntax:
<legacy URL> [i] p,[<protocol>],[<host>],<pipeline>[,<locale>][,<parameter name>,<parameter value>]*
Static resources follow this syntax:
<legacy URL> [i] s,[<protocol>],[<host>],[<unit>],[<locale>],<path>
Parameter

Considerations

Optional 'i' parameter

Can be either a relative URL (only path without host name) or an absolute URL (host name and
path specified). Supports '*' as prefix or postfix wildcards and the query string ignore wildcard
'?*'.
Indicates a case insensitive match.

<protocol> and <host>

If unspecified, the respective values of the request are used.

<pipeline>

Indicates the dynamic pipeline.

Legacy URL

134

Folders are named in the catalog/library/organization structure. The <unit> URL parameter refers
to one of these folders in the file system.
<unit>

A catalog (for all category and product images)


A content library (for all images used on content assets)
The organization (for all other resources, for example promotion images)

<locale>

If unspecified, the default locale is used.

<parameter
name>,<parameter value>

Used with a dynamic pipeline call. If <parameter name> or <parameter value> contains
whitespaces, they must be enclosed in double quotes (" "). Do not use single quotes(' ').

<path>

Used with a static resource.

Use the following variables in the path or as parameter value:


Variable

Description

{_url}

The entire original URL

{_path}

The path portion of the original URL

{_host}

The host names used

{_querystring}

The query string of the original URL

{<name>}

Parameter from the original URL

Example of mapping

Pattern

Template

http://example.com/image/logo.gif

s,,,,,/content/images/test/logo.gif

Old URL

New URL

http://example.com/image/logo.gif

http://example.com/on/demandware.status/WFS/<site>/<unit>//content/images/test/logo.gif

Examples
Dynamic pipeline calls
This maps a legacy press page to a new press page.
http://www.yourhost.com./pressuk i p, https,,,en_GB,Link-Page,cid,PRESS
This maps a legacy catalog location to a new catalog location.
/jump/to/catalog p,,,Link-Category,,cgid,K,name,K
This maps the contents of a category from an old store with an absolute URL reference to a new catalog location.
http://www.oldstore.com/my/old/category/** p,,,Link-Category,,cgid,C,name,C
This maps the contents of a category from an old store with a relative URL reference to a new catalog location.
**/catalog/shoes?** p,,,Link-Category,,cgid,S,name,S
This maps a specific URL for a special to a new catalog location.
/summerspecials p,,,Link-Category,,cgif,SummerSpecials
Static Resources
This maps one static page to another on the same web site:
/aboutus s,,,,,/html/about_us.html

135

This maps a legacy image with an absolute URL to an image in a new location.
http://www.mystore.com/show/my/image s,,,,,/images/add_cart.gif
This maps a legacy image with a relative URL to an image in a new location.
**/product-big-image.gif s,,,,,/images/product_big_image.gif
The <unit> parameter
Demandware static resources are owned by:

A catalog (for all category and product images)

A content library (for all images used on content assets)

The organization (for all other resources, for example promotion images)
In the file system of your Demandware instance, you can see folders that are named like the catalog/library/organization. The
<unit> URL parameter refers to one of those folder in the file system. You can also map to static resources contained in
cartridges by using "-" as the unit name.
These are some examples of resource paths:
Catalog: Sites-apparel-catalog
/on/demandware.static/Sites-SiteGenesis-Site/Sitess-apparel-catalog/default/v1283800996326/images/large/10160_242.gif
content library: Sites-SiteGenesis-Library
/on/demandware.static/Sites-SiteGenesis-Site/Sites-SiteGenesisLibrary/default/v1283800996326/images/homepage/homepage_bottom_left.gif
Organization: Sites
/on/demandware.static/Sites-Site/Sites/default/v1283800855701/images/standard_storeLocatorMens.gif

Aliases
Navigate to: Site URLs> Aliases
1.
2.
3.
4.
5.
6.
7.

8.
9.

A hostname alias is a method of defining alternative names for an existing website URL.
You must set up and register the DNS and domain names to use these extra hostnames in aliases.
Needs to be done in order to utilize search friendly URLs, static mappings, source codes.
If you do not assign an alias to your site, enabling search-friendly URLs causes the storefront to display a 404 error for all
URLs besides the Welcome page.
A hostname alias is required if you want to create short, meaningful URLs for external search engines to index.
You must assign at least one hostname alias that is the current hostname on which the instance is running.
You may also want to create a simpler alias that reflects your store or brand name. Putting a simple Page URL in the alias
list, such as "www.mystore.com", enables users to get to the storefront without typing in the full Demandware URL, such
as:
http://www.mystore.com/on/demandware.store/Sites-MYS-Site/default .
Ideally, the long URL is only visible to search engines if someone posts a link containing the long URL.
Setting up alias in staging is just the url of environment minus the https://.

About Hostname Aliases


Merchants create aliases for the following reasons:

Multiple domains -If a customer has purchased other site names and wants the domains to still be active, even if the
sites have been shut down, so they get the traffic to old sites. For example, www.myshop.com, myshop.com, or
www.myothershopdomain.com.

Misspellings - Site aliases are also used for misspelling of site names. For example, amerzon instead of amazon or
www.myshop.com and www.myshops.com

Locale-specific pages - Demandware can associate an alias with a locale so www.myshop.de triggers the de_DE
locale.

Landing pages - Demandware can associate alias with landing page so that shoes.myshop.com goes to Shoes category
page

Device-specific pages - Demandware can associate an alias with device-specific pages so that customers on web-ready
devices, such as mobile phones, can access the site.

136

Assigning a Hostname Alias


1.
2.

3.

In Business Manager, select a site on your Staging system and click Site URLs >Aliases.
Create a set of hostname alias rules. If you want to test your that your rules are valid JSON, we recommend that you
test your rules against a debugging tool, such as the one available at http://www.jsonlint.com/. Remember to remove
any comments from your mapping files and use colons rather than equal signs to separate property and value.
Site URL aliases files are instance specific, so site URL aliases are individually managed for each instance
(Development, Staging, Production). Because each instance now has its own aliases file, these files are not included in
data replication. This ensures that a data replication of Site URL Management 'does not overwrite URL alias settings on
production with the staging configuration. You must individually edit the site URL aliases on each of your instances
(Development, Staging, Production) to have the same aliases on all of these instances. For information about creating
alias rules, see Hostname alias file format and processing
When you are satisfied that your alias file is valid, copy it into the editor and click Apply.

Hostname Alias File Format and Processing


You can create a set of rules that control how different URLs are processed by the Demandware platform. These rules use the
JSON (Java Script Object Notation) format.
For more information on JSON, see http://json.org/ .
For information on how to create a hostname alias file, see Assigning a hostname alias
URL syntax in this topic uses the following terms:

host name - the part of the URL that indicates the site's host. For example: www.sitegenesis.com .

path - the part of the URL that indicates the path to the page. For example: /electronics/tvs/promopage.html .

entered URL - refers to the URL originally entered by the customer.


For additional information on how Demandware constructs standard and search-friendly URLs, see URL syntax
Note:
The file format now allows colons for property value assignments instead of equal signs. Although equal signs are still
allowed for backward compatibility, colons are recommended because they are valid JSON and do not cause problems if you
choose to validate your file in an external JSON debugger.

File Format
{"__version": "1",
"settings": { "http-host": "httphostname" , "https-host": "httpshostname" },
"hostName1": [
{ mapping rule1 },
{ mapping ruleN }
],
"hostNameN": [
{ mapping rule1 },
{ mapping ruleN }
]
}

version - Currently the value of this parameter must always be 1. This indicates the syntax version of the file. You must
include this or the platform assumes you are using the legacy alias file format.
settings - Use this to specify a preferred HTTP host and HTTPS host. In versions of Demandware prior to 2.10.2, this
setting was configured in Business Manager on the Administration > Sites > Manage Sites > site > Settings page . If no
settings are supplied in the hostname alias file, these values can still be set on the Settings page. However, this is not
recommended, as it remains available only to accommodate legacy implementations.
httphostname - The preferred HTTP URL.
httpshostname - The preferred HTTPS URL. This setting is not necessary if you do not want your site to be accessible
through a secure channel.

137

hostName - The original URL entered by the customer. You can have multiple host names. Within a host name, you can
include multiple rule definitions, each may contain the following attributes.

Mapping Rule Example


Each mapping rule is defined by a set of attributes and looks like the following:
{
"name": "mobile",
"if-agent-contains": ["iphone","ipod"],
"host": "m.shop.com",
"pipeline": "Summer-Start",
"locale": "de",
"params": {...},
"path": "index.html"
}

name - Optional. The name for the rule.


if-agent-contains - Optional. An if condition to indicate that the following rule is only executed if the attribute condition is
met. The attribute condition is an optional list of strings. If the attribute is not provided, the rule is always selected. This is
intended to allow redirects to different URLs for different devices.
host - Optional. The name of the host to be replaced.
path - Optional. The path that the customer is redirected to via a permanent 301 redirect.
pipeline - Optional. A pipeline triggered by the hostName which is used if no path is provided. Pipeline rules are only used
if no path is supplied. You can use the locale and params syntax to specify a locale and parameters for the file.
locale - Optional. The locale to use when mapping to a pipeline.
params - Optional. Parameters to add to the pipeline.

Hostname Alias Processing Rules


1.

2.

3.

4.

Does the entered URL match a hostName in the file?

Yes - Demandware executes the mapping rules for that hostName.

No - the URL is processed normally and no redirect is made.


Is the first mapping rule an if-agent-contains rule?

Yes - then process this mapping rule first.

No - process the first mapping rule. Since Demandware only processes the first successful alias it finds, if-agentcontains must be included as the first mapping in a rule or it is never reached.
Is the if-agent-contains condition TRUE?

Yes - then process the mapping rule directly after the if-agent-contains rule.

No - process the rule or condition after the rule associated with the previous if-agent-rule.
Is the entered URL a host-only URL? Yes - the entered URL is a host-only URL that looks like http://www.sitegenesis.com/

If rule provides pipeline - construct full redirect URL from the pipeline, locale, and params parameters.

If rule provides host - use the value from the provided host parameter and add any path information included in the
entering URL.

If rule provides path - add the value from the provided path parameter to the entered URL.

If rule does not provide any parameters - use the Default-Start pipeline to construct the redirect URL.
No - the entered URL contains at least a partial path and looks like:
http://www.sitegenesis.com/electronics

If rule provides host - replace the URL host with the host value and use the rest of the path in the entered URL to
construct a 301 redirect. This means that if you have the following rule:

If rule provides path but not host - the path value is only used if the entered URL does not contain any path
information.

Rule Examples
Example 1: Integrate default HTTP and HTTPS host names
The following example configures the main HTTP and HTTPS hostnames for the production instance. The settings section is
optional.
"settings": {
"http-host": "www.sitegenesis.com",
"https-host": "secure.sitegenesis.com"
}
],

138

Example 2: Redirect from alternate URL to preferred domain


The following example is a rule that redirects the alternate URL sitegenesis.com to the preferred domain. If a customer enters
sitegenesis.com as their URL ( http://sitegenesis.com/* ), where * is any path, they are redirected via a 301 redirect to
http://www.sitegenesis.com /*.
"sitegenesis.com": [
{
"host": "www.sitegenesis.com",
}
],
Example 3: Redirect from misspelled URL to preferred domain
This example shows redirect from the misspelled URL sitegensis.com to www.sitegenesis.com . If a customer enters
sitegensis.com as their URL ( http://sitegensis.com/* ) they are redirected via a 301 redirect to www.sitegenesis.com .
"sitegensis.com": [
{
"host": "www.sitegenesis.com",
}
],
Example 4: Use of preferred locale with localized host name
This example shows how to associate locale with a localized URL www.sitegenesis.de .
"www.sitegenesis.de": [
{
"locale": "de_DE",
}
],
Example 5: Redirect from landing page link to category
This example shows a hostname-only URL http://electronics.sitegenesis.com/ that results in a call to the Search-Show pipeline
with a category ID parameter of electronics. This can be used in marketing emails to direct a customer to a specific category or
page.
"electronics.sitegenesis.com": [
{
"pipeline": "Search-Show",
"params" : {"cgid"="electronics"}
}
],
Example 6: Redirect based on client device
Host redirect is based on the user agent header. With each rule it is possible to associate precondition based on content of "useragent" http header. In the example below an HTTP requests with "User-Agent" header containing "iphone" or "ipod" will be
redirected (301) to apple.sitegenesis.com and those with "blackberry" to bb.sitegenesis.com.
"www.sitegenesis.com": [
{
"if-agent-contains": ["iphone","ipod"],
"host": "apple.sitegenesis.com",
},
{
"if-agent-contains": ["blackberry"],
"host": "bb.sitegenesis.com",
}
],
File Example
The following is an example of a working alias file.
Note:
Even if you are only creating redirects and not creating more complex rules, it is still important to include the version and
settings section of the file.
{
/*
*
* The file is used to configure host names for a site.
*
*/

139

/*
* __version must be set to "1"
*/
"__version": "1",
/*
* Settings section is used to configure main HTTP and HTTPS hostnames for a site.
*
*/
"settings": {
"http-host": "eng05.lab1.dw.demandware.net",
"https-host": "eng05.lab1.dw.demandware.net"
},

/*
* Host name definitions.
* The following section allows to define additional hostnames associated with the site.
* With each hostname it is possible to define set of redirect rules.
*
*/
/*
* Examples
*/
/*
* Host redirect from sitegenesis.com to www.sitegesis.com.
* All URLs coming to sitegenesis.com (http://sitegenesis.com/*) will be permanently redirected (301) to
www.sitegenesis.com
*
*
"sitegenesis.com": [
* {
*
"host": "www.sitegenesis.com",
*
}
* ],
*/
/*
* Host redirect to specific pipeline.
* Hostname-only URL (e.g. http://electronics.sitegenesis.com/) will result in a call of Search-Show pipeline.
*
*
"electronics.sitegenesis.com": [
* {
*
"pipeline": "Search-Show",
*
"params" : {"cgid"="electronics"}
*
}
* ],
*/

/*
* Host redirect based on user agent header.
* With each rule it is possible to associate precondition based on content of "user-agent" http header.
* In the example below an HTTP requests with "User-Agent" header containing "iphone" or "ipod"
* will be redirected (301) to apple.sitegenesis.com and those with "blackberry" to bb.sitegenesis.com.
*
*
"www.sitegenesis.com": [
*
{
*
"if-agent-contains": ["iphone","ipod"],

140

*
"host": "apple.sitegenesis.com",
*
},
*
{
*
"if-agent-contains": ["blackberry"],
*
"host": "bb.sitegenesis.com",
*
}
* ],
*/
}

Debugging the Hostname File as JSON


To make debugging easier, you may choose to use an external JSON debugger, such as the one available at
http://www.jsonlint.com/ . There are many other tools like this available to test the file.
The Demandware hostname file syntax, is inspired by JSON, but not strictly JSON. There are several items in the file syntax that
are not valid JSON that you should change before using a debugger:

use colons rather than equal signs when specifying properties. Equal signs are not valid JSON, although they are
supported in the hostname syntax

remove all comments in your file, as comments are not valid JSON.

remove commas after host entries, as commas are not valid JSON. They are required for the Demandware hostname
file, however, so remember to replace them after debugging your file.

Canonical Tags
1.
2.
3.
4.
5.
6.
7.

Have to be managed at the template level.


Canonical tagging on DW are relative tags and not absolute tags.
Theres a specific piece of code but now is part of standard SG template.
When you create a master variation in the catalog, the code that inserts the tag, detects whether its a master or variation
page. If it detects variation, it will point to master.
All search engines claim/dont guarantee recognition of canonical tags. None of the SE make statements saying they will
respect canonicals.
This is obvious if they have a google webmaster account theyll be displayed in the webmaster reports. The robots
approach above seemed to help fix that. (see above)
Prefn1 and prefn1 define the sites variable name. look at staging site and navigate between those two. Copy/paste two
variations and find the difference.

Creating Canonical URL Tags


Normally, search engines lower the rankings for pages that appear to be duplicates. Indicating that a page has a canonical URL
helps to preserve those rankings. There are two ways that a search engine recognizes a canonical URL:

301 redirects from URLs to a canonical URL. For example: if www.test.com, test.com, and
www.example.com/index.html have 301 redirects to example.com/home.asp, then example.com/home.asp is a
canonical URL.

A canonical URL tag is included in the header of multiple pages. For example, if test.com, and
www.example.com/index.html have canonical URL tags in their header to example.com/home.asp, then
example.com/home.asp is a canonical URL.
A canonical URL tag is included as a link element in the header of an HTML page. For example: <link rel="canonical"
href="http://www.company.com" />
A canonical URL tag is often the easier way of establishing a canonical URL, especially for Demandware pages, where similar
content may have different URLs depending on the category navigation, search feature, or landing page used to find the content.
In SiteGenesis 2.11.2, canonical URL tags will be standard. However, if your storefront is based on a previous code version, you
must alter your templates to include canonical URLS.
1.

In the pt_productsearchresult.isml template, include the following code in the <head> tag:
<isif condition="${(pdict.CurrentHttpParameterMap.cgid.submitted && pdict.CurrentHttpParameterMap.cgid.value !=
'')}">

141

<link rel="canonical" href="${URLUtils.url('Search-Show','cgid', pdict.CurrentHttpParameterMap.cgid)}" />


</isif>
2.

In the pt_productdetails.isml template, include the following code in the <head> tag::
<link rel="canonical" href="${URLUtils.url('Product-Show','pid', pdict.Product.ID)}"/>

Creating Canonical Links for Product Masters


Demandware recommends creating a canonical links to a master product for its all variation products. This helps to preserve or
improve rankings for the product. You may need to implement this differently, depending on how your application is configured.
If your application is based on SiteGenesis, you can edit the pt_productdetails.isml template and include the following code to
implement a canonical URL link for product variations:
<iscomment>Determine if the product is a variation product and if so use the variation master as the Canonical Link, will help
SEO for color slicing</iscomment>
<isif condition="${pdict.Product.isVariant}">
<link rel="canonical" href="${URLUtils.url('Product-Show','pid', pdict.Product.variationModel.master.ID)}"/>
<iselse>
<link rel="canonical" href="${URLUtils.url('Product-Show','pid', pdict.Product.ID)}"/>
</iselse>
</isif>

142

Site Preferences
Products
Navigate to: Site Preferences> Products
1.

Define the time (in minutes) for which you want to lock the product. During this time, the product cannot be edited by other
users.

Release product lock after: Enter the number of minutes a product lock should prevent other users from editing a product.
The default value is usually 60. This value must be long enough to allow a user to make all necessary edits to a product but
short enough to allow other users to access the product if the merchandiser who locked the product forgets to release the
lock.
You must lock products in Business Manager for editing. If the product is a variation master, Business Manager
automatically locks all of the master's variation products. This reduces the number of clicks you must make when editing a
variation. If a variation product is currently locked by another user, it remains locked for the other user. If you unlock a
variation master, all variation products locked by the other user remain locked for the other user.
Apply: Click to save any changes.
Reset: Click to reset the value to the number set when you first opened the page.

Baskets
Navigate to: Site Preferences> Baskets
1.
2.
3.

When a customer registers or logs in, the basket of the current anonymous or registered customer remains in the session and
becomes the basket of the new customer (change of ownership).
The basket of a registered customer disappears from the session when the customer logs out.
You can configure basket persistence using Business Manager.
1.
2.

Open Business Manager and navigate to <site> > Site Preferences > Baskets.
Select any of the following Basket Persistence options:

All baskets disappear at the end of the storefront session. The basket of the customer's previous session is
not restored if the customer returns to the storefront in a new session.
The basket of a registered customer's previous session is restored if the customer returns to the storefront
Baskets persistent for and logs in. Customer baskets are stored for the duration, configured with 'Basket Lifetime'. If a customer
authenticated
logs in and there is no current session basket, the basket of the registered customer's previous session is
customers only
restored. Otherwise, the current session basket becomes the basket of the customer and the previous basket
is provided through the API.
The basket of a registered customer's previous session is restored if the customer returns to the storefront
Baskets persistent for and is recognized by the system. Customer baskets are stored for the duration, configured with 'Basket
registered customers Lifetime'. If a customer logs in and there is no current session basket, the basket of the registered
only
customer's previous session is restored. Otherwise, the current session basket becomes the basket of the
customer and the previous basket is provided through the API.
The basket of a customer's previous session is restored if the customer returns to the storefront in a new
session. Customer baskets are stored for the duration, configured with 'Basket Lifetime'. If a customer logs
Baskets persistent for
in and there is no current session basket, the basket of the registered customer's previous session is
all customers
restored. Otherwise, the current session basket becomes the basket of the customer and the previous basket
is provided through the API.
3. Enter the Basket Lifetime in minutes.
The duration of the configured lifetime, in minutes; the default is 240 minutes, or 4 hours. It is possible to persist a basket for
Baskets not persistent

143

more than one day. The maximum basket persistence value is 1000000000000000000000000000000000000000000 minutes,
but it is not recommended.
4. Specify the Add Product To Basket Behavior - how you want new products added to the basket (select one).

Disallow Repeats (default)

Increment Quantity

Allow Repeats
5. Specify the maximum number of product line items - how many items to allow in the cart at one time.
The default is 50. When this limit is reached, the Demandware platform will not allow more items to be added to the cart and
will display an error message.
6. Click Apply to accept your changes.

Customers
Navigate to: Site Preferences> Customer
1.
2.

Manage customer settings including customer lockout, maximum invalid login attempts, lockout effective period, login
attempt reset time and customer profile retention.
Use this page to help control how your storefront responds to failed login attempts by visitors to your site.

You can either give customers an unlimited number of login attempts, or you can specify a hard limit. If you specify a
limit, and the limit is exceeded, the system locks out the customer's account, denying further login attempts for a
configured period of time, after which the customer can try again to login.

By locking out the customer's account, you reduce the effectiveness of automated "brute force" attacks aimed at
cracking the customer's password. However, you also make it easier for a malicious user (or program) to intentionally
lock a customer's account by issuing failed login attempts. Carefully consider this tradeoff when configuring these
settings.

Customer Login Settings


Customer lockout enabled: Specifies whether the system automatically locks out a customer's account when Maximum invalid
login attempts is exceeded. Valid values are True and False ( False is the default).

Maximum invalid login attempts: Specifies the number of failed login attempts allowed before the system locks the
customer's account. Valid values are 2 - 100 (2 is the default).

Lockout effective period: Specifies the amount of time the system waits after locking an account before unlocking the
account and allowing further login attempts. Valid values are 1 minute, 30 minutes, one hour, two hours, one day, ten days
(1 minute is the default).

Reset failed login count: Specifies the number of minutes after which the count of invalid login attempts is reset to 0. For
example, if a visitor fails to log in successfully, but then stops trying, this setting controls how long the system waits before
resetting the count to 0. Valid values are 5 minutes, 30 minutes, one hour, two hours, one day (5 minutes is the default).
Customer Data Retention

Customer Profile Retention: enter the number of days the system stores customer profiles. Profiles are automatically
removed for customers who have not visited the site within the specified number of days. Leave the field blank if customer
profiles should never be purged from the system.
SiteGenesis Example

144

In SiteGenesis, when a visitor to the site fails to login successfully, and the number of failed login attempts is at least two less
than the specified limit, the following message is displayed:

When the number of failed login attempts is one less than the limit, the following message is displayed:

And when the number of failed login attempts exceeds the limit, the customer's account is locked and the following message is
displayed:

When a customer's account is locked out in SiteGenesis, the customer is notified by email. For example:
Dear <customer>, Your account has been temporarily
locked because of the maximum number of invalid logins has been
exceeded. Please try logging in again later. If you feel you have
received this email in error, please contact customer service. This is
an automatic generated E-Mail, please do not reply.
To see how SiteGenesis uses customer preferences, you can examine the following files:

Login.xml

logininclude.isml

lockoutemail.isml

account.properties

145

AB Test Preferences
Navigate to: Site Preferences> A/B Tests
1.
2.

Use this page to configure AB testing preferences.


Tests will still appear as enabled in the AB testing module (if set to enabled), when these preferences are set to False.

Instance Type: Select the instance type and click Apply.

Sandbox/Development

Staging

Production

AB Test Settings

Enable In Storefront: Select to enable or disable AB testing the storefront.

True: Enable

False: Disable

Enable Statistics Collection: Select to allow the system to gather AB test statistics based on storefront events. Disable this
on the staging instance if you want statistics to be copied from production nightly and do not want these results modified.

True: Enable

False: Disable

Retrieve Statistics From Production: Enable on both the staging and production instances to allow for the nightly copying
of AB test statistics from production to staging.

True: Enable

False: Disable

Apply: Click to apply any changes.

Reset: Click to return to the previous settings.

<<Back: Click to return to the Site Preferences page.

Locales
Navigate to: Site Preferences> Locales
1.

2.

There are two levels of setting locales within Demandware.

Use Administration > Global Preferences > Locales to identify which locales you wish to make available to the
system administrators of the storefront sites and within Business Manager within your instance.

Use Site Preferences > Locales to identify which of those pre-defined available locales to make available through the
storefront and in language select boxes in Business Manager. One locale must be marked as the default that will be
used if no locale is passed with a storefront request.
To set a locale as pre-selected locale for all Business Manager dialogs that include localized attributes, the user can define
this preferred locale (language) in his or her profile. The prerequisite is that this locale (language) was previously activated
for the instance through Global Preferences.

You can set locales for:

Product

Catalog

Content

Search

Promotion rules

Customers

Custom objects

Ordering

Organization

Site development

146

3.
4.

To edit the locale including specifying localized formats for attributes, dates, currency, quantity, and input settings, click the
link that is the locale ID. If you want the system to give you default formats, click Prefill after you select the locale.
Once you have selected the required locales you need to build search indexes for those locales. Proceed to the Search >
Indexes module, select the locale for which to build a search index and click Index/Reindex. Now when customers use
those locales (languages) in their search criteria, the system will be able to respond appropriately.

Source Codes
Navigate to: Site Preferences> Source Codes

URL Parameter Name: enter the name of the source code parameter in the URL query string.
Cookie Duration in Days: enter the number of days to keep the source code in a user's session. This must be a number
between 0 and 999.
Standard Redirect URL: enter the URL to use for redirect handling. This URL is displayed on the Source-Code Group
page Codes tab for a specific group with the source code specification appended.
Note:
This URL must also be specified in the Site URLs module, which is where the mapping to the redirect pipelet is specified.
Active Redirect Default: specify the redirect location when a specific source code group has its redirect set to Default .
Select one of the following options:

Home Page - select this option to redirect the customer to the storefront home page.

Category - select this option and enter the category ID for the category page you want to redirect the customer to land
on. Click
to see a tree of the categories and select one.

URL - select this option and enter the URL you want to redirect the customer to land on.
Inactive Redirect Default: select the page to redirect a customer to if they use an inactive source code group whose redirect
value is set to Default.

Home Page - select this option to redirect the customer to the storefront home page.

Category - select this option and enter the category ID for the category page you want to redirect the customer to land
on. Click
to see a tree of the categories and select one.

URL - select this option and enter the URL you want to redirect the customer to land on.
Apply - click to save any changes.
Reset - click to reset the value to those displayed when you first opened the page.

147

Gift Certificates
Navigate to: Site Preferences> Gift Certificates
1.

If Client is using DWs GC functionality, they can define the handling of gift certificates including: Sender Name, Email,
Email Template, Gift Certificate Code Masked and Export Merchant ID.

Sender Name: enter the name to include in the email sent to the gift certificate recipient.
Sender E-Mail: enter the email address to use in the from field of the email sent to the gift certificate recipient.
Email Template: the name of the email template to use when sending email to the gift certificate recipient. If you are using
the default template, the sender name is inserted into the body of the email.
Gift Certificate Code Masked: select one of the following options:

True - gift certificate codes are masked when exported.

False - gift certificate codes are exported in clear text.


Export Merchant ID: select one of the following options:

True - the gift certificate merchant ID is exported when gift certificates are exported.

False - the gift certificate merchant ID is not exported when gift certificates are exported.
Apply - click to save any changes.
Reset - click to reset the value to those displayed when you first opened the page.

Guided Search
Navigate to: Site Preferences> Guided Search
1.

Use this page to manage search configuration settings for your instance.

Availability Settings

Show Orderable Products Only: enable this option to hide products that are not available for sale.
Note:
You can also hide products that are not available for sale at the product level.

148

See Show orderable products only at the product level.


Availability Low Ranking Threshold: specify the decimal percentage of the threshold that indicates a product is available.

Spell Checking Settings

Spell Checking: select Enabled to enable spell checking for search terms.
Note:
The spelling suggestions option does not need to be enabled for spell checking to be enabled.

Spell Checking Index Threshold: specify, in decimal form, the percent of top frequent words to index and make available
for valid suggestions. The range is 0.0 to 1.0. Best practice is 0.30 - index the top 30% of frequent words. Changing this
value requires a complete rebuild of the spelling index.

Spell Checking Smooth Accuracy: specify, in decimal form, how closely matched suggestions must be to the search
phrase when no search results are found. Low accuracy increases the chances for suggestions but decreases the chance for
accuracy. Range is 0.0 to 1.0; best practice is 0.5.

Spell Checking Strict Accuracy: specify, in decimal form, how closely matched suggestions must be to the search phrase
when search results are found. A high value increases the accuracy of the search result and decreases the number of
suggestions. Range is 0.0 to 1.0; best practice is 0.9.
Search Suggestion Settings

Search Suggestions: select Enabled to display search suggestions to the customer when they enter a search term.
Note:
The spell checking option does not need to be enabled for search suggestions to be displayed.
Compatibility Settings

Search in Offline Categories/Folders: change the selected version to 2.10 or later to see the following changes:

Offline categories/folders (and their sub-categories) are ignored for catalog/folder navigation and keyword searches.
Previously, they were just ignored for catalog/folder navigation.

Deepest common category/folder is now calculated based on category/folder assignments below the current refinement
category/folder only. The system ignores any assignments to categories/folders outside the current refinement tree. If a
search is refined by category/folder, the deepest common category/folder is still calculated based on the actual search result
and can therefore be any category/folder below the refinement category/folder.
Note:
This option is only available for migrated instances, this cannot be selected for new instances. New instances use
the behavior described by the 2.10 option.

Apply: click to apply your changes.

Reset: click to undo any changes made since opening this page.

Sequence Numbers
Navigate to: Site Preferences> Sequence Numbers
1.
2.
3.

Use this page to control the start value and format of sequence numbers that are used to identify orders, customers and gift
certificates for this site.
If global sequence numbers are configured, it is not necessary to configure site-specific sequence numbers.
If site-specific sequence numbers are configured, they are used instead of the global sequence numbers.

149

Sequence Uniqueness: You can configure sequences to generate numbers that are unique at the site or organization level.
For sequences configured to be unique per site, you can configure the start value and the format of the number series.
You can specify the following kinds of sequence numbers:

Order Number: The sequence number for orders generated from your storefront. This number is used to search for
orders within Demandware. Further configuration is available in Business manager, on the Site Preferences >
Sequence Numbers page.

Customer Number: Assigned as a customer number to new customers during storefront registration. A customer
number sequence is available for each customer list.

Gift Certificate Merchant ID - Demandware gift certificates have one ID attribute that is used as redemption key and
unique identifier at the same time. Gift Certificate redemption keys are sensitive data owned by the customer and have
to be encrypted and masked in the Demandware system for security reasons. The Gift Certificate Merchant ID is an
additional ID that is owned and only known by the merchant and the merchant backend system. Merchant ID sequence
numbers can be organization or site-specific.
Sequence entry form, for example, Gift Certificate Merchant ID Sequence:
Value Preview: Displays a sample sequence number with the configured start value and format pattern.
Start Value: Enter the starting number for the sequence. The start value of a number series can only be increased (never
decreased) unless you completely reset the number series by clicking Reset.
Format Pattern: The format pattern references the actual series number using number notation of the Java MessageFormat
class. The number can be formatted using standard number format patterns (e.g. {0,number,000000} for fixed, 6 digit
number). For more information, see http://docs.oracle.com/javase/6/docs/api/java/text/MessageFormat.html
Apply: Click to save any changes.
Reset: Click to reset the value to those displayed when you first opened the page.
<<Back: Click to return to the Site Preferences module.

Order
Navigate to: Site Preferences> Order
1.

Use this page to configure order parameters.

Order Export Settings

Order Export Delay: enter the number of minutes after order creation that an order can be exported. After this delay,
the order is a candidate for export.

Order Edit Export Delay: enter the number of minutes after an order is opened for editing that it can be exported.
Order Storage Settings

Order IP Logging: Enable to activate storage of customer IP address during order creation. When an order is placed by a
customer, his or her IP address can be stored within the order. The IP address appears on the order detail page and will be
exported as well for further usage. This feature supports IPv4 and IPv6 addresses. IP logging must be enabled for a specific
site.

Enabled: select to enable.

Disabled: select to disable.


Note:
For European customers, particularly in Germany, we strongly advise that merchants include the acceptance of IP number
storage as part of their terms and conditions. This because a pending supreme court decision may prohibit the storage of

150

customer IP numbers at all, for privacy reasons.


Order Data Retention

Payment Information Retention: enter the number of days the system stores credit card and bank account payment
information. Payment information used for orders older than the specified number of days is masked so that the original
numbers are no longer recoverable. This masking is permanent and cannot be undone if the number of days is changed
later. If you leave the field blank, payment information is masked after 365 days.

Order Retention: enter the number of days the system stores orders. Orders older than the specified number of days
are automatically removed from the system. Leave the field blank if orders should never be purged from the system.

Apply - click to save any changes.

Reset - click to reset the value to those displayed when you first opened the page.

<< Back: click to return to the Site Preferences landing page.

Coupons
Navigate to: Site Preferences> Coupons
1.

Use this page to define preferences for system generated coupon codes.

Include vowels and Y: Specify if you want to include or exclude vowels or Y from the code. This is to remove the potential
of creating real words.

Yes: click to include.

No: click to exclude.


Include dashes: Specify if yo want to include or exclude dashes in the code.

Yes: click to include.

No: click to exclude.


Code length (ignoring dashes): Specify the code length without dashes.

12 characters

16 characters
Format example: Shows an example of a format.
Apply: click to apply changes.

Promotions
Navigate to: Site Preferences> Promotions
1.
2.

Use this page to configure preferences for the Buy X / Get Y product promotion.
Use this page to configure preferences for discount precision.

151

Apply: click to apply your change.


Reset: click to return to the previous setting.
<< Back: click to return to the Site Preferences page.

"Buy X / Get Y" Promotions Behavior


This setting enables you to choose how the Demandware platform applies "Buy X / Get Y" product promotions:
Select one
a) Discount least expensive products:

Qualifying products are the X most expensive products satisfying the promotion's qualifying product rule.

Products receiving the discount are the Y least expensive of the remaining products satisfying the promotion's
discounted product rule.

Discounted items must be less expensive than related qualifying item price.
b) Discount next most expensive products (default):

Qualifying products are the X most expensive products satisfying the promotion's qualifying product rule.

Products receiving the discount are the Y next most expensive (or same price) of the remaining products satisfying
the promotion's discounted product rule.

Discounted items must be less expensive than related qualifying item price.
Discount Precision
This setting enables you to control the rounding behavior for price adjustments generated by the Demandware platform.
Select one:
a) Precision of site currency (default): Discounts are calculated based on the precision of site currency. The rounding
mode is half-up.
b) No fractions: Discounts are always rounded to the full amount and contain no fractions (i.e. precision=0). The rounding
mode is half-up.
Note:
Half-Up rounding is widely used in many disciplines. It means that half-way values, both positive and negative,
are always rounded up. For example, the value 23.5 is rounded to 24, while the value -23.5 is rounded to -23.

This setting is only relevant for sites with a currency having precision > 0, for which the merchant wants to enforce a
precision=0. For currencies with precision = 0 (for example, the Japanese Yen or New Taiwan Dollar), this preference is
irrelevant and has no effect on the calculation.
The preference can be used in these cases:

Applying percent-off product, order, or shipping discounts.

Applying Buy X For Total product discounts.

Prorating order discounts across product line items.


The preference is irrelevant in the following cases:

Applying fixed-price product or shipping discounts.

Applying fixed-price product or shipping discounts.

Applying amount-off product, order, or shipping discounts.

Applying price-from-pricebook product discounts.

Applying bonus-product discounts.

Applying product-shipping discounts.

Applying taxes, shipping costs, etc.


The platform does not perform rounding for fixed-price or amount-off discounts because, in these cases, the merchant can
explicitly specify the price / offset they want when the promotion applies.

Storefront Toolkit
Navigate to: Site Preferences> Storefront Toolkit
1.
2.
3.

Use this page to set the preferences for the storefront toolkit.
Enabling or disabling the storefront toolkit will invalidate the page cache for the site, if page caching is enabled.
The toolkit may not be enabled on production.

152

Click the down arrow on the

icon in the upper left corner of the storefront to see the tools available in the toolkit.

The toolkit includes:

Storefront
Icon

Menu Items

Description

(no icon)

Content
Information

When this tool is selected, mousing over a storefront page component causes the Content
Information window to display links to the product, content asset, or content slot associated
with the page component. Click the link to open the content for editing in Business Manager.

(no icon)

Page
Information

(cached),

Cache
Information

The icons indicate cached and uncached page components in real time on your instance.
Mouse over an icon to see additional information about caching. This is most useful when
developing storefront templates.

Search
Information

Mouse over the icon to see sorting rule and search scoring information for a particular search
result. If your site is not based on SiteGenesis, you must implement some new tags to use this
tool. For more information, see Implementing the Search Information tool.

Request Log

The Request Log window displays the last request to the server from the storefront. Requests
that are made to the server while this window is open are also displayed in the window.

Site Preview

The Site Preview window allows you to temporarily set a date and time for the storefront and
view the storefront as it will appear at that date and time. This is most useful when testing
content slots and other time-dependent template features.
You can also use the Site Preview tool to preview an AB test on a storefront by entering the
AB test and AB test segment values. When an AB Test Segment is being previewed, the
promotions, discounts, slots and sorting rules related to that AB test segment will be enabled,
regardless of the time for which the AB test is scheduled.
See Previewing an AB test.

(uncached)
(page
result)
(result)
(no icon)

(no icon)

When this tool is selected, mousing over a storefront component causes the Show Page
Information window to display links to templates and pipelines associated with the object.
Click the link to open the template or pipeline in Demandware UX Studio. This is most useful
for application development.

Note:
It is not possible to select both the Page Information and Content Information tool at the same time. If you are switching
between them, you may need to periodically deselect all tools and refresh your page.

153

Custom Site Preferences


Navigate to: Site Preferences> Customer Site Preferences
1.
2.
3.

Custom site preferences can be used to set a preference for a specific site.
You must have created the preference as a custom attribute of the SitePreferences object and created an attribute group in
order to see anything on this page.
Custom site preferences are useful if different sites are integrated with different systems or require different processing
options.

Custom Site Preferences Grid - click any link in the grid to edit the custom preference group values. The grid displays the
following columns:

ID - displays the custom preference group ID.

Name - displays the custom preference group name.

Description - displays the custom preference group description

Preferences - displays the number of attributes in the custom preference group

Edit - click to edit the custom preference group.

154

Replication
Navigate to: Administration> Replication
1.
2.
3.
4.

5.

To move data and code to a production instance, you must replicate the data and code. Replication is the process by which
Demandware pushes changes to production in a controlled manner, minimizing the risk of unplanned changes.
Replication occurs only on PIGsnot on SIGs or sandboxes.
During replication, changes are pushed from a replication source to a replication target. The replication source is always the
staging instance; the replication target can be either a development instance or a production instance.
The primary goal of replication is to push changes from staging to production, but a preliminary step is to push those same
changes to development, enabling you to verify that replication was successful. After you have tested replication on the
development instance, you can push the changes from staging to the production instance.
Replication tasks are bundled into one replication process that is typically run during off-peak hours.

You control replication by defining replication processes. A replication process is a collection of replication tasks, and each
replication task specifies a subset of changes to push to the replication target. You can define multiple replication processes, and
you can specify which replication tasks to include in each process, allowing you to control the granularity of changes pushed at
any one time. You have the flexibility to push an entire site or just a selected subset of the sitefor example, just the site's
custom objects. You have a similar flexibility in pushing organization-level changes.
When replicating your storefront, you will replicate code and data (content) through tasks defined in the Business Manger.
1.

2.

Navigate to Administration > Replication in Business Manager to transfer content (such as product and catalog data,
XML-based content components and image files) and code from a source system to a target system. (The source system
can be Development or Staging and the target system can be Staging or Production.)
The content to be replicated is defined in data replication tasks, which are submitted to and executed by the central
system administrator.

Note:
To upload and deploy new code versions, navigate to Administration > Site Development > Code Deployment (see Code
Deployment for more information.

What Happens When You Publish


Data Replication operates in the background. The transfer process copies all required data and files to a duplicate storage area.
When the replication is finished, the publish process can quickly switch its pointers from the old data to the new data, effectively
making the newly replicated storefront active.
The following picture shows the situation before data replication. The Production instance is using its current storefront.

The next picture shows data flowing from the Staging instance to the Production instance and into duplicate storage.

Finally, during the Publishing process the Production instance quickly switches between the old data and the new data. The
switch is normally invisible to customers. However, some data replications can cause page caches to be invalidated. In these
cases, storefront response times will be affected until the page caches are rebuilt.

155

The Undo Process


After publishing newly replicated data to the Production instance, the administrator can (if required) switch back to the last set of
data that was successfully replicated. If the switch invalidates page caches, storefront response times will be affected until the
page caches are rebuilt.

The administrator can roll back one version with the Undo option.

Storefront Modules Mapped to Replication Groups


The following table describes the mapping between the data entered or viewed in the Business Manager and the replication group
that copies that data. Some data is not available for replication by design, as explained in the table below. It is important to
understand the dependencies between different replication groups. Keep in mind that customization can create further
dependencies that are not ** listed below.
Note:
When the Data Replication utility copies the data and files in a replication group, it copies all that it finds, without regard to
whether they are "finished" or not.

Data Replication of Active Data


Active Data is not replicated from staging to production systems. Metrics are imported into production, staging, or development
systems. Active data collected on the production instance is available for import to any instance. Data replication is never used to
import attributes from a production instance to a staging instance.
Feed definitions, however, are replicated from staging to production. This is to facilitate importing matching custom active data
into both staging and production separately.
Online Marketing
Business Manager Data

Replication Group

Coupons

Coupons

Campaigns and Promotions Campaigns

Images

Static Content

Gift Certificates

N/A

Comments

Campaigns and Promotions may reference Coupons, Gift Certificates,


Source Code Groups, Images and Customer Groups

Test data

156

Source Code Groups

Source Codes

Content Slots

Slots

Basket Behavior

Preferences

Time Zone

Preferences

Gift Certificate

N/A

Sequence Numbers

N/A

Site Preference Groups

Preferences

The Demandware system does not replicate source code redemptions. Import
source code groups and their codes into Staging, test them in Staging and
Development, and then replicate them to Production.
Content Slots reference Categories

These values must be configured on the Production instance.

Content
Business Manager Data

Replication Group

Library Folder

Content Library

Content Assets

Content Library

Comments

Site URLs
Business Manager Data

Replication Group

Comments

SEO Support

Preferences

Mapping Rules

Site URL Management

Static Mapping

Site URL Management

Aliases

Site URL Management

Custom Objects
Business Manager Data

Replication Group

Comments

Custom Object Definitions Object Definitions


Custom Object Data

Refer to Replicating custom objects .

Custom Objects, unless marked "Not Replicable" Include Custom Object definitions.

Customers
Business Manager Data

Replication Group

Comments

Customers

No need to copy

These values must be configured on the Production instance.

Customer Groups

Customer Groups

May be referenced by Campaigns and Promotions. Dynamic


customer groups are part of the staging process, like any other
customer group. The replication process will replicate the group
and its role. The replication does not include any calculated
customer membership data. If a new dynamic customer group is
created on a staging system and afterward replicated to production,
it will have no customers until the background segmentation
process runs.

157

Search
Business Manager Data

Replication Group

Comments

Search Indexes

Search Indexes

Should be current for products.

Product

Search Indexes

Spelling

Search Indexes

Content

Search Indexes

Redirect

Search Indexes

Synonym

Search Indexes

Suggest

Search Indexes

Ranking

Search Indexes

Stopword Dictionary

Search Indexes

Hypernym Dictionary

Search Indexes

Index Update Schedule

N/A

Search Driven Redirects

Search Indexes

Synonym Dictionary

Search Indexes

Sorting Configuration

Search Indexes

Search Preferences

Preferences

These values must be configured on the Production instance.

Ordering
Business Manager Data

Replication Group

Taxation

Taxation

Orders

N/A

Payment Processors

Payment Processors

Shipping Methods

Shipping Methods

Comments

Test data

Products and Catalogs


Business Manager Data

Replication Group

Comments

Products

Catalogs

Include search indexes for sites when replicating.

Catalogs

Catalogs

Categories

Catalogs

Images

Static Content

Price Books

Price Books

Product options

Catalogs

Product sets

Catalogs

158

Recommendations

Catalogs

Variation attributes

Catalogs

Catalog feeds

N/A

Since this data is instance-specific, schedules are not replicated. Instead,


configure schedules for each instance separately.

Inventory

N/A

This data needs to be timely and is fed directly to production.

Batch processes

N/A

Note:
It is no longer possible to replicate sitemaps or other catalog feeds via site preferences.

Data Replication
Navigate to: Administration> Replication> Data Replication
1.
2.

Use this page to create a new replication process that transfers data between Demandware instances.
It is only possible to reach this page on Staging instances. This page is not available on Sandbox instances.

Use this page to create a new replication process that transfers data between Demandware instances.

Process ID: an automatically generated value that can be used to identify the process in logs.
Target: the system to replicate data to. This can only be the Development or Production instance.
Description: enter a description of the replication process that can be used to identify it later, such as the data being
replicated and the reason for replication.
Activation: select one of the following options for how the replication starts:

Automatic - at a specified date and time or, by default, immediately after the replication process has been defined.

Manual - prepared but waiting to be started by a Business Manager user with the proper permissions.

Recurring - on a daily, weekly, or monthly schedule.


Notification: select one of the following options for email notification of the replication:

None - never generates an email notification.

When process ends - always generates an email notification for the email addresses entered in the to box when the
process ends, whether it ends successfully or in error. To send notification to multiple people, enter multiple addresses
separated with a comma.

When process fails - if an error occurs with the data replication, generates an email notification for the email address
entered in the to box. To send notifications to multiple people, enter multiple addresses separated with a comma.

Periodically - generates an email notification periodically while the process is running and when the process ends,
either successfully or in error. This option allows you to identify if a process is running longer than expected. In the
Every...Minutes box specify how often the process generates an email. Enter the email address to send the notification
to in the to box. To send notifications to multiple people, enter multiple addresses separated with a comma.

159

The generated email contains information about the start and end time of the process, the target system, and replication mode. It
lists the configured replication groups. In case of a failure, an error code is also included. Copying an existing process keeps the
original notification settings for the new process. Each process in a recurring series sends its own notification.
Note:
An email is sent after the process has finished or failed. If the process is hung, no email is sent.

Next >>: click to continue to the next step in configuring the replication process.

Cancel: click to cancel the replication process and return to the Data Replication Processes page.
1.

After initialization, the page is similar to the following image:

Replication Type: select the type of replication you want to create.

Initialization: this initializes the realm.

Data Transfer & Publishing: One-step publishing.

Data Transfer: Two-step publishing.

Undo

Organization

Click the plus icon to see all of the organizational objects that you can replicate.

Check the box for any object you want to replicate.


Site

2.

Click the plus icon to see all of the objects for a specific site that you can replicate.
Check the box for any object you want to replicate.
Next >>: click to continue to the next step in configuring the replication process.
Cancel: click to cancel the replication process and return to the Data Replication Processes page.

Use this page to add or start a new replication process.

160

Start - Creates the replication process and starts it immediately.


Create - Creates the replication process, but does not start it.
Cancel - Does not create the replication process.

Two-Step Publishing
You can replicate data via two-step publishing, which allows you to avoid having the entire the process run and then return a fail
status. In this case, you will set the replication process from staging to just transfer, and then publish the data once the transfer is
complete. This process is useful for merchants who are just starting to create their replication and transfer processes, and need
more control over the results.
To perform two-step processing:
1. Create a process called transfer, and start it following the above instructions.If the transfer fails, you must troubleshoot
the problem to determine the root cause and then repair the problem. Once the problem has been identified and
repaired, transfer the information again. If the transfer fails five times, for example, you cannot publish because nothing
was copied from staging to production to publish.
2. Once the transfer process complete successfully, you will be able to see/create a second task called Data Publish that
actually publishes the data.The data in the transfer and publish tasks must match. For example, you cannot transfer
Catalog, Index and Promotion data and then only publish Catalog.
Caution:
You must always run transfer followed by publish. For example, if you transfer data at one PM on April third, you must run
publish before any other replication.
Note:
Another best practice is to disable incremental indexing during this two-step process. Though incremental indexing does not
need to be disabled for the transfer, it must be disabled before you run publish. You can either replicate the search index or
manually build it on the target instance.

Data Replication Best Practices


What are some data replication best practices?
1. Test the replication process from Staging to Development first.
2. Test the resulting configuration on Development, to assure that it behaves as expected.
3. Identify the dependencies between different data replication groups.
4. Separate the Transfer and Publishing steps to Production to allow the administrator to verify the transfer process
(examine the logs at (Administration > Site Development > Development Setup ) before going live.
5. Perform the Transfer to Production when storefront activity is at a minimum.
6. Disable incremental and scheduled indexing and stop other jobs while replicating data.
7. Try to avoid major data replications during Demandware's standard maintenance windows.
8. Limit permissions to perform data replication in Business Manager by optionally constraining the privileges of the Data
Replication Manager (Administration > Organization > Roles & Permissions > Data Replication Manager ).

Business Manager Modules - enable or disable access to the data replication function.

Functional Permissions - enable or disable site or organizational level replication rights.

Verifying a Data Replication


Demandware displays the status of a data replication in the Data Replication Processes module of the Business Manager. Open
Business Manager and navigate to Administration > Replication > Data replication processes page.
Demandware also logs the process of data replication. Log files can be useful in verifying a successful data replication or
resolving a data replication problem. An administrator may view these logs through the Business Manager by going to
Administration > Site Development > Development Setup, and clicking the Log Files link. Look for staging logs in this
general log area.
1. The first step in verifying data replication is to monitor job status of the process on the Staging (source) instance. If it
fails, the next step to take is to look into the Staging logs. Many times a single Staging log contains several days worth
of events. https:// [staging_instance_name] /on/demandware.servlet/webdav/Sites/Logs
2. Look for the beginning of the replication process in the logs. It has a time stamp similar to the data replication task. The
following are examples of log entries. [2007-01-15 21:17:12.848 GMT] ISH-CORE-2250: New replication task
"1168895828901" in domain "Sites-Site" successfully created.
[2007-01-15 21:18:34.171 GMT] ISH-CORE-2250: New replication task "1168895910472" in domain "SitesCustomer" successfully created.
[2007-01-15 21:21:13.574 GMT] ======================================
[2007-01-15 21:21:13.574 GMT] ReplicationPublication process created.
[2007-01-15 21:21:13.575 GMT] Start date: Mon Jan 15 21:21:12 GMT 2007

161

[2007-01-15 21:21:13.575 GMT] TargetSystem: Production [url of system here]


[2007-01-15 21:21:13.575 GMT] Process uuid: bcvh6iaalTxJY222cowN3YFqCG)
[2007-01-15 21:21:13.575 GMT] -------------------------------------------3. Scroll through the log file, which will contain the steps of the process, such as gathering stats for all tables. [2007-0115 21:27:06.602 GMT] ISH-CORE-2070: SQL (64ms, rows=1): begin dbms_stats.gather_table_stats(user,
'PRODUCTOPTION_AV$1', method_opt => 'for all indexed columns', cascade => TRUE); end;
[2007-01-15 21:27:06.654 GMT] ISH-CORE-2070: SQL (52ms, rows=1): begin dbms_stats.gather_table_stats(user,
'PRODUCTOPTION$1', method_opt => 'for all indexed columns', cascade => TRUE); end;
[2007-01-15 21:27:06.826 GMT] ISH-CORE-2070: SQL (171ms, rows=1): begin dbms_stats.gather_table_stats(user,
'BUNDLEASSIGNMENT$1', method_opt => 'for all indexed columns', cascade => TRUE); end;
[2007-01-15 21:27:06.869 GMT] ISH-CORE-2070: SQL (43ms, rows=1): begin dbms_stats.gather_table_stats(user,
'PRODUCTOPTIONPRICE_AV$1', method_opt => 'for all indexed columns', cascade => TRUE); end;
[2007-01-15 21:27:06.869 GMT] ISH-CORE-2067: Starting new transaction...
[2007-01-15 21:27:06.872 GMT] ISH-CORE-2069: Commit transaction.
[2007-01-15 21:27:06.882 GMT] ISH-CORE-2067: Starting new transaction..
4. Next the logs show how rsynch prepared the source file system directories ready for copying to the target instance.
2007-01-15 21:27:08.317 GMT] StagingGroup: Site specific content search index (Relative directory: search/content)
[2007-01-15 21:27:08.317 GMT] ISH-CORE-2486: Synchronize Files of unit 'Sites-customer-Site' in site 'Sitescustomer-Site' to exchange directory at '/remote/aaas/staging/stg'.
[2007-01-15 21:27:08.318 GMT] Executing command: /build/2.0.0/system/bin/synchronize.sh
/remote/aaas/aaas_stg/sharedata/sites/Sites-Customer-Site/1 /search/content/ /remote/aaas/staging/stg/Sites-CustomerSite/search/content/ ()
[2007-01-15 21:27:08.402 GMT] rsync debug (/usr/bin/rsync -tr --delete /remote/aaas/aaas_stg/sharedata/sites/SitesCustomer-Site/1 /search/content/ /remote/aaas/staging/stg/Sites-Customer-Site/search/content/)
[2007-01-15 21:27:08.476 GMT] ISH-CORE-1956: Files in path 'search/content' of site 'Sites-Customer-Site' are
successfully prepared
5. The final step on the staging instance should be a hand-off to the target server. There will be a line similar to this in the
Staging log. [2007-01-15 21:27:09.783 GMT] Staging pipeline in live system successfully called.
6. If the success message is missing, look for an error similar to the following. ISH-CORE-2491: Setting state of process
with uuid='dC8KAANna1111EOTN9h9md4' from 'StartingStagingProcess' to 'ErrorAcquiringEditingLocks
If this staging error occurred, perform the following steps.
7. Stop and restart the staging and target instances from the Control Center.
8. Repeat the data replication process with the same parameters.
9. If the staging log shows no errors, examine the staging log on the target system. https:// [target_instance_name]
/on/demandware.servlet/webdav/Sites/Logs
10. The target system's staging logs will start with a message like this. 2007-01-15 20:29:30.321 GMT] Copy staging
process with uuid=bcFvkiaalTMxM444667bVYFqBX[2007-01-15 20:29:32.347 GMT] Starting StagingResourcesAcquire@Sites-Site (
11. Depending on which data was replicating, there is an entry for the start of the database copy. [2007-01-15 20:30:20.296
GMT] ISH-CORE-2070: SQL (123ms, rows=1): INSERT /*+ APPEND */ INTO CATALOG$1 dest SELECT
CATALOGDOMAINID,ID,TYPECODE,STATUS,PROXYFLAG,STARTMAINTENANCE
,ENDMAINTENANCE,POSITION,UUID,OCA,DOMAINID,LASTMODIFIED FROM CATALOG$S src WHERE
src.DOMAINID NOT IN ('bcIxgiaalXEYQ2223334N9rLDa')
[2007-01-15 20:30:20.665 GMT] ISH-CORE-2070: SQL (369ms, rows=0): TRUNCATE TABLE
CATALOGSITEASSIGNMENT$1 REUSE STORAGE
[2007-01-15 20:30:20.769 GMT] ISH-CORE-2070: SQL (100ms, rows=1): INSERT /*+ APPEND */ INTO
CATALOGSITEASSIGNMENT$1
12. After the copy, there are logs showing the switch from the $2 temp table to the $1 source table. [2007-01-15
20:35:43.935 GMT] ISH-CORE-2300: <dbms_output> Switching synonym PRODUCT_AV from PRODUCT_AV$2
to PRODUCT_AV$1...
[2007-01-15 20:35:43.935 GMT] ISH-CORE-2300: <dbms_output> Switching synonym DELETEDPRODUCT from
DELETEDPRODUCT$2 to DELETEDPRODUCT$1...
[2007-01-15 20:35:43.935 GMT] ISH-CORE-2300: <dbms_output> Switching synonym PRODUCT from
PRODUCT$2 to PRODUCT$1...
[2007-01-15 20:35:43.935 GMT] ISH-CORE-2300: <dbms_output> Switching synonym PRODUCTLINK from
PRODUCTLINK$2 to PRODUCTLINK$1...
[2007-01-15 20:35:43.935 GMT] ISH-CORE-2300: <dbms_output> Switching synonym PRODUCTOPTION from
PRODUCTOPTION$2 to PRODUCTOPTION$1
13. If this process finished successfully, the following message will appear at the end of the logs. [2007-01-15
21:31:17.434 GMT] ReplicationPublication process finished with state 'StagingProcessCompleted'.
[2007-01-15 21:31:17.435 GMT] Process uuid: cfbcMirrr666ttado7llYFqCL)

162

[2007-01-15 21:31:17.435 GMT] End date: Mon Jan 15 21:31:16 GMT 2007
[2007-01-15 21:31:17.435 GMT] =======================================

Code Replication
Navigate to: Administration> Replication> Code Replication
1.
2.
3.
4.

Business Manager code replication allows you to replicate the active code version between a source and a target instance.
You can only transfer custom code to a registered target system, in a way similar to data replication. This means that the
available paths are from staging to either development or production.
On the production instance, a new version is automatically created, whose name is built from the original version name and
modified with a timestamp, if necessary.
You can copy the code to production without activating it, or copy it while making it active. This approach allows you to
manually switch to an earlier version. In the case of a code rollback, the Demandware platform knows which was the
previously active version and activates that version again. The suggested strategy for a production instance is as follows:

Deploy the code version on the staging instance. See Code Deployment.

Replicate the code (and data) to the development instance to test the process itself (Administration > Replication >
Code Replication ).

After the test and eventual adjustments of the new code version, replicate this code to the production instance.

Replication Types
You can create code replication processes for a manual or automatic start; just configure the target system. There are four
possible replication types:
Replication
Type

Code Transfer

Code Transfer
and Publishing
Code
Publishing

Code Undo

Description

The currently activated code version on the source system will be transferred to the target system.
Each replication actually creates a new code version on the target system, even if name or all files within the
version match to an already installed version. Contrary to data replication, no synchronization is used, as this
could affect the existing, or even active, version on the target instance.
The first step is the code transfer, followed by an immediate activation of the new version.

Performs no transfer at all, but simply activates the previously transferred version. This mode is only available
when the previous code replication process was of type Code Transfer. Since the version name can change
between the two systems there is some additional logic to ensure a correct handling. If this version does not
exist anymore, the publishing will fail. If it has been already activated, nothing is done.
Similar to code publishing (that is, no data transfer), but rolls back the previously activated version. This mode
requires a prior process in either mode Code Transfer & Publishing or Code Publishing. If the version to be
un-done is no longer active, nothing will be done. If the version lo longer exists or no version to rollback to
exists, the process will fail.

Email Notification
You can configure email notifications for code replication. An email is sent after the process has finished or failed. If the process
is hung, no email is sent. You can specify a comma-delimited list of email recipients if you want notifications sent to multiple
people. The notification email contains the following information:

Start and end time of the process

Target system

Replication mode

Transferred code version

Managing Code Replication


Navigate to: Administration> Replication> Code Replication> new

163

1.

Use this page to create a new replication process that transfers code between Demandware instances.
Note:
It is only possible to reach this page on Staging instances. This page is not available on Sandbox instances.

Process ID - An automatically generated value that can be used to identify the process in logs.
Target - The system to replicate code to. This can only be the Development or Production instance.
Description - Enter a description of the replication process that can be used to identify it later, such as the code being
replicated and the reason for replication.
Activation - Select one of the following options for how the replication starts:

Automatic - at a specified date and time or, by default, immediately after the replication process has been defined.

Manual - prepared but waiting to be started by a Business Manager user with the proper permissions.
Notification: Select one of the following options for email notification of the replication:

None - never generates an email notification.

When process ends - always generates an email notification for the email addresses entered in the to box when the
process ends, whether it ends successfully or in error. To send notification to multiple people, enter multiple addresses
separated with a comma.

When process fails - if an error occurs with the data replication, generates an email notification for the email address
entered in the to box. To send notifications to multiple people, enter multiple addresses separated with a comma.

Periodically - generates an email notification periodically while the process is running and when the process ends,
either successfully or in error. This option allows you to identify if a process is running longer than expected. In the
Every...Minutes box specify how often the process generates an email. Enter the email address that notification is sent
to in the to box. To send notification to multiple people, enter multiple addresses separated with a comma.

The generated email contains information about the start and end time of the process, the target system, and replication mode. It
lists the transferred code version. When a failure occurs, it also includes an error code. Copying an existing process keeps the
original notification settings for the new process. Each process in a recurring series sends its own notification.
Note:
An email is sent after the process has finished or failed. If the process is hung, no email is sent.
2.

Use this page to define replication tasks for a new replication process that transfers code between Demandware instances.

Replication Type - Select the type of replication you want to create.

Code Transfer & Activation - one-step publishing.

Code Transfer - two-step publishing.

Undo - reverses the process.

164

Select - select the version you want to replicate to.


Active - indicates which code version is currently active.
Note:
It is possible to replicate code versions that are currently not active.
Code Version - displays a list of available code versions.
Next >> - click to continue to the next step in configuring the replication process.
Cancel - click to cancel the replication process and return to the Code Replication Processes screen.

3.

Confirmation

Start - click to create the replication process and starts it immediately.


Create - click to creates the replication process, but does not start it.
Cancel - click to cancel the replication process.

Replicating a Storefront
Replicating a storefront moves the contents of the staging database to the production database. You can also replicate from the
staging environment to the development environment.
The following types of information can be replicated:

Meta data for the objects included in the staging process (for example,, staging catalogs will copy meta data for the
categories and products in the catalogs)

Branding information such as images and style sheets

Campaigns, promotions and coupon definitions (for example, maximum number and codes)

Catalogs, including products, their descriptions and images

Content library including all assets

Custom objects of the site

Payment processors, including their preferences

Price books and their assignments to Sites

Search indexes - first include this in the replication task, then update the search index before executing the replication
task

Shipping methods, including all data regarding shipment

Site preferences

Site URL management, including site URLs and configured URL mappings
The following types of information cannot be replicated:

Customers, including customer group assignments

Inventory

Payment information

Order information (for example, tax and shipping)


Note:
Templates and code cannot be replicated using data replication. However, they can be replicated using code replication.

We recommend having more than one user role involved in the replication process:

165

Product manager - to create/define replication tasks; this person has limited replication rights (by default, this role does
not have replication permission)
Replication manager - to manage and execute replication tasks

Things to Keep in Mind

When changing meta data, we recommend that you change the meta data on Staging, then replicate "Object definitions"
to Development and Production. This process helps mitigate errors due to manual editing.

We recommend that you update your search index before executing any replication process.

You can execute a replication request manually or schedule it (one time execution only).

Use the Copy function to re-run a finished process, regardless of whether it failed or completed.

During replication, only the data within the replication groups is overwritten. If you replicate products, you will not
overwrite content assets and vice versa.

The replication process transfers the data available on the source system at the time the process begins, not from the
time the process was created.

Catalogs being replicated include all contained products.

Clearing Page Caches


Navigate to: Administration> Sites> Manage Sites> [site]> Cache
1.
2.
3.

The Code Replication process from the Staging to Production instances automatically clears the cache as the last step of this
process.
If a user directly deployed code or page changes to Production (this is not recommended), the user would need to manually
clear the cache through the Business Manager.
There are a few use cases when page caches are not automatically invalidated or appear not to have been invalidated. It is
possible to manually clear caches through the Business Manager.
a) A cache may appear to not be cleared if the administrator's browser cache is storing old pages. An administrator should
close the browser and clear its local cache before manually attempting to clear a cache in the Business Manager.
b) If an administrator is attempting to manually clear the cache on an Akamai enabled system (this is all production and
development environments), there is no need to invalidate page caches.
c) If an administrator does not see an expected change, she should look for a pattern. For example: are images not
refreshing? Possibly your image provider, such as Scene 7, is experiencing a problem. Make sure that content assets
have been deployed.
Caution:
Invalidating page caches can cause heavy load to application servers. Please make sure that a manual page cache invalidation
is necessary before issuing this command. It can possibly take 15 seconds for a clear cache command to get to the web
adapter. So it is possible that an administrator will not see a cache update immediately after starting the process. The
administrator should understand this delay and wait before issuing multiple cache clears.

166

Organization
Navigate to: Administration> Organization

Creating an Organization Profile


Navigate to: Administration> Organization> Organization Profile
1.
2.

Manage the organization profile including its default language.


Before you can add users to the Demandware Platform, you must (as the administrator) define your organization and all its
storefronts at the highest level, including setting the default language for all storefronts.

For Business Manager Users


Open Business Manager, navigate to Administration > Organization > Organization Profile, and do the following:

Edit the organization name

Edit the organization description

Edit the organization's default language


You cannot edit the Organization ID because it is the basis for Demandware eCommerce and your pre-configured store URL. It
is the unique key that identifies the account, and the information you use to login to Business Manager to administer your site.
Field Name

Relevance

Name

This is the name of the merchant organization as it will appear in the Demandware Business Manager.
This is the ID for the merchant organization as it will appear in all sections of the Demandware Business
Manager - particularly in the URL.
This value cannot be edited because it is the basis for Demandware eCommerce and your pre-configured
store URL. It is the unique key that identifies the account, and the information you use to log in to the
Demandware Business Manager to administer your site.

ID

Description

This is a description of the merchant organization.

Default
Language

This is the default language that will be used in the Business Manager.
The product list views and all other catalog information will be shown in the default language you select
here (unless you select another language from the drop down menu).

Roles & Permissions


Navigate to: Administration> Organization> Roles & Permissions
1.

Manage roles and permissions.

2. BM does not have the ability to set up a user with a read-only permission.
Roles
Roles represent groupings of permissions. They are defined in the context of an organization. You assign roles to users. Users can
have multiple roles. Permissions can be associated with roles. A user owns the permissions of those roles of which he or she is a
member.
Demandware defines sample roles for the SiteGenesis Application site. The SiteGenesis Application site contains the role
Administrator, which you can use to start with. This role has permissions on all Business Manager modules below the
Administration menu. You can create your own roles depending on your specific needs for the Sites organization.

167

Business Manager Modules

Select Context: select the context within the organization.

Organization: select for organizational access.

<Your Site>: select for access to your site, for example, SiteGenesis.
Apply: slick to accept the context.
Business Manager Module: lists the Business Manager modules you can assign to a role. The Admin user can
automatically access all these modules. See Administrator role.
Module Description: describes what the user role can access within the Business Manager module.
Module Checkbox: select to grant permission on individual modules.
Update: click to accept the selected module permissions.

Administrator Role
The Administrator role cannot be deleted directly, or indirectly, by import. The Administrator role has the following properties:

Is always available in a new instance.

Cannot be deleted through the Demandware platform tools or the import.

Has access to all known system modules in all known sites (per organization of course).

Automatically gets access to all system modules of a newly created site.

Automatically gets access to new modules when deploying new releases (for all organization and sites).

Can be extended with functional permissions.

Can be extended with access permissions for custom modules.


Administrator access for all system modules is ensured via the following mechanisms:
1. At Site Creation Time - Whenever a new site is created, the Administrator role automatically receives the required
access permissions for all site system modules. This ensures that the Administrator role maintains full access to all
modules within all sites.
2. At Server Startup Time - Whenever the server starts, the system checks whether the Organizational and Site level
Administrator roles still have access to all known system modules in all sites. This ensures that the Administrator role
automatically gets access to newly introduced system modules (for example, when deploying new releases).
Retrieving Passwords
The best practice is for all customers and partners to have one administrator who is responsible for the passwords of all their
instances. This is usually the default admin user account included with every new instance. The admin user can create additional
named accounts that also have administrator permissions.
Developers use their own accounts to access instances and do not change or reset the global administrator password. If a dbinit is
run on a sandbox, the administrator is responsible for changing the passwords for the sandbox back to the original passwords
after the dbinit. For more information on dbinit, see Using dbinit.
An administrator can retrieve a password if it is forgotten using the Forgot Password feature.
See Resetting a Business Manager password.
Note:
Demandware support only resets the main administrator password for the admin account. All other accounts with
administrative access must be reset by a user logged in as the admin user.
Import / Export

168

The import logic rejects deletion attempts for the Administrator role (for example, via DELETE mode import). The import logic
also rejects any modification of system module access privileges (for example, via REPLACE mode import). Both cases are
logged as warning in the import log.

Permissions
Demandware allows you to set permissions for transferring, replicating, and editing data. You can also allow users to log in on
behalf of a customer or as a customer, which is useful for customer service staff. Permissions for most data can be set to allow a
user to view data or change data, either for one or more specific sites or across all sites owned by an organization. A user has all
of the permissions of any of the roles to which he or she belongs.
Functional Permissions
Functional permissions are not associated with a Demandware platform tool module. They enable behavior of the platform to a
user and enable special functions within the platform. For example: To make Joe User an agent who can login on behalf of any
customer of site ABY, Joe needs the functional permission "Login_On_Behalf" for site ABC.

Data Transfer and Replication Permissions


The following table lists the functional permissions you can assign to allow a user to transfer files into the cartridge via WebDAV
or replicate data between instances.
Permission

Description

WebDAV_Transfer_Files

Allows access to log files, import/export directories and static files in catalogs and library
on the server via WebDAV.

WebDAV_Manage_Customization Allows access to directories of all custom cartridges via WebDAV.


WebDAV_Realm_Access

Allows access to the realm-wide shared directory via WebDAV.

Replication_Run_For_Org

Allows a user to trigger replication for global replication groups such as System Object
Type Definitions.

Catalog Permissions
The following table lists the functional permissions you can assign to a role to allow a user to manage data across all sites in an
organization.
Permission

Manage_All_Catalogs

Description
Allows a user to:

view, create, edit, delete organization catalogs

assign catalogs to sites

view, create, edit, delete all assets in all catalogs in all languages and for all sites
Allows access to catalogs, categories, products, recommendations, variation attributes, options,
product category assignments, or catalog images. Assign this to users who need access to Products,
Catalogs, Product Options, Product Sets, Recommendations, or Variation Attributes modules.

169

Allows a user to:

view, create, edit, delete organization price books

assign price books to sites


Manage_All_PriceBooks

view, created, edit, delete prices in all price books for any product

view, created, edit, or delete product options and shared option prices (note that option
prices are not in price books)
Allows access to price books, product prices, and option prices. Assign this to users who need access
to Products, Product Options, or Price Books.

Manage_Inventory

Allows a user to:

view, created, edit, delete inventory lists

assign inventory lists to sites

view, created, edit, delete inventory records in all inventory lists for any product
Allows access to inventory lists and inventory records. Assign this to users who need access to the
Products and Inventory modules.

Site-wide Functional Permissions


The following table lists the available functional permissions that you can use to restrict a role to a specific site or sites.
Permission

Description

Login_On_Behalf

Allows an application to login into the storefront on behalf of a customer. This allows an
application, such as a call center application to access storefront data, but restrict it to specific sites.

Replication_Run_For_Site Allows a user to trigger replication for site-specific replication groups such as search indexes.

Login_Agent

Manage_Site_Catalog

Manage_Site_PriceBooks

Allows an application to login as a customer in the storefront. Restricts the access to only those
Business Manager users that have the permission Login_Agent. This allows an application, such as
a call center application to access storefront data, but restrict it to specific sites.
For site catalog products, allows a user to:

view, create, edit, delete all non-localized attributes

view localized attributes for all locales

view, create, edit, delete localized attributes for allowed site localesFor products owned
by another catalog, but assigned to the site catalog, allows a user to:

view non-localized attributes

view localized attributes for all locales

browse all other catalogs and assign products from other catalogs to the site catalog
Allows a user to:

view site price books

view, create, edit, delete prices in site price books for site products

view, create, edit, delete prices in site price books for site products
Users cannot:

edit any attributes of site price books

view non-site price booksSite prices books are either directly assigned to the site or
assigned via source codes. Price books not assigned to site or source code cannot be edited
by users with this permission.
Allows access to price books, product prices, and option prices for the site. Assign this to
users who need access to Products, Product Options, or Price Books.

170

Manage_Site_Inventory

Allows a user to:

view site inventory list

view, create, edit, delete inventory records in site inventory list for site products
Users cannot:

edit any attributes of site inventory list

view non-site inventory listsAllows access to inventory lists and inventory records. Assign
this to users who need access to the Products and Inventory modules.

Adding New Users


Navigate to: Administration> Organization> Users
1.
2.

Create individual user profiles for the members of your merchant organization who should have rights within Business
Manager.
Apply levels of security among your user base. By defining access roles to your users, you can allow them access only to the
modules of the Business Manager they need to do their jobs.
1.
2.
3.

Open Business Manager and navigate to Administration > Organization > Users.
Search for the user you want to create, to make sure the user does not already exist.
Click New.

4.

On the General tab, specify the required information.

Specify credentials, profile preferences, phone numbers and preferences.


Click Apply to add the new user.
Click the Roles tab to assign roles to this user.
Click Assign or Unassign to assign or unassign roles.
Navigate to Administration > Organization > Roles & Permissions to add a new role.

5.
6.
7.
8.

171

Sites
Navigate to: Administration> Sites

Manage Sites
Navigate to: Administration> Sites> Manage Sites
1.
2.
3.

Use this page to create new sites, edit site properties, or delete sites.
Control cache settings.
Recommend disabling cache during Boot Camp.

Site List
This section lists all of the sites available to the current instance and whether the site is live or disabled.

Refresh: click to refresh the status of the listed sites.

New: click to create a new site.

Delete: click to delete sites whose box is checked. Deleting a site that exists on your production instance, and as such is
publicly accessible, leads to a removal of all transactional content like orders, customers, or wishlists for that site
during the next replication of site data.
Note:
There is usually no need to delete a site on your staging instance. If you plan on removing a previously existing production
site, for instance a site that was used for load testing or a promotional microsite that is no longer required, please contact
Demandware Support.
Business Manager
Click the Business Manager to manage settings for Business Manager extensions.

General Tab
Use this page to configure the name, ID, currency and taxation settings for your site.

ID: enter a unique site ID. Demandware does not allow you to enter a site ID that is not unique.
Note:
The site ID cannot be changed once it is created. The site must be deleted and a new site created with the new ID. The site
IDs are not shown to customers, but are used to identify a site within Business Manager and within pipelines.
Name: enter a site name. The site name is used in URLs and should only include URL-friendly characters.

172

Currency: select a currency for your site. Demandware only supports the currencies included in this list.
Status: select one of the following options:

Live - select this if you want all the site to be available for preview for Staging instances or to take orders on
Production instances.

Disabled - select this if you want the offline maintenance page to appear for the site for Staging or Production
instances.
Note:
If a site is disabled, the system jobs that update the search indexes or gather statistics for AB Tests or Analytics are also
disabled.
Taxation: select one of the following options:

Net - select this if you want all product and other prices to be treated as net on the site

Gross - select this if you want all product and other prices to be treated as net on the site
Note:
Make sure that you have updated all your prices according to the preferred tax policy before you change this preference.

Description: enter a description for your site. This may be useful for new employees if you maintain multiple sites.
Apply: click to save any changes.
Reset: click to reset the value to those displayed when you first opened the page.

Settings Tab
Use this tab to set the cartridges used by the site.

Instance Type

HTTP Hostname - this feature is deprecated and only included for backward compatibility. To set your HTTP and HTTPS
hostname for your site, navigate to Site > site > SiteURLs > Aliases .

HTTPS Hostname - this feature is deprecated and only included for backward compatibility.
Instance Type: All

Cartridges - enter the name of a cartridge you want to add to the effective cartridge path and click Apply.

Effective Cartridge Path - displays the cartridges used for business logic and rendering for the storefront. The order in
which cartridges are added is significant, because cartridges can override each other. A cartridge overrides any cartridge
listed to its right. For example, if the effective cartridge path is: app_storefront_refapp:bc_api:ac_cybersource:core
The bc_api cartridge overrides the ac_cybersource:core cartridge and the app_storefront_refapp cartridge overrides both of
the other cartridges.

Apply - click to save any changes.


Reset - click to reset the value to those displayed when you first opened the page.

173

Cache Tab
Use this tab to configure how pages are cached for your storefront. If you click the Business Manager link on the Manage Sites
page, you can use this tab to manage the cache settings for Business Manager itself and allow for the customization of Business
Manager pages without requiring a server restart.
Generally, page caching is disabled for development and enabled for production systems. The system uses two caches for
different kinds of content:

Static Content Cache - caches images, icons, CSS stylesheets, and other non-dynamic assets
Page Cache - caches HTML pages generated from ISML templates when <iscache> is enabled.

Both caches can be configured and invalidated separately. When a cache is invalidated the content is refreshed in the storefront.

Instance Type
Select the current instance type.
Static Content and Page Caches

Time to live (TTL) of static content: enter the number of seconds that you want static content to be cached. At the end of
the time to live the cache is emptied and content is retrieved from the server. The default is 86,400 seconds which equals 24
hours.

Last invalidated: displays the last time the cache was invalidated and the content of the storefront refreshed. Invalidating
the cache results in slower response times when those pages are called again until the cache is refreshed. Demandware
recommends that you perform this action only when necessary and during periods of low traffic.
Page Cache Only

Enable page caching: check this box to enable page caching for the portions of your storefront ISML templates that use the
iscache tag. This allows whole pages or portions of pages to be cached, improving site performance and is therefore
recommended for Production instances. However, if page caching is enabled, it is not possible to immediately see the
changes to an ISML template without explicitly invalidating the cache. For this reason, it is recommended that page caching
be disabled for Sandbox instances.

Last invalidated: displays the last time the cache was invalidated and the content of the storefront refreshed. Invalidating
the cache results in slower response times when those pages are called again until the cache is refreshed. Demandware
recommends that you perform this action only when necessary and during periods of low traffic.

Apply - click to save any changes.

Reset - click to reset the value to those displayed when you first opened the page.

Robots Tab
Use this tab to designate how Demandware serves the robots.txt file(s) for your site(s) to search engine crawlers.

174

Use the robots.txt file from a deployed cartridge - select this option to use a robots.txt file created in a third-party tool and
uploaded to your cartridge. This option is most useful if you want to have a single robots.txt file for multiple sites. Uploaded
robots.txt files are served to crawlers via the This option is selected by default for customers migrated from version 2.10 or
earlier.
Define an instance type specific robots.txt - select this option to have Demandware generate a robots.txt file for a specific
site. The suboption you select sets the robots.txt file definition as a site preference which can be replicated or exported.
All spiders are allowed to access any static resources (recommended for production) - Automatically generates a
robots.txt file for the current site that instructs spiders to crawl all static resources.
All spiders are disallowed to access any static resources (recommended for production) - Automatically generates a
robots.txt file for the current site that instructs spiders not to crawl all static resources.
Custom robots.txt definition - Select this option to write a custom definition of which static resources you want spiders to
crawl. Selecting this option causes an editing area to open. Enter the custom definition in the editor and click Apply.

History Tab
Use this tab to view the latest changes to a site's preferences.

Site <site_ID>
This section shows the ID of the site, the date and time it was created, and who created it (user or job). It also shows the date and
time it was last updated and who updated it (user or job). This information is displayed only for audited objects. See Global
Preferences Change History (Beta) Page.
History Summary
This section shows a list of up to 15 change summary lines. Changes are summarized based on the unique combinations of five
variables: date, user, scope, object, and action. For an explanation, see Change History Page. When you click on a summary line,
individual changes are displayed in a table, as shown below:

Each row in the table represents a single change event, which can be creation event, an update event, or a deletion event. You can

175

see the exact time when the change occurred, and you can click on the Show Details link to see a JSON representation of the
object after the change occurred.

<<Back: click to navigate back to the list of sites.

Robots
Navigate to: Administration> Sites> Manage Sites> Site> Robots Tab
1.

2.

3.
4.
5.
6.

7.

When a crawler visits a Web site, such as http://www.yourshophere.com/, it firsts checks for
http://www.yourshophere.com/robots.txt. If it can find this document, it analyzes the contents to see what pages on the site it
is allowed to index.
You can customize the robots.txt file to apply only to specific robots, and to disallow access to specific directories or files.
Here is a sample robots.txt file that prevents all robots from visiting the entire site:
User-agent: * # applies to all robots Disallow: / #
disallow indexing of all pages
The robot looks for a /robots.txt URI on your site, where a site is defined as a HTTP server running on a particular host and
port number.
There can only be a single /robots.txt on a site.
The custom option would allow client to define their own definitions.
Custom robots option

Certain robots they dont want to hit the site.

Some will hit a certain one, not see what they want.

You can tell them what you want them to look for and what you dont want them to look for.

You can tell them what to index/what not to index.

Important if you have a b2b and b2c in same realm you dont want them crawled by bots b/c theyre closed section
(b2b)

If you have a deals site, permission based may not want that to be crawled as well.

Good to have link to site map.

Insert any variation parameters from being indexed (variation masters) see the disallow.
http://ntomaro.inside-na02.dw.demandware.net/robots/txt

Use this tab to designate how Demandware serves the robots.txt file(s) for your site(s) to search engine crawlers.

176

Use the robots.txt file from a deployed cartridge - select this option to use a robots.txt file created in a third-party tool and
uploaded to your cartridge. This option is most useful if you want to have a single robots.txt file for multiple sites. Uploaded
robots.txt files are served to crawlers via the This option is selected by default for customers migrated from version 2.10 or
earlier.
Define an instance type specific robots.txt - select this option to have Demandware generate a robots.txt file for a specific
site. The suboption you select sets the robots.txt file definition as a site preference which can be replicated or exported.
All spiders are allowed to access any static resources (recommended for production) - Automatically generates a
robots.txt file for the current site that instructs spiders to crawl all static resources.
All spiders are disallowed to access any static resources (recommended for production) - Automatically generates a
robots.txt file for the current site that instructs spiders not to crawl all static resources.
Custom robots.txt definition - Select this option to write a custom definition of which static resources you want spiders to
crawl. Selecting this option causes an editing area to open. Enter the custom definition in the editor and click Apply.

Creating robots.txt for Single and/or Multiple Sites


If you want to create a robots.txt for one or more sites individually, you can use Business Manager to create the file. This
robots.txt file is served to any requesting crawlers from the application server. It is stored as a site preference and can be
replicated from one instance to another.
If you want to create a single robots.txt file that can be used for multiple sites, you can use Google's Webmaster Tools to create
this file. However, you must have created a Google account to do so. If you choose not to use Google, you can use other thirdparty tools to create this file. This file must be uploaded to your cartridge after you create it. You must also invalidate the Static
Content Cache for a new or different robots.txt file to be generated or served.
Note:
The person who creates the robots.txt file must have permissions to turn off Storefront Password Protection and use the
Business Manager Administration module and to upload code to a cartridge, depending on how you want to generate
your file. If there is no one in your organization with the permissions to turn off storefront password protection, contact
Demandware customer support.

Tips:

URI's are case-sensitive, and "/robots.txt" string must be all lower-case.


Blank lines are not permitted within a single record in the "robots.txt" file.
There must be exactly one User-agent field per record. The robot should be liberal in interpreting this field.
A case-insensitive substring match of the name without version information is recommended.
If the value is "*", the record describes the default access policy for any robot that has not matched any of the other
records.
It is not allowed to have multiple such records in the "/robots.txt" file.
The "Disallow" field specifies a partial URI that is not to be visited. This can be a full path, or a partial path; any URI
that starts with this value will not be retrieved. For example,
Disallow: /help
disallows both /help.html and /help/index.html, whereas
Disallow: /help/
would disallow /help/index.html but allow /help.html. An empty value for Disallow, indicates that all URIs can be
retrieved.

At least one Disallow field must be present in the robots.txt file.


A field like Allow: / is not valid and will be ignored.

Understanding Storefront Password Protection and the robots.txt File


Before creating a robots.txt file, it is important to understand how the Storefront Password Protection settings for your site affect
what can be crawled. If Storefront Password Protection is enabled, a robots.txt file is automatically generated and denies access
to all static resources for a site. If Storefront Password Protection is disabled, the robots.txt file determines whether content is

177

crawled. Since Storefront Password Protection automatically generates a robots.txt file, it must be disabled before you can
specify another type of robots.txt file.

Creating a robots.txt File using Business Manager


1. In Business Manager, navigate to Administration > Sites > Manage Sites > site > Security tab .
2. Make sure the Protection Enabled box is unchecked.
3. Click Apply.
4. Click the Robots tab.
5. Select the instance type to create a robots.txt file.
Note:
If you want to create a robots.txt file for a Production instance, you can do so on a Staging instance and replicate the
site preferences, where the robots.txt file definition is stored, from the Staging instance to the Production instance.
6. Select whether you want to use an existing robots.txt file or generate one.

Select Use the robots.txt file from a deployed cartridge if you want to generate a robots.txt file using another tool
and upload it to your cartridge. This option is most useful if you want to use the same robots.txt file for multiple
sites. If you have migrated your storefront from version 2.10.1 or earlier, this option is selected by default.

Select Define an instance type specific robots.txt if you want to generate a robots.txt file that is served by the
application server for a particular site and instance. Select one of the following types of robots.txt files to generate:

All spiders are allowed to access any static resources (recommended for production) - generates a sitespecific robots.txt file that indicates spiders can crawl the static resources for the site.

All spiders are disallowed access to any static resources (recommended for staging) - generates a site-specific
robots.txt file that indicates to spiders that they should not crawl the static resources for the site.

Custom robots.txt definition - select this option if you want to allow access to some resources and deny
access to others. If you select this option a text field appears where you can enter your custom robots.txt
definition. Unlike a cartridge-deployed robots.txt file, this option allows you to create different accesses for
different sites. See Best practices for creating your robots.txt file for more information.
7. Click Apply.
8. Click the Cache tab.
9. In the Static Content and Page Caches section, click Invalidate.

Creating a robots.txt File Using Google's Webmaster Tools


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Sign in to Google Webmaster Tools using your Google account.


Click Tools.
Click Generate robots.txt.
Specify rules for site access.
In the Files or Directories box, type /.
Add additional files or directories on separate lines.
Click Add to generate the code for your robots.txt file.
Save your robots.txt file by downloading the file or copying the contents to a text file and saving it as robots.txt.
In Business Manager, navigate to Administration > Sites > Manage Sites > site > Cache tab .
In the Static Content and Page Caches section, click Invalidate.

For information on where to upload your robots.txt file, see Uploading your robots.txt file.

Best Practices for Creating robots.txt File


When creating your robots.txt file in an external tool or the custom editor in Business Manager, make sure it follows the
following best practices:
1. The robots.txt file name must be lowercase if you are creating it through an external tool and uploading it to your
cartridge.
2. URI's are case-sensitive.
3. Blank lines are not permitted within a single record in the robots.txt file. There must be exactly one User-agent field per
record. A case-insensitive substring match of the name without version information is recommended. If the value is
"*", the record describes the default access policy for any robot that has not matched any of the other records. It is not
possible to have multiple such records in the robots.txt file.
4. The Disallow field specifies a partial URI that is not to be indexed. This can be a full path, or a partial path; any URI
that starts with this value is not be indexed. For example, Disallow: /help disallows both /help.html and
/help/index.html , whereas Disallow: /help/ disallows /help/index.html but allows /help.html .
5. An empty value for the Disallow field indicates that all URIs can be retrieved.
6. At least one Disallow field must be present in the robots.txt file. A field like Allow: / is not valid and is ignored.

178

Uploading robots.txt File


If you choose to create a robots.txt file in an external file, you must upload the file to the correct location on your Demandware
server. Users need to upload and manage this file via UX Studio in the cartridge/static/default directory in their custom
storefront cartridge. You can also manually update the robots.txt file in production after a staging process if the file was
accidentally overwritten. There can only be a single robots.txt file per cartridge. Specifically, do not put robots.txt files in user
directories, because a robot never looks at them.
Note:
The robots.txt file can only be replicated from instance to instance via code replication. This is because the
cartridge/static/default is cartridge-specific not site-specific.

Verifying Robots.txt File


Verifying that the robots.txt file is correctly placed for a robots.txt file:
1. In your browser, enter the hostname of the instance, a slash, and then robots.txt. For example:
http://www.yourshophere.com/robots.txt
http://staging.realm.company.demandware.net/robots.txt
You see the contents of your robots.txt file appear. If you get a blank page, the file is not being picked up.
Note:
You may need to make sure the static content page cache was invalidated before you can see a new version of the robots.txt
file.
To Verify Your robots.txt File is Behaving as Expected
To check that your robots.txt file is behaving as expected, use the robots.txt analyzer tool in Google Webmaster Tools. You
must have created a Google account to use this tool.

179

Site Development
Development Setup
Navigate to: Administration> Sites Development> Development Setup

1. Use this page to download the version of UX Studio to use with this version of the platform.
2. You can also use this page to view locations on the server that contain uploaded data.
3. You can use the displayed links to transfer data via WebDAV.

Setup Demandware
Development

Demandware UX Studio: click to download the current version of the Demandware development tool. For more
information, see UX Studio.

Storefront Toolkit
This section describes the Storefront Toolkit, which contains several tools that allow you to inspect your storefront and determine
where ISML templates are being used and what content is being displayed. For more information, see Storefront Toolkit.

WebDAV Access
This section lists URLs that can be used to view data uploaded onto the Demandware platform on the server via your browser.
The URLs can also be used to transfer data to and from the server via WebDAV. When you are prompted for a username and
password by your WebDAV client, use your Business Manager username and password.
Tip:
You must have functional permissions to perform WebDAV transfer.
Click the URLs to view the following directories on the Demandware server:

Cartridges: within each code version, lists the cartridges uploaded to the platform. If you do not see expected changes
in your storefront, this is an easy way to check that expected code was successfully uploaded to the instance.

Log files: contains the log files for the instance. Generally, the logs of interest to developers are those that start with
custom , which collect info, error, and fatal logging created by the developer in scripts. There are also many system
logs with similar information about pipelines, scripts, and jobs. See also Understanding log files

Import/Export: shows the contents of the impex directory, which contains uploaded import/export files and logging
information for import/export processes.

Temp: shows the contents of the Temp directory on the server.

Realm Data: contains the contents of the realmdata directory. This directory contains any data that is shared across
instances in a realm.

180

Organization Static Content: contains static content shared across sites on the same instance.
Catalog: contains static content associated with a specific catalog.
Content Images: contains static content associated with a specific library.

System Object Definitions


Navigate to: Administration> Sites Development> System Object Definitions
1.
2.

3.

This is where custom attributes are created.


You create and manage system object types for additional business objects required by your storefront and/or business logic
to extend the Demandware model. For example, you could create an object type of 'Sample'. You create the system object
type 'Sample' and then give it attributes, for instance, 'SKU' and 'Date.
System objects can be stored globally (which makes the instances available to the entire organization and all sites), or local
(that is, per site). The system object type itself is always available to the entire organization.
1.

In Business Manager, navigate to Administration > Site Development > System Object Definitions.

2.

Click the name of the object you want to edit.

3.

Click the Attribute Definitions tab.

Object Type : The object type is indicated by one of the following icons:

- System attribute
- Deprecated system attribute

181

4.

Note:
If an attribute does not have an icon, then it is a custom attribute specific to your site.
Attribute ID: Click any attribute ID to view or edit the attribute.
Attribute Settings: Displays the configuration of the attribute using the following icons:

- Localizable - an attribute that can be localized.

- Site-specific - an attribute that can be site-specific.

- Mandatory - an attribute that cannot be updated with empty values in either the Business Manager or import.

- Visible - an attribute that is visible in the storefront

- Order required - the attribute can be copied to the order

- Externally managed - an attribute that is managed by a backend system. This type of attribute can only be
edited using an import feed and cannot be edited in Business Manager.

- Externally defined - an attribute that is created by a backend system via import feed
Click New to begin the definition process.

Select Language - Select the language that should be used when localizing attribute values.
If you change the language or type, you must confirm the change before it is applied. Changing
the language or type of an attribute causes existing values of that attribute to be lost.
Apply: Click to apply the language.
ID - enter an ID that can be used to uniquely identify the attribute in the database. You may see this ID used internally
to help you distinguish between different attributes that have the same display name. For example, you may have two
attributes that capture the metric and English sizes for a product that both have a display name of Size that have
sizeMetric and sizeEnglish as the attribute IDs.
Display Name - Enter the name for the attribute that is seen by the customer.
Help Text: Enter any help text that should be available to Business Manager users when working with this attribute.
Value Type: The data type is not required. Select one of the following value types from the table on the Custom
Attribute Definition Details page.
Note:
If the attribute is the key attribute for the object, it is not possible to change the value type.
Queryable - The data type determines whether an attribute is found using the query framework. This allows you to find
the attribute when using Advanced Search extended attributes when searching for products in Business Manager or via
the API. This does not affect whether the attribute is searchable in the storefront.
Localizable - click to make the attribute localizable.
Note:
Demandware recommends backing up your data before changing this property. If you change whether the
attribute is localizable, all existing values for the attribute are lost. The data is lost because Demandware
removes the old unlocalizable attribute and its data and then creates a new, empty attribute that is
localizable.
A refinement attribute does not need to be a searchable attribute, but a searchable attribute is not automatically a
refinement attribute. If you are using Demandware 2.10 or later, a sortable attribute does not need to be a searchable
attribute, but a searchable attribute is not automatically used in sorting rules.
Mandatory - click to make the attribute mandatory for the object.
Visible - click to make the attribute visible in .
Externally Managed: check this box if you do not want Business Manager users to be allowed to edit this value. This
is used for attributes with values fed from a backend system-of-record.

182

Externally Defined - indicates whether the attribute was created by import from a back end system via the
ImportCatalog pipelet.
Value Unit - enter the unit of value, such as cm for centimeters or oz. for ounces.
Minimum Value - enter the minimum allowable value for the attribute.
Maximum Value - enter the maximum allowable value for the attribute.
Scale - enter the number of decimal places.
Field Length - enter the field length to display the attribute as a number of characters.
Field Height - enter the field height to display the attribute as a number of lines.
Select Multiple - check this box to allow merchants to select multiple values when assigning a value for the attribute.
Regex - This option is only available for string attributes. Enter a regular expression to use when validating the
attribute in a storefront form. Use Java regular expression syntax.

Custom Error Pages


Navigate to: Administration> Sites Development> Customer Error Pages
1.

2.

3.

This module allows you to upload custom error pages when Web Server or Web Adaptor errors are thrown. Use custom
error pages to provide a pro-active message to your customers. Previously, errors such as 404 URL not found would appear
if a customer mis-typed the url or did not copy it completely; but provided no information about what to do next.

Internal Server Error (majorerror.html)

URL not found (url_error.html)

Timeout (overload.html)
Upload these pages as one zip file that includes the following:
a) One html file per error code
b) CSS files and images as necessary
Note:
Only one zip file can be uploaded at a time. Remember to reference CSS files and images via "/waroot/FILENAME".
After you download the zip file you are free to customize the pages, rezip your work, and upload it.
1.
2.
3.
4.
5.

In Business Manager, navigate to Administration -> Site Development -> Custom Error Pages.
Click Download.
Extract the downloaded error pages and customize them.
In Business Manager, navigate to Administration -> Site Development -> Custom Error Pages.
Click Browse and navigate to the zip of your custom error pagesThe uploaded zip file must be named errorpages.zip.
Do not use names such as myCustomErrorPages.zip. After your upload, the zip file is automatically extracted and the
content is located on the Web server.
6. Click Upload.
Note:
This is not an automatic upload. It can take two hours before your files are synched with the Web adaptor.

Import & Export


Navigate to: Administration> Sites Development> Import & Export
Import
Meta Data

Export
Meta Data

Geolocations
Site Import & Export

Site Import & Export

Description
Import and export your system meta data (i.e. system type
extensions, custom object types, custom preference definitions).
Import geolocations for a country.
This page allows you to export the current configuration of your
organization including all of its sites or import a site. To download
an archive just click on its file name.

Open Commerce API Settings


Navigate to: Administration> Sites Development> Open Commerce API Settings
1.

Manage Open Commerce API settings.

183

Code Deployment
Navigate to: Administration> Sites Development> Code Deployment
1.
2.
3.
4.
5.

View, activate and delete code versions. Upload deployment archives.


The Demandware platform allows you to have multiple custom code versions uploaded to the system at the same time.
The code is arranged in a top-level directory, called Version Directories. You can name each directory in accordance with
your versions, for example, v12 or summer_release.
When developing your storefront, you select one active code version with which to work. All templates, pipelines, scripts
and images are taken from this active version. Studio also connects to this version.
You can rollback your storefront to a previous version if necessary; and develop your application with a newer version while
maintaining an active storefront on a stable code base.
Caution:
Plan to test a new code version first on a staging system before moving it to the production system.

6.
7.
8.

You can also specify the active compatibility mode (API version). The Demandware platform allows you to activate a new
compatibility mode or revert to the previously active compatibility mode. See also Understanding compatibility modes.
You can replicate code to another system. Code Replication transports the active code version from the staging instance to
the target production or development instance. See Code Replication for more information..
When you have finished development in your sandbox, use UX Studio to upload your code to the sandbox instance. See
Code Upload Overview for an overview and Uploading new code versions for details.
Note:
The term Compatibility Mode is interchangeable with the term API Version.

Code Upload Overview


When you have finished development in your sandbox, you use UX Studio to upload your code to the sandbox instance. To
transfer your code to staging, you create a new server connection and upload your code to the staging instance. Your staging
server connection should be a secure connection. See Using Two-Factor Authentication for Code Deployment for more
information on creating a secure connection.

General Deployment and Replication Procedures


It is essential that you perform the following:
1. Ensure you have the current updated version of the API on which the instance is running.Update your API in Demandware
UX Studio if the Demandware Primary instance version has changed. Studio will refuse to upload code if there is any
discrepancy between the server API and the API in Studio.
a) Ensure that deprecated APIs are accounted for in your application. (Check the WebDav/Sites/Logs/deprecation/
directory on your server for a full list of deprecated APIs in use.) This will ensure that references to deprecated APIs
are removed before the API is discontinued.
b) Ensure that any sandbox used for site development is upgraded at the same time as the Primary instances.
2. Merge code in the code repository.
3. Retrieve the collective changes from the code repository, then deploy the code to a Build/Merge instance.
4. Use Business Manager to create a new Demandware version directory on the Staging and Development instances.
a) Open Business Manager and navigate to Administration > Site Development > Code Deployment.
b) Select an active version for these instances.
5. Provide a readme.txt file in the cartridge that lists the code fixes/enhancements in this version.
6. Copy the cartridge to the newly created version directories on Staging and Development via WebDav.
7. Test the new version (see above consideration).

184

8.

Push the newly tested version to the Production instance for live usage.Use Business Manager to push code from Staging to
Production (click Administration > Replication > Code Replication ). The replication process will take the current active
version directory, create the same version directory, then copy the cartridge code from Staging to Production.
Note:
You must follow these steps for each version that is being replicated from Staging to Development and from Staging to
Production. If any change, no matter how insignificant, is made to a site, it must be delivered via a version change. A new
version must be created, even if it is intended to find and/or fix an issue that occurs with a new version, so that if a problem
exists, the site can be rolled back to a known working version as quickly as possible.

Understanding Compatibility Modes


The Demandware platform supports a single active compatibility mode, the active compatibility mode. In addition, it maintains a
reference to the previously active compatibility mode, which you can revert to, if necessary. The complete list of compatibility
modes available at any time consists of:

The currently active compatibility mode

The previously active compatibility mode

Any new compatibility modes you can activate


When your system was initially provisioned, the active compatibility mode was set to the latest (or most recent) compatibility
mode. For example, if you initially provisioned with version 2.10.6, then the active compatibility mode will be 2.10.6 because
2.10.6 introduced a corresponding 2.10.6 API version (compatibility mode).
With release 2.10.6, Demandware introduced API Versioning, the ability to actively select from multiple compatibility modes,
with full knowledge and acceptance of incompatible changes. The ability to select the compatibility mode you want to use allows
you to maintain your customizations on a previous compatibility mode, while Demandware introduces new functionality in one
or more newer compatibility modes. In Business Manager, you can view the new compatibility modes that are available, along
with descriptions of changes.
Note:
Not every release will introduce an API version or compatibility mode. We will attempt to keep the number of API
compatibility modes to a maximum of two per year. An API compatibility mode is only used if an incompatible API change
is required, that is, a new API version is not compatible with an old one.

Demandware Studio
Demandware Studio automatically knows which compatibility mode is valid, based on communication with the server.
API Documentation
A single API documentation set describes multiple compatibility mode at the class/method level, and potentially multiple
compatibility modes for certain methods.
When do you need to modify your application?
Before activating a new compatibility mode, it is important that you understand the behavioural changes the new mode brings. If
the change impacts your application, you may need to modify your application to make it function correctly with the changes and
then test. You can only rollback to the previous active compatibility mode if your code is compatible with the old mode (API
version). If you write code that takes advantage of the API of a newer version that is incompatible with the old version, you can
only rollback if you also revert the respective code.
When using API versioning, you must pay close attention to certain situations:

All cartridges in an application must use the same active compatibility mode.

You cannot configure a compatibility mode in code.

There can be only one active compatibility mode at a time (no wildcard support).

You can change the compatibility mode on all instances, but we do not recommend that you do this directly on
production.

Avoid using different compatibility modes on staging and production. This should be an exception.
SeekableIterator - 2.10.4 to 2.10.6 considerations
Instances of SeekableIterator are returned in the API whenever a method returns mass data. Starting with API version 2.10.6,
these iterators can only be iterated once to avoid possible memory problems for really large iterators. Putting them into the

185

pipeline dictionary and trying to loop them multiple times is no longer possible because this would require buffering the iterated
elements internally.
Prior to 2.10.6, and for all customers still running API version 2.10.4 (compatibility mode), SeekableIterator instances stored in
the pipeline dictionary could be iterated multiple times (for example, by several loop nodes).
Customer Impact: Check your code for instances of SeekableIterator and adjust as required.

Managing Code Versions


Use Business Manager to manage your code versions:

Browse the folder structure of custom cartridges

Rename a code version

Activate a code version (this automatically deactivates the currently active code version)

Delete an inactive code version

Rollback to the most recently used code version


A code version is a folder that contains custom cartridges. An instance uses the currently active code version. You can upload
additional code versions to the server via WebDAV or UX Studio. These can be new code versions that will be activated later, or
previous ones to allow for code rollbacks.
Only one code version can be active at a time. A code version is activated when its folder is added to the list of folders in which
the server looks up resources. At the same time, the folder of the previous active code version is removed from the list. The
timestamp of all files in the code version is updated to the current time when it is activated.
Note:
For information on API versioning, see Understanding compatibility modes.

1.
2.

Open Business Manager and navigate to Administration > Site Development > Code Deployment.
The Manage Code Versions page appears.
To work with multiple versions, click Select All or select multiple versions. Only one version can be active.
1. Click Apply and a confirmation dialog appears, asking you to confirm the change.
2. Click Rename to rename a code version. Renaming a code version also changes the respective entries in the
version file.
3. Click the Compatibility Mode link to view a list of available compatibility modes. Each compatibility mode
provides a Change Docs link that provides a summary of applicable changes and a Documentation link to the
respective API documentation.
The Compatibility Mode page appears with a list of available compatibility modes.
 The currently active compatibility mode
 The previously active compatibility mode
 Any new compatibility modes that you can select
4. Click Activate beside a code version in the list to activate it. A code version is activated by adding its folder
to the list of folders in which the server looks up resources. At the same time, the folder of the previous active
code version is removed from the list.
When activating a code version, the timestamp of all files in the version is updated to the current
time. The features included in the new code version are immediately available. Cached items (which
may be dependent on a change to the compatibility mode) are cleared after activating a new code
version.
5.

6.

Click Rollback to automatically activate the previous code version, if this code version is still installed. If the
previous code version is no longer available (it has been deleted) the rollback fails. The action also activates
the compatibility mode associated with the previous code version.
Select one or more inactive code versions and click Delete to delete them. You cannot delete the active code
version.

186

7.

3.

Click Add to create a new empty code version. The new code version will be set to the currently active
compatibility mode.
To work with a single version:
1. Click the code version name link.
The Code Version Summary page appears. This page provides a detail view of the code version. The top
section provides summary information, while the bottom section provides a paged list view of resources that
are part of the code version. The list view shows files regardless of where they are located within the code
version (i.e. regardless of cartridge and subdirectory).
2. Click Activate to activate this code version.
3. Click Download in the top section to download the entire code version, or click Download beside an
individual file to download that file.
4. Use the File Filter to search for a file or set of files.

Uploading New Code Versions


To remain PCI compliant, Demandware no longer allows you to upload code using a zip file containing a distinct code version.
Instead, you must upload your cartridge. Most development teams have a regular method for uploading code to staging. For more
information, see Cartridge upload tools.
Troubleshooting Tip for Code Versioning
If you get the following error when you try to view the storefront, check that you are uploading your cartridge to the current code
version.
Technical Page There were technical problems while the request was being processed!
Executed Request:
Default Technical Details: System template default used directly or indirectly in custom site
However, you can also upload a cartridge to the correct version in Studio, usually to your Sandbox.
1. In Studio, right click on your Demandware server and select Demandware > Change Upload Staging Directory.
The Change Upload Staging Directory dialog box appears.
2. In the Target version directory list, select the active version.
The active version is shown under the list box.

Cartridge Upload Tools


If you are uploading to a sandbox, the easiest way to upload files to the server is to use Demandware UX Studio to upload all the
cartridges for the active server connection.
To upload cartridges using UX Studio automatically:
1. Make sure that the cartridge is associated with a server connection
2. Make sure that the associated server connection is the active server and is set to auto upload.
Cartridge Upload via Zip Files
If you want to build your projects regularly to Staging or work in a non-Studio IDE, Demandware offers two cartridge upload
tools in addition to the upload capabilities in Demandware Studio. Both tools upload cartridges as zip file. If you are uploading
code to a staging or development instance, you must use 2-factor authentication to be PCI compliant. Demandware's cartridge
upload tools allow you to specify certificates so you can automatically upload code securely.
The tools are:

Demandware upload ANT tool

[Demandware Upload Manager]

Custom Object Definitions


Navigate to: Administration> Sites Development> Custom Object Definitions
1.
2.
3.
4.

Custom objects allow you to extend the Demandware model to suit your business needs.
Custom object types are created for an organization and are then available for use in all storefronts defined for the
organization.
You have a choice, when creating instances of the object, whether to make those instances site-specific or organizationwide.
You use two Business Manager modules to create and manage your custom objects:

187

5.
6.
7.

Custom Object Definitions - located under Site Development in Administration in Business Manager

Custom Objects - located under the Storefront section of Business Manager


Custom objects can be stored globally (which makes the instances available to the entire organization and all sites), or
locally (that is, per site). The custom object type itself is always available to the entire organization.
Custom object attributes cannot be used in search refinement.
Localizable attributes for custom objects are deprecated.

Deprecated API Usage


Navigate to: Administration> Sites Development> Deprecated API Usage
1.
2.

With the proper permission, you can see a list of deprecated APIs and their current usage.
The usage count reflects the number of times a deprecated method was called within the last 24 hours.

1.

Click the down arrow or the Action Required link to view or hide the list of deprecated APIs.

Deprecated APIs

Area: Lists the deprecated area:

Occurrences: Shows the number of occurrences in the application per area. This number reflects the number of times the
method was called within the last 24 hours.

Site Import & Export


Navigate to: Administration> Sites Development> Site Import & Export
1.
2.

3.
4.
5.
6.
7.
8.
9.
10.

11.
12.
13.

Area where client can schedule backup for site and organization data.
The site.xsd schema file describes the structure of data that is exported from an instance to a zip file, or imported from a zip
file. The site.xsd file describes all site-related data and global, non-site-related data (that is, organization-level data, such as
shipping methods).
Site export exports certain objects (including database objects and static files) and stores them in a single zip file, which is
available for download.
You can upload the zip file to another instance and import it there. Site import is possible only if there is no custom site in
the instance.
Do not use special characters, such as umlauts, in file namesincluding names of image filesbecause doing so causes site
import/export to fail.
Code (cartridges) is not part of the Site import/export and must be dealt with separately.
The Site Import/Export function in the Business Manager uses standard Business Manager imports/exports for some of its
object types; so some XML files use the same schema within Site Export zip files.
Site Export also supports some object types that are not within the standard import/export functionality, for example,
schedules and site preferences.
It is not possible to trigger a Site Import programatically.
A catalog and a site can be exported without the static content being included in the resulting archive file. This allows users
more granular control over the export process. This is important because the size of the archive files rapidly exceeds the
WebDAV file size limitation when images are included.
Compatibility of the import/export format is ensured for the same Demandware version only.
The list of custom cartridges used for Business Manager is supported in the site import/export. The file preferences.xml,
which contains global preferences, includes the additional preference identified by the key "CustomCartridges".
The site export function in Business Manager allows you to export a catalog and a site without the static content being
included in the resulting archive file. This change provides more granular control over the export process. This is important
because the size of the archive files rapidly exceeds the WebDAV file size limitation when images are included.

188

You can use Site Import /Export as follows:


Mode

Purpose

Included Data
Initial global data (site independent) such as:

Import

Export

Export

Export/
import

Export/
import

Initial Instance Setup. You can "clone" an


instance. This is most helpful during
development to initialize a developer's
instance or a testing instance. (You can
use Site Import to set up an initial
"staging" instance, but then the import
will not be used again in a primary
instance group.)

Archiving Instance Data

Particular Instance Data

Copying an entire Instance

Copying specific site data for testing

Global preferences as locales, instance time zones


Global custom objects
Schedules
System object attribute extensions
Custom object definitions
Custom preference type definitions
Catalogs and price booksSite data including business
objects as:

Custom objects
Content library, assets and images
Customers and customer groups
Shipping, tax and payment configuration
Inventory
Stores
Site preferences
Search configuration
Source CodesSite relations data such as Catalog-Site
assignments

All instance data comprising all sites and corresponding business


objects and global data are exported.
Selective site and instance data. An user can choose between

Sites - you can also select individual types of site-specific


data to export.

Catalogs

Price Books

Global data (Custom Objects, Attribute Definitions,


Custom Preferences, Schedules, Custom Quota Settings)
Demandware customization projects often involve several
development teams working in parallel on different development
instances. The Site import/export lets them share instance
configurations and data across multiple instances.
Site import/export lets them save a snapshot (configuration and data)
of an instance and restore it on the same or another instance. This
feature can also be used for instance configuration versioning.
When testing new code or troubleshooting a problem, it may be
necessary to export data from a production instance to import it on a
developer sandbox. However, it is not desirable to import all of the
site's data, either because of the size of the site or because of privacy
concerns around customer data. In this case you can use the export
feature to export only the site-specific data you want and import it
into your sandbox.

Granularity: selected sites.

189

Initial Instance Setup


You can configure:

Initial organization data (site independent) such as:

Global preferences, such as locales and instance time zones

Global custom objects

Schedules

System object attribute extensions

Custom object definitions

Custom preference type definitions

Catalogs, price books and inventory lists

Site-specific data including business objects, such as:

Custom objects

Content library, assets and images

Customers and customer groups

Shipping, tax and payment configuration

Stores

Site preferences

Search configuration

Source Codes

Catalog price book and inventory list site assignments

Archiving Data of an Instance


Use Site export to export instance data that consists of all sites and corresponding business objects and global data (except carts,
wish lists and orders).

Exporting Instance Data


Site export lets you selectively exporting site and instance data, including:

Sites (you can also select specific types of data within sites to export.)

Catalogs

Price books

Global data (custom objects, attribute definitions, custom preferences and schedules)

Pipelets
N/A

190

Global Preferences
Locales
Navigate to: Administration> Global Preferences> Locales
1. Use this list to activate and deactivate the locales available in the system. Only activated locales can be used in the storefront
and appear in language select boxes in the Business Manager. The default locale is mandatory and cannot be deactivated.
2. Note: This page is not used to set the default locale for your organization. To set the default value, navigate to
Administration > Organization > Organization Profile

Locale Grid - the locale grid displays information about all locales available for activation on the Demandware Platform.
The grid has the following columns:

Select All: click the Select All link to select all locales. Otherwise, check the boxes for any locales you want to activate
and uncheck the boxes of locales you want to deactivate and then click Apply.

Locale ID: click to edit the settings for the specific locale.

Name: describes the country and language for the locale.

Language Code: displays a lowercase ISO 639 code.

Country Code: displays a two-letter abbreviation for the locale.

XML Code: displays the locale for XML files.

ISO3 Language: displays a three-letter abbreviation for the locale's country or an empty string if no language is
specified for the locale.

ISO3 Country: displays a three-letter abbreviation for the locale's country or an empty string, if no country is specified
for the locale.
Apply - click to save your changes.
Reset - click to return to the page as it appeared when you first opened it.

Instance Time Zone


Navigate to: Administration> Global Preferences> Instance Time Zone
1.
2.

Use the following preferences to define your instance time zone


Note: This is not the time zone is used when retrieving dates for user input forms on your storefront or when displaying
dates to users. The storefront time zone is set per site in the Site > Site Preferences > Time Zone module.

3.
4.

Geographical Area - select a continent or ocean to limit narrow the instance time zone choices.
Instance Time Zone - select one of the time zones.

191

Note:
For the United States, Demandware recommends using the US selection for geographical area, instead of America.
5.
6.

Apply - click to save your changes.


Reset - click to return to the page as it appeared when you first opened it.

Change History (Beta)


Navigate to: Administration> Global Preferences> Change History (Beta)
Enable here Catalog, Content, Slot and meta data are enabled. https://xchange.demandware.com/videos/2181
New history tab will be included on each object that will allow users to see a breakdown of changes made to the object by
module type (view product, see updates made as part of pricing change, inventory change, etc)
3. Products: Navigate to Products & Catalogs> Change History (Beta) to perform on history across objects.
4. Users: navigate to administration> organization> users, select a user and click on history tab.
5. Content Assets: note new history tab.
6. Content Slots: Administration> Operations> Change History and search under slots.
7. Meta Attributes: Site Development> Administration> System Object Definitions
8. Can download archived history for business objects exceeding 7 days limit.
9. Be aware of potential performance impact.
10. Archived files are located Administration> Site Development> Development Setup > logs File and locate auditing.
11. More info and videos: https://xchange.demandware.com/docs/DOC-8293

1.
2.

Enable Tracking of Change History


This section enables you to globally disable or enable change history.

Enable Change History: Select to enable change history across the organization.
Modules to Audit
This section enables you to select the Business Manager modules for which you want changes recorded.

Object Definition: Select to audit the system object definitions and custom object definitions for changes.

Site & Preference: Select to audit the following objects for changes: organizations, sites, stores, and preferences.

Catalog: Select to audit the following objects for changes: catalogs, categories, products, product options,
recommendations, and variation attributes.

Pricebook: Select to audit pricebooks for changes.

Inventory: Select to audit inventory lists for changes.

Content: Select to audit content assets and library folders for changes.

Online Marketing: Select to audit slot configurations for changes.


Cleanup Recorded History
This section enables you to specify the number of days to retain changes for viewing in Business Manager.

Days to keep history: Enter a number less than or equal to 7 to determine how long the system should retain changes in the
current instance. Older changes are discarded and are not viewable in Business Manager.

Apply: Click to save your changes to preferences.

<< Back: click to navigate back to the Global Preferences module.

192

Security
Navigate to: Administration> Global Preferences> Security
1.

Page to set password restrictions and login lockout policies for all BM Users.

Maximum invalid login attempts - select the number of incorrect logins allowed before a user is locked out. Once a user is
locked out due to too many login failures the account can be reactivated in two ways:

Manual enabling of the user by an administrator

Automatic reactivation after a certain period of time


Lockout effective period - select the duration of a login lockout.
User passwords expire in - select the number of days after which a user is required to change his/her password. Frequently
changing passwords is a fundamental part of securing access to your site data. Users who do not log in to the system for a
certain period of time are automatically deactivated.
Accounts will be deactivated if not active for more than - select the number of inactive days after which a user is
disabled.
Enforce password history - select the number of passwords to store that cannot match a new password. When creating a
new password, users are required to create a password that does not match any of the passwords in their history.
Minimum password length - set the minimum number of characters required for a password.
Minimum login length - set the minimum number of characters required for a login name.
Clear SFTP known good hosts file - click Clear to clear the known good hosts SSH fingerprint file.
Apply - click to save your changes.
Reset - click to return to the page as it appeared when you first opened it.

Geolocations
Navigate to: Administration> Global Preferences> Geolocations
1.

Shows the countries for which geolocations have been imported and are available for the store locator.

193

Country: select a country geolocation data.


Postal Code: enter a zip or postal code and click Find.

Search Results
This section of the page appears if the geolocation for the entered postal or zip code can be found.

City: displays the city for the geolocation data.

State: displays the state for the geolocation data.

Postal Code: displays the postal code for the geolocation data.

Latitude: displays the latitude for the geolocation data.

Longitude: displays the longitude for the geolocation data.

Show Map: click to view the area in Google Maps.

Apply - click to save your changes.

Reset - click to return to the page as it appeared when you first opened it.

Sequence Numbers
Navigate to: Administration> Global Preferences> Sequence Numbers
1.

Shows number sequences used by the organization. These sequences will be used for numbering the corresponding objects
(like orders and customers) provided that no site specific sequences are configured.

You can create the following kind of sequence numbers:

Order Number - The sequence number for orders generated from your storefront. This number is used to search for orders
within Demandware. Further configuration is available in Business manager, on the Site Preferences > Sequence Numbers
page.

194

Invoice Number - The sequence number for invoices generated from your storefront.
Shipment Number -The sequence number for shipments generated from your storefront.
Customer Number - assigned as a customer number to new customers during storefront registration. A customer number
sequence is available for each customer list. Further configuration is available in Business manager, on the Site Preferences
> Sequence Numbers page.
Gift Certificate Merchant ID - Demandware gift certificates have one ID attribute that is used as redemption key and
unique identifier at the same time. Gift Certificate redemption keys are sensitive data owned by the customer and have to be
encrypted and masked in the Demandware system for security reasons. The Gift Certificate Merchant ID is an additional ID
that is owned and only known by the merchant and the merchant backend system. Merchant ID sequence numbers can be
organization or site-specific. Further configuration for Merchant ID is available in Business manager, on the Site
Preferences > Sequence Numbers page.The merchant ID assigned to a Demandware gift certificate is:

automatically generated and assigned when creating a new gift certificate in storefront (during order creation, not
earlier)

automatically generated and assigned when creating a new gift certificate in BM

automatically generated when new gift certificate is imported without such a merchant ID (as currently) merchant ID is
generated based on a new sequence number configuration (similar to order numbers)

Each sequence number has the same configuration options:

Value Preview: Displays a sample sequence number with the configured start value and format pattern.

Start Value: Enter the starting number for the sequence. The start value of a number series can only be increased (never
decreased) unless you completely reset the number series by clicking Reset.

Format Pattern: The format pattern references the actual series number using number notation of the Java MessageFormat
class. The number can be formatted using standard number format patterns (e.g. {0,number,000000} for fixed, 6 digit
number). For more information, see http://docs.oracle.com/javase/6/docs/api/java/text/MessageFormat.html

Apply - click to save your changes to the specific sequence number.

Reset - click to return to the sequence number as it appeared when you first opened it.

Products
Navigate to: Administration> Global Preferences> Products
1.

Define up to five additional product attributes that will be shown in all product list views. Note that custom attributes must
be prefixed with 'custom. For example, custom.primarycolor or custom.enddate

Custom Product Column - select an attribute to appear in any list view of products in Business Manager. For example, in
the search results for a product search.
Apply - click to save any changes.

Custom Preferences
Navigate to: Administration> Global Preferences> Custom Preferences
1.

Global custom preferences can be used to set a preference for all site. This is useful if you want the ability to switch a
preference for all of your sites at once. For example, if you have a current order management system, but expect to
implement a new order system, it may be more efficient to have a global preference that is used by all sites, rather than
creating site preferences that must each be changed.

195

Operations
Job Schedules
Navigate to: Administration> Operations> Job Schedule
1.

2.
3.
4.

5.

Before you can complete this task, you must know the pipeline and startnode for the job you want to create. You must know
if the pipeline requires any parameters in order to run successfully. If you are an administrator, you may need to consult the
developer who is creating the import/export pipelines for your site. You should also know what system objects are being
updated for the job you want to create.
There are three types of jobs: scheduled, import/export, and batch.
You can schedule jobs to run according to a schedule or for one time only.
Demandware provides a means of detecting problems with job execution, notification of job status and recovery from failed
jobs. For instance, if a job fails to execute successfully, you can send an e-mail notification to alert someone to the problem.
This feature enables job failure rules to be set, and jobs to automatically re-run if execution fails. You can set job failure
rules and retry parameters such as number of retries.
You can define jobs that execute on the global (or organization) level and jobs that execute only on a site level through
Administration > Operations.

Demandware Job Manager


To understand how the Demandware Job Manager works, it will help to understand what entails a successful job. First, there are
two types of job execution results.

From the point of view of the job execution framework

From the point of view of the job itself


For a job to complete successfully, the job must be executed without error by the job execution framework, and the job must
arrive at a successful result. You can have an internal job execution framework failure or a job results failure.
When the job itself fails, an error is encountered, logged and returned, and the job completes execution. Execution of a job is
actually the execution of a pipeline in the Demandware system.
Note:
Jobs for disabled sites or sites that are in the process of being deleted are disabled and do not appear in the job history.

Creating a Job and Job Schedule


Before you can complete this task, you must know the pipeline and startnode for the job you want to create. You must know if
the pipeline requires any parameters in order to run successfully. If you are an administrator, you may need to consult the
developer who is creating the import/export pipelines for your site. You should also know what system objects are being updated
for the job you want to create.
Multiple-site Jobs
Multiple-site jobs are explicitly split into one job per site at runtime, and consequently handle retry and notification logic
individually if an individual job does not run successfully for a site. Those separate jobs also appear in the job history per site.
1.

2.

In Business Manager, navigate to Administration > Operations > Job Schedules. The Job Schedules page General
tab appears.
a. Enter the required information for the job name and frequency. If you want to run the job manually, simply
enter a date in the past for the Run Once option.
b. Click Apply to save your changes.
Click the Resources tab.
a. Add the objects that the job changes or updates as resources and click Assign. This protects those objects
from being changed by another job or user while it is operated on by this job. For example, while you are
updating your catalog, you do not want other jobs or users to update or change the catalog, categories, or
products.
b. Click Apply to save your changes.

196

3.

4.

5.

If you want to be notified about the status of the job, click the Notification tab
a. Enter the required information.
b. Click Apply to save your changes.
If the pipeline run by the job requires parameters to be passed to it, click the Parameters tab.
a. Enter the required information.
b. Click Apply to save your changes.
Examine the history section at the bottom of the page to see if there are any errors or problems with the job. You can
also refer to the Job History page for this information.

General Tab
Use this tab to create jobs and schedule them. You can also run jobs manually and examine job history for the last twenty times
the job was run.

Name: enter the name of the job.


Enabled: check this box to make the job executable. If the box is not checked, the job cannot be run.
Description: enter a description that makes it clear what the job is used for.
Execution Scope: choose one of the following options:

Organization-wide - the job is run for the whole organization.

Site-specific - you can select multiple sites. The job will run once in the context of each selected site.
Note:
If you select this option the Sites tab becomes available. Use this tab to select the site you want to run the job on.
Pipeline: enter the name of the pipeline to run.
Startnode: enter the name of the node in the pipeline to start the job.
Schedule Timezone: Indicates the timezone used by the schedule. If this is a site-specific job, different timezones may be
used by different sites. If this is an organization-wide job, the instance timezone is used. The job timezone affects the
following:
1. Job execution is always based on the instance timezone. For example, if the instance timezone is Eastern Standard
Time and a job is scheduled for 4:00 am, then the job is executed at 4:00 am in EST.
2. Daylight saving days and hours depend on the instance timezone. For example, if the instance timezone is EST, then
the next daylight savings date is Nov 1, 2009 Sun 2:00 AM back to Sun 1:00 AM.
3. On the Daylight Saving Backward day: the day when the time is turned back one hour, some times occur twice.
However, jobs scheduled for a time during daylight saving hours is executed only once. Although the hour at which
time is turned back varies by locale, for the purpose of the examples below, it is assumed to be 2:00 AM to 3:00 AM.
For example:

A daily job scheduled for 2:30 AM is executed when 2:30 AM occurs the first time on that day, and is not
executed when 2:30 AM occurs the second time on this day.

A job that runs every 10 minutes is executed at 2:00, 2:10, 2:20, 2:30, 2:40, 2:50and then there is a delay of 1 hour
before the job is executed again at 3:00.

A job that runs daily, monthly, or yearly at a specific time of the day, such as 4:00 AM, is also executed at 4:00
AM on the daylight savings rollback day. This means job execution on Sunday is 25 hours after the job execution

197

4.

on Saturday and 24 hours before job execution on Monday. If the same job is scheduled for 1 AM, then job
execution on Sunday is 24 hours after job execution on Saturday and 25 hours before job execution on Monday.
On the Daylight Saving Forward day: the day when the time is turned forward one hour, some times do not occur at all.
Jobs scheduled for a time during daylight saving hours is not executed at all. Although the hour at which time is moved
forward varies by locale, for the purpose of the examples below, it is assumed to be from 3 AM to 2 AM. For example:

A daily job scheduled for 2:30 AM is not executed, because 2:30 AM never occurs on that day.

A job that runs every 10 minutes is executed at 1:40, 1:50, 3:00, 3:10, 3.20.

A job that runs daily/monthly/yearly at a specific time of the day, such as 4:00 AM, is also executed at 4:00 AM
on the daylight savings forward day. This means job execution on Sunday is 23 hours after the job execution on
Saturday and 24 hours before job execution on Monday. If the same job is scheduled for 1 AM, then job execution
on Sunday is 24 hours after job execution on Saturday and 23 hours before job execution on Monday.

Recurring Interval:

Run Once: if you want to run the job once, enter a date and time to start the job. You can also select the ... button to select a
date and time.
Note:
For the time, you must enter am or pm, not a or p.

Every: if you want to run the job multiple times, there are three ways to schedule jobs. Select only one of the scheduling
methods.

Active: enter a date range to run the job.

Run Time: enter the time of day to run the job.


Note:
For the time, you must enter am or pm, not a or p.
Select only one of the following options to determine the frequency of the job:

Every: enter a number and select a duration. For example, enter 60 and select minutes if you want the job to run every hour.
Note:
For the time, you must enter am or pm, not a or p.

On these days: check the boxes of any days of the week that you want to run the job.

Run - click to immediately run the job schedule.

Apply - click apply to save your changes.

Reset -click reset to undo your changes.


History
This section of the page shows the past 20 executions of the job. For information about other jobs, see the Job History page.

Sites Tab
Use this tab to assign a schedule to a specific site. This tab is not available for organization-wide jobs.

Select All: Click to select all sites.


Name: Lists the names of the sites.
ID: Lists the Site IDs
Type: Lists the site types

Business Manager

Storefront
Apply: Click to configure a job for each of the selected sites.

198

Resources Tab
To allocate system resources that should be locked by the job. For example, if importing a catalog, all the product objects must be
locked, so that no one attempts to update them while the job is running. Some jobs will not run unless the appropriate resources
are allocated.

New Resource

System Resource: select the name of a system object.

Custom Resource: enter the ID of a custom resource you have created.


Note:
This must be typed exactly the same way in any job that refers to it in order for it to be protected. For example, if you have
Job A with custom resource "Backup_Directory", and Job B with custom resource "Backup_Directory", then only one of the
two jobs can run at a time. Once the first job finishes, the second job can start. If, you specify "back_dir" for the custom
resource assigned to Job B, then both jobs would be allowed to run simultaneously because they each have different
resources assigned.

Assign: click to assign the resource.

Notification Tab
This tab allows you to configure email notification for jobs. It is highly recommended that you enable notification for important
jobs.

Enabled Threshold: select one or more of the following job states for notification to be sent.

SUCCESS - the job completes successfully.

EXCEPTION - the job runs to completion, but includes exceptions. Some exceptions may indicate a serious problem
with the job or import data.

ERROR - the job runs to completion, but includes errors. Some errors may indicate a serious problem with the job or
import data.

HANG - the job (or executing pipeline) is in a non-responsive state. To have the system detect hung jobs and send a
notifying e-mail, you must enable hang detection and set a maximum execution time.

RETRY - the job has hung and is automatically rerun.


From: enter the name of the address you want the email to appear to come from. For example:
donotreply@myinstance.com.
To: enter the email address of the person to receive notification. This is usually the site or organization administrator.
CC: enter additional email addresses that you want to also receive the notification. For example, you may want to include a
team email or on-call administrator.

Job Failure Rules

Failure Rule: select one of the following options:

Continue as scheduled

Retry - the job is retried automatically for any failure.

199

Stop on Error - job schedule is disabled. Notification happens only if an e-mail address is configured for e-mail
notification.
Note:
Job failure rules and retries only apply to scheduled jobs.
Retries: enter the number of retries the system attempts if the job is not successful. Up to three retry attempts are allowed,
with a default of one retry.
Retry Interval: enter a number of minutes for a retry interval.
Enabled Max Execution Time: enter a maximum number of minutes. For example, enter 60. It is a good idea to set this
after you know the duration of several successful jobs. It is also a good idea to consider the duration of time between the
current job and the next one scheduled to be run.

Hang Detection

Enabled - check this box to enable hang detection

Max Execution Time: enter the number of minutes the job must be running to be considered hung.

Parameters Tab
Use this tab to specify parameters to pass to a job pipeline.

Name: enter the parameter name. This must be the name of the parameter created in the pipeline.
Value: enter the parameter value. The parameter value is stored as a string. If you need numeric parameters, the pipeline
you are calling must use scripts to convert the parameter data type.
Add - click to add the parameter to the CurrentJobParameters dictionary.
Reset - click to undo any changes you have made since opening this tab

Job History
Navigate to: Administration> Operations> Job History
1.
2.
3.
4.

Use this tab to view information about jobs that have run on your instance.
The Demandware platform automatically removes all successful jobs older than 5 days and all failed jobs older than 25
days.
Demandware runs many system jobs that are not normally published in the job history. However, if a system job fails for
any reason, the failure shows up in the job history.
If you see an unfamiliar job that is not run by a specific user, Demandware recommends that you contact customer support
for additional information.

200

Name: select the name of the job. The job names you can select are determined by all jobs that are available in the job
history.
Type: select the type of job you want to view.
Site: select the site the job was run on or view jobs run on all sites. The site you can select are determined by all jobs that are
available in the job history.
User: select a specific user or view jobs run by all users. The users you can select are determined by all jobs that are
available in the job history.
Status: enter the status of the job you want to find:

All: select this option to find all jobs, regardless of status.

Finished: select this option to find jobs that have finished running.

Running: select this option to find jobs that are currently running.
Retry Flag: select yes to see jobs that were retried.
Error Type: select the error type to filter by:

All: do not filter by error type

None: only show jobs with have no error description set

Canceled: only show jobs, that have been canceled

Hanging: only show jobs, that have exceeded it's defined maximum runtime

Resource unavailable: only show jobs, where the resource locking failed

General: only show jobs, where a general error occurred

Retries Exhausted: only show jobs, where the maximum retry count is reached and the execution was not successful.
From: enter the start time for the job you want to find.
To: enter the end time for the job you want to find.
Note:
For the time, you must enter am or pm, not a or p.

Sort by:

Column: select the column you want to sort the history by.

Order: select whether you want to sort in ascending or descending order.


Delete: click to delete the job history of any jobs whose box is checked.
Note:
For additional information about jobs, in Business Manager navigate to Administration > Site Development >
Development Setup > Log Files.

Job Statistics
Navigate to: Administration> Operations> Job Statistics
1.
2.
3.
4.

Use this tab to view execution information for system and site-specific jobs that run on a specific day based on GMT time.
The GMT time matches the date and time information in the logs for a job.
A day is from midnight to midnight GMT time. If a job spans midnight, the statistics for a day include the duration during
that day only, not the total duration.
Statistics are only kept for successful jobs on your instance.
Statistics are kept for 90 days.
Note:
The duration for jobs that are running when an instance is reinitialized is set to 0. The information about whatever time the
job took before restart is lost.

201

Filter By

Job Name: select the name of the job. The job names you can select are determined by all jobs that are available in the job
history.

Site: select the site the job was run on or view jobs run on all sites. The site you can select are determined by all jobs that are
available in the job history. If you are looking for an organization-level job, select Sites-Site.
Note:
Select All if you do not want to filter by any criteria.
Sort By

Sorting: select how you want to sort the jobs displayed:

Total Duration: sorts from highest to lowest duration.

Number of Executions: sorts by the greatest to least number of executions.

Job Name: sort from A-Z by the name of the job.


Note:
Select All if you do not want to filter by any criteria.
Range
The day that you are selecting runs from midnight to midnight Greenwich Mean Time (GMT).

From: select the start date that you want to view job statistics for. To: select the end date that you want to view job
statistics for.
Statistics

Job Name: two types of jobs are listed under job name:

System: jobs that are run internally for instances on the Demandware Platform.

Site: jobs that are scheduled and run for a specific site. This includes automatically-created jobs that are configured
through the schedules for site-specific features, such as search index update. It also includes user-created jobs that are
configured through the jobs schedules module in Business Manager.

Total Duration: shows the number of seconds it took for the job to run.

Number of Executions: shows the number of times a job is executed for the selected day.
Note:
For additional information about jobs, in Business Manager navigate to Administration > Site Development >
Development Setup > Log Files.

Import & Export


Navigate to: Administration> Operations> Import & Export
Import
Job Schedules

Export
Job Schedules

Description
Import and export your job schedules.

202

GMV Reports
Navigate to: Administration> Operations> GMV Reports
1.
2.

3.
4.

View and Generate GMV and Order Journal Reports.


Gross Merchandise Value or GMV is reportable in US Dollars and is defined as the total dollar value of all transactions
for goods and services in a calendar month generated through the eCommerce Platform Services, after application of all
applicable shopping cart discounts and promotions identified by the Customer as part of the transaction within the
eCommerce Platform Services.
GMV includes all transactions regardless of order and shipping status.
Shipping and handling charges and taxes, when identified by the Customer as part of the transaction within the eCommerce
Platform Services, are excluded from GMV.

Types of GMV Reports


Business Manager provides four types of GMV reports in .csv format, which can be easily extracted to a spreadsheet for further
sorting:
1. Order Journal
2. GMV Report per Month
3. GMV Report Per Day
4. GMV Per Order
The following tables list the fields that appear in each report.
Order Journal Report
Field

Description

TRANSACTIONID

Unique transaction identifier. Identifies all line items that are included in a transaction.

POSITION

Orders the line items as steps within the transaction.

ACTION

The action represented by the transaction. CREATE is the most common action.

SOURCE

Where the action originated from. STOREFRONT is the most common source.

TIMESTAMP

The time of the transaction.

ORGANIZATIONID

The Demandware organization ID, typically SITES.

SITEID

The Site ID, typically the name of the site, for example, easyspirit.

ORDERID

The order ID. All line items in a transaction will have the same order ID.

ITEMTYPE

The type of transaction for the line item. For example, PRODUCT (for a product line item),
SHIPPING (for a shipping charge or adjustment) or ADJUSTMENT (for a discounts).

ITEMID

The item ID, which is an assigned (for example, 7.27474E+11) or STANDARD_SHIPPING,


PRODUCT - PERCENTAGE, ORDER - AMOUNT, SHIPPING - FREE.

DESCRIPTION

Line item description. This can be a product (for example, Morris, Kacey or Banquo), a discount
(for example, FALL4SLE, FSNOTHRE or FREESHP), or a shipping charge (for example,
STANDARD_SHIPPING).

LINEITEMCOMMENT

Comments about a line item. For example, "final sale".

CURRENCY

Site currency, for example USD.

BEFOREQUANTITY

Quantity before the transaction.

BEFOREUNITPRICE

Unit price before the transaction.

BEFORETOTALPRICE

Total price before the transaction.

203

BEFORETAX

Tax before the transaction.

AFTERQUANTITY

Quantity after the transaction.

AFTERUNITPRICE

Unit price after the transaction.

AFTERTOTALPRICE

Total price after the transaction.

AFTERTAX

Tax after the transaction.

GMV-Per-Month Report
Field

Description

SITEID

The Site ID, typically the name of the site, for example, customerz.

CURRENCY

Site currency, for example USD.

MONTH

The month being reported on.

SOURCE

Where the action originated from. STOREFRONT is the most common source. Another example is

ACTION

The action represented by the transaction. CREATE is the most common action.

TRANSACTIONS

The transactions included in the action.

ITEMTYPE

The type of transaction for the line item. For example, PRODUCT (for a product line item),
SHIPPING (for a shipping charge or adjustment) or ADJUSTMENT (for a discount).

ITEMQTY

The number of items in the transaction.

TOTAL

Total price of the transaction.

TAX

Total tax of the transaction.


See Managing Site Taxes to learn how to configure taxes in the Demandware platform.

BEFOREITEMQTY

Quantity before the transaction.

BEFORETOTAL

Total before the transaction.

BEFORETAX

Tax before the transaction.

GMV-Per-Day Report
The math used for this report is PRODUCT+ADJUSTMENT of the AFTERTOTALPRICE. Demandware bills for the
AFTERTOTALPRICE of all line items except shipping. This report is used as the basis for Demandware billing reports.
Field

Description

SITEID

The Site ID, typically the name of the site, for example, easyspirit.

CURRENCY

Site currency, for example USD.

DAY

The day being reported on.

SOURCE

Where the action originated from. STOREFRONT is the most common source. Another example is
CALL CENTER.

ACTIONS

The action represented by the transaction. CREATE is the most common action.

TRANSACTIONS

The transactions included in the action.

ITEMTYPE

The type of transaction for the line item. For example, PRODUCT (for a product line item),
SHIPPING (for a shipping charge or adjustment) or ADJUSTMENT (for a discount).

ITEMQTY

The number of items in the transaction.

204

TOTAL

Total price of the transaction.

TAX

Total tax of the transaction.


See Managing Site Taxes to learn how to configure taxes in the Demandware platform.

BEFOREITEMQTY

Quantity before the transaction.

BEFORETOTAL

Total before the transaction.

BEFORETAX

Tax before the transaction.

GVM-Per-Order Report
Field

Description

SITEID

The Site ID, typically the name of the site, for example, easyspirit.

CURRENCY

Site currency, for example USD.

TIME

The time of the order being reported on.

SOURCE

Where the action originated from. STOREFRONT is the most common source. Another example is
CALL CENTER.

ACTION

The action represented by the transaction. CREATE is the most common action.

ORDERID

The ID of the order.

ITEMTYPE

The type of transaction for the line item. For example, PRODUCT (for a product line item),
SHIPPING (for a shipping charge or adjustment) or ADJUSTMENT (for a discount).

ITEMQTY

The number of items in the transaction.

TOTAL

Total price of the transaction.

TAX

Total tax of the transaction.


See Managing Site Taxes to learn how to configure taxes in the Demandware platform.

BEFOREITEMQTY

Quantity before the transaction.

BEFORETOTAL

Total before the transaction.

BEFORETAX

Tax before the transaction.

If a column is empty, it means that the information was not available.

Running a GMV Report


1.
2.
3.
4.
5.
6.
7.
Report
Type
Order
Journal

Open Business Manager and navigate to Administration > Operations > GMV Reports.
Report status appears in the Status section. Click Refresh to refresh your view as reports run.
The GMV reports page opens.
Click Create to create a report.
The GMV report export page opens.
Enter the report start date or select the date using the calendar widget.
Enter the report end date or select the date using the calendar widget.
Select the report type: see the table below.
Select the report scope, for example, All Sites or one or more selected sites.
Description
One row per line item in the order.

205

GMV
One row for each site, month, order source, action, and item type included within the specified time range. The
Report
system automatically generates this report on the first day of each month.
Per Month
GMV
Report
Per Day

One row for each unique combination of site, day, order source, action, and item type within the specified time
range. The system automatically generates this report on the first day of each month.

GMV
One row for each unique combination of site, date, ordersource, action, order, and item type within the specified
Per Order time range.
8. Click Download in the Custom Reports section to download your custom GMV reports. Select the report(s) to
download. You can download compressed (zipped) or uncompressed files.
The Manage Exports File page opens.
9. Click Download in the Auto-Generated Reports section to download the auto-generated GMV reports.
The Manage Exports File page opens.

Frequently Asked Questions


Q: Are order modifications taken into account after order placement?
A: Demandware Analytics does not take into account any modifications made after order placement. All changes made to the
order total on the back end have no effect on the order total used in calculating billing.
Q: Does GMV include orders not yet shipped?
A: GMV includes all orders placed during the billing period, regardless of order and shipping status.
Q: Are back-ordered items included in GMV billing?
A: GMV includes all sales transactions regardless of order and shipping status. As soon as the order is placed by the customer, it
appears in the billing analytics, regardless of whether any product has actually shipped to the customer.

Taxation (net and gross) Impact on Subscription Fees


To ensure the proper calculation of GMV and resulting subscription fees, it is critical that all orders have proper tax handling.
This is done via standard Demandware tax tables or 3rd party integration to services such as Avalara and SpeedTax (both
members of our LINK program).
If a Demandware customer or reseller chooses to implement the Demandware platform in such a way as to not calculate and
account for taxation at the time of order creation, such tax will be included in the GMV calculation and will be included in
calculating the subscription fees due and payable from such customer/reseller.
By not calculating and excluding taxes, the customer and reseller acknowledges that the definition of GMV included in the
customer/resellers contract with Demandware will effectively be modified to include all such taxes and the subscription fees
increased accordingly.
In order to avoid this increase in subscription fees, it is therefore a best practice to ensure that all Demandware platform instances
be configured to properly account for taxation, regardless of the use of this calculation downstream from the Demandware
platform or within a Demandware web-store, mobile-store or call-center application.

Considerations Taken Into Account Computing a Bill Based on GMV


Concept

Description

Request

An HTTP request to the Demandware system from an external system.

Order Total

The total value of the order at order placement. If the order is changed in any way on the back end, the
Demandware Order Analytics are not affected.

Visit Start

The time the visit begins.

Time Zones

The data provided in this report is calculated at a 0 timezone offset (GMT) because that is the standard offset
Demandware uses for all billing, regardless of customer, to ensure consistency. Thus, you can select start

Sales Total

The amount of sales your site processes on a monthly basis.

206

Minimum

The minimum billing due.

Custom Log Settings


Navigate to: Administration> Operations> Custom Log Settings
1.

Use this page to configure custom code logging messages. You can configure the platform to log messages for ten minutes
( Log To File button) or until disabled at a later time ( Enable checkbox).

Log Level: defines the types of log levels available.


Category: describes the log levels and provides for the required settings and entry fields.
Fatal: allows you to provide a comma-separated list of valid email addresses for when a Fatal error occurs. Email
notifications are sent once every minute.
Error: there are no configuration fields.
Warn: allows you to specify log categories and then enable them for Warn level errors.

Add: click to add a log level, for example, ALL.

Enable: checkbox appears when a log category is configured. Click to enable.

- click to delete log category.


Info: allows you to specify log categories and then enable them for Info level errors.

Add: click to add a log level, for example, ALL.

Enable: checkbox appears when a log category is configured. Click to enable.

- click to delete log category.


Debug: allows you to specify log categories and then enable them for Debug level errors.

Add: click to add a log level, for example, ALL.

Enable: checkbox appears when a log category is configured. Click to enable.

- click to delete log category.


Log To File: click to temporary write enabled Log Categories to file. They will be logged to the file for ten minutes only to
minimize any performance impact.
Apply: click to apply changes.
Reset: click to return to the settings before you made changes.

Pipeline Profiler
Navigate to: Administration> Operations> Pipeline Profiler
1.
2.
3.
4.
5.
6.

Use pipeline profiler to tune the performance of scripts and pipelines during development and testing.
Pipeline Profiler collects and aggregates pipeline run times for each node and script in a pipeline.
You must trigger the pipeline in the storefront for Pipeline Profiler.
You can use this information to identify problem areas of code and optimize them. Often there are just a few placed in a
pipeline that must be optimized to see significant performance improvement.
Use of Pipeline Profiler is not recommended on Production instances. Instead, Demandware analytics is designed to give
insight into the performance of a live site.
The specific performance of a pipeline depends on the tasks it is intended to accomplish, but as a general guideline we
recommend that a pipeline should not take more than 3 seconds to execute when it includes non-cached components and no

207

7.

more than 250 milliseconds when it includes cached components. These guidelines assume that there may be additional
performance costs to constructing a page in addition to the pipeline, for example, executing JavaScript or retrieving rich
content, such as flash content.
Generally, it can be expected that performance load testing may also be necessary to judge the performance of a page on a
live site and the Pipeline Profiler is a very useful tool for examining pipelines during this phase of testing.
1.
2.
3.

Open the storefront for the site containing the pipeline you want to examine.
In Business Manager , navigate to Administration > Operations > Pipeline Profiler.
The Pipeline Profiler Page appears.
Click
to activate the profile.
If you have not opened the storefront, the site name does not appear in the Browse Captured Data
section of the page. At least one site must appear here for data to be collected.

4.
5.

The icon changes to


and the profiler starts capturing data.
In the storefront, trigger the pipelines or scripts you want to test. Demandware recommends triggering the scripts
several times to allow for meaningful averages in performance statistics.
Your performance times may vary depending on whether a template is cached, site traffic, or for other
reasons. Demandware recommends triggering a pipeline multiple times for a good average. Demandware
also recommends using Pipeline Profiler during load testing to understand the affect of traffic on pipeline
performance.

6.
7.

If a script is triggered, you see the data appear in the Pipeline Profiler page.
Click
to deactivate Pipeline Profiler. This prevents additional data being added, which can make the data easier
to interpret.
8. Examine the data for scripts on the Pipeline Profiler page. Each script expression or script is displayed on the page.
This page is useful to
9. Click the site name in the Browse Captured Data section of the page to examine pipeline performance. This page
makes it easy to see if a node or script is called frequently and is therefore a good candidate for optimization.
The Profiler - Pipeline Performance Page appears. Click any of the column names to sort results by Start Node Name,
Hits , Total Time, Average Time, Minimum Time, or Maximum Time.
10. Click a pipeline name to view detailed performance information for that pipeline. This page is useful for determining
whether a template, script, or node is costing the most time.
The Pipeline Performance Detail Page appears. Click any of the column names to sort results by Start Node Name,
Pipelet Node ID, Interaction Node ID, Hits, Total Time, Average Time, Minimum Time, or Maximum Time.

Quota Status
Navigate to: Administration> Operations> Quota Status
1.
2.
3.
4.
5.
6.

Quotas target the safe and efficient use of the Demandware platform.
The quota status is aggregated across all application servers of the instance.
Object quotas status is updated with up to 20 minutes delay.
Object relation quotas are checked and status is updated when relations are modified, not when they are just traversed. The
status of object relation quotas and API quotas is shown for the last 24 hours or since server start.
More information about where violations occurred can be found in the quota log files.
When an enforced quota is violated a detailed message is written to the error log.
1. In Business Manager navigate to Administration > Operations > Quata Status

208

2.

Click a down arrow beside a quota to view details about that quota.

Email To Addresses: enter one or more comma-separated email addresses into the entry field, and select the Enabled
checkbox.

Select to enable.

Deselect to disable.

Apply: click to save the settings.

Reset: click to return to the previous settings.

Custom Quota Actions: shows if custom quota actions are active on the instance. Click here for details, and the [Custom
Quota Actions] page opens.

Quota Status: quota status is indicated by a color-coded icon:

Green: OK: OK

Orange: Warning: Near quota limit

Red: Error: Action required


Quotas are added and updated over time. The following are the general types of quotas:

Database usage - shows database usage if the system is installed on a Cloudbox.

Object quotas - shows quotas for objects related to customers, for example. These are the columns:

Enforced: Yes or No.

Used: Number of quota items used

Limit: Demandware quota limit


Object relation quotas - shows quotas for objects related to catalog, checkout, and customers with multiple variables, for
example. Object quotas and object relationship quotas define a limit on the number of objects. Object quotas typically limit the
number of objects of a particular type per Demandware instance. Object relationship quotas limit the number of objects that may
be associated with one object of that type.
These are the columns:

Enforced: Yes or No.

Max: The maximum observed value for this quota. It can be lower or higher than the limit.

Limit: Demandware quota limit.

Violations: How often the limit was exceeded in the last 24 hours. Action required message appears in the item's
header. Pertinent data appears red.
API Quotas - shows the API-related quotas. These values reflect the last 24 hours only. API quotas may define limits on number
of object instances, object sizes, runtimes, number of executions per page, or prevent the execution of a Demandware Script
method or pipelet in the storefront.

Enforced: Yes or No.

Max: The maximum observed value for this quota. It can be lower or higher than the limit.

Limit: Demandware quota limit.

209

Violations: How often the limit was exceeded in the last 24 hours. Action required message appears in the item's
header. Pertinent data appears red.
See the API and Object Quotas documentation (API documentation) for more information.

Governance and Quotas


The Demandware Platform was designed to be used as an ecommerce system. With that usage scenario in mind, certain
constraints and limits were set during design and implementation to ensure the efficiency and stability of solutions built on top of
the platform. These limits concern memory usage, resource consumption, API calls, and the number of business objects.
Quotas are part of the Demandware Platform. They are used to monitor platform resource usage in custom code. Platform
resources include memory, application server threads, database table sizes, and so on. Typically, when a quota is exceeded,
custom code is using platform capabilities inefficiently, and a more efficient solution is possible.
See the latest Demandware API documentation (Quotas) for quota limits.

What Happens When a Quota is Exceeded?


All API/Object quotas have a default action, as follows, that occurs at the instance level (PRD, STG, DEV, Sandbox).
Action

The quota is ...

log_only

In the evaluation stage


(by Demandware).

warn

A valid indicator of
potential performance
and/or stability
concerns.

Report usage levels against the


quota limits within quota log-files
as well as within the Quota Status
dashboard within Business
Manager.

Take corrective action at the warning thresholds


(60% of limit). The Demandware platform will
not prevent usage beyond the error threshold
(100% of limit). Consequential realm instability
or non-performance can occur.

error

A valid indicator of
potential performance
and/or stability
concerns.

Report usage levels against the


quota limits within quota log-files
as well as within the Quota Status
dashboard within Business
Manager.

Take corrective action immediately. The


Demandware platform will prevent usage
beyond the Error threshold (100% of limit), and
prevent consequential realm instability or nonperformance.

The Demandware platform will


...
Report usage levels against the
quota limit within quota log-files
(only).

You should ...


Ignore the reported information for now.

Prior to Release 2.11.5, the default action for most API/Object quotas was warn; and there were only four quotas set to error.
Beginning with the 2.11.5 GA release, Demandware will enforce API/Object quotas for all new Demandware realms
(provisioned after 2.11.5 GA). All API/Object quotas that previously had a default action of warn, will be set to error, and thus
enforced on all instances (PRD, STG, DEV, Sandbox) unless they are softened (reset to warn ) in one of the following ways:

For production instances, only Demandware can soften quotas.

For sandbox or cloudbox instance, you can soften quotas by exporting those quotas from a production instance and
importing (overwriting) them onto a sandbox/cloudbox instance. This allows you to match your development
environment to your production environment. See Implementing quota overrides.
Note:
All actions that were warn in previous releases have been overwritten with the custom-action warn on all production
instances. You can have Demandware export these overwrites from your production instances so that you can import them
onto your sandboxes or cloudboxes. This overwrite occurred because in the future, the default action will be error. Warn
overwrites will soften the new default. Because Demandware manages overrides on production instances, no action is
required. On sandboxes or cloudboxes, however, you will need to import the overwrites. If you do not, you may see
disruptive behavior when quotas are enforced in a future Demandware release.
A quota is either enforced or not enforced. If an enforced quota is exceeded, an exception is thrown, which prevents the current
operation from completing. The exception cannot and should not be caught within a customization. The design criteria must be
avoidance of quota violations.
Examples of quota violations are:

a collection with too many elements was created in memory

210

too many persistent objects of a certain type were created in an instance

If an enforced quota is exceeded in a storefront request, the general error page appears. If an enforced quota is exceeded during a
standard import, a warn or error is reported. If a quota is not enforced, the platform does not take an action when the limit is
exceeded. Demandware plans to enforce all quotas in the future.

How Safe is My Implementation


Information on API and object usage levels, number of violations on a particular instance, and which quotas are enforced, can all
be found in Business Manager (Administration > Operations > Quota Status). Business Manager shows quota usage/violations
since server restart or within the last twenty-four hours.
With the proper permission, you can view details on:

Object quotas status and limits

Object relation quotas status and limits

API quotas status and limits

Cloudbox system's database status


A quota status can be:

green/ok = OK

orange/warning = Near Quota Limit

red/error = Action Required


Some quotas also specify a warning threshold, to give you an early indication that a quota limit may soon be exceeded.
When the warning threshold is exceeded and when the quota limit is exceeded, messages are written to the quota log files. This
happens for all quotas, enforced and unenforced. The log files are written to the log files folder and have the prefix "quota". Keep
in mind that quota log files are written with a time delay. The log files contain information about where the quota violation
occurred. Also, they may contain information about quotas that do not appear in Business Manager. These are experimental
quotas, still under review by Demandware, and not enforced; you can safely ignore them.

Best Practices
Review the quotas and see how you can stay within the limits. For any quota exception, the display will show Action required.
Unless a quota is enforced, no action is required to fix an exception. However, you can use this real-time data (in conjunction
with the Quota Log Files) to assess your current API/Object usage. For example, you should evaluate this data for any site that is
experiencing performance issues, and check the quota logs to help identify pipelines that exceed limits.

Change History (Beta)


Navigate to: Administration> Operation> Change History (Beta)
1.
2.
3.
4.

Search for changes across various object types.


Use the filters to refine your search in order to reduce the number of returned history entries.
Results are grouped by day, user, object and action.
Click on a group header to see change event details.

Encryption Keys
Navigate to: Administration> Operation> Encryption Keys
1.
2.
3.
4.

Use this page to monitor the status of your credit card encryption keys and the schedule of automatic expired key removal,
and new encryption key generation.
Encryption keys are generated once a year.
After a new key is generated, payment instruments are gradually re-encrypted as a background process, so as not to affect
platform performance.
If you need to generate a new key and re-encrypt your data for any reason within that time period, you can contact
Demandware customer support to have this performed.

211

Key ID: shows the unique key identification number.


Created on - shows the date the key was entered into the Demandware system.
Status - shows whether the encryption key is:

active: used to encrypt any new payment instruments and decrypt any payment instruments that were originally
encrypted by this key.

inactive: used to decrypt any payment instruments originally encrypted by this key. All payment instruments using
inactive keys are gradually re-encrypted using the active key in a background process. This means that once a new key
is generated you should see the number of payment instruments with an inactive key decline daily.
Payment Instruments - shows the number of payment instruments encrypted by the key.
Back: click to return to the previous page.

Private Keys and Certificates


Navigate to: Administration> Operation> Private Keys and Certificates
1.
2.

Use this page to import certificates and private keys into the keystore for your current instance.
This is only for TLS certificates, certificates for signing and encryption are uploaded via another mechanism.

Search: enter a term to find a certificate alias. Click


to execute the search. Click
to clear the search and show
all entries in the keystore for your instance.
Import: click to open the file upload screen to upload your files.
Note:
Only the following file types are allowed:
Trusted certificates: .crt .pem .cer .der
Private Keys: .p12 .pfx
Action: select one of the following options:

Select Visible: click to select all visible entries in the key store. If you have searched for a certificate, all search results
are selected.

Unselect Visible: click to clear all selections of keystore entries.

Deleted Selected Certificates: click to delete selected certificate or key. At least one entry in the keystore must be
selected for this option to be available.

Keystore Grid
Click any cell in the grid to open the Host Names Popup.

Alias: displays the alias that uniquely identifies the entry in the keystore.

212

Type: displays whether the keystore entry is a private key or a trusted certificate (public key).

Host Names: displays the host names associated with the certificate.

Valid from: displays the start date when the certificate can be used.

Valid to: displays the expiration date of the certificate.

Import Date: displays the date that the certificate was imported.
Cancel - click to cancel any changes made since opening the page.
Reset: click to reset the value to those displayed when you first opened the page.

213

Appendix
Demandware Image Storage
Demandware supports three static content locations where images are stored, as follows:
Image
Type

Catalog

Noncatalog

Examples

product, category, option


and recommendation
images

custom object, slot (type


HTML), promotion and
store images

Location

Subfolder

Within the catalog's own static content


directory:
Arbitrary

Can be staged using the Replication Task


"Replication Tasks > Sites > Catalogs >
(Your Catalog)".

Arbitrary

Can be staged using the Replication Task


"Replication Tasks > Sites > Static
Content".

Arbitrary

Can be staged using the Replication Task


"Replication Tasks > (Your Site) >
Content Library".

sites/Sites-Site/(Version
Directory(0|1))/units/
(Your Catalog)/static/default/
Within the organization ("Sites") static
content directory:
sites/Sites-Site/(Version Directory(0|1))
/units/Sites/static/default/
located within its own site specific content
library directory:

Content

content assets

sites/Sites-(Your Site)-Site/(Version
Directory (0|1))
/units/Sites-(Your Site)Library/static/default/

Staging/ Replication

Recommended Naming Conventions within Business Manager


1) Catalog ID
masterCatalog_<company_name/brand_name>
siteCatalog_<company_name/brand_name>_<country_code/region_code>
Sample
masterCatalog_Demandware
siteCatalog_Demandware_US
siteCatalog_Demandware_DE

2) Category ID (Classification | Navigation)


Use lowercase with dashes.
Sample
mens, mens-accessories, mens-accessories-belts
Note: For SEO optimization, Demandware recommends setting the Default Page URL for Categories to ${pageURL||ID}.
Ensure the Category ID contains keywords and avoids using CAPS.
Category Syntax Settings: www.domain.com/pageURL/categoryID,default,sc.html
Page URL: mens
Category ID: sweaters
Storefront Display URL: www.sitegenesis.com/mens/sweaters,default,sc.html

3) Product ID
No rule.

214

Sample
creative-zen-x-fi , 22416787, P0138

4) Images
Use a descriptive name that search engines would see and that the user can recognize.
Sample
ImageTitle_ProductID_Variation.jpg
(Cotton-Shirt_12345_Blue.jpg)

5) Object ID (System | Custom)


Start with lowercase letter and then written in camel case. This applies to site and organization
preferences as well.
Sample
displayName
sizeChartID
Ensure that the description field is populated with useful information for the merchants to reference in case they are unsure
of the objects function.

6) Custom Attribute ID (Product | Category)


Start with lowercase letter and then written in camel case.
Sample
fraudCheckEnabled
Ensure that the help text field is populated with useful information for the merchants to reference in case they are unsure of
the attributes function.

7) Price Book ID
retailPricebook_<company_name/brand_name>_<country_code/region_code>
salesPricebook_<company_name/brand_name>_<country_code/region_code>
employeePricebook_<company_name/brand_name>_<country_code/region_code>
Sample
retailPricebook_Demandware_US
retailPricebook_Demandware_DE
salesPricebook_Demandware_US
salesPricebook_Demandware_DE
employeePricebook_Demandware_US
employeePricebook_Demandware_DE

8) Inventory Book ID
inventory_<company_name/brand_name>_<country_code/region_code>
Sample
inventory_Demandware_US
inventory_Demandware_DE

9) Promotion ID
Use lowercase with dashes.
Sample
10%off-order-over$150

215

The ID can be searched so consider including key identifiers to assist in searches.

10) Campaign ID
Use lowercase with dashes.
Sample
order-promotions-for-everyone
The ID can be searched so consider including key identifiers to assist in searches.

11) Content Library ID (Folder | Content Asset)


Use lowercase with dashes.
Sample
Folder ID - global, my-account
Content Asset ID - welcome-page
ID can be searched on Content Assets so consider including key identifiers to assist in searches.

12) Files
File Type
Demandware Scripts
Library files
Demandware ISML Templates
Form Definitions
Pipeline Definitions
Properties

Convention
LoadFooObject.ds (camel case)
libCompareList.ds (prefix "lib")
productpreview.isml (lower case)
tellafriend.xml (lower case)
Account.xml (camel case)
foobar.properties (lower case)
different locales: foobar_de.properties

Object IDs
When you create objects, the system automatically generates object IDs, a feature that provides the following benefits:
You can create objects more quickly, because you do not have to manually edit IDs.
You can search for objects more easily, because the IDs have a consistent and predicable syntax.
You know that your object IDs are formed according to best practice, using only numbers and letters, not spaces or
special characters.
The syntax for auto-generated IDs is as follows: prefix + timestamp where prefix is one of the values listed in the following table:
Object
Product
Catalog
Category
Product Option
Product Set
Variation Attribute
Recommendation
Price Book
Inventory
Library
Content Asset
Sorting Rule

Prefix
prd
clg
cat
opt
set
var
rec
pri
ivt
lib
con
srt

Object
Campaign
AB Tests
Promotions
Content Slots
Coupons
Source-Code Groups
Stores
Customer Groups
Payment Processor
Payment Method
Roles
Shipping Method

Prefix
cmp
abt
pro
slt
cou
scg
str
csg
pap
pam
rol
shi

and timestamp is a value formed as follows: month + day + year + hour + minute + second. The timestamp reflects the time of the
current instance, an approach that enables the system to automatically create unique IDs while minimizing the possibility of
duplicate IDs.

216

An example auto-generated ID for a product is prd032312130846.


You can edit auto-generated IDs, but it is recommended that you use them as is. Since IDs can show up in URLs, Demandware
recommends that you use the search-friendly URL feature to alter your URLs to reflect product and category names, to optimize
your URLs for external search engines, such as Google

Pipelines
System Pipelines
Demandware provides many pipelines with functionality that is commonly required by storefronts as part of the SiteGenesis
application. We recommend that you become familiar with these pipelines.
System pipelines are not called in a URL or by another pipeline but directly by the Demandware platform. The name of a system
pipeline cannot be changed.

Default Pipelines
The Default pipeline is included in the SiteGenesis cartridge.

Default-Start - Called when no pipeline name is provided. Although the Start node name must not be changed, the
subpipeline can be customized.

Default-Offline - Called when a site is offline. Although the Offline node name must not be changed, the subpipeline
can be customized.

Error Handling Pipelines


There are several pipelines that can be used to handle errors. In addition to the subpipelines listed below, you can also include an
Error node that points to a custom subpipeline if you want to take a specific action if an error is encountered.

Error-Start - Called as a general error page.

Error-Forbidden - Called if a secure cookie has an unexpected value.

OnSession-Do - Called when a new session starts. The pipeline prepares promotions or pricebooks based on source
codes or affiliate information in the initial URL.
Note:
If you customize this pipeline, keep the pipeline short or it causes a significant performance impact on your storefront.

OnRequest-Do - Called for each page request on the storefront. This pipeline is called both for cached and non-cached
pages. For performance reasons, the pipeline must be kept short.

SEO Pipelines

RedirectURL-Start -Called for redirects to a new URL.


SiteMap-Google - Called to download site map for a standard home page:

Rendering Pipelines with SEO Support:

Search-Show - Renders a full featured product search result page. If the http parameter format is set to ajax, only the
product grid is rendered instead of the full page.

Product-Show - Renders a full product detail page. If the http parameter format is set to json the product details are
rendered as JSON response.

Page-Show - Renders a content page based on the rendering template configured for the page or a default rendering
template.

Product-ShowInCategory - Renders the product detail page within the context of a category.

Link Pipeline (Deprecated):


This pipeline forwards calls to other pipelines. It is here to support legacy code where content assets could link to specific
pipelines. For all new code, link to the respective pipeline directly (Search-Show, Product-Show, etc.) Merchants can also create
links within content assets directly, using Business Manager.

Link-Category - Links to a category page from within a content asset.

Link-Product - Links to a product detail page from within a content asset.

Link-CategoryProduct - Links to the product detail page for a specific category from within a content asset. This is
useful if you have the same product in multiple categories. For example, a standard and sale category.

Link-Page - Links to a page from within a content asset.

217

Reserved Pipelines
These are customizable pipelines that are called by name by Demandware for specific uses by the platform.

RedirectURL-Hostname - Pipeline is called by the system to handle URL mappings, such as static mappings and
mapping rules. The mappings are configured in Business Manager. This pipeline is critical to site performance, because
it is frequently called in case of exploit scans. The input for the pipeline is the original URL to redirect the user from.
Note:
Demandware strongly recommends you follow these rules when using this pipeline:
no or only a few database calls simple (static) template response cache the result
page

SourceCodeRedirect-Start - The pipeline hook for a source code redirect.

PowerReviews-XmlProductDescription - Renders product XML description based on the given ID. Input: pid
(required) - product ID

Internal Pipelines
These pipelines are used internally by the platform and cannot be edited. These pipelines appear in the Page Cache Information
tool or other debugging tools. These pipelines are used by the Demandware platform, not the SiteGenesis application. You cannot
view these pipelines in Studio or any other development tool.

_SYSTEM_Slot-Render - This is an internal pipeline called when a content slot is rendered.

_SYSTEM_Slot-Request - This is an internal pipeline called when the content for a content slot is requested.

Demandware SEO Capabilities in Commerce Center Fact Sheet


SEO Capabilities in Commerce Center Out of the Box
1. Users have the ability to Define URL Syntax (SEO Friendly URLs).
Below are the conventions that can be used to construct an SEO friendly URL. Note this structure would look like the following:
www.domain.com/pageURL/{ID},default,pd.html. The user has the ability to manipulate the highlighted red section but there is
currently a limitation on removing text at the end which is currently used to carry along refinement data and breadcrumbs.

Category Page - Default display is set to ${pageURL||displayName}. This uses the Page URL and Display Name
attributes to construct the default URL. If you want to create a custom URL, supported category attributes include
pageURL, pageTitle, ID and displayName.

Product Page - Default display is set to ${pageURL||name}. This uses the Page URL and product Name attributes to
construct the default URL. If you want to create a custom URL, supported product attributes are pageURL, pageTitle,
productID, name, brand and shortDescription.

Content Pages - Default display is set to ${pageURL||name}. This uses the Page URL and content Name attributes to
construct the default URL. If you want to create a custom URL, supported content attributes are pageURL, pageTitle,
ID and name.
2. 301 Redirects
Commerce Center provides users with the ability to set permanent url redirects directly within the tool.
3. 302 Redirects
This allows users to setup temporary redirects on urls like products that fall off the site for short periods of time or seasonal
landing pages that you dont want permanent redirects set for.
4. Internal Redirects
Redirecting a category to another category either as 301, 302 or 307 type redirect. You can create shell categories like Men >
Sale and redirect to Sale > Men so merchants dont have to double expose or merchandise products twice.
5. Custom URL Mapping
Users have the ability if they are migrating over from a previous platform to do some url mappings. For instance if in their
previous url is was like www.mysite.com/product id=123456 and the new url will be www.mysite.com/mens/straightlegged
jeans/123456,default,pd.html. Users can set up mapping rules so you dont have to manually create 301 redirects for all products.
6. Product SEO Tag Overrides in Commerce Center
- Title Tags, Meta Description, Keywords, and define custom Product URLs
7. Category SEO Tag Overrides in Center
- Title Tags, Meta Descriptions, Keywords, Define custom Category URLs
- In Studio Users can define dynamically driven H1-H6 tags

218

8. Content SEO Tag Overrides (Assets, Images, Site Creative)


- Title Tags, Meta Descriptions, Keywords, Define Custom Content Page URL
9. Define Navigation structure
Users can define in Commerce Center the site taxonomy structure as well modify homepage header links, footer links, Global
navigation links and structures as well as HTML sitemap. If all of these elements are built using content assets these sections are
modifiable in Commerce Center.
10. Create links and anchors in Commerce Center content assets/slots or UX studio
There are content slots and content assets built into most all pages on the site or can be built anywhere on the site to allow users
to create anchor text with hyperlinks to internal and external sections of the site. As well the concept of building content rich
paragraphs is easy to do in Commerce Center via the content slots.
11. Define Content and Content naming
Users have the ability to define content and image naming conventions within the tool and through loading of images to create
SEO friendly naming structure. Content assets and products can have title tags, descriptions and urls rewritten.
12. Set Default Image Alt tag and Default Image Name
Within Commerce Center users can modify the image alt tags and default image names for product level images or creative
elements within content assets.
13. Ability to Create Site Map within Commerce Center (Ability to create multiples if desired)
Within the Commerce Center tools users can create Sitemaps automatically and set parameters or they can build out as a content
asset and manually manage HTML links within Commerce Center.
14. Ability to create robots.txt file in Commerce Center
Users can create the sites robots.txt file dynamically within Commerce Center and input Allows, Disallows and links to the site
map. Users can also have them created in UX studio if desired.
15. Link Partners allow the ability to crawl reviews with inline SEO
Review vendors out of the box allow for SEO data on the DW sites to be followed. There is some feed data needed between 3rd
party review sites and Google but the functionality exists out of the box on DW platform.
16. Use of Text for Navigation
Demandware platform allows for Text links in the navigation vs. flat images. Users have the ability to control these sections
through Commerce center and change them as needed and drive styling through CSS. These links will be fully readable by
spiders.
17. Define logic and creative on 404 error pages or ability to build URL backtracks in UX studio
Within the UX Studio tool users can create custom 404 error pages and setup backtrack rules to map old urls coming from a
specific category to go to the category that the product lived under.
18. Canonical Tagging built into base Reference Application
The reference application has canonical tagging available out of the box. All Urls that share the same base url will be indexed
back to 1 singular url vs. multiple of urls being indexed separately.
19. Ease of setup for Google Webmasters within UX Studio
Within UX Studio users can easily create HTML pages or put code snippit in the header to register sites in all the Webmaster
tools.
20. Easily incorporate Blog into webstore via wordpress
Users can easily incorporate a blog into their website using wordpress and a subdomain of their site.
21. Image Sitemap
Users can create multiple sitemaps including image sitemaps if desired to get their images housed in a single directory for bots to
crawl.
22. Importing XML file for SEO Tags
Users have the ability to create a spreadsheet with category and product SEO data including these attributes below. Users can
take the spreadsheet provided by Demandware and create XML file and easily import this data into the tool. There is also the
ability to export all product and category data if needed directly from Commerce Center.

219

- Category SEO Attributes: Category ID, Page Title, Description, Page Keywords and Page URL.
- Product SEO Attributes: Master ID, Page Title, Description, Page Keywords.
Coming Soon - SEO Features in Commerce Center
23. Full URL rewriting
Users will be able to create clean urls that remove some of the current elements in the url like default,pd.html to show just the
SEO friendly text www.mysite.com/mens/dress-shirts
24. URL enhancements
Some of these enhancements are as follow:
- Removing demandware from the url,
- Override URL rules at objects-level for product, category, content, folder
- Removing Page type indicators in url like ,pg
- Support of relative URLs between HTML pages and images with the need for site name
25. Video Sitemap
The ability to add videos on a users site to an XML sitemap
26. Localized URLs
The ability to denote locale in the url parameters (en, fr, de) example- www.mysite.com/en/my-category-name Enhancements to

SEO Part of HTML5 and CSS3 Platform


** These are new Tags to help developers classify important content on the page and allow bots to more easily crawl your site.
1. Article Tags
<article> tag, specifies an independent block of content. The contents of an article tags should be entirely self-contained.
2. Section Tags
<section> specifies a subsection of a block of content, such as an <article>. If a blog post was broken into several sections by
subheaders, each section could be wrapped with a <section> tag. Just as books have chapters, blocks of content can have section.
3. Header Tags
<header> could serve two purposes: (1) to specify the header of a page or (2) to indicate the header section of a self-contained
block of content (an <article>). <header> tags might contain navigation, branding or the document headline.
4. H-Group Tags
<hgroup> is used to wrap a section of headings (<h1> through <h6>). A great example would be an article with both a headline
and subheadline at the top:
<hgroup>
<h1>Main Headline</h1>
<h2>Article tagline or subheading</h2>
</hgroup>
5. Footer Tags
<footer> is a bit like the <header> tag. It could specific the <footer> of an entire HTML document or the footer of an <article>.
This may contain things like footer navigation or meta-data about an article (author, data, etc)
6. Nav Tags
<nav> is mean to enclose site navigation. This can be used anywhere: main site navigation, previous/next article links, or
pagination.
7. Aside Tags
<aside> is for content related to the parent element in which is resides, but not strictly part of the main document. In other words,
could be used on a website sidebar or it could be used within an <article> for special call outs like the did you know call outs
found in many books.
8. Video Tags
<video> is for video content. Its purpose is to provide a cross-browser compatible way to display video.
9. Alternative to Flash

220

HTML5 and CSS3 provides an alternative to using Flash to more easily allow creative elements to be indexed
There is also another document on Xchange where you can view all the HTML5/CSS3 enhancements and not just the SEO
pieces.
https://xchange.demandware.com/docs/DOC-12268

HTML5-CSS3 is More Than Just Responsive Design


Guiding your business with data

Features include in 12.5 Release as they relate to standard HTML5 and CSS3 capabilities
We have all heard about all the cool features and functionality responsive design offers but with the release of 12.5, there are also
other cool features, not specifically tied to responsive design. This document is aimed at bringing light to those other features that
come with HTML5 and CSS3.
Here is a Bullet List of some of those new features:

More logical and functional syntax

Video and Audio Tags to play videos and audio right from your browser without additional plugin

Semantic Markups for Hgroups (h1-h6 tags)

Geolocation (HTML5 API)

Web Storage

Web Workers

Web Sockets

HTML5 Forms

HTML5 drag and drop interactivity on the site

Figure Element

Small Element

Type Tags

Quotes no longer needed in document IDs

Creating Placeholders

Video Preloading

Display controls for video

CSS3

Animations

Transitions

2D and 3D transformations

Backgrounds, Borders, RGBa Colors, Gradiants, Drop shadows and rounded corners

Font-face web fonts

What is HTML5 & CSS3?


HTML5 is a combination of HTML Markup tags, CSS3 properties and Javascript. We can define HTML5 specification as new
markup elements, or syntax, used by designers to build web pages in conjunction with the tags that are currently used (in HTML).
The HTML5 family includes the new tags and technologies such as CSS3, Geolocation, web storage, web workers and Web
Sockets.
HTML5 will expand what a web page can do. As an example current HTML cannot play multimedia such as audio and video
without a browser plugin like flash or QuickTime. Basic HTML has no capability to store data on the users computer. This is
currently done with scripting language or another technology. There is also no native drawing format in HTML the graphics and
animations are currently supplied as image files and through browser plugins such as flash, java or Silverlight.

221

More Logical and Functional Syntax


HTML5 introduces several new tags to make structure of the webpage more logical and functional. One example: Before
HTML5 the page relied heavily on the <DIV> tag often it was paired with a CSS class or ID. Below is an example:
<div id=heading > My Page Header </div>
Paired with this CSS
#header {
Width:965px;
Height:100px;
Background-color:black;
}
The ID name is arbitrary and many designers use different naming conventions like masthead, topsection or box. In HTML5 the
specification there is a unique tag called <header>, so they syntax is logical and uniform across, and eliminates the issues with
designers naming it different things. So the new syntax would be
<header> My Page Header </header>
CSS style properties can be directly added to the header rule.
header {
Width:965px;
Height:100px;
Background-color:black;
}
In addition to the header element, there are also a few new elements in HTML5 such as: <footer>, <nav>, <section>, <aside> and
<article>. The goal of all these new tags is to reduce the current reliance on all the DIV tags and to replace them with more
consistent and readable structure. HTML5 doesnt replace any HTML syntax but it adds new vocabulary to the existing list. You
can still use <DIV> tags but it no longer supports the entire load of the page.
One last modification in HTML5 is now the Doctype declaration is simply <!DOCTYPE html> and doesnt need to be the
/W3C//DTD HTML 4.01 transactions//EN. We are accustomed to seeing.
Video and Audio Tags to Play Videos and Audio right from Browser (Without Plugins)
As well as the list above, you can also include tags directly into the webpage to load video, audio and canvas without the need for
plugins. The <video> and <audio> tags let you embed video and audio into your pages like you do with images using the image
tag <img>.
Here is an example video file embedded into a webpage. This will reduce the issues users run into with playing videos if they
dont have flash or QuickTime loaded on their computer.
<video src=playme.mp4 width=500 height=400></video>
Semantic Markups for Hgroups (h1-h6 tags)
With HTML5 there is now a way to create Semantic Markups using H1 H6 tags. This makes the code on the page logical and
more consistent and helps bots more easily identify areas of importance on a page.
Geolocation (HTML5 API)
The geolocation API lets you share your location with trusted web sites. The latitude and longitude are available to JavaScript on
the page, which in turn can send it back to the remote web server and do location-aware things like finding local businesses or
stores. This can be integrated with Google maps as well to provide more relevant results or tied into dynamic content targeting to
leverage the Geolocation for targeted creative or promotional messaging.
Geolocation API is supported by most browsers (laptops/desktops) and mobile devices. Additionally, some older browsers and
devices can be supported by wrapper libraries.
It is supported on IE 9+, Firefox 3.5+, Safari 5+, Chrome 5+, Opera 5+, iPhone 3+ and Android 2+
The geolocation API centers around a new property on the global navigator object: navigator.geolocation. This does require
permission from the consumer to accept and share their position but it is a new feature allowing sites to pull this data without 3rd
party integrations for Geolocation.
Web Storage

222

Web Storage Improves browser cookies and you can do this in two ways via localStorage or sessionStorage. Data that is saved
on local storage is available to browser at any point even when closed and session storage is lost when the browser is closed.
Web Workers
The Web Workers specification defines an API for spawning background scripts in your web application. Web Workers allow
you to do things like fire up long-running scripts to handle computationally intensive tasks, but without blocking the UI or other
scripts to handle user interactions. They're going to help remove the 'unresponsive script' dialog that we frequently come across.
Web Sockets
A WebSocket is a standard bidirectional TCP socket between the client and the server. The socket starts out as a HTTP
connection and then "Upgrades" to a TCP socket after a HTTP handshake. After the handshake, either side can send data. The
WebSocket API is being standardized by W3C so it can easily be utilized with HTML5.
HTML5 Forms
HTML5 now includes new components that add functionality that designers and developers had to leverage previously using
javascript and flash. Below are some examples of the enhancement HTML5 had in regards to creating forms.
1. Submitting a form before all fields are populated wasnt available on HTML4. Requirement that all fields must be
populated or filled out before submitting.
2. Sliders and date pickers are available via HTML5 now and dont have to be built with Javascript or Flash
3. Mobile Devices can take advantage of HTML input types now
HTML5 Drag and Drop interactivity on the site
This allows users to actively interact with your site. Like creating a collection or outfit on a page by taking sampling of products
and building a look with drag and drop functionality.
Figure and FigCaption Element
Makes an easier semantic way to associate a caption with a figure element.
The <figure> element is intended to be used in conjunction with the <figcaption> element to mark up diagrams, illustrations,
photos, and code examples (among other things)
The <figcaption> element is optional and can appear before or after the content within the <figure>. Only one <figcaption>
element may be nested within a <figure>, although the <figure> element itself may contain multiple other child elements (e.g.,
<img> or <code>).
Small Element
The <small> element was used for smaller text, now used for side comments and small print
The <hr> element was used for horizontal rule, now used for a paragraph-level thematic break in text
Type Tags
No longer the need to define types for stylesheets or scripts this is now implied that .css and .js in the src for that file are the
types.
Quotes Not needed any longer in Document IDs
No longer the need to input into all of your document IDs.
Creating Placeholders
Before we used javascript to create placeholders but the new attribute placeholder (to input elements) allows you to set
placeholders inline.
The placeholder attribute specifies a short hint that describes the expected value of an input field (e.g. a sample value or a short
description of the expected format).
The hint is displayed in the input field when it is empty, and disappears when the field gets focus. The placeholder attribute
works with the following input types: text, search, url, tel, email, and password.
Video Preloading
The preload attribute specifies if and how the author thinks that the video should be loaded when the page loads.
The preload attribute allows the author to provide a hint to the browser about what he/she thinks will lead to the best user
experience. This attribute may be ignored in some instances. The preload attribute is ignored if autoplay is present.

223

Display Video Controls


The controls attribute is a boolean attribute. When present, it specifies that video controls should be displayed.
Video controls should include:

Play

Pause

Seeking

Volume

Fullscreen toggle

Captions/Subtitles (when available)

Track (when available)


CSS3
CSS3 enhancements
1. Animations used to create interactive and animated elements on the page
2. Transitions closely related to animations but fundamentally different. Transition allows property changes in CSS
values to occur more smoothly over a specified duration. You can currently do this with JavaScript and Flash but with
much of CSS3 transitions can give designers a tool to use without becoming a Scripting expert.
3. 2D and 3D transformations
4. Backgrounds, Borders, RGBa Colors, Gradiants, Drop Shadows and Rounded Corners
5. Font-Face Web Fonts

Utilizing Hidden Categories


Scenario 1 Non-Traditional Taxonomy
Objective
The Client wants to have a Sale category appear as part of the Top Navigation bar but do not want the category to appear in the
left navigation.
Implementation Approach
Sale Category: The Client will create a Hidden Category on the ROOT (set to offline) and then create a subcategory Sale (set
to online). The developer will create a link on the top navigation via UX Studio that points to the Sale category.
The benefit of this approach is twofold. If the Client created the sale category ID directly under the ROOT then it would display
in the left navigation if it was set to online with products classified to it. Creating the hidden category and marking it offline
ensures it will not show in the left navigation.
Secondly, marking it offline ensures the breadcrumb will build properly for all of the hidden categories. The breadcrumb will
display Home > Sale rather than Home > Hidden Category > Sale. If the breadcrumb is Home > Hidden Category > Sale then
the customer could click on the Hidden Category breadcrumb and see all of the other hidden collections that have been created.
1.

Create the hidden category ID on the ROOT.

2.

Online field remains unchecked.

224

3.

Create the sale category ID.

4.

Online field must be checked.

Product Assignment: The Client can use the bulk assignment or manually assign a product to a category using the Business
Manager.
5.

Bulk assignment, Assign Products to Catalog category.

Search
By setting the hidden category to offline any product that is only assigned to the hidden category or any of its sub-categories
will be excluded from normal keyword search. (Sub-categories of the hidden category must be online.)
Only if you search / navigate within the hidden category (e.g. &cgid=my_hidden_cat), these products will show.
Note: The Search pipelet must have DisallowOfflineCategory set to true.
For example, the Mens Classic Deer Glove (product ID TG508) is only assigned to sale-mens-accessories category.
The customer can navigate to the product by clicking Sale Mens Accessories.

225

If the customer searches the product ID using the Search Box, the No Search Results page is returned because it has been
excluded from normal keyword search.

Scenario 2 Email Marketing


Objective
The Client wants to offer VIP members, through email marketing, the chance to pre-order a subset of products at a discount via a
source code triggered price book before those products are available to the general public.
Implementation Approach
VIP Category: The Client will create a new category called VIP that will be assigned to an offline category called Hidden
Category. Repeat steps 1-4 above if the hidden category has not yet been created. Repeat steps 3-4 above if the hidden category
already exists. Where Category ID = vip.
Product Assignment: The Client can use the bulk assignment or manually assign a product to a category using the Business
Manager. Repeat step 5 above.
VIP Source Code: The Client will create a new Source Code ID, Source Code, Redirect, and assign a Price Book.
6.

Create Source Code ID vip.

7.

Create Source Code VIP.

226

8.

Set up a redirect to the Category vip.

9.

Assign Price Book vip-prices.

10. Test the Source Code URL where the Pipeline-StartNode is SourceCodeRedirect-Start? and the Source Code Parameter is
src=VIP.
http://www.myDWstore.com/SourceCodeRedirect-Start?src=VIP
The source code URL calls the Source Code Redirect pipeline and passes the source code, VIP, as a parameter. The system
looks up this code and implements the rules configured in the source code. These can be promotions, price books or
redirects.
Using Demandwares dynamic URL mapping functionality, you can implement vanity URLs, allowing you to remove the
pipeline and parameter name from the URL. For example configure the system to take the value at the end of /email/ URL
and feed that into the source code pipeline.
http://www.myDWstore.com/email/VIP

Note: For additional information, a Source Code How-To document and video can be found on xchange:
PDF: https://xchange.demandware.com/message/21807#21807
Video: http://www.screencast.com/t/TOA7ZoS4R8

Scenario 3 A/B Testing


Objective
The Client wants to use the A/B testing functionality to test two different gift assortments on the homepage using a content slot.
Implementation Approach

227

Gift Categories: The Client will create two new categories called Shop Our Top Ten Gifts that will be assigned to an offline
category called Hidden Category. Repeat steps 1-4 above if the hidden category has not yet been created. Repeat steps 3-4
above if the hidden category already exists. Where Category ID = ab-test-gifts-a and ab-test-gifts-b.
Product Assignment: Each category will have a unique assortment. The Client can use the bulk assignment or manually assign a
product to a category using the Business Manager. Repeat step 5 above.
Content: The Client will create two content assets and two content slot configurations that appear to be identical ("Shop Our Top
Ten Gifts"), but one version would link to category A and the second version would link to category B.
6.

Create two content assets home-bottom-left-a and home-bottom-left-b

7.

Set both content assets to online. Using the HTML editor create a hyperlink to ab-test-gifts-a category ID for asset homebottom-left-a. Do the same for home-bottom-left-b by creating a hyperlink to ab-test-gifts-b category ID for asset
home-bottom-left-b.
home-bottom-left-a

home-bottom-left-b

8.

Create two content slot configurations under the content slot. In this example, two configurations home-bottom-left-a and
home-bottom-left-b are created under 'home-bottom-left'.

9.

Configure each slot as content type: content asset and associate the corresponding content asset.
home-bottom-left-a
home-bottom-left-b

10. Test the content slots.


Homepage (content slot home-bottom-left)

228

On click, Shop Our Top 10 Gifts will take the customer to the following pages
Slot configuration home-bottom-left-a

Slot configuration home-bottom-left-b

A/B Test: Reference the A/B testing documentation to create the A/B test located on xchange:
https://xchange.demandware.com/docs/DOC-5611
11. Create the A/B test.

Source Codes
Within Demandware, source codes can be used in order trigger a specific promotion, content or pricebook.
When used in email campaigns, source codes provide the merchant with a way to provide limited access to a promotion without
requiring the customer to enter a code at checkout. Demandwares source code functionality also provides reporting at the
individual code level.
For affiliates the merchant can provide the affiliate with a URL that contains a source code to post on their site. This URL
redirects the consumer to the merchants site and includes the source code value as a parameter. This code can also be used to
trigger a promotion, as well as report on visits and resulting sales revenue.

Setting up a Source Code

229

In the following example well set up a Source Code where when the user clicks the link with the source code in the parameter, it
will redirect the user to the Mens > Footwear > Boots Category page, display a banner announcing 25% off and apply a 25% off
all boots in the category.
Step 1: Set up the Source Code:
Within Business Manager, navigate to Site > Online Marketing > Source-Code Groups
Create an ID and Description of your source code and supply a start and end date, enable and click Apply

Next, go to the Codes Tab and set up your source code. Codes are alpha-numeric without spaces. You have the option to set a
single source code or a range of source codes.

In this scenario Im setting up a single source code boots and click Add

Next, set up the redirect to the boots category page by clicking on the Redirects tab.

Step 2: Set up a Customer Group

230

The next step is to set up a customer group. Navigate to Sites > Customers > Customer Groups and click New. Youll need to
set up a Dynamic group and then assign the source code set up in Step 1.
Next, youll need to assign the membership rule which is the source code by clicking Edit as shown in the screenshot below:

Step 3: Set up Content Slot


The next step is to set up the content slot that will display the banner announcing the 25% off once the source code is triggered.
Go to Site > Online Marketing > Content Slots, navigate to the Mens > Footwear > Boots page and open the cat-banner content
slot. There should be a default banner in place. Youll be setting up the 25% off promotional banner but do not assign a schedule
to it at this time. Well do that at the campaign level.

Step 4: Set up Promotion


Set up a 25% off product promotion and assign the mens > footwear > boots category. Also add callout messaging that will
display on the thumbnail and PDP.

231

Step 5: Assign everything to a campaign.


Go to Sites > Online Marketing > Campaigns and create a campaign for the source code.
Assign the customer group, source code, slot configuration and promotion to the campaign. Doublecheck the campaign is enabled
and the dates are within the correct range.

Step 6: Preparing the URL and testing


1. Source Code Redirect pipeline:
a. Ensure you have aliases set up for your site. Site > Site URLs > Alias: www.yoursite.com
b. If you dont have search friendly urls enabled via Site > Site URLs > SEO Support the url string will look like this:
http://ntomaro.inside-na02.dw.demandware.net/on/demandware.store/Sites-SiteGenesis-Site/default/SourceCodeRedirectStart?src=boots and replacing ntomaro.inside-na02.dw.demandware.net with your instance and Sites-SiteGenesis-Site with Sites[the name of your site]-Site and src=boots with your source code.
c. Once its moved to production it would be www.yoursite.com/default/SourceCodeRedirect-Start?src=boots
2. For Vanity URLs
a. Ensure you have aliases set up for your site. Site > Site URLs > Alias: www.yoursite.com
b. Confirm you have enabled search friendly urls on your site: Site > Site URLs > SEO Support
c. In Site > Site URLs > Mapping Rules, apply the following:
/specials/?src=* p,,,SourceCodeRedirect-Start,,src,{0}.
i. Note, specials can be any term you choose. It can be email or affiliate. For each one you create, make sure theyre
appropriately mapped.
d. The following steps will allow you to create a vanity url so in this case it would be: http://ntomaro.insidena02.dw.demandware.net/specials/?src=boots and replacing ntomaro.indside-na02.dwdemandware.net with your instance.
e. Once its moved to production it would be: www.yoursite.com/specials/?src=boots.
Step 7: Test on the site
If the campaign is currently active, you can test the url parameter. In this case well use http://ntomaro.insidena02.dw.demandware.net/specials/?src=boots

232

On enter, the source is activated, the user is redirected to the mens > footwear > boots page, the banner is updated and the
promotion is triggered.

Additional Resources:
http://dware.training.s3.amazonaws.com/Essentials/catalog/SourceCodesOV/index.htm
https://xchange.demandware.com/docs/DOC-6571
https://documentation.demandware.com/display/DOC124/BM+Testing+dynamic+URL+mappings+for+source+codes
https://xchange.demandware.com/message/17472#17472

233

Das könnte Ihnen auch gefallen