| PART ONE: OVERVIEW AND SCENARIOS | 1 |
| CHAPTER 1 Overview and Scenarios | 3 |
| Introduction to Commerce Server 2000 | 3 |
| Commerce Server and .NET Enterprise Servers | 5 |
| COM+ Services | 5 |
| Application Center | 5 |
| BizTalk Server | 6 |
| Host Integration Server | 6 |
| SQL Server | 6 |
| Solution Sites | 6 |
| Introduction to the Resource Kit | 8 |
| Introduction to the Resource Kit Scenarios | 9 |
| CHAPTER 2 A Retail Scenario | 11 |
| Putting Together the Contoso Team | 11 |
| Planning | 13 |
| Commerce Server Installation Planning | 13 |
| Administration and Management Tools | 14 |
| Business Analytics System | 15 |
| Business Process Pipelines | 17 |
| Product Catalog System | 18 |
| Profiling System | 19 |
| Targeting System | 20 |
| Capacity and Performance | 23 |
| Security | 25 |
| Completing the Planning Process | 26 |
| Development | 27 |
| Importing the Catalog | 27 |
| Acquiring New Pipeline Components | 27 |
| Modifying Site Look and Feel | 28 |
| Adjusting Settings in the App Default Config Resource | 29 |
| Setting Up the Development Environment | 29 |
| Deployment | 30 |
| Performing Final Testing | 32 |
| Preparing for Business | 32 |
| Verifying Security | 33 |
| Going Live | 33 |
| Closing the Loop | 34 |
| Collecting and Storing Customer Data | 34 |
| Analyzing Customer Data | 35 |
| Implementing the Site Management Cycle | 35 |
| CHAPTER 3 A Supplier Scenario | 37 |
| Planning | 37 |
| Organization Profiles | 38 |
| Authentication | 38 |
| Active Directory Integration | 39 |
| Integration with BizTalk Server | 40 |
| Partner Service | 41 |
| Capacity, Performance, and Growth Requirements | 42 |
| Integration with Existing Systems | 43 |
| Completing the Planning Process | 43 |
| Development | 44 |
| Converting and Importing the Catalog | 44 |
| Developing COM Components | 45 |
| Modifying Site Look and Feel | 45 |
| Modifying the _Recvpo.asp File | 46 |
| Adjusting Settings in the App Default Config Resource | 47 |
| Deployment | 48 |
| Testing Business Processes | 49 |
| Verifying Security | 50 |
| Going Live | 50 |
| Configuring a Sample Supplier Solution Site | 50 |
| Configuring Active Directory and DNS (Computer 1) | 51 |
| Configuring SQL Server 2000 and Commerce Server (Computer 2) | 54 |
| Configuring IIS and Unpacking the Supplier Site (Computer 3) | 55 |
| Configuring the Business Desk Client (Computer 4) | 56 |
| Verifying the Configuration | 56 |
| Configuring the Computers for Trusted Delegation | 57 |
| Verifying Business Desk and the Supplier Site | 57 |
| Closing the Loop | 58 |
| Analyzing Customer Data | 58 |
| Implementing the Site Management Cycle | 58 |
| PART TWO: PLANNING | 59 |
| CHAPTER 4 Defining Project Goals and Requirements | 61 |
| Creating a Project Goals and Requirements Document | 64 |
| Vision | 64 |
| Scope | 65 |
| Constraints | 66 |
| Assumptions | 66 |
| Risks | 67 |
| Developing a Conceptual Design | 68 |
| Defining Requirements | 68 |
| Business Requirements | 69 |
| System Integration Requirements | 69 |
| Security Requirements | 70 |
| Single-Firewall Solution | 72 |
| Two-Firewall Solution | 74 |
| Three-Firewall Solution | 75 |
| Site Architecture Requirements | 78 |
| Performance and Capacity Requirements | 79 |
| Performance | 79 |
| Capacity | 80 |
| Performance and Capacity Considerations for Site Architecture | 82 |
| System Administration Requirements | 86 |
| International Requirements | 87 |
| Selecting Commerce Server Features | 88 |
| Administration and Management Tools | 88 |
| Business Analytics System | 89 |
| Business Process Pipelines System | 90 |
| Product Catalog System | 91 |
| Profiling System | 92 |
| Targeting System | 93 |
| Content Selection Framework | 93 |
| Direct Mailer | 94 |
| Expressions | 95 |
| Predictor Resource | 95 |
| Planning for Migration | 96 |
| CHAPTER 5 Planning for Scalability | 97 |
| Scaling Hardware Vertically | 99 |
| Scaling Hardware Horizontally | 101 |
| Optimizing Site Architecture to Improve Scalability | 102 |
| Disabling IIS Session Management and Removing Session Variables | 105 |
| Separating Static Content from Other Types of Content | 106 |
| Caching Static Content | 107 |
| Caching Static Lookup Data | 107 |
| Using the Caching Technology Provided by Commerce Server | 108 |
| Consolidating Business Rules on Dedicated Servers | 108 |
| Using Message Queuing or E-mail to Update Systems | 109 |
| Processing Requests in Batches | 109 |
| CHAPTER 6 Planning for Reliability and High Availability | 111 |
| Availability Checklist | 111 |
| Designing a Highly Available E-Commerce Site | 114 |
| Operational Procedures | 116 |
| Site Capacity | 118 |
| Preventing Failures | 119 |
| A Highly Available Commerce Server Architecture | 126 |
| Small Commerce Server Configuration | 126 |
| Large Commerce Server Configuration | 127 |
| Commerce Server Component Design Considerations | 131 |
| Administration Database | 132 |
| Profiling System | 132 |
| Product Catalog System | 136 |
| Targeting System | 137 |
| Direct Mailer | 138 |
| Business Process Pipelines | 140 |
| Data Warehouse | 142 |
| Operating System Availability | 143 |
| Network Load Balancing | 143 |
| Web Farm/Active Directory Authentication | 144 |
| Active Directory Availability | 145 |
| Replication Between Sites | 146 |
| Disaster Recovery | 147 |
| Backup Strategies | 147 |
| Restoration strategies | 147 |
| Active Directory Monitoring Tools | 148 |
| SQL Server Availability | 148 |
| Clustering | 148 |
| Replication | 150 |
| Warm Backup | 152 |
| Retry Code Logic | 154 |
| Additional Resources | 155 |
| CHAPTER 7 Building the Project Plan | 157 |
| Creating a Functional Specification | 158 |
| Summary | 158 |
| Design Goals and Justification | 158 |
| Design | 159 |
| Data | 159 |
| Security | 159 |
| Compatibility and Platform Requirements | 160 |
| Third-Party Involvement | 161 |
| Localization | 161 |
| Migration | 161 |
| Issues and Risks | 161 |
| Identifying the Project Team | 161 |
| Building the Project Schedule | 164 |
| PART THREE: DEVELOPING | 165 |
| CHAPTER 8 Developing Your Site | 167 |
| Development Checklist | 169 |
| Completing the Development Phase | 170 |
| Selecting a Development Methodology | 172 |
| Jump-Starting Development with the Solution Sites | 172 |
| Managing Site Configurations | 174 |
| Configuration Items | 175 |
| Configuration Management Database | 176 |
| Core Configuration Management Processes | 178 |
| Identification | 178 |
| Status Accounting | 179 |
| Verification and Auditing | 179 |
| Managing Change | 180 |
| Change Requests | 180 |
| Change Database | 181 |
| Change Advisory Board | 181 |
| Change Process | 181 |
| Development Tools and Resources | 183 |
| Commerce Server 2000 Help | 184 |
| Commerce Server SDK | 184 |
| Commerce Server Management Tools | 188 |
| Other Microsoft Tools | 189 |
| Configuration Management Tools | 190 |
| Other Resources | 190 |
| Related Web Sites | 191 |
| CHAPTER 9 Developer Notes | 193 |
| Gift Certificate Feature | 193 |
| Business Desk Modifications | 195 |
| Site Resource Modifications | 198 |
| Site Page Modifications | 198 |
| Checkout Pipeline Modifications | 199 |
| COM Object Development | 199 |
| Profile Modifications | 199 |
| Report Modifications | 200 |
| Site Term Modifications | 200 |
| Campaign Modifications | 200 |
| Deployment Summary | 201 |
| Profiling System Utilities | 201 |
| Profiles Schema Mover | 202 |
| Installation | 203 |
| Operation | 203 |
| Exporting a Catalog | 204 |
| Importing a Catalog | 209 |
| Deployment Scenarios | 212 |
| Site Terms Viewer | 213 |
| Profiling System: Operational Considerations | 215 |
| Profile Definition Keys | 216 |
| Unique Key | 216 |
| Primary Key | 216 |
| Join Key | 216 |
| Hashing Key | 217 |
| Profiling System Design Considerations | 218 |
| Keys | 218 |
| Recommended Data Type Mappings | 219 |
| Other Considerations | 220 |
| Profiling System Run-Time Considerations | 221 |
| CSOLEDB Handles | 221 |
| Accessing Properties | 221 |
| Transaction Support | 221 |
| Data Size Validation | 223 |
| Managing Pre-Existing Accounts in Active Directory Stores | 223 |
| Starting Container for Directory Operations | 223 |
| Search Scope | 226 |
| User Profile Import DTS Task | 226 |
| Importing New Profile Types | 226 |
| Profile Mappings | 226 |
| Advertising Scoring and Selection | 228 |
| Campaign Goals and Item Goals | 228 |
| Initial Scoring | 229 |
| Scoring (Targeting) | 230 |
| Selection | 231 |
| Troubleshooting Ad Scoring and Selection | 232 |
| CHAPTER 10 Integrating Third-Party ERP Systems with Commerce Server Applications | 233 |
| Integration Techniques | 235 |
| Batch Downloads | 235 |
| Real-Time Connectors | 240 |
| Queued Connectors | 244 |
| Mirrored Updates | 247 |
| General Considerations and Best Practices | 249 |
| ERP Systems and Commerce Server Business Rules | 249 |
| Pricing and Promotions | 250 |
| Shipping, Taxation, and Credit Card Authorization | 251 |
| Product Catalog | 251 |
| Replication | 252 |
| Physical Architecture | 252 |
| Integrating with SAP | 254 |
| SAP DCOM Connector | 256 |
| Product Catalog | 258 |
| Batch Download Product Catalog Data | 259 |
| Batch Download Incremental Catalog Changes | 260 |
| Mirrored Updates | 260 |
| Item Pricing | 262 |
| Batch Download Item Prices | 262 |
| ALE-Triggered Price Change Download | 263 |
| Real-Time Pricing Integration | 264 |
| Inventory Data | 266 |
| Batch Download Inventory Data | 266 |
| Batch Download Incremental Inventory Changes | 268 |
| Mirrored Updates Using ALE | 268 |
| Real-Time Connections | 269 |
| Orders | 270 |
| Batch Integration Using IDOC | 271 |
| Real-Time Integration Using the DCOM Connector | 272 |
| Integration Using Queued Components | 273 |
| Mirrored Updates Using Message Queuing | 275 |
| Mirrored Updates Using BizTalk Server | 277 |
| Real-Time Integration Using Custom COM Objects and DCOM Connector Objects | 279 |
| Integrating with J.D. Edwards OneWorld | 281 |
| OneWorld GenCom Component Wrapper | 283 |
| Product Catalog and Pricing | 285 |
| Batch Download Data from OneWorld | 285 |
| Mirrored Updates | 287 |
| Real-Time Integration | 289 |
| Orders | 290 |
| Batch Download Using the Z-Table | 291 |
| Real-Time Integration Using OneWorld COM Objects in the Purchase Pipeline | 291 |
| Integration Using Queued Connectors | 293 |
| Mirrored Updates Using Message Queuing | 295 |
| Mirrored Updates Using BizTalk Server | 297 |
| CHAPTER 11 Migrating from Site Server to Commerce Server 2000 | 299 |
| Planning the Migration | 302 |
| Feature Analysis | 304 |
| Migration Strategies and Scenarios | 306 |
| Phase 1: Set Up Commerce Server in Your Test Environment | 306 |
| Phase 2: Migrate Site Code and Content | 310 |
| Phase 3: Move Your New Commerce Server 2000 Site into Production | 313 |
| Phase 4: Convert P1 to Commerce Server | 314 |
| Phase 5: Decommission the N1 Environment | 316 |
| Fallback Plan | 316 |
| Developing | 317 |
| Migrating Site Server 3.0 Features | 318 |
| Analysis | 319 |
| Content Management | 320 |
| Knowledge Management | 321 |
| Personalization & Membership | 323 |
| Membership Migration Tool (Directory Migration Toolbox) | 327 |
| Migrating SSCE Features | 330 |
| Ad Server | 330 |
| Online Store | 330 |
| Pipelines | 331 |
| Predictor | 332 |
| Promotions | 333 |
| Transaction Data | 333 |
| Deploying | 334 |
| CHAPTER 12 Developing an International Site | 335 |
| Using Multiple Languages | 335 |
| Language-Dependent Strings | 335 |
| Product Information | 336 |
| Site Information | 336 |
| Caching | 337 |
| Choosing the Language | 337 |
| Changing Languages | 338 |
| Using a Client-Side Cookie with Language Codes | 338 |
| Encoding the Language Code in the URL | 338 |
| Storing the Language Preference in the User Profile | 339 |
| Using Pre-Generated Pages | 339 |
| Using Multiple Currencies | 340 |
| Product Pricing | 340 |
| Different Prices for Different Locales | 341 |
| Different Discounts for Different Locales | 341 |
| Changing Currency | 341 |
| Configuring International Locale Settings | 342 |
| CHAPTER 13 Integrating Commerce Server with BizTalk Server | 345 |
| BizTalk Server Overview | 345 |
| BizTalk Messaging Services | 346 |
| Receive Functions | 346 |
| Transport Services | 347 |
| Data Parsers | 347 |
| Data Validation Services | 347 |
| Document Delivery Services | 347 |
| Security | 348 |
| BizTalk Orchestration Services | 348 |
| XLANG Language | 348 |
| XLANG Schedules | 348 |
| Common Business-to-Business Requirements | 349 |
| Catalog Exchange and Management | 349 |
| Catalog Mapping Tools | 351 |
| Mapping from a Commerce Server Catalog to a Flat Schema | 353 |
| Mapping from a Flat Schema to a Commerce Server Catalog | 354 |
| Generating Catalogs in the Commerce Server XML Format | 355 |
| Catalog Import, Export, and Exchange Tools | 356 |
| Application Integration Components | 358 |
| Order Management | 358 |
| Order Routing Manager | 358 |
| Order Form Integration | 361 |
| Integrating Commerce Server and BizTalk Server | 365 |
| Configuring Commerce Server and BizTalk Server to Send and Receive a Catalog | 366 |
| Setting Up the Environment | 367 |
| Configuring the Site Options on the Wholesaler Site | 367 |
| Copying CatalogXmlSchema.xml to the BizTalkServerRepository | 367 |
| Creating the Catalog Document Definition | 368 |
| Configuring Receivestandard.asp to Receive the Catalog | 368 |
| Modifying the Home Organization | 368 |
| Creating the Retailer Organization | 369 |
| Creating the Catalog Application for the Wholesaler Organization | 369 |
| Creating the Wholesaler Messaging Port to the Retailer Organization | 370 |
| Creating the CatalogImportChannel and Retailer Receive Port | 371 |
| Testing Your Configuration | 372 |
| Processing a Commerce Server Purchase Order Through BizTalk Server | 373 |
| Configuring the Site Options for the Retailer Site | 373 |
| Copying POSchema.xml to the WebDAV Repository | 374 |
| Configuring the PurchaseOrder Document Definition | 374 |
| Adding the Identifier to the Retailer Organization | 374 |
| Configuring a Vendor for the Imported Catalog | 375 |
| Creating a WholesalerPO Application for the Wholesaler Organization | 375 |
| Creating a New Messaging Port to an Application | 375 |
| Creating a New Channel that Uses the WholesalerPO as the Messaging Port | 376 |
| Testing Your Configuration | 377 |