The global pandemic has accelerated a gradual change that was already occurring in the retail world: “brick and mortar only” businesses moving online to become omnichannel sellers.

Research from Shopify shows the majority of customers have avoided crowded shopping times in the past year and 46 percent say they don’t feel comfortable shopping in person. (PDF) As a result, many brick and mortar businesses have turned (or are ready to turn) to online sales channels to meet the shift in customer demand and behavior.

Online sales in the U.S. increased at a compound annual growth rate (CAGR) of 14 percent over the four-year period between 2016 and 2019. In 2020, eCommerce sales rose by 44 percent, nearly triple the growth of recent years.

While the move from single-channel, in-person sales to omnichannel can be challenging, brick and mortar businesses that embrace online selling may even have an advantage over pure eCommerce stores, thanks to their ability to offer a wider range of fulfillment options.

Research from Shopify shows 23 percent of shoppers have picked up an online order in-store or curbside while 21 percent have picked up something at a pickup point. The study also found that customers who used local pickup or delivery spent 23 percent more on average—and another study found half of customers using “click-and-collect” services end up buying more items in-store when they come to get their items. 

Customers across all age groups are now spreading their purchases throughout different sales channels—and even once things resemble “normal” again, the shopping behaviors we’ve adopted over the past year won’t just vanish. Businesses that adopt an omnichannel strategy will be in a strong position for future success.

However, as good as all that may sound, it can be intimidating to start. In this article, we’ll cover some strategies for setting up a WooCommerce offshoot of your (or your clients’) brick and mortar business and point you toward five extensions that will help throughout the process.

How to take a brick and mortar store online with WooCommerce

There are many important decisions to make when creating an eCommerce store for a brick and mortar business. One of the biggest questions you’ll have to answer is which eCommerce platform to use. Your platform will determine what kind of features you can add to your website and how easy it is to manage your store.

We recommend using WooCommerce to move your business online. It’s flexible, allows for unlimited customization, and can integrate seamlessly with your physical store. And while the WooCommerce core is feature-rich and provides the essential tools to start selling online—the real key to WooCommerce is the universe of extensions which can help you set up the features and services that match the specific needs of your store.

Let’s examine how to use some popular WooCommerce extensions to set up an effective online sales channel for a brick and mortar business.

Local Pickup Plus

Local Pickup Plus ($79/year at gives brick and mortar businesses a complete set of tools to arrange pickups at their physical locations. It works if you have a single store (or warehouse or office) or if you have multiple physical locations to use for pickups. You are also able to control which products are available for pickup and set a schedule for available pickup times.

To set up the extension, go to WooCommerce > Settings > Shipping > Local Pickup Plus and check Enable Local Pickup Plus.

From there, you’ll want to configure your settings. Start with the Checkout Display to determine how the pickup option is presented to customers at checkout.

You can allow customers to choose different pickup locations for items in their order or restrict them to one pickup location per order. If you have multiple locations, you can set the order in which your locations are sorted (more on this in a bit).

With pickup appointments, customers can schedule a time to come get their order. This will ensure that they only come by when you are open. You can set your default business hours and manually exclude specific days if you are unavailable.

Set up times customers can pick up an order with Local Pickup Plus.

If you choose to allow pickup appointments, you’ll want to get familiar with how the lead time setting works.

Lead time is the minimum period of time someone has to wait before they can pick up their order. For example, let’s say you run a cake shop. A customer buys a custom cake that takes two days to prepare. You don’t want them to have the option to get the cake the next day as it won’t be ready.

In the extension settings, you can set a default lead time (two days in this case) that determines the earliest pickup date. You can override this setting for individual locations.

There are two ways to calculate lead time: 

  • Only count business days
  • Count all calendar days
Set up lead times with LPP.

Another useful feature is sorting your pickup location based on the customer’s current location. Customers can then find the closest location without needing to manually look up the distances. This functionality requires you to set up geocoding.

To get started, go to the Google API Library. In the Select a project dropdown, click on New Project. Enter the Project Name and Location, then click Create.

Google Geocoding setup.

Select the new project and search for Geocoding API. Click through to the page and hit Enable

Geocode API setup.

From the navigation menu, go to API & Services > Credentials. Click on Create Credentials > API Key

Geocode credentials.

Make sure not to restrict your key.

Geocode API created.

Copy the API Key and return to the Local Pickup Plus settings. Enter the key in the Google Maps Geocoding API Key field. Make sure to save the changes.

Once you enable geocoding, customers will automatically see the closest location first when searching for pickup locations. If geocoding fails for a location, you can manually enter the coordinates within that location’s settings page.

PDF Product Vouchers

Gift cards are a huge market (the global gift card market was worth a massive $615 billion in 2019—and it’s growing fast). As an omnichannel store, it’s important to offer gift cards that work either online or in-store. And while WooCommerce natively allows you to create coupons, they can’t be used as store credit—or printed and used in-store.

PDF Product Vouchers ($129/yr at allows you to sell customizable, printable vouchers that can be used to purchase items or services online or at your physical location. While the primary function is to create gift cards, the vouchers can also be used as an event ticket, spa pass, or any other product or service redeemed at a later date.

To create a new voucher design, go to WooCommerce > Vouchers > Voucher Templates. Click Add Voucher Template.

Enter the Template Name, select the Voucher type. Single-purpose vouchers can only be redeemed for a particular product. Multi-purpose vouchers can be used on any items in your store. 

Product Voucher setup.

You can then choose which fields to enable and where to position them on the voucher. Once you have created your design, click Publish to make the voucher live.

To assign a voucher to a product (making it possible for you to sell it), go to Products in the WooCommerce navigation menu and select the appropriate product. Check the Has Voucher box and select the desired Voucher Template.

For a customer to purchase a voucher, they’ll fill out the fields on the product page, add the voucher to their cart, and complete the checkout process. After the order is paid, the customer will receive an email with the voucher attached.

Product voucher purchasing.

If you’ve enabled online redemptions, customers can use the voucher number in the coupon code field on checkout. For in-person redemptions, you have the option of including a QR code on the voucher template. When the customer shops in store, the store can then scan this code to apply the voucher.

The extension comes with plenty of hooks, actions, and filters you can use to customize the design and functionality of your vouchers. 

Let’s say you want to edit a customer’s account presentation to only show valid vouchers instead of showing all vouchers. You could use the following frontend filter to remove the expired vouchers from their account page:

// remove vouchers from My Account if they're expired
function sv_wc_pdf_product_vouchers_filter_customer_vouchers( $vouchers ) {

    foreach ( $vouchers as $id => $voucher ) {

        if ( $voucher->has_status( 'expired' ) ) {
            unset( $vouchers[ $id ] );

    return $vouchers;
add_filter( 'wc_pdf_product_vouchers_customer_available_vouchers',

If you want to customize the voucher output, you can make changes to the HTML template by copying woocommerce-pdf-product-vouchers/templates/voucher/voucher.php to your theme: my-theme/voucher/voucher.php. From there, you can customize the voucher however you like.

You can also add custom fields to a voucher using a few hooks. The wc_pdf_product_vouchers_voucher_fields hook will filter the voucher fields and the wc_pdf_product_vouchers_get_{$field_id} and wc_pdf_product_vouchers_get_{$field_id}_formatted filters will apply to your new field ID.

Square for WooCommerce

The Square for WooCommerce extension (free at, though fees apply on transactions) is an effective tool for synchronizing sales and inventory between your in-person and online sales channels. Square is a widely popular point-of-sale (POS) system so there’s a chance you already use it for your physical store. With the WooCommerce extension, you can collect online payments with Square as well. This will allow you to use Square as a centralized platform for managing your transactions.

Once you activate the plugin, you can navigate to WooCommerce > Settings > Square to configure the integration between Square and WooCommerce.

Square settings.

The system of record determines how product data is shared between Square and WooCommerce. For brick and mortar businesses (especially those with multiple locations), it is usually best to use Square as the system of record and make changes to product data within Square. That way, the WooCommerce store inventory will stay updated based on changes that happen at the retail location, so you don’t risk overselling.

By default, Square will automatically sync with WooCommerce every hour. You can adjust the automatic sync frequency by customizing the wc_square_sync_interval filter. Here’s an example of how you could change the sync interval from one hour to 10 minutes.

// sync every 10 minutes instead of every hour
add_filter( 'wc_square_sync_interval', function( $interval ) {
    return 10 * MINUTE_IN_SECONDS;
} );

You can also run a manual sync on-demand to ensure data between Square and WooCommerce is always consistent. To run a manual sync, go to WooCommerce > Settings > Square. Click on the Update tab. Then click the Sync Now button.

You can test the payment gateway to ensure it works properly with Sandbox Mode. Go to WooCommerce > Settings > Square. Select Enable to set the plugin in sandbox mode to turn Sandbox Mode on.

Square sandbox mode.

After that, Sandbox Settings will appear below with two fields: Sandbox Application ID and Sandbox Access Token. There is also a link to the Square developer site where you will go to create your ID and token.

Click the link to the developer site. You’ll be asked to create a new Square developer account or to sign in to your existing account. Once you’re in the account, click the plus button to create a new app, name the app, and hit save.

Open the app and look for the Sandbox Access Token and Sandbox Application ID fields in the Credentials section.  Copy the values and add them to the Sandbox Settings in WooCommerce.

Once you have Sandbox Mode configured, you can begin testing payments. Check out Square’s Sandbox Test Values doc for a list of card numbers you can use for your tests.

WooCommerce Bookings 

With the WooCommerce Bookings extension ($249/yr at, you can create products or services that require appointments for your eCommerce store. It is a great option for brick and mortar businesses that offer consultations or other services, as well as businesses that allow customers to book a space for a period of time. This is quite useful as the need for appointments is on the rise with the pandemic and limited capacity inside of stores. Businesses can use bookings to limit the number of people concurrently in their space to keep things safe for all parties. 

Plus, WooCommerce Bookings makes it more convenient for customers (and easier on employees) than requiring people to call for appointments.

Booking a hotel by dates.

After you activate the plugin, you’ll find the option to define products as a Bookable product within the Product data tab on the edit product page.

Setting up bookable products.

When you create a bookable product, there are several important settings you need to configure. To start, you’ll have to define the booking duration. There are two types to choose from: fixed blocks and customer-defined blocks.

With fixed blocks, customers can only book a single block for the specified amount of time. With customer-defined blocks, they can choose multiple blocks for their booking (like a customer booking a hotel for a three-day period). You can set the time for blocks in intervals of minutes, hours, days, or months.  

To set the price for the bookable product, go to the Costs section in the Product data tab. Here you can set a base cost for the booking as a whole as well as a cost per block. You also have the option to add custom rules for specified ranges of time.

For example, let’s say you offer massage services and want to give a lower rate to customers who book appointments for an hour or longer. You can add a range for appointments for over one hour and create a cost rule to lower the per block cost (as seen in the image below).

Bookings block costs.

Some other useful options include the ability to require a confirmation for each booking. If you do, customers won’t be charged until you confirm the request. You also have the option to allow customers to cancel their reservations. By default, refunds aren’t issued.

You can keep track of your bookings from the Bookings section of the WooCommerce navigation menu. You also have the option to sync your Bookings calendar with your Google Calendar. 

Go to WooCommerce > Bookings > Settings. Select the Calendar Connection tab and click Connect with Google. This will take you to a different page where you can connect your Google account. From then on, all your WooCommerce appointments will automatically sync with your Google Calendar.

WooCommerce Bookings is integrated with the WordPress REST API. Here’s a sample of what you can do using the Bookings API along with the corresponding HTTP requests:

  • Create a new booking: POST /wp-json/wc-bookings/v1/bookings/
  • Retrieve a booking: GET /wp-json/wc-bookings/v1/bookings/<id>
  • List all bookings: GET /wp-json/wc-bookings/v1/bookings/
  • Delete a booking: DELETE /wp-json/wc-bookings/v1/bookings/<id>

You can also use the APIs on a product level to read, update, delete, or view any of your bookable products.

WooCommerce Store Catalog PDF Download

The WooCommerce Store Catalog PDF Download extension ($49/yr at gives you the ability to generate a PDF of your product catalog. Customers can then download the catalog from your website to view your products offline or make a printed copy. 

With this extension, a customer can print the catalog and bring it into the physical location. They can then identify the item to sales staff who can quickly find the product and show it to the customer. Customers could also use the catalog for offline browsing but ultimately make their purchase at your WooCommerce store, as every product and category has its own direct link in the PDF.

If you want to offer your own PDF catalog, install the extension and go to WooCommerce > Settings. Select the Products tab and click on Store Catalog PDF.

Store catalog setup.

Click the Upload Custom PDF button and add the file. You’ll then be able to add the catalog anywhere on your site using the [wc-store-catalog-pdf] shortcode.

You can modify the default PDF template by copying the template file from wp-content/plugins/woocommerce-store-catalog-pdf-download/templates/ and pasting it in wp-content/themes/YOUR-THEME/woocommerce-store-catalog-pdf-download/.

This will ensure that your changes are not overwritten when the plugin is updated.

There are plenty of hooks you can use to customize the plugin based on your needs. For instance, you can use apply_filters( 'wc_store_catalog_pdf_download_orientation', string ) to set the orientation of the PDF (portrait or landscape). Or, you could use apply_filters( 'wc_store_catalog_pdf_download_grid_image_size', array ) to set the image size for the grid layout. 

For a complete list of all the available hooks, you can check out the extension’s documentation.

Key takeaways

Now is the opportune time for brick and mortar businesses to build an eCommerce presence, as many customers are still hesitant to shop in-person and online sales are surging. But even when “normal” life returns, customers won’t abandon the behaviors they’ve adopted during the past year. Click-and-collect and omnichannel browsing and buying aren’t going away. 

WooCommerce is a solid platform choice for businesses looking to create an eCommerce store—and there are plenty of WooCommerce extensions you can use to take your store to the next level. The best options include:

  • Local Pickup Plus. With Local Pickup Plus you can give your customers the option to select any of your physical stores as a pickup location during the checkout process.
  • PDF Product Vouchers. PDF Product Vouchers allows you to create printable gift certificates that customers can redeem for items or services online or at your physical store.
  • Square for WooCommerce. The Square for WooCommerce extension connects your Square POS system to your WooCommerce platform. You can then use Square as a centralized platform to manage your multi-channel business.
  • WooCommerce Bookings. WooCommerce Bookings allows you to create bookable products that customers can purchase on your website. You can control the availability of your bookings and the amount of time customers can secure.
  • WooCommerce Store Catalog PDF Download. With this extension, you can automatically generate a PDF of your product catalog. Customers can then download this catalog from your website and reference it for online or in-store buying.

The following extensions mentioned in this post are included at no additional charge in the GoDaddy Managed WordPress eCommerce hosting package:

  • Local Pickup Plus
  • PDF Product Vouchers
  • WooCommerce Bookings
  • WooCommerce Store Catalog PDF Download

Click here to learn more about GoDaddy’s WooCommerce hosting options.

Published by Bradley Taylor

Bradley is a content writer specializing in eCommerce and SaaS technologies. When he's not writing, he's building his eCommerce store Marquee Jewelry, or exploring the world of PC gaming.

Leave a Reply

Your email address will not be published. Required fields are marked *