Wholesale typically involves the bulk sale of goods to retailers for subsequent resale to the general public. Within ShipHero, the intricate wholesale process covers all facets of managing the movement of goods from your warehouse to wholesale clients. This includes comprehensive order processing, meticulous inventory management, efficient order fulfillment, seamless shipping coordination, and accurate invoicing. The new wholesale workflow will be outlined in this article.
Wholesale orders can be created and managed within the ShipHero platform and via the API. This article provides instructions on how to use the Wholesale flow within ShipHero's platforms.
For full API details and documentation, please visit: ShipHero Developer Portal where you’ll find the Public API Schema, Webhook Documentation: (Includes examples for ASN and Carrier Label Generation webhooks), and an End-to-End Wholesale Flow Example: This guide describes a complete workflow where the Public API is used to handle a Wholesale order entirely outside of ShipHero’s UI, from creation to fulfillment.
Things to Consider
- Dynamic Slotting Required: The Wholesale Flow is only available if you are currently using Dynamic slotting.
- Build Kits ONLY: Regular Kits are not supported in the wholesale flow. Regular Kits must be made into Build Kits before you will be able to process the wholesale order. More information about Kits can be found HERE.
- Staging Locations: An empty staging location must be assigned to each wholesale order and only one staging location can be assigned per order. The staging location is where you will move inventory to after picking. Once the order is marked Complete, the Staging location will be emptied and available to assign to a new wholesale order. To create a staging location go to Inventory → Locations → Add a location in appdot and check off “Is this a staging location?” box.
- No Partial Shipments: If an order is flagged as wholesale and has a backorder it is included in the total orders to process but it will not show in the Orders to Process list; all items on a wholesale order must be allocated to show in the Orders to Process list. The "Allow Partial" Flag does not work when an order is flagged as wholesale.
- No Split Shipments: Wholesale orders must be fully allocated to a single warehouse you cannot process a single wholesale order from multiple locations. If a Wholesale order needs to be divided between two locations you will need to create two separate orders for the full quantities that will be fulfiled from each warehouse.
- Retailers: Currently Retailers can only be set on a wholesale order via the API or from an SPS/EDI connection.
How to Set an Order as a Wholesale Order
For an order to show within the Wholesale workflow it must be marked/flagged Wholesale. This can be done two ways within ShipHero:
- Using Automation Rules: Create an automation rule with the Action "Toggle wholesale order flag based on specific order properties.
- Manual Toggle: on the order details page check the “Wholesale Order” box and then click “Update details”
Wholesale Page Overview
Understanding the Wholesale page and its components will make managing your wholesale orders easy. In this section we cover the basic overview of the information you can find and define the different terms used throughout the flow.
Wholesale Order Statues
Wholesale orders move through specific statuses throughout the fulfillment process based on which step you are completing.
| Wholesale Order Status | Definition |
| Default | The first status the order gets after creation. |
| Ready to Pick | The order has all the inventory allocated and is ready to pick. |
| Picking | Picking in progress. |
| Packing | Packing layout is being created. |
| Packed | All items were packed. |
| Generating Labels | The labels are being generated. |
| Ready to Print | All labels generated and are ready to print. |
| Warehouse Complete | Labels generated and printed. (Outbound Schedule starts here) |
| Fulfilled | Fulfillment is done, inventory left the warehouse. Fulfillment status in app.shiphero.com changed to “FULFILLED”. |
| Error Statuses | |
| Hospital | During mobile picking, pickers can mark a location as "hospital" if they encounter a problem. This prevents further picking from that location until either a new location is assigned to the order or the Inventory team resolves the issue and removes the "hospital" flag. Picking can proceed at other assigned, non-hospital locations. |
| Label Error | There was a problem with the label generation, could affect all or some labels. The order remains in Label Error until the user fix the problem and re-generated the labels. |
Wholesale Orders Lists
The wholesale order list provides a clear view of your wholesale orders, divided into two sections Orders to Process and Outbound Schedule. The top banner displays an overview of orders on each page. To view the details of each order select the specified view from the tabs below the banner.
Orders to Process
In the top banner you can see the total number of orders being processed and a quick snapshot for the total number of orders in key stages: "Ready to Pick," "Picking," and "Packing."
Key Features:
- Search: Find specific orders by Order Name or Order ID. Partial Search is available starting at the 3rd character.
- Filters: Filter orders by Status (wholesale order status), Type (Courier of Freight), Client (3PL accounts only), Retailer and Fulfillment Status (Default or Custom Status)
- Columns: Customize the displayed columns by selecting the Columns icon. Checked column names show on the data table; to hide columns, uncheck the box next to the column name.
- Export: Export the list to a CSV file.
- Sort columns: Reorder the list of orders by sorting the Prep by date and Ship by date columns.
Columns Defined:
| Column Name | Definition |
| Order | The order number |
| Type | Indicates whether the wholesale order is Freight or Courier |
| Client (3PLs ONLY) | The client account the wholesale order is associated with (created in) |
| Preview | Shows the thumbnails of the products on the order |
| Required | Total quantity needed for all the line items on the wholesale order |
| Status | The wholesale order status |
| Retailer | Set via the API or SPS/EDI workflows otherwise it shows as default. |
| Prep by date | The date the order should be picked and packed by. Needs to be manually set after order creation. |
| Ship by date | Pulled in from the Required Ship Date field on an order. Can be edited via the API, Manage Orders page or the Order Details page in app.shiphero.com |
Outbound Schedule
In the top banner you can see the total number of orders in the Outbound Schedule and a quick snapshot of the total number of orders in key stages: Awaiting Schedule, Ready to Pick Up, and Due today (scheduled for pickup today.)
Key Features:
- Search: Find specific orders by Order Name or ID.
- Filters: Filter orders by Client (3PL accounts only), Status (wholesale order status), Type (Freight or Courier) Outbound Progress and Retailer.
- Columns: Customize the displayed columns by selecting the Columns icon. Checked column names show on the data table; to hide columns, uncheck the box next to the column name.
- Export: Export the list to a CSV file.
- Sort columns: Reorder the list of orders by sorting the Prep by date and Pickup date columns.
Editing Options:
The list allows direct updates to outbound progress and pickup date you can edit these fields individually or in bulk.
- Individually: click into the field you want to update on the order and edit.
| Editing the Outbound Progress per order | Editing the Pickup date per order |
- In Bulk: Select the orders that you want to update then the field to update.
| Editing the Outbound Progress in bulk | Editing the Pickup date in bulk |
Columns Defined:
| Column Name | Definition |
| Order | The order number |
| Type | Indicates whether the wholesale order is Freight or Courier |
| Label | Shows status of label generation and when they were printed |
| Client | The client account the wholesale order is associated with (created in) |
| Retailer | Set via the API or SPS/EDI workflows, otherwise it shows as default. |
| Carrier | The carrier assigned to the order for generating labels. ShipHero does not quote/generate freight labels; for Freight orders the carrier will always show as Generic. |
| Status | The wholesale order status |
| Bill of lading | Manifest ID identifier |
| Outbound progress | Which part of the outbound process the order is currently in (Awaiting Schedule, Ready for Pickup, or Complete.) |
| Pickup date | The date the wholesale order is scheduled to be picked up |
| Prep by date | The date the order should be picked and packed by. Needs to be manually set after order creation. |
Wholesale Order Types
The wholesale flow offers two different order types, Freight and Courier. You can modify the Order Type for an order at any point before picking begins or after picking is completed, and up to when the order has the "Packed" status.
Note: You cannot change the Order Type while the order is actively in the Picking stage. More information on changing the order type and how it impacts your processing flows can be found in the next section.
- Freight (By default): Orders that will be packed and ship using Pallets as the shipping containers. Freight orders have specific fields in the “Order details” tab:
-
Courier: Orders that will be packed and shipped using Boxes as the shipping containers. Courier orders will be required to set a Carrier and Shipping Method.
- Supported Carriers: Generic, Cheapest, Fedex, UPS, DHL Ecommerce, USPS_MODERN, Purolator, Canada Post, Shippo, Canpar, Endicia, Firstmile, Veho and SendCloud
Changing a Wholesale Order Type
Changing the order type cannot happen during the picking process. As stated above, you can change the order type before picking commences or after picking is completed.
Changing Order Type Before Picking Starts
If you change the order type before any items have been picked into boxes or onto pallets within the packing layout screen, please be aware of the following critical impact:
All existing picking allocations for the order will be deleted.
Required Action: After changing the order type at this stage, you must re-select the picking allocations according to the requirements of the new order type before you can proceed with the physical packing process.
Changing Order Type After Packing Has Started (But Before "Packed" Status)
If you have already started packing items (meaning pallets and/or boxes are present in the packing layout) and then you change the order type, the system will automatically adjust the current packing configuration.
Important Note: Be mindful of these automatic adjustments when changing an order type after packing has commenced, as it directly impacts the structure shown in the packing layout screen. Ensure the resulting layout aligns with the requirements of the new order type before finalizing the packing process.
The specific behavior depends on the direction of the change below is the expected behavior and limitations of changing the order type From freight to courier and vice versa after packing has commenced.
Changing from Freight to Courier
IMPORTANT LIMITATION: You cannot switch an order from 'Freight' to 'Courier' after a 'Pallet' UOM SKU has been picked/packed.
- All existing Pallets currently defined in the packing layout for the order will be automatically removed/deleted.
- Any boxes that were previously assigned to those Pallets will now appear as individual, loose Outer Boxes within the packing layout. They will no longer be grouped under a pallet structure.
| 1. View before change is made: Select the the Order Type drop down and change to Courier. |
|
2. A prompt will appear with the following message, "Changing the order type will delete all pallets from the packing layout. Any stand alone items currently on pallets will be moved to newly created boxes. Courier orders only allow boxes and cases." Confirm the change by clicking Change or cancel the change by selecting the cancel button. |
| 3. This is the view of how the packing configuration changes from being packed in a pallet to a box. |
Changing from Courier to Freight
- A new Pallet will be automatically created within the packing layout.
- All existing boxes currently shown in the packing layout (previously likely loose or designated differently under the Courier type) will be automatically moved and assigned inside this newly created Pallet.
- After this automatic consolidation, you retain full flexibility: you can manually create additional Pallets if needed and rearrange the boxes between the available Pallets according to your packing requirements.
|
1. View before change is made: Select the Order type drop-down and select Freight. |
|
2. A prompt will appear with the following message, "Changing the order type will create a new pallet for all currently packed items. Pallets are mandatory for freight orders." Confirm the change by clicking Change or cancel the change by selecting the cancel button. |
|
3. This is the view of how the packing configuration changes from being packed in a pallet to a box. |
|
Canceling a Wholesale Order
When a Wholesale order is canceled, any items that were already picked and moved to a staging location will remain in that staging location.
- The system will not automatically return these items to their original storage locations.
- The user must manually put away the items from the staging location back to their respective storage locations.
Example: If an order was partially picked (e.g., 50 out of 100 units) and then canceled, those 50 units will remain in Staging and must be manually moved back using the Mobile “Putaway” workflow.
Resetting a Wholesale Order
When a Wholesale order is reset, the system allows users to restart the fulfillment process from scratch.
Tip: This feature is useful when the physical inventory has not been returned yet, allowing you to reuse the items already in Staging to quickly rebuild the order.
- All existing allocations, picks, and pack data will be cleared.
- Users can begin working on the order again as if it were new.
To reset a wholesale order:
- Open the order details page in app.shiphero.com.
- Click the Reset button and select Yes to confirm the reset.
NOTE: If items were previously picked and moved to a staging location, they remain physically staged. During the Picking Plan assignment, users can choose to pick from the Staging location instead of from the original inventory locations.