Adding ShipByDate, or EstimatedShipDate to shipments

Post feature requests to this forum and a pre-configured poll will automatically be created for you.
Post Reply
skhvatkov2010
Ensign (ENS)
Ensign (ENS)
Posts: 8
Joined: Mon Oct 11, 2010 4:12 pm

Adding ShipByDate, or EstimatedShipDate to shipments

Post by skhvatkov2010 » Wed Apr 20, 2011 8:03 am

In our particular store implementation, new orders may contain from 1 to 4 shipments which need to be shipped weekly rather than all at once. We auto split orders into multiple shipments and use ShipMessage field to store a date when a particular shipment needs to be shipped. Also, those orders can be set as auto-renewing, so once the last shipment is shipped, a new order is placed (using recurring payment option that was stored on the first order) and shipments are set up again to be shipped every week.

We created a modified shipment manager screen that displays all shipments that need to go out based on the date in ShipMessage field. This way order processors can get a list of their daily shipments that need to go out, print out pull sheets and packing lists only for the shipments that need to go out now, and ignoring (for the moment) any future shipments that will need to go out next or the following weeks.

It works, but doing so prevents users and admins from adding notes to the shipments. If only there was a Date/Time field that could be used for this purpose.

OVH
Ensign (ENS)
Ensign (ENS)
Posts: 3
Joined: Tue Apr 05, 2011 5:43 am

Re: Adding ShipByDate, or EstimatedShipDate to shipments

Post by OVH » Fri May 06, 2011 6:23 pm

I was going to recommend using the ShipDate property, but the approach has several problems.
  • Unlike the ShipMessage property, ShipDate can not be set or changed in the order administration unless you choose to 'ship the items'. This is not a big problem and can be 'fixed' by changing some of the admin pages.
  • Which brings me to my next point. Even if you change the admin page(s) to allow setting the ShipDate without 'Shipping the items', it still wouldn't work. Whether a shipment has been shipped or not is determined by the ShipDate property (IsShipped property internals), if the ShipDate property is not set ('Null' or equal to/lower than 00-00-0000 00:00:00) then the shipment is 'not shipped'.
  • Furthermore, the shipment status of the order is determined by whether all shipments are shipped or not (if it has shippable items), and it is recalculated every time you view the order in the order administration.
Why am i telling this? Well, as i see it, there are several solutions.
  • You could fix the IsShipped property and only return true if the ShipDate is equal to/lower than the current date and time, this way the ShipDate can also be used to store the estimated ship date. The problems i see with this approach are:
    • When the shipDate exceeds the current date and time on the server, the shipment will be shown as being shipped.
    • If the server date/time gets changed drastically (unlikely), some orders may show a different shipment status.
  • This is more of an extension to the previous solution and it would fix the first problem i mentioned. Create a boolean property for the shipped/unshipped status of an order shipment. But this would require a database schema change and several changes to CommerceBuilder and AbleCommerce user accessible code.
  • Last but not least, your solution. The creation of a new property (ShipByDate/EstimatedShipDate) for the OrderShipment object. This would also require database schema and CommerceBuilder api changes but it seems to be the most reasonable solution.
I'd like to second this request, but not for the reasons listed by skhvatkov2010. I want to use this feature to display the estimated shipment date to customers.

skhvatkov2010
Ensign (ENS)
Ensign (ENS)
Posts: 8
Joined: Mon Oct 11, 2010 4:12 pm

Re: Adding ShipByDate, or EstimatedShipDate to shipments

Post by skhvatkov2010 » Mon May 09, 2011 8:10 am

Perhaps a more flexible way would be to create something like CustomFields collection for shipments. Any number of fields and data could be added to the shipments then. Both BasketShipment and OrderShipment classes would need to be updated to transfer the data from the basket to the order, but the added flexibility would be great.

Post Reply