A retailer with three physical stores does not need three websites. One WooCommerce site can take orders for all locations, as long as it can answer two questions for every order: which store fulfils it, and when. We built this for Panetta Mercato, a Sydney grocer with multiple stores running pickup and delivery from one website, and this post covers how the setup works and the decisions involved.
One site or many?
There are two ways to run multiple locations online:
- One website with store selection. One catalog, one set of customers, one admin. Each order is allocated to a store. This is the right answer for almost every retailer with one brand.
- Separate websites per store. Only worth it when the stores are effectively different businesses with different brands, products and teams. Twice the maintenance for every extra site.
The rest of this post covers the single-site model.
How an order finds its store
For pickup, the customer chooses the store. For delivery, the website works it out from the suburb. Try both below:
Interactive: how orders are routed
The customer picks the store, then sees that store’s own pickup times:
The customer enters their suburb, and the allocation rules pick the store:
Suburb allocation in practice
Suburb-to-store allocation is a table the store manages: each suburb you deliver to is assigned to one store. On the Panetta Mercato site this is a settings screen, and adding a new suburb takes a minute. A few things we learned running it in production:
- Keep the list explicit. Assigning named suburbs beats a distance radius, because delivery areas follow roads and rivers, not circles.
- Decide what happens to unallocated suburbs. Show a clear message and offer pickup, rather than failing silently at checkout.
- Expect the list to change. Store staff ask for new suburbs regularly as customers request them, so the screen has to be usable by non-developers.

What each store controls
The catalog is shared, but each location needs its own operational settings:
- Hours and pickup slots, including different weekend hours and public holiday overrides.
- Slot capacity, so a small kitchen is not buried by a busy Saturday.
- Delivery days and fees for the suburbs allocated to it.
- Order notifications, so each store only sees and prints its own orders.
Stock and pricing across stores
This is the honest limitation to plan around: standard WooCommerce keeps one stock number and one price per product. For most multi-store food retailers that is workable, because the range is consistent across locations and stock is managed at the POS. Where per-store stock matters, the options are a POS or ERP integration that holds per-location inventory (WooCommerce shows combined availability), or per-store product visibility rules for items only sold at one location. We cover the integration side in our Wedderburn Atria connector post and our WooCommerce ERP integration guide.
What we built it with
The setup described here runs on our own plugins: EUX Pickup & Delivery for dates, slots and capacity, plus the Multi-Store add-on for per-store locations, hours and storefront selection, and the Store Allocation add-on for suburb-to-store delivery routing. The same stack runs Panetta Mercato day to day.
FAQ
Can each store have different prices?
Not with standard WooCommerce, which has one price per product. If per-store pricing is essential, it needs custom work, and it is worth asking first whether the price difference is really necessary online.
Can a store see other stores’ orders?
Admins see everything. Store-level users and printers only receive orders allocated to their location.
Does this work with a POS?
Yes. On our butcher and grocer builds the orders flow into the POS with the store allocation attached, so each location fulfils its own online orders alongside in-store sales.
Planning a multi-store setup?
We have built and now run this setup in production for multi-location retailers. If you are planning one website for several stores, talk to us and we can walk you through how it would work for your locations, or see our plugins page for the pickup and delivery tools.