If the client wants to collect a parcel from the warehouse directly instead of it being shipped by a courier, the best way to handle this would be to setup a CourierService called "Client Collection" or something similar.
This will then appear as a drop down courier service when place orders or selecting couriers.
Charging - 3PLs only
If you don't want to charge the Clients for collecting parcels you'll need to setup a Zero price against the courier service.
This will stop orders going into Invoice failed.
Make sure you tick - Exclude from Auto Determine otherwise Client Collection might be selected as its' the cheapest courier service.