How to Configure In-Store Delivery in Magento 2
In-store delivery - widely known as Buy Online, Pick Up In Store (BOPIS) - is a fulfillment model that lets customers place orders online and collect them at a physical location. It reduces shipping costs, speeds up delivery, and drives additional foot traffic to brick-and-mortar stores.
Magento 2 includes a native in-store delivery feature out of the box. This guide covers everything you need to get it working: prerequisites, step-by-step configuration, and how it behaves at checkout.
Learn more: Magento 2 Shipping Methods Configuration: A-Z Guide
What Is In-Store Delivery in Magento 2?
Magento 2’s built-in in-store delivery is a shipping method that appears at checkout, allowing customers to select a nearby inventory source as their pickup point instead of entering a delivery address. The system uses Magento’s Distance Priority Algorithm to automatically suggest the closest available location based on the customer’s address.
This feature is part of Magento’s Multi-Source Inventory (MSI) system, meaning it works with your configured inventory sources — not just a single warehouse.
Prerequisites
Before enabling in-store delivery, confirm the following are already set up:
1. A non-default inventory source configured as a pickup location
-
Go to Catalog > Inventory > Sources
-
Open a custom source (not the default source)
-
Enable the Use as Pickup Location toggle
2. Distance Priority Algorithm
-
Go to Stores > Configuration > Catalog > Inventory
-
Configure the Distance Priority Algorithm so Magento can calculate distance between a customer’s address and each source
3. Geocodes imported
-
For offline distance calculation, run the following CLI command: bin/magento inventory-geonames:import {country_code}
-
Replace
{country_code}with your target country, e.g.US,GB,AU
4. Default Tax Destination Calculation
-
Go to Stores > Configuration > Sales > Tax > Default Tax Destination Calculation
-
Set a default country, region, and zip code
-
This is the fallback base location when a customer has no saved address - without it, distance-based store filtering won’t work for guest or unaddressed sessions
Step-by-Step: Enable In-Store Delivery in Magento 2
Step 1: Open Delivery Methods settings
- In the Admin sidebar, go to Stores > Settings > Configuration
- Under the left panel, expand Sales and select Delivery Methods
Step 2: Expand In-Store Delivery
- Scroll down to the In-Store Delivery section
- Click the expansion arrow to open it
Step 3: Enable the method
- Set Enabled to
Yes - If the field is grayed out, uncheck Use system value first
Step 4: Configure each field
- Method Name - the label shown next to the rate in the cart (e.g. Pick Up In Store)
- Title - the section heading shown at checkout (default: In-Store Pickup Delivery)
- Price - the fee charged for pickup; enter 0 for free pickup
- Search Radius - the radius in kilometers used to filter nearby pickup sources
- Displayed Error Message - the message shown when pick up in store is unavailable
Step 5: Save
- Click Save Config.
How Pickup at Store Works at Checkout
Once enabled, here’s what customers see:
- The customer selects Pick In Store or the In-Store Pickup Delivery method at the shipping step
The Pick In Store tab opens
-
If a shipping address exists, Magento automatically preselects the closest source within the configured radius
-
The customer can click Select Other to search by postal code or city — only stores within the radius are returned, sorted by distance
-
If no address is available, all sources assigned to cart products are listed in ascending order of source code, with no distance filtering applied
Before You Go Live: Tips & Limitations
-
Search radius affects visibility: start broad and tighten based on your store footprint; too narrow and customers in outer areas will see no options
-
Every product must be assigned to a source: a source only appears as a pickup option if it is assigned to all items in the cart
-
Method Name and Title are separate fields: Method Name shows inline in the cart; Title is the section heading at checkout
The native feature works well for basic use cases but has limitations around scheduling, store search, and theme compatibility. For a more complete experience, you can use Mageplaza Magento 2 Store Pickup & Store Locator extension. Check this detailed comparison to see how they work together.
Conclusion
Adding in-store delivery is one of the easiest ways to drive more sales and stop customers from abandoning their carts at the last minute. By giving shoppers the choice to skip shipping fees and collect their orders in person, you create a win-win for your business and your customers. Go ahead and tweak these settings in your Magento admin today to make your checkout process a whole lot more flexible.