# Setting Up Stores

Pro Feature

Multi-store requires [WCPOS Pro](/getting-started/pro-license.md). Without Pro, WCPOS runs as a single virtual store assembled from your WooCommerce general settings — there's no Stores screen.

This page walks through creating a store location end-to-end. For the conceptual overview (what multi-store does, per-store pricing, ATUM integration) start with [Multi-Store](/stores/.md).

## Before you start[​](#before-you-start "Direct link to Before you start")

* **WCPOS Pro is installed and the license is activated.** Activating Pro adds a **Stores** submenu under POS in WP Admin.
* **The cashiers who'll work at this store have WordPress accounts** with a role that includes the *Access WooCommerce POS* capability. If you haven't set that up yet, see [Access Settings](/settings/wp-admin/access.md).
* *(Optional)* **A logo file ready to upload** — PNG or JPG, ideally 300×300 or larger.

## Create the store[​](#create-the-store "Direct link to Create the store")

1

#### Open the Stores list

In WP Admin, go to **POS → Stores**. You'll see a list of any existing stores with columns for **Store**, **Address**, **Authorized Users**, and a per-row **Open POS** button.

If this is your first store and Pro was just activated, the list will be empty. Click **Add New Store** in the page header.

2

#### Name the store

At the top of the editor, set a **Store name**. This is what appears on receipts, in the store picker at login, and in store filters across the POS. Required.

Examples: *"Main Street Cafe"*, *"Warehouse — Pickup"*, *"Market Stall #3"*.

3

#### Fill in the main column

The left side of the editor groups everything that ends up on the receipt:

* **Store Logo** — upload via the WP media library. There's a *"Use site logo when no store logo is set"* toggle if the site has a Customizer logo and you want it as a fallback.
* **Address** — Address 1, Address 2, City, State, Postcode, Country. Country is a search-as-you-type dropdown.
* **Contact** — Web Address, Phone, Email.
* **Receipt Messages** — *Complimentary Close*, *Returns Policy*, *Footer*. Plain text with light HTML allowed (`<strong>`, `<em>`, `<b>`, `<i>`, `<br>`, `<p>`).
* **Receipt Templates** — leave the *"Store-specific receipt templates"* toggle **off** to inherit the site-wide template list from **POS → Templates**, or turn it **on** to pick a custom set for this store. Drag-handle reorder works once you've chosen a custom set.
* **Receipt Preview** — live preview with a template selector and a Sample Data / Order toggle so you can see what the receipt will actually look like before saving.

4

#### Configure the sidebar

The right column is the per-store configuration that doesn't show on receipts:

* **Authorized Users** — checkbox list of every WordPress user whose role has the *Access WooCommerce POS* capability. Check the cashiers who should be able to sign in at this store. **Leaving the list empty means all POS-capable users are authorized** — handy for single-store sites.
* **Tax Rate** — *Calculate Tax Based On* dropdown: **This store address** *(default)* or **Base location**. The table beneath shows the resolved tax rates per tax class for the chosen address; it's read-only, so configure the actual rates in **WooCommerce → Settings → Tax**.
* **Tax IDs** — repeatable rows of (Type / Value / Country / Label) for per-store VAT, ABN, GSTIN, etc. Leave empty to fall back to the site-wide [Store Tax IDs](/settings/wp-admin/store-tax-ids.md).
* **Store Settings** — Currency, Currency Position, Locale, Timezone. Defaults to the site values; override only if this store operates differently from the site default.
* **Opening Hours** — per-day time slots plus a free-text Notes field. Optional, used by some templates.

5

#### Save

A brand-new store keeps a visible **Create** button until you save it for the first time. Click **Create**.

Once persisted, the page switches to autosave — edits save automatically after a short delay, with a *Saving… → Saved* indicator in the corner. You can leave the page at any time and changes persist; the browser warns if you try to close on unsaved changes.

## What cashiers see at login[​](#what-cashiers-see-at-login "Direct link to What cashiers see at login")

When a cashier signs in, the POS shows a **store picker** listing every store they're authorized for:

* **Authorized for one store** — that store auto-selects and the **Open POS** button is enabled immediately. The picker still appears so the cashier can see which store they're about to enter.
* **Authorized for multiple stores** — the picker shows a radio list. Pick a store, then **Open POS**.
* **Authorized for none** — the picker is empty. Either add the cashier to a store's *Authorized Users* list, or leave that list empty to authorize everyone.

The selected store is appended as `?store={id}` when the POS launches, and is recorded on every order placed during that session (the `_pos_store` order meta). This is what powers per-store reports, the store filter on Orders, the right logo and address on receipts, and per-store pricing.

## Per-store pricing[​](#per-store-pricing "Direct link to Per-store pricing")

WCPOS Pro has a native per-store pricing mechanism — separate from ATUM. On every product (and variation) edit screen, the **Price** and **Tax** tabs gain a per-store override:

1. Open a product in WP Admin → Products → edit.
2. On the **Price** tab, check the *"Set per-store price"* box for the store you want to override.
3. Enter the regular price (and optional sale price) for that store.
4. Save the product.

When a cashier is operating from that store, the POS uses the per-store price. When operating from a store with no override, the standard WooCommerce price applies.

The same pattern works on the **Tax** tab for per-store tax status / tax class — useful when one location is in a tax-exempt zone and another isn't.

ATUM vs native per-store pricing

WCPOS's native per-store pricing is the right tool when you want different shelf prices at different locations but **shared** stock. If you also need **per-location stock counts**, install the [ATUM Multi-Inventory](/extensions/atum.md) integration — it adds an *Inventory Location* dropdown and a *Pricing Source* selector (Default / WCPOS Pro / ATUM) to the store editor, so you can mix the two systems per store.

## Edge cases[​](#edge-cases "Direct link to Edge cases")

What happens to orders that already exist when I add a new store?

Nothing. Orders are stamped with `_pos_store` meta at the time of sale. Adding a new store doesn't retroactively reassign any existing order. Orders placed before Pro was activated (or under a single-store setup) have no `_pos_store` meta and continue to render with the site-level defaults.

If you need to reassign an existing order to a different store, open it in WP Admin → WooCommerce → Orders and use the **Store** dropdown that Pro adds to the single-order screen.

How do I delete a store?

The **Trash** button on the store editor (and the row action on the Stores list) does a WordPress soft-delete (`wp_trash_post`). It doesn't hard-delete, so:

* The store is hidden from the cashier picker and from filter dropdowns.
* Existing orders that reference the trashed store still resolve correctly for receipt re-prints and order detail views — the trashed store's name, address, and logo continue to be available.
* Restoring from Trash brings the store back to active state with all its settings intact.

Only a full hard-delete (from Trash → Delete Permanently) removes the store record. Orders that reference a hard-deleted store fall back to *"Store #ID"* and the site-wide defaults.

Can a cashier work at more than one store?

Yes — check their name in the *Authorized Users* list on every store they should access. There's no concept of a "primary store" per user. Each time they sign in they choose which store to operate from via the picker.

Can I run different currencies per store?

Set the **Currency** and **Currency Position** in the store's sidebar. These override the site-wide WooCommerce currency for any session opened at that store — receipts, prices, and totals all format with the store's currency.

This is display formatting only; you still need WooCommerce-compatible payment gateways for each currency, and exchange-rate handling is your store's responsibility.

Why is there no Stores submenu when I install Pro?

Two common causes:

1. **Pro isn't activated** — go to **WP Admin > POS > Settings > License** and confirm the License Key shows as active.
2. **Old free + Pro layout** — pre-v1.8 Pro was an add-on to the free plugin. If you've upgraded to v1.8+, the free plugin needs to be deactivated and deleted (see the note on [Installing WCPOS Pro](/getting-started/pro-license.md)) — keeping both installed can mask the Stores menu.

## Related Documentation[​](#related-documentation "Direct link to Related Documentation")

* [Multi-Store overview](/stores/.md) — what multi-store does, when to use it
* [Store Tax IDs](/settings/wp-admin/store-tax-ids.md) — per-store VAT / ABN / GSTIN
* [Per-store templates](/receipts/customise.md#per-store-assignments) — same Edit Store page, Receipt Templates section
* [ATUM integration](/extensions/atum.md) — per-location inventory and pricing source
* [Access Settings](/settings/wp-admin/access.md) — controlling which users can sign in as cashiers
