Overview of the Multiple-shipment Shipping Architecture

The multiple-shipment shipping architecture of Commerce Server 2002 has two purposes: simple modification of shipping method configuration by non-programmers, and the processing of multiple shipments per order.

In the multiple-shipment shipping architecture, the Shipping stage generally uses the same three components: the Splitter, the ShippingMethodRouter, and the ShippingDiscountAdjust components. The Splitter component in its shipping configuration takes the order and splits it into separate shipments. The ShippingMethodRouter component then processes the separate shipments. From the shipment and a database table of shipping information, the ShippingMethodRouter component determines which individual shipping component to use to process a given shipment. The optional third pipeline component, the ShippingDiscountAdjust component, applies shipping discounts to the order.

The ShippingMethodRouter, Splitter, and ShippingDiscountAdjust components are the only shipping components that should be inserted in a pipeline. The ShippingMethodRouter component runs shipping methods configured with the ShippingMethodManager object.

All shipping cost calculation components, except the Splitter component, should be registered with the ShippingMethodRouter component. The shipping cost calculation components that the ShippingMethodRouter component runs are configured in the Shipping Methods module in Commerce Server Business Desk.

The following figure illustrates the relationships between all of the parts of the shipment component process.

This figure illustrates how the Splitter component and the ShippingMethodRouter component work with other objects to process shipments.

Two components use the ShippingConfig table, which is used by the ShippingMethodRouter component. Business Desk uses one of these components, the ShippingMethodManager, to modify the database. The business manager can modify shipping methods through the Shipping Methods module in Business Desk.

The second component is the ShippingManagerCache. The CacheManager object uses this component to load data from the ShippingConfig table into the cache. The ShippingMethodRouter component, in turn, uses the ShippingManagerCache component to get and maintain the cached shipping information.

The following table lists the components and objects in the multiple-shipment shipping architecture, and provides links to more detailed information about each object and component.

Object Description
ShippingMethodRouter This object determines the shipping method, runs the individual shipping components, and calculates the total shipping costs for the order.
StepwiseShipping This pipeline component calculates shipping for individual shipments. It handles charging by weight, quantity, and price. This component is run and configured by the ShippingMethodRouter component. This component can be replaced or augmented by custom components.
ShippingMethodManager Object This object manages the ShippingConfig database table. This table is used by Business Desk through the ShippingMethodManager object. The ShippingConfig table contains the information used by the ShippingMethodRouter component.
ShippingManagerCache This loader component is used by the CacheManager object to handle data from the ShippingConfig database table.
Shipping Object This object provides a method, PreviewShipments, to produce shipping cost previews.
ShippingDiscountAdjust This component applies shipping discounts to an order; it uses the multiple-shipment shipping architecture.
Splitter In its shipping configuration, this component divides an order into multiple shipments based on a set of distinguishers.

Taxes are calculated on individual shipments because they can vary based on the shipment. New tax components need to take into account the multiple-shipment structure. The SampleRegionalTax component is an example of such a tax component. For more information about the multiple-shipment structure, see Shipping and Address Structures.

Handling charges, however, are calculated based on the order, rather than on the individual shipments.

See Also

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipping and Address Structures

Copyright © 2005 Microsoft Corporation.
All rights reserved.