Cookies setting

Cookies help us enhance your experience on our site by storing information about your preferences and interactions. You can customize your cookie settings by choosing which cookies to allow. Please note that disabling certain cookies might impact the functionality and features of our services, such as personalized content and suggestions. Cookie Policy

Cookie Policy
Essential cookies

These cookies are strictly necessary for the site to work and may not be disabled.

Information
Always enabled
Advertising cookies

Advertising cookies deliver ads relevant to your interests, limit ad frequency, and measure ad effectiveness.

Information
Analytics cookies

Analytics cookies collect information and report website usage statistics without personally identifying individual visitors to Google.

Information
mageplaza.com

How to Configure In-Store Delivery in Magento 2

Vinh Jacker | 06-17-2025 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

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

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.

Table of content
    Jacker

    Jacker is the Chief Technology Officer (CTO) at Mageplaza, bringing over 10 years of experience in Magento, Shopify, and other eCommerce platforms. With deep technical expertise, he has led numerous successful projects, optimizing and scaling online stores for global brands. Beyond his work in eCommerce development, he is passionate about running and swimming.



    Related Post