> ## Documentation Index
> Fetch the complete documentation index at: https://spreecommerce.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Stores

> Understand Spree Stores — the top-level tenant boundary that scopes products, orders, channels, markets, and branding, with the Admin API for store config.

## Overview

The StThe Store is the top-level tenant in Spree. Every resource — products, orders, channels, markets, taxonomies — belongs to exactly one store. A store owns its [channels](/developer/core-concepts/channels) (online, POS, wholesale, …), its [markets](/developer/core-concepts/markets) (region/currency/locale), and its [product catalog](/developer/core-concepts/products).tore Attributes

| Attribute                          | Description                                                        |
| ---------------------------------- | ------------------------------------------------------------------ |
| `name`                             | Store name, displayed in the browser title and throughout the site |
| `code`                             | Unique identifier for the store                                    |
| `url`                              | Primary URL of the store                                           |
| `meta_description`                 | SEO description                                                    |
| `meta_keywords`                    | SEO keywords                                                       |
| `seo_title`                        | Custom SEO title                                                   |
| `customer_support_email`           | Email for customer support inquiries                               |
| `mail_from_address`                | Sender address for transactional emails                            |
| `logo_url`                         | URL to the store's logo                                            |
| `facebook`, `twitter`, `instagram` | Social media links                                                 |

## Fetching Store Information

Store configuration is exposed through the Admin API. Use the store endpoint to read the current store's settings — name, URL, branding, and email addresses:

<CodeGroup>
  ```typescript Admin SDK theme={"theme":"night-owl"}
  const store = await adminClient.store.get()
  // {
  //   name: "My Store",
  //   url: "https://mystore.com",
  //   logo_url: "https://cdn.mystore.com/logo.png",
  //   mailer_logo_url: "https://cdn.mystore.com/mailer-logo.png",
  //   customer_support_email: "support@mystore.com",
  //   ...
  // }
  ```

  ```bash cURL theme={"theme":"night-owl"}
  curl 'https://api.mystore.com/api/v3/admin/store' \
    -H 'X-Spree-API-Key: sk_xxx'
  ```
</CodeGroup>

This is an admin endpoint, so it requires a secret API key (`sk_xxx`) or a Bearer JWT — a publishable key cannot reach it.

## Channels vs. Markets

Two different ways to split a store, often confused:

* **[Sales Channels](/developer/core-concepts/channels)** segment **selling surfaces** — Online Store, POS, Wholesale, marketplace integrations. They control product visibility, order attribution, and per-channel routing rules.
* **[Markets](/developer/core-concepts/markets)** segment **geography and currency** — North America (USD/en), Europe (EUR/de), UK (GBP/en). They control which currency, locale, and tax rules apply to a given customer.

A single Online Store channel can serve multiple markets (one storefront → many regions). Conversely, POS and Online channels can share the same market (same currency/locale, different selling surfaces).

## Store Resources

Each store owns its own resources. Products, orders, channels, markets, and taxonomies in one store are independent from another.

| Resource                                                       | Relationship                                                                                                                                                       |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [**Channels**](/developer/core-concepts/channels)              | A store has many channels (Online Store, POS, Wholesale, …). One is the default.                                                                                   |
| [**Markets**](/developer/core-concepts/markets)                | A store has many markets, each defining a geographic region with its own currency and locale                                                                       |
| [**Orders**](/developer/core-concepts/orders)                  | An order belongs to one store and one channel                                                                                                                      |
| [**Products**](/developer/core-concepts/products)              | A product belongs to one store. Its visibility across channels is controlled by [publications](/developer/core-concepts/channels#publishing-products-on-channels). |
| [**Taxonomies**](/developer/core-concepts/products#categories) | A taxonomy belongs to one store                                                                                                                                    |
| [**Payment Methods**](/developer/core-concepts/payments)       | A payment method belongs to one store                                                                                                                              |
| [**Shipping Methods**](/developer/core-concepts/shipments)     | A shipping method belongs to one store                                                                                                                             |
| [**Promotions**](/developer/core-concepts/promotions)          | A promotion belongs to one store                                                                                                                                   |

## Running Multiple Storefronts

If you need one Spree backend to serve **multiple distinct merchant brands** — different domains, different catalogs — there are two patterns:

* **Multiple channels under one store** (recommended for most cases) — model each storefront as a Sales Channel. Products are scoped per-channel via publications, orders carry the channel that originated them, and routing/pricing can differ per channel. This is the supported pattern in core Spree 5.5+.
* **Multiple isolated stores (tenants) in one app** — full data isolation, only recommended if you're building a SaaS platform or a multi-tenant application. Each store can have different staff members, payment methods, shipping methods, and branding. This is supported by the [Spree Multi Tenant](/developer/multi-tenant/quickstart) extension, which is a separate gem from core Spree.

## Related Documentation

* [Channels](/developer/core-concepts/channels) — Selling surfaces (Online, POS, Wholesale, …)
* [Markets](/developer/core-concepts/markets) — Multi-region commerce within a store
* [Products](/developer/core-concepts/products) — Product catalog
* [Orders](/developer/core-concepts/orders) — Order management and checkout
* [Admin SDK](/developer/sdk/admin/quickstart) — TypeScript client for the Admin API used to read and update store configuration
