Order Processing Loop

Colin Updated by Colin

Order processing in ShipStream is an automatic process that happens in real-time, and is constantly working to optimize labor and shipping costs. There are many decision points that factor into the final outcome and understanding how ShipStream factors in these decisions is not necessary to use ShipStream but may provide insight and clarity about how to get the most out of ShipStream. Some of these factors at a high level include:

  • Which warehouses have the needed inventory in stock?
  • What specific containers does the allocated inventory fit into?
  • What is the cheapest shipping method that will hit the desired delivery date?

Actions that will cause this process to be re-evaluated include:

  • An order with allocated inventory was canceled
  • A manual inventory adjustment or relocation transfer
  • An ASN, RMA, Work Order or Cancellation was committed to inventory
  • The "Reallocate Orders" mass-action on the Products grid
  • The "Reprocess Shipments" mass-action on the Orders grid and Shipments grid

Processing Stages

  1. New order created or inventory updated. Unless an order is fully backordered, it will proceed to the next stage. Orders that are partially backordered or on-hold will still be allocated to inventory to help hold their "spot" in line, despite not being Ready to Ship.
  2. Generate multi-warehouse inventory permutation. If you have inventory in multiple warehouses, this will generate all of the plausible ways of dividing inventory between them. This process can be affected by the Order Allocation configuration options or order properties.
  3. Generate Packing Solutions. At this stage the Packing Solutions are generated for each of the inventory permutations discovered in the previous step.
    1. Run Order through "Preprocess" script. This allows early adjustments to how items are separated into shipments, which shipping methods each shipment gets assigned to, the final picking class of each shipment, and infill for each package. See Preprocess Packing Solution Scripts.
    2. Resolve Packing Solutions for all providers. Depending on which Packing Solution providers are enabled, the items will be evaluated by each provider and a Packing Solution created. Packing Solutions may also be simply disabled in the previous step.
    3. Choose the best Packing Solution. From all available Packing Solutions, the best will be chosen taking into consideration if one is marked as a "Preferred" solution and if any solutions are disabled.
  4. Shop rate quotes. If virtual shipping methods are used, rate quotes will be calculated for each applicable real method and the best one chosen depending on the specific merchant and warehouse-level configuration. See Rate Shopping.
  5. Allocate Order to inventory. Given that the optimal inventory allocation has now been determined, the inventory will be allocated to this order in the chosen warehouses, maintaining a first-come-first-serve fairness but taking into account the Order Priority.
  6. Generate Packing Solutions. Now that the warehouse allocations are finalized the packing solutions are determined once again using the same process as in stage 3.
  7. Create Shipment for each container. Based on the results of the previous step, a new shipment is created for each subset of items. The inventory at this stage is allocated to the warehouse inventory but not yet reserved to specific shelf locations.
  8. Resolve Target Ship Date and Shipping Method. The shipping method, if not already set to a "real" shipping method, will be determined based on rate quotes for each individual shipment, and based on the shipping method and warehouse configuration and Service Levels, a Target Ship Date is set for the shipment.
  9. Assign Shipment to Picking Class. Now that all other information is set, the Picking Classes defined will be evaluated in order to classify each Shipment to the appropriate Picking Class which aids in generating Picking Batches.

How did we do?

Order Allocation

Packing Solutions