I have spent the last few hours reading posts and chatting with Shopify support to find a solution to my problem without success.
I need to prevent customers from entering PO Boxes as their shipping address during the checkout process. I do not want their order cancelled if they happen to enter a PO Box. I would like a message to appear that PO Boxes are not accepted (or a similar message that can be customised).
I have seen this requested by other Shopify users in the past and yet it is still overlooked or simply ignored.
Surely there should be more customisations available at checkout to ALL Shopify users without having to find a Shopify expert to create an app that doesn't do the job.
Diana here from the Shopify Support Team.
I totally understand where you're coming from when you say you're wanting more customizability options in the Shopify checkout. While we do currently offer some superficial checkout customization (like adding logos, banners, adjusting text, etc.) the reason we're so strict about what can and can't be customized is because we don't want to jeopardize the PCI-compliance of our checkout.
When you sign up to host your store with Shopify, we're proud to offer a secure checkout with your store, no matter your plan, the size of your business, or your own levels of web knowledge. If we compromised on checkout customizations, being able to verify that every single customization made is still 100% PCI-secure would be beyond our scope, and we couldn't realistically promise the same security that we do now. Since the financial security of your customers is of the utmost importance, we've had to impose the tighter limit on what is customizable at this time.
That being said, I'd still like to suggest some options for you. While there's currently no coding options for you to forceably reject a PO Box address during checkout, you could conceivably code in an 'Agree to Terms of Service'-type checkbox into your cart to let them know about your policy on PO Box addresses before the checkout begins. Alternatively, you could take advantage of your Theme's language editor to adjust the default phrasing of the 'Shipping address title' from "Shipping address" to something like "Shipping address (PO Boxes will not be available for shipping)".
I hope this helps you move closer towards what you're aiming for with your checkout!
This is a careful diplomatic response to this clearly years-long issue, but unfortunately it's just not acceptable. The obvious underlying feature request is simple and requires no customizability by the shop owners: Customers should not be allowed to proceed with an order if non postal service shipping methods are selected with a "PO Box", "P.O. Box", "po box", "p.o. box" string match in the street address field. If that is not possible, please explain to your customers why exactly that is not possible while maintaining PCI compliance, or this question will continue to persist and Shopify customers will become more irritated or leave the platform.
I followed the advice to "Alternatively, you could take advantage of your Theme's language editor to adjust the default phrasing of the 'Shipping address title' from "Shipping address" to something like "Shipping address (PO Boxes will not be available for shipping)". However, it does not reflect the changes in the live store. It doesn't even seem like Online Store / Themes / Venture / Language (English) even controls it as it shows two address fields and my site only shows one.
Taking a look here, this feature isn't something that we offer natively at this time, however, I was able to find an app called "Address Validator" which should help with this. Here are a few reasons why I suggest this app:
Outside of this, I've also sent up a feature request to our products team so they can look into this further. Should this be something our teams are able to add to the platform, they will do so in a future update!
Given Shopify refuse to address this issue (along with many other basic issues) I have sought help.
Address Validator was an app that Shopify have suggested and it never did fully block the PO Boxes from being used, however I have written to the developer and he has added this feature to prevent users from proceeding with PO Boxes. I have attached his instructions below.