| Acknowledgments | xi |
| Introduction | xiii |
| PART I GETTING STARTED | |
| 1 Taking on the E-Commerce Challenge | 3 |
| The Challenges of Commerce Sites | 4 |
| The Business Challenges | 4 |
| The Technical Challenges | 5 |
| What Are the Options? | 6 |
| Introducing Commerce Server | 7 |
| The Commerce Server Systems | 8 |
| Administering Your Site Using Business Desk | 13 |
| Introducing Content Management Server | 16 |
| Choosing a Site Architecture | 18 |
| Choosing a Development Language | 18 |
| Should You Use the Solution Sites? | 20 |
| 2 Defining Site Requirements | 23 |
| Preparing to Gather Requirements | 24 |
| Organizing Your Requirements | 25 |
| Documenting the Requirement Details | 27 |
| Functional Areas | 27 |
| Global Functionality | 31 |
| Administration | 34 |
| Data Integration | 35 |
| Technical Requirements | 36 |
| PART II GLOBAL FEATURES OF COMMERCE SITES | |
| 3 Authenticating and Managing Users | 41 |
| Creating a Profile | 42 |
| Choosing a Data Store | 43 |
| Creating a Data Store | 45 |
| Aggregating Multiple Sources | 49 |
| Defining Profile Keys | 51 |
| Property Data Types | 52 |
| Using Profiles in a Site | 56 |
| Implementing Transactions | 57 |
| Creating Custom Profiles | 59 |
| Using Custom Objects in Profiles | 61 |
| Encrypting Sensitive Data | 63 |
| One-Way Encryption | 66 |
| Two-Way Encryption | 68 |
| Designing an Authentication Strategy | 68 |
| AuthFilter vs. AuthManager | 70 |
| Using Authentication Tickets | 71 |
| Writing Tickets Using AuthManager | 72 |
| Tracking Anonymous Users | 74 |
| Encrypting the Tickets | 77 |
| Ticket Tampering | 81 |
| Authenticating Users on Site Pages | 82 |
| Profiled Pages | 82 |
| Nonprofiled Pages | 86 |
| Authenticated Pages | 87 |
| Granting Authorization to Pages | 89 |
| 4 Designing Catalogs | 93 |
| Creating the Catalog Definition | 94 |
| Organizing Products by Using Categories | 96 |
| Creating Category Definitions | 96 |
| Creating the Category Hierarchy | 98 |
| Managing Products | 99 |
| Creating Product Definitions | 100 |
| Product Variants | 101 |
| Pricing | 103 |
| Product Relationships | 105 |
| Product Sets | 108 |
| Using Multiple Catalogs | 112 |
| Base Catalogs | 112 |
| Catalog Sets | 113 |
| Virtual Catalogs | 115 |
| Aggregated Catalogs | 117 |
| International Catalogs | 118 |
| Building Catalogs for the Enterprise | 119 |
| Providing Catalogs to Trading Partners | 120 |
| Integrating Your Catalog with an External System | 122 |
| 5 Using Content Management Server 2002 | 127 |
| The Need for Content Management | 127 |
| Introduction to Content Management Server | 131 |
| Using Templates in Web Page Design | 134 |
| Organizing Pages Using Channels | 139 |
| Publishing Content | 140 |
| Managing Site Resources | 142 |
| Managing the Workflow | 143 |
| Integrating CMS with External Sites | 145 |
| Using CMS with Commerce Server | 146 |
| Content Connector | 147 |
| Integration with the Product Catalog | 148 |
| 6 Targeting Users | 151 |
| Building Campaigns | 152 |
| Targeting Criteria | 153 |
| Ads | 158 |
| Discounts | 164 |
| E-Mail Campaigns | 175 |
| Inside the Content Selection Framework | 177 |
| The Selection Process | 178 |
| Extending and Customizing the CSF | 180 |
| 7 Creating the Page Framework | 183 |
| Using Pipelines | 183 |
| When to Use Pipelines | 184 |
| Looking Inside the Pipeline Framework | 187 |
| Creating Scalable Sites with Caching | 205 |
| Improving Performance with Software Caching | 206 |
| Sharing the Load with Hardware Caching | 218 |
| Managing Caches | 220 |
| PART III BUILDING THE COMMERCE SITE PAGES | |
| 8 Building the Browse Area | 225 |
| Functional Areas of the Consumer Site | 225 |
| Browse Path Overview | 226 |
| Developing the Browse Pages | 228 |
| Home Page | 229 |
| General Navigation | 230 |
| Options for the Home Page | 235 |
| Category Page | 239 |
| Product Index Page | 241 |
| Product Detail Page | 245 |
| Adding Browse Page Features | 251 |
| Category Navigation | 252 |
| Price and Discount Display | 253 |
| Personalization | 256 |
| Store Closure | 257 |
| Implementing Search Functionality | 258 |
| Types of Search Functionality | 259 |
| Search Pages | 266 |
| 9 Building the Registration and Profile Area | 269 |
| Registration and Profile Area Overview | 270 |
| Global Considerations for the Registration and Profile Area | 271 |
| Address Book Class | 272 |
| Shopping List Class | 275 |
| Company Class | 278 |
| Developing the Registration Pages | 280 |
| Login Page | 281 |
| Logout Functionality | 286 |
| New User Registration Page | 287 |
| User Profile Page | 290 |
| Shipping and Billing Address Pages | 291 |
| Address Book Pages | 296 |
| Credit Card Information Page | 298 |
| Event Notifications | 299 |
| Shopping List Page | 301 |
| 10 Building the Buy Path | 303 |
| Overview of the Buy Path | 303 |
| Developing the Shopping Basket Page | 305 |
| Using the Commerce Server Shopping Basket Components | 305 |
| Shopping Basket Actions | 308 |
| Shopping Basket Features | 314 |
| Developing the Checkout Process | 322 |
| Authentication | 322 |
| Shipping Information | 326 |
| Billing Address | 330 |
| Gift Information | 330 |
| Order Review and Payment | 332 |
| Order Confirmation | 339 |
| Speeding Up the Checkout Process | 341 |
| PART IV MANAGING THE COMMERCE SITE | |
| 11 Managing the Product Catalog | 347 |
| Site Management Using Business Desk | 348 |
| Business Desk Modules | 348 |
| Overview of the Business Desk Architecture | 351 |
| Creating Your Own Catalog Management Tools | 370 |
| Customize or Develop from Scratch? | 370 |
| Extending the Business Desk Catalog Modules | 373 |
| Creating a Custom Catalog Interface | 377 |
| 12 Managing Campaigns | 383 |
| Managing Campaigns with Business Desk | 383 |
| Building Custom Tools | 388 |
| Campaigns Behind the Scenes | 389 |
| Creating a Campaign and a Discount in One Step | 392 |
| Creating Target Expressions | 396 |
| Implementing Sale Prices Using Discounts | 400 |
| Changing Advertising Templates | 403 |
| Working with Distribution Lists | 404 |
| Assigning User Discount Codes | 406 |
| 13 Managing Users and Orders | 409 |
| Managing Users | 410 |
| Building the Customer Support Framework | 411 |
| Searching for Users | 412 |
| Displaying User Details | 418 |
| Managing Orders | 422 |
| Searching for Orders | 424 |
| Displaying Order Details | 427 |
| Printing Order Details from Business Desk | 428 |
| Managing Payments | 430 |
| PART V BACKOFFICE INFRASTRUCTURE | |
| 14 Sending E-Mail from the Commerce Site | 441 |
| Sending E-Mail from Site Pages | 441 |
| Using the SendSMTP Component | 442 |
| Sending an Order Confirmation E-Mail | 445 |
| Sending E-Mail in Web Pages | 448 |
| Using the Direct Mailer | 448 |
| Creating Direct Mail Content | 449 |
| Configuring the Direct Mailer Pipeline | 450 |
| Measuring the Effectiveness of Direct Mail Campaigns | 452 |
| Dealing with Invalid E-Mail Addresses | 456 |
| External E-Mail Systems | 458 |
| 15 Processing Orders | 461 |
| Fulfilling Orders Manually | 462 |
| Printing the Order Information Templates | 464 |
| Printing Shipping Labels | 469 |
| Updating the Status in Commerce Server | 470 |
| Integrating with BizTalk Server | 471 |
| Exporting Orders to BizTalk Server | 472 |
| Importing Order Status from BizTalk Server | 477 |
| Receiving Orders from BizTalk Server | 478 |
| Integrating Directly with a Third-Party System | 479 |
| Reporting Order Status to Users | 480 |
| Order Lookup Page | 480 |
| Order Details Page | 483 |
| Tracking Shipping Status on Third-Party Sites | 484 |
| Managing Returns | 485 |
| 16 Migrating from a Legacy Site | 489 |
| Migrating Users | 490 |
| Migrating User Data | 490 |
| Replacing Old Profile Cookies | 499 |
| Migrating Distribution Lists | 501 |
| Migrating the Product Catalog | 503 |
| Creating the Catalog Structure | 505 |
| Migrating the Catalog Data | 511 |
| Migrating Orders | 515 |
| Designing a Migration Strategy | 518 |
| 17 Analyzing Data with the Data Warehouse | 523 |
| The Structure of the Data Warehouse | 524 |
| Data Warehouse Logical Schema | 525 |
| Data Warehouse Cubes | 531 |
| Extending the Data Warehouse | 534 |
| Loading the Data Warehouse | 539 |
| Loading Commerce Server Data | 540 |
| Loading External Data | 553 |
| Using Reports | 557 |
| Static vs. Dynamic Reports | 557 |
| Business Desk Default Reports | 559 |
| Creating New Reports | 561 |
| 18 Deploying Your Site | 569 |
| Configuring the Environments | 569 |
| Development Environment | 570 |
| Quality Assurance Environment | 574 |
| Staging Environment | 575 |
| Production Environment | 575 |
| Building a Deployment Release | 576 |
| Using Commerce Server Site Packager | 577 |
| Creating a Custom Build | 586 |
| Pushing Your Site Through Multiple Environments | 590 |
| Pushing Web Pages | 591 |
| Pushing Content | 591 |
| Pushing Data | 592 |
| APPENDIX | 595 |
| INDEX | 599 |