- Creating Packing Solutions
A "Packing Solution" represents a set of one or more specific containers that is presumed to be a valid solution to packing a set of items with known physical properties and restrictions. Put simply, it is an answer to "how can I pack these items into one or more boxes"?
There are many inputs to this question and multiple possible answers. Any tiny change to these inputs can theoretically cause an otherwise valid result to either no longer be valid or no longer be optimal.
ShipStream's Packing Solution feature makes it easy to harness the power of modern computing without tying your hands to it by combining multiple advanced computational algorithms, training with historical and real-time user-generated data and advanced features for handling special cases.
The inputs to the Packing Solution algorithms include:
- Product Attributes
- Goods Type
- Requires Packaging
- Can Contain Other Items
- Valid Containers
- Special Supplies
- Bulk Quantity
- Unit Quantity
- Max Per Package
- Ship Separately
- Ship Separate Tag
- Can Tip
- Container Attributes
- Weight Capacity
- Satisfies Overbox
- Container Style
- Use for Bin Packing
- Infill Attributes (one Infill is chosen for a group of items based on priority. See Infill)
- Allow for Merchants/Stores
- Disallow for Merchants/Stores
- Minimum Thickness Each Side
- Minimum Thickness Top and Bottom
- Infill Priority
- General > Packing Solutions > Infill
- General > Packing Solutions > Containers
- General > Packing Solutions > Max Package Weight > *
- General > Packing Solutions > ShipStream Packer > Enabled
- General > Packing Solutions > Paccurate.io > Enabled
If any of these inputs change, the existing Packing Solutions may be invalidated requiring an order to be reprocessed. In some cases this will happen automatically but it can be performed on-demand using the "Reprocess Shipments" mass action on the Orders grid.
The process of generating Packing Solutions can be seen on the Order Processing Loop highlighted in red:
Creating Packing Solutions
Since there is no one-size fits all, ShipStream expects that multiple Packing Solutions may exist for a given set of items and that the user may wish to choose their "Preferred" solution or let the system choose one. The possible sources for a Packing Solution are:
- Training from historical data (a user completes packing a shipment)
- ShipStream Packer - an internal bin-packing algorithm
- Paccurate.io - a third-party premium bin-packing service
- User-provided solutions created via the ShipStream API
If there are multiple solutions available, ShipStream will choose the one with the least number of packages and then the one with the lowest amount of "void space" which is the container volume minus the volume of all of the items.
If there are no providers available or all providers fail to provide a solution the system will fall back to using the Max Package Weight limits to divide items by weight.
Enable the Packing Solution Providers you wish to use in the Configuration under General > Packing Solutions.
If ShipStream chooses a Packing Solution that does not work in practice for some reason, there are a few different options described below:
- Choose another "Preferred" Packing Solution
- Disable a Packing Solution
- Override a Packing Solution
- Preprocess Scripts
Choose another "Preferred" Packing Solution
You can override the normal prioritization of Packing Solutions by clicking "Make Preferred" on a Packing Solution page. There is no "Preferred" solution by default so this flag is only set when a user chooses it. This will cause that solution to remain the preferred solution for that exact set of items until another solution for the same set of items is marked as the preferred solution. If there are multiple solutions available for a set of items you can see the alternatives by clicking the "Alternatives" tab.
Disable a Packing Solution
If the system happens to generate a solution that is invalid the user can Override the chosen solution in the Packing UI and choose "Disable solution" or on the Packing Solution page click "Disable". This will prevent it from ever being used again. Packing Solutions are normally not deleted as they are kept for historical reference.
Packing Solution Overrides
In the Packing UI, if a Shipment has a Packing Solution, the packer will be required to scan the container barcode for the container specified by the Solution to confirm. If the packer scans a different container there are two different behaviors based on the "Scanner > Packing > Require Manual Packing Solutions Override" configuration.
Manual override vs Automatic override
If "Require Manual Packing Solutions Override" is "No", the Packing Solution will automatically be overridden with a new Packing Solution using the container(s) scanned by the packer and this new solution may or may not become the preferred solution depending on the priority and properties of the alternative solutions.
If "Require Manual Packing Solutions Override" is "Yes", the packer will be required to submit an override.
The reasons that a packer may choose for an override may be configured at System > Configuration > Operations > Packing > Packing Solution Override Options.
Creating a Packing Solution Override
If a packer encounters a Packing Solution that is sub-optimal for a shipment they may create an Override by tapping the current Packing Solution (indicated in the red box below) and then tapping "Override". The packer must then proceed to specify a reason for the override and choose an alternative Packing Solution, if there is one, or choose "Create New Solution".
The packer may choose to "Disable solution" to prevent the overridden solution from being assigned to shipments in the future. This will immediately take effect on all other shipments that would have used the overridden solution.
A history of all overrides, whether manual or automatic, is available under "Shipping > Packing Solution Overrides".
There can be any number of reasons that you may want a different behavior than is provided by the dimension-based algorithms. For example you may want to ensure that a specific combination of products always is packed with each other or separately or in a specific set of containers. In this case you will likely want to use a Preprocess Packing Solution Script.
One of the more powerful aspect of Packing Solutions is the ability to recognize similar products by key product attributes. The system will use all the inputs listed above in the Inputs > Product Attributes. When two or more products share all the same values in these attributes, when a Packing Solution is created for one of these products it is also valid for the other products. These Solutions are still separated by Merchant. The great benefit is if a Merchant has a family of products that only differ by color, material, etc.... Then all the valid Solutions for one of these will also be valid for the other items.
Client UI View
In the Client UI the Packaging Solution is shown on a Shipment's Container view. Before a Shipment is marked Packed the view will show the suggested Container's info:
- Items — the number of line items that should be placed in this container
- Weight — the calculated weight of all the line items
- Volume — the total interior volume of the container in cubic inches
- Void Space — the void space in cubic inches and the percentage of void space
There will also be a button, Show Container, that will show the 3D viewer if the Packing Solution was created by the System.
After the Shipment is marked as packed the view will change slightly so that to view any of the Container info the user will have to click the Show Container button. Clicking on the button will show the 3D view and the Container info. However if the Packing Solution was created by a Packer or by Training from a prior Order, then only the Container info will be shown without the 3D viewer.