Table of Contents

Version 2022.0

Colin Updated by Colin

July 1, 2022

Shopify Plugin Improvements

Setting up a Shopify integration is now easier than ever with a newly designed user interface for configuring subscription advanced shipping options.

Mapping shipping methods to carrier services
Translating Shopify's shipping methods to ShipStream shipping methods
Update Impact: No action needed. Existing plugin subscription configuration is automatically migrated to the new UI fields.

Magento Plugin

You can now connect ShipStream directly to your Magento 1 / OpenMage shopping cart! This integration features near-real-time data syncing in both directions, easy mapping of shipping methods and a simple setup and configuration.

OpenMage is a community-supported, fully-compatible fork of Magento Community Edition which has kept one of the greatest shopping carts of all time alive and thriving.

See the Magento 1 / OpenMage plugin setup guide for more information.

Update Impact: No impact, but please contact support to request the plugin to be activated to enable it for your users.

Manifest Trailer #

When sealing a manifest or loading a manifest you may wish to record more information about where the manifest was loaded such as a Trailer number, driver name, etc. The new "Trailer #" field can be used for this purpose and can be configured to be either optional or required.

Sealing a Truck/Trailer container type:

Loading all other container types:

Update Impact: This feature is disabled by default. Update configuration at System > Configuration > Warehouse > Scanner > Loading > Require Trailer # to enable this feature.

ASN Shipment Type, BOL and SCAC Fields

ASNs now support three new pieces of information: Shipment Type, Bill of Lading (BOL) and SCAC (Standard Carrier Alpha Code).

BOL and SCAC fields may be either disabled, optional or required, allowing you to enforce stricter input requirements of your users and thereby helping you to identify inbound deliveries more efficiently and more accurately. The SCAC field suggests the most common carriers making it easy to find the correct code and avoid typos. See ASN Special Fields.

Update Impact: These fields are enabled and "Optional" by default. You may wish to disable these fields or make them required in the configuration at System > Configuration > Warehouse > ASNs > General > BOL Input/SCAC Input. New ASN grid columns are added unless the fields are disabled.

Improved Actionable Reports

We've refreshed the design and expanded "Actionable Reports" to work for RMAs, Cancellations and Other Deliveries now in addition to ASNs which were already supported. These reports are sent once a day in the morning to provide merchants with a quick snapshot of each delivery type and remind of any items that require their intervention such as adding items to an empty delivery that has been received and cannot yet be processed or committing a delivery that has already been put-away.

Additionally, the "Committed" email configuration was relabeled to "Completed" and this email is now sent when a delivery is completed with no put-away or commit step (such as when all items are damaged so there is nothing to put-away or commit).

Update Impact: No action needed. See Actionable Reports / Configuration for setup instructions.

Packing Solutions Improvements

Allow for Shipping Methods

Previously the "Allow for Shipping Methods" attribute of a container was only used for validation when a user chose the container during packing. Now this attribute will also be used to inform the Packing Solutions so that a Packing Solution will depend on the shipping method and containers that are only allowed for specific shipping methods can safely be included in the container selection and rating process.

Enabling/Disable with Parent/Child Solutions

Packing Solutions requiring multiple packages consist of multiple "child" Packing Solutions. The behaviors around disabling Packing Solutions with respect to parent-child relationships have been updated to align more closely with typical user assumptions and expectations. Specifically the new rules are:

  • Disabling a child will always disable its parents
  • Enabling a child will enable its parents only if all of the parent's children are enabled
  • Enabling a parent will enable all children, and will also enable other parents sharing children in common if all of their children become enabled
  • Disabling a parent does not affect any other solutions
  • Disabling or enabling a solution will also copy that status to all other solutions with the same solution signature. The relatives of those solutions are then also updated according to the rules above

Several improvements were made to the Packing Solutions grid and overall performance of Packing Solutions including automatic cleanup of unused Packing Solutions.

A Preprocess Packing Solution Script may now call bucket.setContainers(false) to prevent any solution from being applied to the resulting shipment.

The handling cost is now computed separately for each Shipping Method.

Update Impact: No action needed.

Estimated Total Weight and Shipped Weight

The Shipment block will now show the Estimated Total Weight which includes the weight of packaging features such as a box. Additionally, the Shipped Weight was added to clearly convey the combined measured weight of each package.

Update Impact: No action needed although some grid columns were added or relabeled.

Improved Hold Order

You can now set a specific time of day when placing an order on hold, giving you greater control over your order management workflows.

Additionally, a comment is required when placing an existing order on hold to encourage better record keeping and communication.

The Create Order page, API, Import and Scripts all support a time component as well while maintaining backwards compatibility.

The "Hold Until" time will appear on the order page unless the scheduled hold is canceled.

Update Impact: No action needed. Minor changes to user interface for both Admin UI and Client UI to support specifying a Date or Date and Time.

Improved Origination Dates

When receiving inventory that is assigned to a Lot Type ShipStream automatically tracks the "Origination Date" to help ensure FIFO/LIFO if needed.

For RMAs specifically, received inventory will now be given a fixed date of 2000-01-01 to ensure that returned inventory is not considered new inventory and to improve the ability to combine returned inventory in the same location if using "Allow Mixing Inventory: No".

Additionally, when performing put-away, the origination date will be ignored if there is no conflict for Lot Number or Expiration Date.

Update Impact: No action needed.

Tracking URL Pattern for ESM

A "Tracking URL Pattern" can now be supplied for External Shipping Methods which will allow users to click a link and integrations to receive the url which allows the end user to track the shipment on a third-party website.

Update Impact: No action needed.

Grid Sorting and Filtering Indicators

It is now much more obvious when you have custom grid filtering and sorting applied because the "Reset" button has been replaced with separate buttons that only appear when custom filtering or sorting is active.

Update Impact: No action needed.

Draggable Modal Dialogs

Sometimes you want to see something behind a modal dialog without closing it. Now you can drag it around by the header!

Update Impact: No action needed.

Default Goods Type

The default value for a Product's "Goods Type" is now configurable including per-Merchant. In the UI, the default goods type is selected automatically when creating a new product. For product import and dataflow, if the goods_type column is empty or missing the default value will be used. An error is thrown when saving a product with no goods type set if no default is configured, or the configured default is not allowed.

Update Impact: The new default goods type is Not Regulated so if this is not your desired behavior please update the configuration after the upgrade at System > Configuration > Catalog > Catalog > General > Default Goods Type.

Export Grids Permission

To help you tighten up your security we've added a new permission called "Export Grids" that is required to use the Export functionality on all grids.

Update Impact: Users will no longer be able to use the Export feature until the Export Grids permission is added to their User Role.

Other Improvements

Shopify Plugin

  • Updated configuration to support Shopify's transition from "Private apps" to "Custom apps".
  • Fixed a bug which caused a Shopify plugin subscription to be duplicated in some situations.
  • Added "Custom App Secret Key" to support Custom apps and proper webhook authentication when using Custom apps.

EasyPost Integration

  • Added support for using Easypost multi-package requests (Order API).
  • Fixed EasyPost does not return correct rating data for GLS when using "one-call buy" (uses "two-call buy" method for GLS orders).
  • Added ability to override the EasyPost API Key for each Shipping Account to support shipping using different EasyPost accounts on the same instance.


  • Fixed designation of some US territories and freely associated states as domestic/international for USPS and other carriers. Bifurcated domestic/international designation from whether or not documents are required.
  • Added "Allowed Warehouses" configuration section to each carrier, configurable per-merchant. This allows a carrier to be disabled for one or more merchants at a specific warehouse while still allowing it at another warehouse.
  • Updated to use "half-up" rounding for FedEx and UPS dimensions reporting/calculations to more closely match the carriers actual behavior (for example when applying additional handling surcharges).
  • The "Terms of Sale" field will be properly submitted as "DDP" or "DDU" depending on the Duties Payor of the order.
  • Calculate an "additional_surcharge" for USPS packages according to the USPS Product and Service Changes for Jan. 2022" made effective on the effective date: April 3, 2022.
    • Longest side exceeds 22 inches, but less than or equal to 30 inches: $4.00
    • Longest side exceeds 30 inches: $15.00
    • Volume exceeds 2 cubic feet: $15.00
  • For USPS integration the correct container type between "Package" and "Large Package" is submitted based on the package dimensions.
  • Fixed some issues with shipping Dangerous Goods via FedEx Express methods (air).
    • Renamed 'Limited Quantity Accessibility' to 'Dangerous Goods Accessibility' and apply to air shipments
    • Set Regulation to IATA and convert units to KG for air shipments
    • Remove "OVERPACK" indicator unless container is an actual overbox
    • Remove "ALL_PACKED_IN_ONE" unless there are multiple UN IDs in the same package
    • Always set PackingGroup and remove "UN" prefix for IATA (air)
  • Added support for using FedEx Ground Economy for Return Labels.
  • Fixed a validation error preventing use of Third Party Billing in conjunction with Virtual Shipping Methods.
  • Fixed an issue with generating labels for BFOs containing shipments from multiple carriers.

Admin UI

  • Replace "Choose Merchant" select box with more easily searchable "Merchant Filter"
  • Fix issue where editing a delivery to add products removes the existing products.
  • Fix issue where attribute should not be visible on Edit Product page that belongs to a merchant that is not included in "Allow for Merchants" property.
  • Fix duplicate ajax requests when changing new picking batch options.
  • Quick-scan to navigate now gives precedence to product SKUs over delivery tracking numbers.
  • Return global search results for all warehouses regardless of current warehouse.
  • Select "show all data" option by default for new admin users.
  • Remove warehouse selector and always assume "show all data" option for single-warehouse users.
  • Use native HTML5 date inputs for grid column filters.

Client UI

  • Fix issue where editing a delivery to add products removes the existing products.

Scanner UI

  • Add success message to notify user when last shipment of a batch is packed.
  • Allow Packaging Features to be packed as shipment items.
  • Allow "Weight Difference Threshold" to be configurable at the Merchant scope.
  • Support shipping label tracking barcodes which are a url containing the tracking number as the last part of the url.
  • Prevent packages of shipments which have requested to be canceled from being loaded.
  • Uniqueness of collected data (e.g. serial numbers) is now checked server-side and will throw an error if the same serial number for the same merchant is used within a three-day period.
  • Fixed a bug which prevented packing multiple packages in some situations.
  • Fixed a bug where a blank screen could be shown when navigating to the scanner UI processing screen in some situations.
  • Fixed incorrect shipment count in Create Batch dialog.


  • Added support for Importing Bill of Materials using CSV, Excel or JSON format.
  • Added support for backorders, dynamic_allocation, and virtual_inventory fields in Importing Products.
  • Added support for tracking_url field in External Shipping Method API response format to allow ESMs to return a custom tracking url.
  • Added the UTF-8 Byte-Order-Mark to CSV exports to fix encoding issues with UTF-8 characters.
  • Add order status history when a shipment is reverted/unregistered/canceled.
  • Fix issue where some shipments could not be added to batches when they should have been.
  • Fixed the delivery Receive By date was not set on acceptance completion if the delivery had already started processing.
  • Fixed shipments not regenerated in some cases when order data which could affect order processing is updated (other shipping options, signature required and Saturday delivery).
  • Fixed "Shipping method changed from x to y" comment added in some cases when there was no change.
  • Fixed backordered items are no longer added to an RMA when creating an RMA from the Order page.
  • Fixed a bug with Relocation causing the record to be left open instead of marked as Complete.
  • Fixed an internal error with the order.cancel API method.
  • Fixed a bug where an item is added to a cancellation that isn't found on the original shipment.
  • Fixed a bug with "Up to X Shipments" Backorder Policy causing an incorrect order status in some situations.
  • Fixed missing rows on Products Ordered report.
  • Fixed a bug when performing a Relocation after a Lot Type is removed from a Product.
  • Replaced the "Relocate" action in the Stock Movement Log with separate actions for "Push" and "Pull" for greater readability.
  • Various additions and improvements to System > Enumerations.
  • Fixed support for setting shipment.external_id = shipment.shipment_id in Prepare Shipment Script.
  • Updated list of regions for Ireland.

API Changes

  • Added delayed_ship_date field to response of Order API endpoints. The delayed_ship_date input field now supports date and time as well as a date without a time. The requested_ship_date field is no longer affected by or related to scheduled holds.
  • Added order:shipping_options_changed webhook topic.
  • Added order:address_changed webhook topic.
  • Added copies_printed and confirmations fields to Order and Order Instructions APIs.
  • Added manifest_courier_code and manifest_courier_name to the Package details for the Order and Shipment APIs.
  • Added merchant_code to Order API.
  • Added additional_surcharge and additional_surcharge_unit fields to rate.quote API method. These new charges are automatically added to the shipping_cost so it is not required to add them if you are only using the total.
  • The IDs of unregistered shipments are now included in the order:shipments_updated webhook payload.
  • The IDs of shipments cancelled via the "Confirm Cancellation" button are now included in the order:shipments_updated webhook.
  • Changes to the Target Ship Date will now trigger the order:shipments_updated webhook.
  • Fixed some duplicated data in package_data property in Order and Shipment APIs.
  • The rate.quote API will no longer return $0 rates when there are errors preventing the rate from being resolved.

Grid Changes

  • Added "Volume" column to Product and Packaging Features grids.
  • Added "Address Classification" to Order grids.

How did we do?

Version 2022.1

Version 2021.6