Skip to main content
Table of Contents

Version 2025.7

Supercharged warehouse workflows: Paperless picking, smart batch creation, and enhanced asset management unleashed!

Colin
Updated by Colin
December 16, 2025

Supercharged Batch Creation

On-the-fly batch creation from both the Admin UI and the Scanner UI is now easier and more robust. In the last release we introduced Batch Presets and Asset Types as new concepts, and this release allows you to more fully embrace them into your daily workflows, in particular using new barcode labels (fully optional).

New Barcode Types

By setting a "Barcode Identifier" value and creating barcode labels with a BP: prefix for Batch Presets and an AT: prefix for Asset Types, you can set up your physical environment so that staff can go to a designated place to scan a Batch Preset barcode, scan the barcoded pick equipment, then start creating batches that are tailored to their circumstances. The user's last-scanned options are persisted automatically for the rest of their session and they can also be changed on the Picking page.

Update Impact: None. Using these barcodes is completely optional.

Next Up vs. Quick Batch vs. Precise Batch

By scanning/choosing both a Preset and an Asset Type, the user can now create a precisely targetted batch one just one click by tapping Next Up! If the user already has unfinished batches assigned to themselves which match the criteria, the existing batch will be loaded, or if no such batch exists, a new one will be generated on the fly.

The new Quick Batch button is the preferred method of creating simple batches with more control; just scan (as per above) or select your Preset and Asset Type, and the results are pre-filtered based on your selections. This allows targetted operations with minimal thinking and effort .

The Precise Batch button, on the other hand, is a more general purpose tool which lets you quickly explore the data across many dimensions in whatever drill-down path fits your needs best. This allows quick exploration of the pending shipments and greater flexibility to apply your warehouse wherabouts and equipment most effectively.

Update Impact: None. All existing workflows can be continued just as before, although the new design of the Picking page is a significant change and users who previously used Picking -> Create New Batch will now need to choose between Quick Batch and Precise Batch to achieve the same outcome. The old Create New Batch button is most similar to the new Precise Batch button.

Paperless Picking

Get ready to cancel your Dunder Mifflin contracts, Picking receives another major update allowing for multiple Workflows and the introduction of our first Paperless workflow. The existing paper-based workflow is now known as "Paper-In-Bin" since it involves using a paper packing slip and assigning it to a Bin/Cart Location. The new workflow, known simply as "Paperless", as the name implies, allows you to complete your picks without printing or scanning paper packing slips.

In a nutshell, you'll use License Plates as the "container" or identifier for the picked items until they reach the packing station. If your customers/merchants do not require a packing slip, this can increase pick speed by eliminating the printing and handling of paper and reducing the number of total scans depending on the configuration.

Paperlessly picking a shipment item with an LPN:

There are three Cart Location Strategies for Paperless picking:

  • Assigned Upfront: (Default) Pre-assign all License Plates to Cart Locations before picking. Confirming picks allows either to be scanned. This strategy should be most familiar for pickers accustomed to the Paper-in-Bin strategy.
  • Assigned Just-in-Time: First pick requires License Plate and Cart Location scan, subsequent picks for the same shipment accept either. This strategy gets you started picking with no setup.
  • Numbered: Shipments are assigned an index (1 to N) on the first pick and the License Plate must be scanned to confirm. Cart Locations are not used. This strategy also gets you started with no setup and is ideal for batches with a asset types with a small number of locations.

You can configure a global default for the Cart Location Strategy and optionally override the default for each Asset Type.

Additionally, a new permission was added which is required for users to change the workflow of a batch between Paper-In-Bin and Paperless: Operations -> Picking Batches -> Change Workflow.

Update Impact: None. The new workflow is made immediately available but its use is optional. If you want to disable it, you can do so at System -> Configuration -> Warehouse -> Scanner -> Picking -> Supported Workflows.

Batch Assignment

Related to the Paperless Picking feature, we've added some basic features around assignment of batches to users in order to facilitate locating batches that have no physical paper to accompany them. The user that creates a batch is automatically assigned to the batch and can then find it easily in the Scanner UI.

Two new permissions were added:

  • Operations -> Picking Batches -> Changes Assignments
    • Use the Batches grid Change Assignments mass action to assign one or more batches to a specific user.
  • Operations -> Picking Batches -> Unassign Self
    • Users can unassign themselves so other users can easily pick up the unassigned batches on the Picking screen by tapping Unassigned.
Update Impact: None. Assignment is not very strict - batches will be automatically reassigned to the user when the user scans the batch and taps Pick Batch, so there are no additional steps needed even if your users creating batches are not the users picking them.

Asset Policy Exclusivity

We replaced the Batch Presets' Accessibility (Accessible/Inaccessible/Either) field with a new field, Asset Policy Exclusivity. The Asset Policy is now always a "positive" match rather than potentially a "negative" match with the Inaccessible option. With the understanding that the Asset Policy is always a positive match, this new field now determines only how "exclusive" the match is. The filter is applied as an early culling operation when aggregating shipment counts during UI interaction with batch creation, and as a final criteria during actual batch creation. The three Asset Polict Exclusivity options are None, Partial and Full.

None
  • Only locations with positive inventory and proper lot burn order (if applicable) are considered.
  • All items exist in preferred locations, but are not necessarily exclusive.
Partial
  • Only locations with positive inventory and proper lot burn order (if applicable) are considered.
  • At least one item exists exclusively in preferred locations (does not exist in non-accessible locations)
Full
  • Only locations with positive inventory and proper lot burn order (if applicable) are considered.
  • All items exist exclusively in preferred locations.
  • Re-validate all items exist exclusively in preferred locations per burn order after allocating each shipment.

Using Partial or Full, you can ensure that shipments which could be picked fully from accessible locations will be excluded from your inaccessible pick routes. This can, for example, more effectively help you separate your ground-level fast picks from your picks requiring heavy equipment, and avoid sending the heavy equipment into areas reserved for fast picks.

Update Impact: Since the old Accessibility field does not have directly equivalent options with the new Exclusivity field this field was simply removed and you will want to update your Batch Presets accordingly, immediately after deployment.

Locate Shipment

If you've ever had a shipment picked but not yet packed and the packing slip was lost, fear not! We've added a Locate Shipment feature to the Scanner UI Packing page which lets you locate a picked shipment by scanning the items. If it's fully picked you can then proceeed to packing, and if not you can print a packing slip and continue picking it.

The results will refresh as you scan more items:

The feature is particularly useful for paperless shipments in case the items in a shipment get separated from their License Plate.

Update Impact: None. A new permission is required to access this feature, so please add Scanner -> Packing -> Locate Shipment to your appropriate roles.

Asset Policies for Bulk Fulfill Orders

You can now choose "Bulk Fulfill Pick" as the Operation for Asset Policies and then use those policies to filter results when creating Bulk Fulfill Orders. This will also ensure that the auomatically suggested locations adhere to the Asset Policy selected.

Creating a policy like the above allows applying a filter as seen below:

This option applies advanced filtering to ensure that only shipments that can be picked with the constraints of the selected Asset Policy will be included.

Update Impact: None. You must create one or more Asset Policies with the Operation: Bulk Fulfill Pick option for this Filter By option to appear.

Asset Types for Bulk Fulfill Orders

To begin collecting better data on which asset types are being used and to pick what types of shipments, you can now select the Asset Type used to pick a BFO.

Update Impact: None. If you want to record this data for future purposes, it is recommended to enable System -> Configuration -> Warehouse -> Operations -> Bulk Fulfill Order -> Require Asset Type to make this field a required selection.

FedEx Rate Quotes

You can now check your FedEx negotiated rates directly in ShipStream! Navigate to the appropriate Shipping Account (System -> Shipping -> Shipping Accounts -> {group} -> {account}) and click Get Rates.

This feature is currently only supported for FedEx accounts with Authorization Type: Client Credentials.
Update Impact: None

New Main option for Shipment Custom Fields

You can now specify "Main" as an option to specify for Shipment Custom Fields in which grids the field should be included/displayed in (in addition to the Parcel and Freight options).

This affects the following attributes of the Shipment Custom Fields:

  • Display in Admin Grid
  • Export in Admin Grid
  • Display in Client Grid
  • Export in Client Grid
Update Impact: None. The Main option will be added to the existing values anywhere that one or the other or both options were previously specified and not added when the value was empty. However, you may now want to go remove Main from some of your Shipment Custom Fields if it is not desirable.

Other Improvements

  • Update the "Send Cancellation Request" button in the Client UI to only place the order on hold indefinitely when a client user requests a cancellation if the user has the Hold permission. Without the Hold permission or if "Hold On Request Cancellation" is No, the order will not be held, though a cancellation request email will still be sent.
  • Added a new configuration option to address slow Packages grid load times for merchants with a large order history. Update General → User Interface → Packages Grid → Default Date Filter config to Yes to enable a default date filter of "today - 6 months" to the Created At column.
  • Added a new configuration option Shipping -> Shipping Methods -> DHL eCommerce -> Default Duties and Taxes Payor to allow setting hte default behavior, consistent with FedEx and UPS. The default is Recipient to be consistent with the prior behavior.
  • Added some minor performance optimizations for order allocations.
  • Fixed UPS tracking info missing status description text.
  • Fixed JSHint errors causing users to be unable to save scripts containing return statements by switching from JSHint to ESLint.
  • Fixed saving Client roles while there are inactive merchants present.
  • Fixed forgot password form not submitting.
  • The Order grid Change Shipping Method mass action will now process all orders in a single transaction for improved performance and reduced impact.
  • Optimized locking of inventory during inventory adjustments to reduce impact.
  • Fixed a display issue affecting some orders with BOM items which causes incorrect Packed vs Shipped counts.
  • Fixed display of Created By column for Work Order -> Stock Movements tab.
  • Fixed Transit/Zone Map Warehouse selection not saving.
  • Fixed potential race conditions resulting in "Code not recognized" or other strange errors when switching pages and scanning barcodes in the Scanner UI.
  • Fixed the "Service" field on the package tracking information did not contain the carrier's description for the shipping service as it should have (all carriers affected).
  • Fixed a display issue affecting some orders with BOM items which causes incorrect Packed vs Shipped counts.
  • Fixed display of Created By column for Work Order -> Stock Movements tab.
  • Fixed Transit/Zone Map Warehouse selection not saving.
  • Fixed potential race conditions resulting in "Code not recognized" or other strange errors when switching pages and scanning barcodes in the Scanner UI.
  • Fixed Estimated Delivery At field not updated properly for UPS package tracking.
  • Fixed Initial Delivery Attempt field should only be updated once in package tracking (all carriers).
  • Changed styling of "communication error" rows in tracking details to better indicate that these are ShipStream-specific details, not part of the carrier tracking information.
  • Added less-than and greater-than operators to Velocity Tiers and changed Strategy Value to a decimal field to allow more precise filtering.
  • Fixed possibility of creating a product with an invalid status via Product Import.
  • Improve error messages for Easypost errors which are missing a human-friendly message.
  • Fixed sealing manifests with Easypost packages when the shipments can no longer be found on Easypost's end.

Global API Updates

  • Added tracking_number and alt_tracking_number to the list of fields that are supported for filtering in the GET /api/global/v1/shipping/shipments endpoint.
  • Added tracking_numbers to the list of fields that are supported for filtering in the GET /api/global/v1/receiving/{type} endpoint.
  • Added two new Global API endpoints for orders:
    • GET /api/global/v1/shipping/orders - Search/list orders with filtering and pagination
    • GET /api/global/v1/shipping/orders/{id} - Get a single order by internal ID
  • Removed user from the Delivery model. This will be added back in the next release as requester.

How did we do?

Device Hub Client Updates

Contact