This article explains how Optimizely B2B Commerce determines packages for rating a customer order. Shipping rating services generally need to know how many boxes, what dimensions of boxes, and the weight of boxes to estimate the shipping rate. The default shipping engine in B2B Commerce uses the Order Packager to create packages and then consumes those packages to send to the rating service for estimation. The rating service then returns rates to B2B Commerce.
How the order packager works
The Order Packager is what B2B Commerce uses to break orders apart into separate packages for shipping. A visual diagram to specifically explain how the order packager works is provided at the bottom of this article.
First, the Order Packager looks at all of the products on the order lines from the customer order to see if any of them have a Shipping Override Amount. If all of the packages have a Shipping Override Amount, B2B Commerce will not rate the shipment. The Shipping Override Amount field is not exposed by default and requires a customization to expose it.
If there are order lines that remain, that do not have a Shipping Override Amount, then B2B Commerce will attempt to place each quantity of product ordered into a package. There are three ways the package can be filled:
When using the Shipping Override Amount field, be aware that it accepts null values; therefore, packages could be shipped at a cost of $0.
- B2B Commerce will attempt to find a predefined package set in the Admin Console > Shipping & Fulfillment > Carriers > Packages finger tab. If the product fits in the defined Length, Width, Height, and Weight, it will place products in that package until it is full.
- If there is not a defined package, B2B Commerce will make one based off of the values set by the weight of the product and the following Settings:
- Default Package Length
- Default Package Width
- Default Package Height
This package will then be added to the packages available to the carrier (Admin Console > Shipping & Fulfillment > Carriers > Packages finger tab), and be named "Auto-create Package for PRODUCTNAME".
- A third way is to ship the products as is, assuming it is already in a ship-ready package. This method requires some additional set up work in the Admin Console. to expose the ShipSeparately and the dimensional fields (shippingLength, shippingWidth, shippingHeight, shippingWeight):
- The Admin Console > Administration > System > Application Dictionary.
- Search for Product.
- Click Edit for the Product entity.
- Click the Properties finger tab.
- Search for "shipping".
- Click Edit for the Property Configurations that are to be exposed and change the necessary settings. Review the Working with properties in the application dictionary article for more information.
The following diagram show shows the process flow of the standard order package:.
Example: An order has two order lines with 5 of Product A and 3 of Product B. Neither of these order lines has shipping overrides. The diagrammed process above will happen 5 times for Product A and 3 times for Product B.