Fix incorrect handling of shipping carrier in Sales header
Current DEAR behaviour is highly erroneous when it comes to the Shipping / Carrier field in the sales header.
First, the search does not work if you don't use a shipping integration - which makes no sense at all. Given you have already implement search in Fulfillment -> Ship, is should be easy to extend this same search to this field.
More fundamentally, though, is the problem with the behaviour in this field is complete buggy and the result is a high likelihood of shipments being sent the wrong way.
are two easily repeatable tests you can try to show DEAR getting this fundamentally wrong and the significant risk to the end user/customer of the shipment going wrong.
Say we have two orders for a customer in our system. That customer has already been created and has a default carrier set to ‘Courier – TNT’.
1 has, in the sale header, a Carrier / Service of ‘Courier – TNT’ - and of course this was manually entered because you can't search.
Order 2 has, in the sale header, a Carrier / Service of ‘Customer Pickup’ (which is another of our defined carriers in DEAR settings).
Create a shipment on Order 1 – it will refer to the customer and use Courier – TNT – which, only by fluke, is correct for that order.
Create a shipment on Order 2 – it will refer to the customer and use Courier – TNT – which is incorrect for that order and will result in a potentially costly mistake if not picked up manually.
If you try another test – create a customer without a default carrier set.
Create an order with a valid value in Carrier / Service.
a shipment on that sale – it will use the first carrier in the carrier list and NOT the
one specified on the sale. This makes absolutely no sense.
have tried both of these tests just now and that is what happens. In my
testing it appears the Sale Carrier / Service field is entirely useless if you don't use a shipping integration.
What Needs To Happen To Fix This & Have Accurate, Safe Behaviour For Shipments:
- Search must be added to the Shipping / Carrier field in the Sales Header, even if you don't use a shipping integration
- When creating a new shipment - it MUST use the value in the Sale Header by default, if set. This is absolutely the only sensible logical behaviour, otherwise the field is entirely pointless.
- If the Sales Header Carrier field is not set, only then fall back to the default carrier set in the associated Customer record
- If that is also not set, fall back to a default carrier setting - NOT just the one that happens to be first in the list
- Thus you must also implement the option of setting a default carrier value.