Overview

The multiple-shipment shipping architecture of Commerce Server 2000 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 the 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 Method module in Commerce Server Business Desk.

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

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

ShippingMethodRouter

ItemIndexes
(SimpleList)

ShippingMethodManager

ShippingConfig
database table

Pipeline Execution

. . .

address1

last_name

Address Dictionaries

first_name

Orderform.addresses
(SimpleList)

Business Desk

ShippingManagerCache

Shipping Pipeline Components

ItemIndexes

_cy_shipping_total

shipping_method_id

Shipment Dictionaries

shipping_address_id

Orderform.shipments
(SimpleList)

Context.shipments_to_process
(SimpleList)

Splitter

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 Method 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 Determines the shipping method, runs the individual shipping components, and calculates the total shipping costs for the order.
StepwiseShipping A pipeline component that 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 may 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 The loader component used by the CacheManager object to handle data from the ShippingConfig database table.
Shipping Object The 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 since they may 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 Shipments and Address Structures.

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

See Also

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipments and Address Structures


All rights reserved.