What am I missing? I need to prevent people with PO Box's and APO's from choosing the UPS Ground (realtime) shipping method, as in, don't even display it. Surely this possible? Sorry if this is a duplicate thread, we all know the search on this forum blows and the knowledge base is worthless.
Not by address type. Very hard to actually identify an address type for a PO Box (people can be sneaky).
If your customers are honest, just add “(no PO/APO addresses)” to the shipping method description if it's a general problem for you.
That's what I was afraid of. The problem is that people ARE sneaky, and they will ALWAYS choose the cheapest shipping method, even if they know that shipping method isn't valid for their address. It seems like most people think that once they've seen the “your order has been placed successfully” message they think they've entered into a “the customer is always right” contract with us and that we have to “honor” the price of their dishonesty. I mean, have you ever called or emailed a customer and said “If you want us to ship you order you're going to need to pay us an extra ___ dollars because you chose an invalid shipping method”. 9 times out of 10 the customer replies with “if it's not a valid shipping method for my address then why did you give me the option.” That's why i'm trying to get this fixed.
There is regexp on addresses for locations, and i can alter the price of shipping (in manual mode) based on location, but why can't i opt to not allow the method for a location instead of just raising or lowering the price? Sorry for the venting…
Hmm, imho opinion people are actually not that sneaky… and very fair. I'm sure if you ask them nicely not to select a certain shipping method for PO box deliveries 9 out of 10 will do it.
You can always just not process their order and not charge their credit card (if you charge at time of ship rather than time of sale).
You could probably do a bit of custom work to exclude certain service_id's if some condition is met. If you know what you want to exclude and you know which services you want to exclude you can add a hook into the cart that will check that before the rate request is done for that service. It's probably an hour's work. But there would be no admin UI associated with it. I've recently done this for someone who wants to exclude FedEx ground from Canadian customers.