Fulfillment centers and shipping arrangements
A fulfillment center represents a place from which products are shipped to customers. Inventory counts are maintained separately for each fulfillment center. The OrderItemAdd and OrderItemUpdate commands assign a fulfillment center to each item in an order by calling the task command DoInventoryActionCmd for both ATP and non-ATP stores. By default, the ResolveFulfillmentCenterCmd task command for non-ATP stores, and the AllocateInventoryCmd task command for ATP stores, assign fulfillment centers based on inventory availability, shipping address, and the precedence attributes of the applicable shipping arrangements.
A shipping arrangement enables a store to use a fulfillment center. A fulfillment center is assigned to an order item only if an enabling shipping arrangement exists (in the SHPARRANGE table) between the store and the fulfillment center. A shipping arrangement can be limited to a particular validity period, a particular shipping mode, and particular shipping jurisdictions.
Shipping charges and taxes for an order item can be calculated differently depending on the assigned fulfillment center. (See the SHPJCRULE and TAXJCRULE tables for details.) During ProcessBackorder, ProcessFutureOrder and ReleaseToFulfillment, the fulfillment center might change for some order items. In such instances, the ReprepareOrderCmd is invoked to recalculate the shipping charges, shipping adjustments, sales tax, and shipping tax.