Getting Started
Interface Basics
Printers and Scales
Shipping
Order Processing
Order Allocation
Order Processing Loop
Packing Solutions
Backorders
Ready to Ship
"Unable to Process" Order status
Address Validation and Classification
Packaging Features
Orders
Custom Fields for Orders
Reference Numbers
Other Shipping Options
Packing Instructions
Shipping Accounts
External Shipping Methods
Third Party Billing
Manifest Couriers
Packing Slip Design
Service Levels and Target Ship Dates
Outbound SSCC Barcodes
International Shipping
Tracking Numbers for Offline Shipments
Serial Number Tracking
Receiving
Deliveries (ASNs, RMAs, etc.)
Double-Scan to Begin Count
Auto-Advance to Put-Away After Processing ASN
Actionable Reports
Catalog
Bill of Materials/Work Orders
Bill of Materials
Bill of Materials - Quantity-types
Work Orders
Import Bill of Materials
Virtual Inventory
Regulations
Products
Product Attributes
Lots/Expirations Tracking
Product Velocity
Import Products
Operations
Warehouse
Picking Classes
Picking Batches
Bulk Fulfill Orders
Manifests (Loading)
License Plates
Time Tracking for Administrators
Time Tracking for Staff
Relocations
Import Locations, Lots and Inventory
Rating
Rate Shopping
Rating Maps
Rate Groups and Plans
Fee Schedules and Adjustments
Virtual Shipping Methods
System
Configuration
Merchants and Brands
Warehouses
User Management
User Roles
User Groups
Login via Badge
Protected Customer Data
Enumerations
Technical Contact
Integrations
Shopify
Integrations Overview
Amazon Merchant Fulfillment
Amazon Selling Partner
CartRover
EasyPost
eHub
External Shipping Method API
Freight Club
Magento 1 / OpenMage
Merchant API Users and Roles
SPS Commerce
ShipStream Plugin Fostering Program
Webhooks
WooCommerce
UPS
Scripting
Scripting Basics
Before Create Order Scripts
Preprocess Packing Solution Scripts
Ready to Ship Time Scripts
Picking Class Shipment Matching Scripts
FAQ
How-To: FedEx Production Key Certification
How-To: Brand-Specific Shipping Account
Pattern and Replacement RegEx
ShipStream's Subprocessors
ISO Alpha-2 Country Codes
Printer Troubleshooting
ShipStream Flow
Release Notes
ShipStream Releases
Version 2024.3
Version 2024.2
Version 2024.1
Version 2024.0
Version 2023.2
Version 2023.1
Version 2023.0
Package Tracking API Migration Guide (2023.0)
Version 2022.2
Version 2022.1
Version 2022.0
Version 2021.6
Version 2021.5
Version 2021.4
Version 2021.3
Version 2021.2
Version 2021.1
Version 2021.0
Version 2020.2
Version 2020.1
Version 2020.0
Version 2019.9
Version 2019.8.1
Version 2019.8
Version 2019.7
Version 2019.6
Version 2019.5
Device Hub Client Updates
- All Categories
- Shipping
- Order Processing
- Order Processing Loop
Order Processing Loop
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
- 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.
- 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.
- Generate Packing Solutions. At this stage the Packing Solutions are generated for each of the inventory permutations discovered in the previous step.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.