How to Create a Store
Think of it this way: A Store represents a physical location where you do business. It holds all the essential information about where you operate, when you're open, who manages it, and how transactions are processed at that location.
The Big Picture
Store (Physical Location)
├── Identity
│ ├── Name & Store Code ← REQUIRED
│ ├── Address (full physical address)
│ └── Phone Number
├── Store Settings
│ ├── Timezone ← REQUIRED
│ ├── Currency ← REQUIRED
│ ├── Tax Jurisdiction
│ ├── Active Status
│ └── Service Options (returns, appointments)
├── Operating Hours
│ └── Weekly schedule (Monday-Sunday)
└── Staff Assignments
├── Store Managers
└── Employees (assigned via their user profiles)
Step 1: Store Identity
Store Name (Required)
The customer-facing name of your location.
Good Examples:
- "Downtown Portland Store"
- "Fifth Avenue Flagship"
- "Seattle - University District"
- "Westfield Mall - Houston"
Avoid:
- "Store 1" (not descriptive)
- "downtown-portland" (use proper capitalization)
- "PDX-001" (that's a store code, not a name)
Naming Conventions:
- Capitalize Important Words: "Downtown Portland Store" not "downtown portland store"
- Include Location Context: City, neighborhood, or landmark
- Be Customer-Friendly: This may appear on receipts and customer communications
- Keep It Descriptive: Staff should immediately know which location you mean
Store Code (Required)
A unique internal identifier for this location. Used in reports, inventory tracking, and backend systems.
Good Examples:
- "PDX-001" (Portland location #1)
- "NYC-5AVE" (New York City - Fifth Avenue)
- "SEA-UNI" (Seattle - University District)
- "HOU-WF" (Houston - Westfield)
Avoid:
- "Store 1" (too generic, could conflict with store name)
- "downtown" (no unique identifier)
- Reusing codes across locations (must be unique)
Naming Conventions:
- Use Uppercase: "PDX-001" not "pdx-001"
- Keep It Short: 3-10 characters
- Use Hyphens or Underscores: "PDX-001" or "PDX_001"
- Make It Memorable: Staff should recognize codes instantly
- Consider Patterns:
- City code + number: "PDX-001", "NYC-002"
- City + location abbreviation: "SEA-DT" (Downtown), "SEA-UNI" (University)
- Regional prefix: "NW-PDX-01" (Northwest region, Portland, location 1)
Phone Number
Contact number for this location. No specific format required—enter as you'd like it displayed.
Examples:
- "(555) 123-4567"
- "555-123-4567"
- "+1 (555) 123-4567"
Step 2: Physical Address
All address fields are required for a complete store profile.
Street Address
The physical street address of the location.
Examples:
- "123 Main Street"
- "456 Broadway, Suite 200"
- "789 Market St, Floor 3"
City, State, Postal Code
Standard address components.
Example Full Address:
Street: 123 Main Street
City: Portland
State: OR
Postal Code: 97205
Country: United States
Country
Defaults to "United States" but can be changed for international locations.
Step 3: Store Settings
This section controls how your store operates and processes transactions.
Timezone (Required)
Critical for accurate reporting, operating hours, and transaction timestamps.
Choose the timezone where the store physically operates.
Available Options:
- US Timezones: Eastern, Central, Mountain, Pacific, Alaska, Hawaii
- Canadian Timezones: Atlantic, Newfoundland
- International: UTC, London, Paris, Tokyo, Sydney, and more
Correct:
- Portland store → "Pacific Time (US)"
- New York store → "Eastern Time (US)"
- London store → "London (GMT/BST)"
Wrong:
- Using corporate HQ timezone for all stores
- Choosing UTC for physical retail locations (unless actually operating on UTC)
Why This Matters:
- Transaction timestamps are recorded in local store time
- Operating hours display correctly
- Reports reflect actual business hours
Default Currency (Required)
The primary currency for all transactions at this location (ISO 4217 code).
Available Options:
- USD (US Dollar)
- CAD (Canadian Dollar)
- EUR (Euro)
- GBP (British Pound)
- JPY (Japanese Yen)
- AUD (Australian Dollar)
Important: This must be a 3-letter ISO currency code.
Tax Jurisdiction (Optional)
Links to a Tax Jurisdiction document that defines tax rates for this location.
What This Controls:
- State tax rates
- County tax rates
- City tax rates
- Special district taxes
Setup Process:
- Create Tax Jurisdiction document first (if not already created)
- Define all applicable tax rates for the store's location
- Link the jurisdiction to the store
Example: A store in Franklin County, Ohio would link to "Franklin County, OH" jurisdiction with Ohio state tax + Franklin County tax.
Store Active Status
Toggle whether this store is currently operational and accepting transactions.
Set to Active when:
- Store is open for business
- Staff can process transactions
- Inventory is being managed
Set to Inactive when:
- Store is temporarily closed (renovations, off-season)
- Location is being set up but not yet operational
- Store is being phased out but you want to preserve historical data
Important: Setting a store to inactive may prevent transactions from being processed at that location.
Accepts Online Returns
Whether this location accepts returns for online orders.
Default: True (enabled)
When to disable:
- Location lacks space or staff for processing returns
- Store is distribution/warehouse only
- Special-purpose location (pop-up, event booth)
Requires Appointments
Whether customers need appointments for certain services.
Default: False (walk-ins welcome)
When to enable:
- Personal shopping services
- Consultation appointments
- High-touch retail experiences
- Private showrooms
Step 4: Operating Hours
Define your weekly schedule for each day.
How Operating Hours Work
Each day has two fields:
- Open Time: When the store opens (24-hour format)
- Close Time: When the store closes (24-hour format)
Format: Use 24-hour time format (HH:MM)
Examples:
- 9:00 AM → "09:00"
- 5:00 PM → "17:00"
- 10:30 AM → "10:30"
- 9:00 PM → "21:00"
Sample Weekly Schedule:
Monday: 09:00 - 21:00
Tuesday: 09:00 - 21:00
Wednesday: 09:00 - 21:00
Thursday: 09:00 - 21:00
Friday: 09:00 - 21:00
Saturday: 10:00 - 18:00
Sunday: 11:00 - 17:00
Important Notes:
- Operating hours are displayed in the store's timezone (set in Store Settings)
- Each day must be added separately
- If a store is closed on a particular day, simply don't add that day to the schedule
Handling Special Cases
24-Hour Locations:
- Open: "00:00"
- Close: "23:59"
Late-Night Hours (close after midnight): If you close at 2:00 AM, enter "02:00" as the close time. The system understands this means the next day.
Closed Days: Don't add an entry for days when the store is closed.
Step 5: Staff Assignments
Store Managers
Assign managers to this location using the "Store Managers" field.
How This Works:
- Select users who have a "Manager" role
- Multiple managers can be assigned to one store
- This relationship syncs bidirectionally:
- Adding a manager here updates their profile's store assignments
- Adding store assignments to a manager's profile updates this list
Manager Permissions: Store managers typically have:
- Price override capabilities
- Refund authorization
- Discount approval
- Access to store-level reports
To Assign a Manager:
- Ensure the user exists with primary role "Manager"
- Click "Add Item" in Store Managers section
- Select the manager from the list
- Save the store document
Employees
Employees are assigned to stores through their user profiles, not directly in the store document.
To Assign an Employee to This Store:
- Navigate to the employee's user profile
- In their Employee or Manager role section, add this store to "Store Assignments"
- Save the user profile
Employee Store Assignments Control:
- Which stores they can clock in/out from
- Which locations they can process transactions at
- Which store's inventory they can access
Common Questions
"What's the difference between Store Name and Store Code?"
- Store Name: Customer-facing, descriptive ("Downtown Portland Store")
- Store Code: Internal identifier for systems and reports ("PDX-001")
Think of it like:
- Store Name = What customers see on receipts
- Store Code = What appears in backend systems and inventory reports
"Can I change the timezone after setting it up?"
Yes, but be careful:
- Existing transaction timestamps won't be retroactively adjusted
- Operating hours will display differently
- Reports may show inconsistencies around the change date
Best Practice: Set the correct timezone from the start.
"How do Tax Jurisdictions work?"
Tax Jurisdictions are separate documents that define:
- Which tax rates apply (state, county, city, special districts)
- Total combined tax rate
- Effective dates for tax changes
The Relationship:
Store → Links to → Tax Jurisdiction
├── State Tax: 6.00%
├── County Tax: 1.50%
├── City Tax: 0.50%
└── Total: 8.00%
Multiple stores can share the same Tax Jurisdiction if they're in the same location.
"What happens when a store is set to Inactive?"
When a store's "Active Status" is disabled:
- The store remains in the system with all data intact
- Historical transactions are preserved
- Inventory levels are maintained
- Staff assignments remain
- But: The store may be hidden from operational systems (POS, inventory management)
Use Inactive Status for:
- Seasonal closures
- Temporary shutdowns
- Stores being decommissioned (before eventual deletion)
Don't Use Inactive Status for:
- Normal days off (use operating hours instead)
- Temporary emergencies (communicate separately)
"How do Store-Specific Products work?"
Some product variants can be limited to specific stores:
Product Level:
- When creating a variant, toggle "Store Specific Product"
- Select which stores can sell that variant
- Only those stores will see the variant in their POS systems
Inventory Level: Each store has its own inventory tracking (Inventory Levels) that links:
- Product variant (by SKU)
- Store location
- Quantity on hand
- Reorder settings
The Connection:
Product Variant (SKU: TSH-SM-BLU)
├── Store 1 → Inventory Level: 50 on hand
├── Store 2 → Inventory Level: 30 on hand
└── Store 3 → Not available (store-specific restriction)
Naming Best Practices Summary
Store Names
- Capitalize important words
- Include location context (city, neighborhood, landmark)
- Be customer-friendly and descriptive
- Don't use generic numbering ("Store 1")
- Don't use codes as names ("PDX-001")
Store Codes
- Uppercase letters and hyphens/underscores
- Short and memorable (3-10 characters)
- Globally unique across all stores
- Follow a consistent pattern
- Don't reuse codes
- Don't use generic numbering without context
Phone Numbers
- Use any format that makes sense for your region
- Include area code
- Consider international format for global operations (+1, +44, etc.)
Operating Hours
- Use 24-hour format (09:00, 17:00, 21:00)
- Be consistent with formatting across all days
- Don't use AM/PM notation
- Don't add entries for days when closed
Quick Checklist
Before publishing a store, verify:
- Store name is descriptive and customer-friendly
- Store code is unique and follows your naming pattern
- Complete address is entered (street, city, state, postal code, country)
- Timezone matches the physical location (REQUIRED)
- Default currency is set (REQUIRED)
- Tax jurisdiction is linked (if applicable)
- Active status is set correctly
- Operating hours are entered for all open days
- Operating hours use 24-hour format (HH:MM)
- Store managers are assigned (if applicable)
- Phone number is entered
Related Documentation
- Inventory Levels: Learn how inventory is tracked per store
- Tax Jurisdictions: Set up tax rates for store locations
- Users (Managers & Employees): Assign staff to store locations
- Sales Transactions: Understand how stores process sales
- Product Variants: Create store-specific product availability
System Relationships
Understanding how stores connect to other parts of the system:
Stores Connect To:
Users (Bidirectional Sync):
- Managers:
store.managerIds↔user.roleManager.storeAssignments - Employees:
user.roleEmployee.storeAssignments→ Store
Inventory:
- Each variant at each store = one Inventory Level document
- Tracks quantity on hand, reserved, reorder points per location
Transactions:
- Sales transactions link to the store where they occurred
- Returns link to the store processing the return
Products:
- Store-specific variants can be restricted to certain locations
- Controlled via
productVariant.storeSpecificProductandstoreLocationfields
Tax Jurisdictions:
- Stores link to tax jurisdiction for automatic tax calculation
- Multiple stores can share the same jurisdiction
Tips for Multi-Store Operations
Consistent Naming Patterns
If you operate multiple locations, establish patterns early:
By City + Number:
PDX-001, PDX-002, PDX-003
NYC-001, NYC-002
By City + Neighborhood:
SEA-DT (Seattle Downtown)
SEA-UNI (Seattle University)
SEA-CAP (Seattle Capitol Hill)
By Region + Location:
NW-PDX-01 (Northwest region, Portland, store 1)
NE-BOS-01 (Northeast region, Boston, store 1)
Timezone Management
For multi-timezone operations:
- Set each store's timezone to its physical location
- Reports will aggregate correctly across timezones
- Transaction timestamps reflect local time
- Operating hours display accurately
Manager Assignments
Consider management structure:
- Store Manager: Manages one location
- Regional Manager: Assigned to multiple stores in a region
- Corporate Manager: May have access to all stores
Set reportingLevel in the manager's role to distinguish these levels.
Inventory Strategy
Decide on inventory distribution:
- Centralized: Most inventory at flagship stores
- Distributed: Balanced inventory across all locations
- Regional Hubs: Larger stores supply smaller ones
Use reorderPoint and reorderQuantity at the inventory level to automate restocking alerts.