Table of Contents

Version 2020.1

Colin Updated by Colin

October 15, 2020

ShipStream 2020.1 brings many new features and an important paradigm shift in how orders are processed so please read thoroughly and make sure you understand how this update can impact your business. Don't hesitate to contact us if you need any help!

The important paradigm shift in this release is the change from creating Shipments on-demand when a Batch or Bulk Fulfill Order is created to creating Shipments immediately (proactively) when an order is in stock and then adding these Shipments directly to a Batch or Bulk Fulfill Order on-demand. In addition, we introduce some new features that give you a great deal of control over this process and features to help your operations adapt to and thrive on the new system.

"New" Shipment Status

Inventory locations are still reserved to Shipments "just in time" to allow for greater optimization, but since Shipments are created as soon as the Order is created we've introduced a new Shipment status called (boringly) "New". A "New" Shipment is not ready to be picked yet, it must first be processed (inventory reserved to a specific location) by either clicking Process or Process All on the order page, or by adding the Shipment to a Batch or Bulk Fulfill Order. Until it has been processed and advanced to the Picking status it could be deleted and recreated by the system as circumstances change such as inventory updates in other warehouses, user interactions, etc.

An important improvement as a result of this change is that now on the Shipments grid you can see all Shipments that need to be processed and picked, not just the ones that are already being processed! In general, if you were using the Orders grid before to look at your work in progress and capacity planning you should typically be looking at the Shipments grid now.

Ready to Ship

We've removed the "Can Batch" column and replaced it with a few new fields that are much more informative! The new "Ready To Ship" field is both a Yes/No status and also a timestamp. This field is truly at the Order-level instead of the old field which was at the Order+Warehouse level. A "Ready To Ship" status of "Yes" indicates that the order is not on Hold and shipping the in-stock portion of it would not violate the Backorder Policy. Orders that are not Ready to Ship (on Hold or partially-backordered with an "All or Nothing" policy) are automatically excluded from Batches and Bulk Fulfill Orders. On the Order page you can see the Ready To Ship timestamp which is the exact moment that an order transitioned from No to Yes. This timestamp is used as the basis for the Target Ship Date which has also been moved from the Order+Warehouse level to the Shipment level and is visible on the Shipments grid.

With these changes it is now more clear than ever which orders are Ready to Ship, how long an Order has been Ready to Ship, and the Target Ship Date is precise down to the Shipment level. As a result, some columns on the Orders and Shipments grid have changed, but it's definitely for the better!

Packing Solutions

We've introduced a major new concept to ShipStream in this release, called "Packing Solutions". A Packing Solution is simply a solution to the problem "How can a set of items with these physical properties and attributes be packed given the set of containers available?" The source of this solution may be historical training data based on how similar items were packed in the past, ShipStream's internal algorithm "ShipStream Packer" or results from a third-party service that ShipStream is proud to offer: Paccurate. When presented with multiple solutions from different sources ShipStream will choose the best of them by optimizing the total number of packages and wasted space (Void Volume). In short, this feature applies massive computing power to solve a complex problem so your shipping costs are reduced and your packers don't have to even think about it.

Packing Solutions are also used to enhance the accuracy of rate quotes so that the way items are split between packages when necessary and the final dimensions of the packages are taken into account resulting in rate quotes that align with reality!

Use the interactive 3D Packing Solution viewer in the Admin UI, Client UI and Scanner UI to see how items fit and gain understanding about how the algorithms are choosing packages. Color-coded item rows make the viewer not only pleasing to the eye but actually useful to your packers as well!

The interactive 3D viewer works on all modern browsers that are currently supported by their vendors. In particular Safari on iOS older than 11.0 is not supported. If you use these devices (e.g. iPhone 5 and 5C and older, iPod 4th gen and older) you will need to disable the 3D Solution Viewer in the system configuration.


One of the first considerations for a Packing Solution is the Infill desired for the package. Previously you would have setup a special infill such as "Bubble Wrap" as a type of "Supplies" but now Infill has it's own Packaging Type with some new attributes:

You can configure a "Default Infill" and then override this default for specific products as-needed so unless you have special cases you only need to set it once! Because Infill is a Packaging Feature you can still control all of the other options as well such as whether or not to prompt the packer to use it, scan a barcode, etc.

New Product Attributes

Along with the new Packing Solutions functionality we've introduced a handful of new attributes that are designed to help the Packing Solution algorithms find the optimum solutions.

Valid Containers (replaces Special Container)

Previously you could set a single Special Container for a product but we've migrated this to a new attribute that supports multiple options. By default (no selection) a product will be able to be packed into any container that is "Use for Bin Packing: Yes" (described further down). This attribute just gives you finer control over what subset of containers can be used on a per-product basis.

Requires Infill

The default value for this new attribute is Use Default, but you can also set it to "None" for products that don't require infill, or choose a specific infill to address special needs for certain products.

Can Contain Other Items

Sometimes your products may have void spaces that can contain other items. While this feature is not fully implemented yet, you can set this attribute to Yes to indicate that if a non-overbox product with Can Contain Other Items: Yes is packaged with an overbox product but without an outer package specified, the former will be used as the overall package dimensions. In a future version we will be allowing you to specify internal volume dimensions to allow for the packing algorithms to make use of these void spaces as well.

Can Tip

To find the optimal Packing Solution the packing algorithms may try rotating your products on each axis. Use this attribute to make it clear that the product should not be packed on its side.

New Container Attributes

We've introduced some new attributes for Containers as well to support the new Packing Solutions feature.

Use for Bin Packing

You may have some containers at your disposal that you don't want the algorithms choosing due to various reasons. For example, you don't want to ship baseballs in a box designed for flagpoles. In this case you can set the flagpole box to Use for Bin Packing: No and then set the Valid Containers attribute on the flagpole products to include the flagpole boxes.

Weight Capacity

Set a weight capacity for your boxes to prevent them from being overloaded with heavy items or from exceeding your handling capacity. This will also help the packing algorithms choose heavy duty boxes over light-duty boxes when necessary.

Container Style

For now we just have Rigid Box but we will be adding support for new types in the future!


ShipStream has teamed up with Paccurate to offer you the best cartonization technology in the industry! These folks have been specializing in packing optimization technology for over a decade and it shows! Our tight integration with their API means you can receive all of the benefits of their technology with minimal effort and (at least for the time being) ShipStream is offering this service at no cost to you! Contact us to have this integration enabled after a quick consultation!

BeneShip and Paccurate℠ brands belong to BeneShip, LLC

Unresolved Shipping Method

When using "virtual" shipping methods which perform real-time rate shopping, it is possible that the system is not able to resolve a real shipping method that is valid for all items on the order. This is most likely due to some sort of mis-configuration such as a postcode that doesn't map to a valid zone. These orders will now be placed on hold with the new "Unresolved Shipping Method" status and if configured, an email will be sent to your address of choice.

Preprocess Packing Solution Scripts

Along with the paradigm shift of creating Shipments proactively, we've introduced a new type of user-defined script to help you have finer control over how an Order is split into Shipments. As a result we relocated the Sales > Order Scripts menu to System > Scripts so that all scripts can be managed in the same place.

The new scripts give you an incredible amount of control over how an Order will be processed into Shipments. You can do things like pair specific items together under certain circumstances, assign separate shipping methods for different subsets of an order's items, assign specific containers or infills to specific items and more! We challenge you to come up with a custom preprocessing requirement that we can't handle!

Packing Solution Overrides

Inevitably there will be some cases where your packers are unable to use the Packing Solution chosen by the system, or maybe you have some clever and enterprising folks who can outsmart our algorithms. In this case they can easily override the Packing Solution and specify their own and indicate if it is a permanent or temporary override. These actions can all be audited in the Packing Soluition Overrides grid.

Share Packaging Features

After you configure the Share Packaging Features option in System > Configuration > Catalog > General your clients will be able to select Packaging Features belonging to your shared merchant. Packaging Features belonging to other merchants will not be visible. This allows you to create Packaging Features that are available to all merchants (e.g. generic boxes) while keeping private ones that should only be available to a specific merchant (e.g. branded boxes, serial number formats, etc.).

Picking Classes

This release makes great strides in delivering simplified batching for complex operations by introducing Picking Classes. After Orders are processed into Shipments, ShipStream will automatically classify the Shipments into Picking Classes that you define using a broad array of criteria and even custom scripts. For example, you may define a Picking Class by matching Shipments that fit into a specific subset of containers so that your packing operations can be optimized for certain types of packages. A handy new UI allows pickers to easily generate batches according to these Picking Classes and a Cart Type so that the number of packages, overall volume and overall weight are constrained by preset limits to fit your warehouse needs. Creating a batch that is perfectly optimized to the user in real-time takes only seconds!

Cart Types

To compliment the Picking Classes you can now define your Cart Types and how many shipments a cart can hold for a specific Picking Class so that users may always get batches of the right number, weight and volume. Easily optimize your workforce and equipment, experiment with new cart designs and more without throwing a wrench in your batch creation.

Batch Container List

Now that ShipStream can tell your packers the specific containers to use for each Shipment, we've also made it easy to collect the containers needed to pack a batch. Just scan a packing slip!

Revert and Merge Shipments

If an Order gets automatically split into multiple Shipments but you still want to choose on the fly to process it as a single shipment you can now Merge shipments using a mass action on the Order page Shipments tab. If you Merge some Shipments and later change your mind you can use the Revert action to go back to the automatically processed Shipments. Of course, if you find yourself using this too often you can use a Preprocess Packing Solution Script to cause these to be processed the way you want automatically.

Default Third Party Billing

You can now make Third Party Billing either Optional or Required as well as assign a Default Third Party Billing Group to all orders at the Global, Merchant or Brand scope. You can still override the Third Party Billing option on new Orders or just leave them alone to inherit the configured default.

BOM Shipments Represent Pickable Items

The Bill of Materials interaction with Shipments has received an important update. While an Order represents the items ordered, the Shipments will now represent the items that are actually pickable to complete the order. For example, if your product is managed in inventory as cases but the final pick is for singles, the singles are clearly indicated on the Shipment rather than a fraction of the case.

This also makes it easier to determine the exact number of picks required to complete a Shipment and is generally less confusing when dealing with complex BOMs and Lots.

Clickable BOM Graphs

You can now click on any item in a BOM graph to navigate to the main page for the clicked Product or BOM, saving you time again when dealing with complex BOMs.

UI Refresh

We've refreshed the look and feel for the Admin UI and Client UI to take advantage of modern browsers' capabilities, decrease bandwidth required and generally provide a more pleasing aesthetic and consistent experience.

Require Tracking Number

You can now specify "Require Tracking Number" for all carriers and External Shipping Methods. If enabled, Shipments that are shipped offline will remain in Packing status until tracking numbers are added. Adding tracking numbers can be done easily through the Admin UI and Scanner UI, which helps to accommodate uncommon workflows like completing packing separately from generating the shipping label. By remaining in Packing status you can easily identify Shipments that are lacking tracking numbers.

Import Stock Location

You can now import stock locations from Operations > Warehouse > Locations > Import. You can import just the Locations, or include the product SKU or Barcode and a Quantity to also import the quantity on-hand (like a mass-cycle count).

Lots/Expirations/FIFO User Improvements

We've added Lot input capabilities on the Put-Away step to fix an issue where Lot Type was set after a delivery had already been processed and some other improvements to the lot data capturing forms.

Bulk Fulfill Order Updates

The Bulk Fulfill Order (BFO) system now operates off of the Shipments in "New" status rather than groups of Orders items. This allows you to take advantage of the power of the packing algorithms and preprocessing capabilities while still using BFOs to pick and pack your orders. In fact, you will be able to utilize the BFO workflow more often and more efficiently as the Orders will already be split optimally into Shipments with the appropriate items.

However, as a result, the "Split Orders" feature has been removed and if you used this functionality previously you will just want to make sure that the Orders are split into Shipments the way you desire automatically. For example, if you previously used "Split Orders: Into Singles" for a specific SKU you can just set the "Ship Separate" attribute for this product and the Order will automatically be split into separate Shipments which can then be grouped and picked using the BFO feature the same as before but without having to use Split Orders because they are already split!

Additionally, you can now filter and group Shipments on the BFO page using "Picking Class". By utilizing the power of the Picking Classes you can divvy up your workloads using just about any criteria you can think of and still easily use the BFO feature to pick more efficiently! For example, if you had a Picking Class for Shipments that required bubble wrap, you could easily filter the BFO page by this Picking Class making the task of identifying those Shipments as simple as selecting that Picking Class in the BFO filters!

Next Pick Preview

The pick screen now displays a hint to the picker regarding the upcoming pick so that the picker can know sooner whether they will be picking again from the same location or picking from a different location. Seconds matter!

Shipment Items Export

A new export format "Shipment Items" has been added to the Shipments grid providing one row per shipment item to aid in more detailed reporting.

Hide Inactive Warehouses

When you set a warehouse to be inactive it will now disappear almost entirely from the UI so you can focus on your active warehouses.

Multi-value Filtering

We've enabled multi-value filtering for Shipping Method, State and Country on the Shipment and Order grids.

Ready To Process Email Option

A new configuration option title "Only Accepted" allows you to skip sending the Ready To Process notification email when the ASN/RMA advances straight from Accepting to Ready To Process. This allows you to focus more closely on the case when the delivery is Accepted but cannot be processed because you are waiting for the SKUs to be added to the delivery.

Disable US Sanctioned Countries

The US government holds sanctions against the following five countries making it illegal to ship to them: Cuba, Iran, North Korea, Sudan, and Syria. These are now completely disabled in ShipStream to help prevent you from receiving orders for these countries or accidentally attempting to ship to them under any circumstance.

FedEx Delivery Instructions

The "other_shipping_options" Order field can be used to specify Delivery Instructions for FedEx Home Delivery.

FedEx Label Certification

We've added a feature and step-by-step guide to help you generate the labels needed for FedEx's label certification process. Having printed test labels for all FedEx services can now be done in seconds instead of hours.

Amazon MWS Saturday Delivery

Oops, apparently Amazon has a few undocumented Saturday delivery options for Amazon MWS. We've added these shipping methods so make sure to enable them in the configuration if you wish to be able to use them (they may be required for Seller Fulfilled Prime in some cases).

API Updates

Most API updates for this release are backwards compatible with the 2020.0 release, but some new fields and status were added accordingly. Please see the API docs for the latest information.

  • Allow HTTP Basic Auth for API authentication (making separate login optional)
  • Added order_item_id and package_data to shipment:packed webhook payload
  • Added multiple_warehouses to rate.quote response to indicate if the quote requires multiple warehouses to fulfill the order
  • Added desired_delivery_date to the Order Additional Data
  • Added special_supplies attribute which replaces special_infill and special_tape attributes for Products
  • Added valid_containers attribute which replaces the special_box attribute for Products
  • Added can_contain_other_items attribute for Products
  • Added submitted_by, submitted_by_type and submitted_by_id Order properties
  • Added new status for Shipments
  • Added unresolved status for Orders

Shopify Plugin Improvements

The Shopify plugin was updated to use the latest 2020-04 API version.

Performance Improvements

We've optimized queries on the grids to ensure sub-second response times even with millions of rows for most grid filters. Creating Batches and Bulk Fulfill Orders is now also faster because the Shipments are created ahead of time and just filtered and updated at run-time.

Various Other Improvements

This update includes dozens of other minor improvements and bug fixes focused on providing you with a faster and more polished experience.

How did we do?

Version 2020.2

Version 2020.0