Force Local Pickup in WooCommerce
Local pickup is fairly easy to setup in WooCommerce, most store ownersare able to do that. One scenario that is not so easy is when a store owner wants to force local pickup for ALL products in the cart if a particular product or products are purchased.
For example a store might have something that cannot be shipped for either practical reasons (it’s a boat!) or legal reasons (the postal service will not ship it) and the only option is for local pickup. In this case if a customer purchase other products – say a life jacket to go with that boat – then the store owner would like to force all the products to be local pickup.
Our WooCommerce Table Tate Shipping plugin has a vast array of features, but in this case it has one very special feature that allows you to quickly and easily set up your shipping rules to cover the scenario
Basic Shipping Setup
For the purposes of this example we’ll assume the store has a pretty simple shipping setup that is based on the total price of the purchase and looks like this:
We’ll also assume that the store only ships to the USA.
To set this up we would first need to create the shipping zone:
To set up a shipping zone navigate to:
WooCommerce -> Settings
Then click the “Shipping” tab at the top of the screen
If you have not set up any shipping zones you should see a screen that looks like this:
From this screen you are able to add new shipping zones as well as edit any existing ones. To set one up simply click the “Add shipping zone” button and you’ll be taken to a screen to setup the zone
Assigning a Shipping Method
Now you have the geography of your zone all set you need to add a shipping method. A shipping method is simply the way in which shipping will be calculated. There some built-in shipping methods and there are many available as plugins (like our Table Rate Shipping plugin). You are not limited to just one shipping method, you can add as many as you want. The good news is our plugin is likely to fit your needs so you should be able to use just one shipping method, making your shipping setup easier and simpler!
To add a shipping method simply click the “Add shipping method” button
This will pop up a screen that allows you to select from one of the installed shipping methods:
Simply select the shipping method you’d like to add – in our case it will be “Table Rate Pro” and click the add “Add shipping method” button to confirm it. That will then add that shipping method to your zone and you will see it listed as one of the shipping methods similar to the screenshot below.
So now let’s go in and add our shipping, hover your mouse over “Table Rate Pro” and click the “Edit” link underneath Table Rate Pro
This takes you to a screen where you can begin to enter the shipping rules. Click the “Add New” link to get started
And you will be taken to the next screen where you enter the actual rates
We’ll first set up our simple shipping rules without the local pickup feature. Click the “Add New Rate” button at the bottom 3 times to insert 3 rows. We can then enter the rates that we want. As a reminder we want to achieve the following shipping rules:
The screenshot below shows the finished rules
In this example we have called this shipping “Standard Shipping” – this is the text customers will see in their cart when they match this shipping rule. You will also see the 3 rows at the bottom where we have set up the rules for the 3 tiers of shipping ($0.00 – $49.99, $50.00 – $99.99 and $100 plus) – note we use an asterisk (*) to represent unlimited in the Max value. The actual shipping cost is in the column called “Base Amt”.
As you can see in the next couple of screenshots the shipping calculates correctly based on the total purchase value in the cart:
So now we have the basic shipping set up and functioning as we want we can move on to the Local Pickup scenario. As a reminder the shipping rule we would like to implement is if a customer buys ANY product that is for Local Pickup then ALL items in the cart are forced to be local pickup. We’ll achieve this use shipping classes. We have set up 2 shipping classes; one to cover the Local Pickup items and one for everything else.
So now we have the shipping classes set up we can go in and create the rule that will get us the shipping behavior we want. It’s actually incredibly simple – take a look at the screenshot below.
I have highlighted the row we have added. It is important this is the first row – you can sort the rows simply by dragging them to where you want them. Essentially what this rule is saying is: if you have an item in the cart that has the Shipping Class “Local Pickup” and the total price in the cart is from zero to unlimited (so basically every shipping cart!) the charge ZERO for shipping. Also change the label that appears on the cart to the text “Pickup Only” (that’s the ‘Label’ column) then finally, and this is then important part we have set “STOP” to YES.
What this does is tells the plugin to not do any more calculations on shipping but to go with what it has already calculated. So in this case it will charge ZERO for shipping and change the label to “Pickup Only”. You can see the result in the screen below.
So as you can see it is very easy to force WooCommerce to always select a particular shipping method using our Table Rate plugin. We have only scratched the surface of what this amazing plugin can do, if you would like some more information take a look here at our WooCommerce Table Rate Shipping Plugin or feel free to reach out and contact us here