Hold Until Date Analysis
From NewHaven Software Wiki
Analysis for the pre-processing (early fulfillment) of scheduled future shipping orders.
Contents |
Overview
Companies with heavy seasonal business may be taking orders well in advance of the holidays and, when the holiday is close to arriving, find themselves with the monumental task of shipping thousands of packages a day where they otherwise would normally process a fraction of that. The request from these companies is the ability to prepare these shipments weeks in advance, when they are slower, in order to even out the workload.
Current Challenges
The only way to manage future shipments in CMS today is to use the future fulfill option (which we call future ship.) It really is, however, a delay of the fulfillment. When a future ship order is fulfilled early, it alters the fulfill date and CMS expects that you want it to ship today. There is also no current facility to communicate a future pickup date to UPS Worldship or to delay the sending of shipping confirmation emails since CMS creates these as soon as the invoice is set as shipped.
Elements of the solution
- Ability to schedule a shipment for the future
- Communicate the desired pick-up date to the carrier via shipping integrations (Worldship and Dazzle at minimum)
- Post-dating a future shipping date or delaying the setting of the shipped date so the shipped date reflects the date it will actually ship (pick-up date), not when the label is printed
- Update packages with tracking numbers when labels are printed and have some visibility into the state the order is in (labelled but not shipped, and corresponding controls/lock-downs)
- Post-dating shipping confirmation emails to match pick-up date (so post-dating is taking place on package and invoice)
- Way to see, set, and alter the date in the CMS Manifest
- Means of deciding which orders to release and when without losing the pickup date (date to ship)
Concerns
- Does CMS need to enforce or warn about carrier's delayed pickup date limitations when releasing a HUD order early?
- USPS only allows 7 days advance (package must be shipped on the selected date)
- UPS allows 6 months advance (package can be shipped any time regardless of pickup date selected, date not printed on label)
- FedEx - Freight must be today, Ground/Air up to 14 days (package must be shipped on the selected date) (ShipJunction only supports future dates for Air presently)
- Should there be an indication to the operator that this order has been processed/labeled so they do not edit (outright deny edits?)
- When is the payment processed? Any concern with authorization on release if shipping/capture occurs after the auth expires?
- For an order that is labeled but not shipped, what is the recourse for an operator to modify or return the order (i.e. customer calls to alter gift message after label printed)
- If we are allocating early to orders shipping in the future, there is a greater chance the item will not actually be on the shelf when it comes time to pick (e.g. being wary of inventory adjustments or someone not knowing it was allocated so grabs it). Should any provision be made to explicitly handle this such as removing the item from the order without restocking or is it up to the user to simply do what they'd have to do today which is remove the item from the order and manually adjust stock (and contact the customer)?
- For items that have fixed availability (the primary impetus of wanting to allocate at the time of order) should they be set as discontinued to disallow back orders or do we need a new flag that doesn't set it as discontinued but also does not allow back ordering?
Ideas for the Solution
One possible way to handle these orders could be with a new Hold type called Hold Until Date (HUD) much like our Hold Until Complete (HUC) feature. These would be manually placed on HUD (vs HUC which CMS can automatically-set). This gives us the following benefits:
- Exposure that the order is being held until a certain date
- Allocation for future ships
- Means of identifying and reporting on orders through FulfillMan>Holds
- No -2 fulfillment invoice
- Released from Hold Manager (does release change/update any dates on the order, invoice, package, payment, etc?)
- Normally the hold data is deleted from Invoice_Holds when the hold is lifted. We'd need to keep that date somewhere in the order/invoice/package to facilitate proper processing of the label and its future pickup date. Date will undoubtedly have other uses for display, printing, confirmations, etc. (tbd)
- Integrations
- Mods to our XML integration to pass the pick-up date which we know to work
- Mods to UPSPackages to include the pick-up date for keyed imports (must be tested although we know Worldship can be set in a pick-up date mode so may not be needed)
- Endicia - TBD
- FedEx - Possibly not required for a phase 1 solution
- Like HUC, HUD would not allow for BO items, future ship items, or multiple invoices (or does it need to?)
Analysis
Proof of Concept
Ideas to test in special builds to help expose all needed aspects of the solution.
Step 1 - Label <> Shipped
In CMS disconnect any logic that would automatically set a shipped date based on the creation of a label or updating of a tracking number. We'll want to separate the two so a label can be generated without posting as shipped.
- How should this be automated? Possibly we set as shipped if label processed date <= date to ship otherwise leave to other mechanism to set as shipped (Unshipped, EoD update from Worldship, or ?)
HUD
Explore the "Hold Until Date" (HUD) idea. Order could be a mix of Hold Until Complete (HUC) for back orders and HUD for future ships and could only fulfill if both were met. Possibly an HUC fulfillment would be allowed to occur but remain on HUD if the date has not been met. How then are HUD's released and how would we handle an early release so its original date could be retained for use in passing through to the shipping integrations for Pickup Date. Seems to require a new HUD tab in Fulfillment Manager. Like Future Ships, seems there should be an override option. Could future ships and HUD be merged and released from the same list (like we do for HUC) or should they remain separate?
Use Cases
List of user stories/cases to better understand what they are trying to accomplish and expected behavior:
User C.R.
- Early fulfillment of future orders typically only done from Nov 15 through the end of the holiday season. Most orders are all for single item per recipient and the desire is to print the shipping label in advance since the weight is known and is judged to be inefficient and impractical to weigh each package both due to known weight in advance and lack of space in the warehouse.
- No micro-managing of orders to release. Releasing FIFO in small batches of 25 presently (due to limited space/staff).
- Currently using a UPS Crossware custom solution to monitor our UPS XML and grab the appropriate future ship date from the CMS database. Ideally any solution implemented would do away with the Crossware piece.
- Using a custom utility RWD wrote to convert spreadsheets of corporate orders into our XML format. This would likely need to be modified to make use of HUD instead of future ship dates (if HUD is settled on).
- They are using CV3 for their web orders, would need a way to translate their future ship orders to HUD orders on import.
- Currently producing gift cards by hand which they need to get away from. The idea of an integrated form (i.e. ShipJunction) seemed ideal with picking details, detachable gift card, and peel off shipping label. They are pretty set on having USPS shipping capability due to cost savings, now confirmed this is an option in ShipJunction.
- If SJ is an option, we'll need to explore the Staging Module and/or export mods that could be needed (e.g. pickup date) and of course see if their items can be setup as ship in own box.
- They suggested that they could be quite happy to have CMS set a shipped date today with an advanced ship date and have their confirmation emails go today, saying that they would change the wording in the email to indicate a label has been generated but hasn't shipped yet. We need to confirm if they need the pickup date included in that email.