Order Processing Loop

Updated 1 month ago by Colin Mollenhour

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
  • An ASN, RMA or other delivery was committed
  • 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.
  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, which may include all inventory allocated to each warehouse if everything in stock. 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, picking class and infill are assigned to a set or subset of the items. 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.
    3. Choose the best Packing Solution. From all available Packing Solutions the best will be chosen, considering 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 configuration and this result the cheapest warehouse allocation will be chosen. See Rate Shopping.
  5. Allocate Order to inventory. Given the optimal inventory allocation has now been determined the inventory will be allocated to this order in the chosen warehouses.
  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 but not yet reserved to specific shelf locations.
  8. Resolve Target Ship Date and Shipping Method. The shipping method if not already set will be determined based on rate quotes for each individual shipment, and based on the shipping method and warehouse configuration 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 and the appropriate Picking Class is assigned.


How did we do?