Developing with Core Systems Pipelines

Commerce Server 2009

A pipeline is an extensible software framework that defines and links one or more stages of a business process, running them in sequence to complete a specific task.


In Commerce Server 2009 the new Commerce Foundation introduces new extensibility points. Please refer to the Commerce Foundation sections for more information on these extensibility points.

The functionality of a pipeline is based on three parts: pipeline components, pipeline configuration files, and pipeline framework objects. Pipeline components each complete a defined work item on the data and collectively process the order. Pipeline configuration files define the sequence in which the pipeline components are run. Pipeline framework objects invoke pipeline configuration files and pipeline components through the code on select ASP.NET pages.

Each stage of a pipeline contains one or more pipeline components (COM objects) that can be configured to work with the unique requirements of the site. For example, a typical Order Processing pipeline may include a Shopper Information stage, a Payment stage, and a Shipping stage.

Pipeline configuration files (.pcf files) define pipelines. The pipelines specified by such files are created and run by pipeline objects. Commerce Server Core Systems provides five pipeline objects: MtsPipeline, MtsTxPipeline, PooledPipeline, PooledTxPipeline, and OrderPipeline. The MtsPipeline, PooledPipeline, and OrderPipeline objects do not support transactions. The MtsTxPipeline and PooledTxPipeline objects do support transactions. For more information about pipeline transactions, see Managing Pipeline Transactions.


In Commerce Server Core Systems Web applications, pipelines are frequently run indirectly through the RunPipeline method of the OrderGroup class. The RunPipeline method creates one of the five pipeline objects and uses it to run the pipeline.

Pipeline configuration files (.pcf files) are usually marked in one of following three ways:

The pooled pipelines take advantage of COM+ object pooling to speed up pipeline loading and execution. For more information, see What Are Pooled Pipelines?

As the designer of the pipelines for your site, you must take measures to make sure that the pipelines function correctly. First, you should make sure that no pipeline component is configured to overwrite the work done by another component.

Second, you should define the circumstances under which the pipeline is to stop processing. As each component in the pipeline runs, it returns a status that indicates success, a warning, or failure. If you configure a stage to tolerate warnings, the pipeline continues to operate despite a warning generated by a component in that stage. If you configure a stage to tolerate only success, and a component in that stage returns a warning, the pipeline stops processing, and returns an error. For more information about pipeline component error levels, see What Are Pipeline Component Error Levels?

If you have a site in multiple languages, you might require pipelines that can process localized messages. For more information about international concepts, see International Considerations for Developing Pipelines.