🎉 Black Friday Month Deal: Save 20% on Premium Bundles! Create Unlimited Shipping Scenarios with ease. Don’t hesitate—offer ends November 30th 🚀 Learn more →
The customers simply love local pickup! According to the latest research, nearly 67% of the US shoppers picked this method while placing an order at least twice in the past six months. That’s why implementing the local pickup to your WooCommerce store is an idea you should definitely give a try to! It’s easy to set up, can boost your sales, and its configuration takes only a few minutes. Interested? Just keep on reading…
It’s a popular that allows customers to pick up purchased products directly from sellers. It’s an alternative solution that can be simply implemented as WooCommerce . Usually, this way of delivering products is a cheaper alternative for customers. Especially if it involves regional stores. This solution will also work great if the item you’re selling is large or just difficult to ship.
, however, should not be a transfer of responsibility for preparing and collecting the to the . It is important to make the process as convenient as possible for clients. Make sure that the receives information about the and that they can easily find it in your store. It is good practice to add pickup instructions in the footer of the page, along with information about the availability.
Foremost, let’s take a closer look at how the , however, it’s dedicated for collecting the products personally which makes its options slightly limited. works. It allows your customers to choose to come and get the ordered products by themselves. You don’t need to install any additional plugins to use its basic functionalities, since it’s a one of the default and in-built WooCommerce methods. As a matter of fact, it works pretty similar to the
To add the Local Pickup in your WooCommerce store, go to WooCommerce → Settings → Shipping:
Next, click the ‘s name where you want to offer your customers the in. As you can see on the screenshot above, in my case I have only USA.
Once you click the shipping zone, you should see the shipping methods available for this particular shipping zone if you added them here before. In my case, it’s the fixed price USPS shipping handled by the Flat Rate. No matter what shipping methods you have here or if you haven’t got any yet, hit the Add shipping method button.
Then, select the Local Pickup from the dropdown list and confirm your choice with Add shipping method button:
Having the new method added, click its name on the shipping methods list. In the popup which should appear, you can modify its Title displayed in the cart and checkout. A good practice is to put the pickup point’s address here (e.g. ‘Pick up at 123 Sample St, Beverly Hills, CA 90210’) to let your customers know where exactly they can collect their orders. You can also choose whether it should be taxed or not with the Tax status and define its cost.
As I mentioned before, it’s free by default, since collecting the products usually eliminates the need of shipping them. However, if for some reason your case requires charging the customers even when picking up the ordered products personally, simply fill in the Cost field with the right value to set the fixed price.
Configure it to fit your needs, or simply leave it with the default setup to make it free. Save the changes with the button below, and that’s it. Nothing more left to do – Local Pickup should be available now to select by your customers in the cart and checkout.
Ok, but what about the last case when you need the…
According to what I’ve said earlier, the default WooCommerce Local Pickup method does have its limitations. It is useful, nevertheless, there are many situations when it turns out to be not enough. It indeed gives you a possibility to define a fee for collecting the products in person, however, its price is always fixed. In other words, it will charge every customer the same amount no matter what the order consists of. Local Pickup’s fee based on the order specifics
As I believe, you are fully aware that each order is different. So are the time and money you and your team need to spend to process the order, from collecting it from the warehouse to packing it for the customer.
To be able to handle them smoothly, you require undoubtedly to set Local Pickup’s fee based on the order specifics. This is where the Flexible Shipping plugin is helpful. Allow me to introduce a real shipping Swiss army knife and the only shipping plugin you will ever need! It will definitely help you with configuring even the most advanced shipping scenarios.
The best and most powerful Table Rate Shipping plugin for WooCommerce. Discover its endless possibilities and create the shipping cost calculation rules based on weight, price and more!
View Details or Add to cartIt’s the best and most powerful with . Discover its endless possibilities and create the calculation rules based on weight, price and more! It was trusted by more than 217,060 people who use it in their shops on a daily basis.
Using it you will be able to charge your customers for Local Pickup based on multiple conditions:
I’ll describe three most popular cases of the advanced Local pickup in WooCommerce.
One of the most popular scenarios for advanced in-person pickup is to make this option available if a particular product appears in the cart. This usually applies to stores that sell heavily differentiated products in size. In this situation, the available shipping options in the store should look like this:
It seems complicated, but with Flexible Shipping PRO, this can be solved by adding two properly configured shipping methods:
Regular shipping method that hides when certain product is in the cart
First shipping method is a typical flat rate delivery option that won’t be visible for certain products. To achieve that, just add new Flexible Shipping method and configure it like that:
First rule, adds a regular cost for shipping. In my example, it’s $10, but you can set your shipping cost based on different conditions. The second rule causes this shipping method to be hidden when a product from the shipping class “furniture” is added to the cart. Note that this is due to the Hide special action set for this rule.
In the same way, you can hide the shipping method for product categories or even specific products. You can find more detailed information about it in our complete guide about hiding WooCommerce shipping methods.
Local pickup option only for certain products
The second method is local pickup, which will only be available when a specific product is added to the cart. It should be basically a mirror image of the first method, so it should appear when the first method is hidden.
To do so, add a second Flexible Shipping method and configure it like that:
This setting will cause that when a product from the shipping class “furniture” appears in the shopping cart, this shipping method will be available and free. You can set it cost if you want to. Importantly, this method will also be available when other products appear in the shopping cart in addition to the product belonging to the “furniture” shipping class. All orders meeting these conditions will have only local pickup available.
Similarly, you can offer local pickup for orders that exceed the appropriate weight or size. Again, only two methods will suffice:
Regular shipping method that hides when for overweight or oversized orders
This shipping method will be hidden, when the total order weight exceeds 20 kg. You can set different ranges and use other conditions like height, width, length and more.
Local pickup option only for oversized or overweight orders
This shipping method will be displayed, when the total order weight exceeds 20 kg.
Summing up, as you probably realized, the Local Pickup‘s configuration in the WooCommerce store is not as challenging as it might seem. I strongly believe that following my instructions will let you set it up in your shop flawlessly. What’s more, I hope I shed some light on how some more advanced Local Pickup scenarios could be handled using Flexible Shipping plugin.
If you have any additional questions about Local Pickup feel free to post it in the comments below. Looking for some more information on WooCommerce shipping? Check our general WooCommerce Shipping Guide!
Thank you for at this great article.
Is there a possibility to show local pickup address if the local pickup is selected?
Hi Serkan, I’m afraid that displaying the local pickup address if this method was selected will require some custom coding and modifing the WooCommerce default shipping method code. However, there is a kind of work-around – if you create the shipping method handled by our Flexible Shipping plugin and set its cost to 0, it will work the same as WooCommerce Local pickup but you will have an option to add its description:
Hi,
I’m already using Table Rate Shipping but I like your Local Pickup features… can I use them both?
Thanks
stefano
Hello Stefano. The Local Pickup is on the WooCommerce default function. By using our Flexible Shipping plugin, you are able to more modify your shipping methods by table rate.
Hi,
I’m using Flexible shipping with Astra, and it works with 97 zones… I added a local pick up (same zone than 1 of my 97 shipping zones), but it doesn’t appear. It appears only if the local pick up is above the matching shipping method in the zone list, but the user can not choose to pick up or be delivered.
Thanks
Laurent
Hi Laurent-oxacare, I believe the problem you have described might be related to the insufficient WordPress resources. Please try to increase the current WordPress memory limit and PHP max input vars and check if it helped.
Hi!
I’m having the same issue as Laurent-oxacare. The free local pickup only shows if the option is placed above the regular flexible shipping zone, and then the pickup option only shows in the cart, and they cannot choose any other method. Is this a memory issue? How would I go about doing what you suggest….I have no idea what that means.
Hi Andie, is the Flexible Shipping shipping method being displayed in the cart if placed above the Local pickup? If so, I believe there might be the same PHP max input vars-related issue as mentioned above. You can change it in: .htaccess file by modifying the line
php_value max_input_vars 3000
, in php.ini by setting
or directly in your WordPress wp-config.php file by addingmax_input_vars = 3000
@ini_set( 'max_input_vars' , 3000 )
. However, if the Flexible Shipping shipping method is not displayed in the cart even after placing it above the Local pickup, probably there is something wrong with this method’s configuration.I am not a developer, so I have no idea what any of that means…not where to find it or how to prevent any major problems when messing with the code (since I don’t know anything about code).
If you are not familiar with such operations I believe this step-by-step guide might be helpful and shed some light: https://betterstudio.com/blog/increase-max-input-vars-limit/ .
Hi there,
I offer both option on my website: pick up and shipping
Is there a way where I can default pick up instead of shipping?
Thanks
Jules
Hi Julio, I believe the snippet below might be the solution you are looking for. If added to the functions.php file of the currently used theme/child-theme, it will result in selecting always the cheapest available shipping method. So, if the local pickup is free it should be preselected by default.
function plx_default_cheapest_shipping_method( $current_chosen_method, $available_methods ) {
$selection_priority = get_option( 'woocommerce_shipping_method_selection_priority', array() );
if ( ! empty( $available_methods ) ) {
// Is a method already chosen?
if ( ! empty( $current_chosen_method ) && ! isset( $available_methods[ $current_chosen_method ] ) ) {
foreach ( $available_methods as $method_key => $method ) {
if ( strpos( $method->id, $current_chosen_method ) === 0 ) {
return $method->id;
}
}
}
// Order by priorities and costs
$prioritized_methods = array();
foreach ( $available_methods as $method_key => $method ) {
// Some IDs contain : if they have multiple rates so use $method->method_id
$priority = isset( $selection_priority[ $method->method_id ] ) ? absint( $selection_priority[ $method->method_id ] ): 1;
if ( empty( $prioritized_methods[ $priority ] ) ) {
$prioritized_methods[ $priority ] = array();
}
$prioritized_methods[ $priority ][ $method_key ] = $method->cost;
}
ksort( $prioritized_methods );
$prioritized_methods = current( $prioritized_methods );
asort( $prioritized_methods );
return current( array_keys( $prioritized_methods ) );
}
return false;
}
add_filter('woocommerce_shipping_chosen_method', 'plx_default_cheapest_shipping_method', 10, 2);
Hi Lukasz,
thanks for pointing out this. Could let me know where I can locate the functions.php file ?
Much appreciate your help here!
Jules
Sure, please access the FTP your site is hosted on, navigate to the
WordPress’ /wp-content/themes/[name of your theme] directory and this is where you should find the functions.php file.
hello , is there any way to add separate a email for the local pickup.
Hi Kashif, yes, I believe it can be done, however, it will require either some custom coding or using some sort of checkout fields editor plugin. What needs to be done here is adding the custom email checkout field and configure it to be conditionally displayed only when ‘Local Pickup’ shipping method is selected. I suppose that the Flexible Checkout Fields PRO plugin might be the exact solution you are looking for.