# Shiva Jewellers — Multi-Store User Guide

**For:** Shop owners, managers, cashiers, warehouse staff  
**Admin:** http://shiva.jewels/admin  
**Store locator:** http://shiva.jewels/stores  
**Version:** 2026-09

---

## 1. What is Multi-Store?

Each shop and warehouse keeps **its own stock**.

| Location | Example stock |
|----------|----------------|
| Warangal Store | 10 gold chains |
| Hyderabad Store | 4 gold chains |
| Central Warehouse | 50 gold chains |

**Remember**

- POS sells from the **selected store only**
- Online orders allocate to **one** location when possible; otherwise **split** across stores (Split Orders ON by default)
- Website **In Stock (N)** = sum of available stock at Fulfills-online locations (e.g. 10@A + 2@B → **12**)
- Moving stock between branches needs a **Stock Transfer**
- Day cash (Day Ledger) can be filtered **per store**

Always confirm **which location** you are in before selling, receiving, auditing, or closing the day.

---

## 2. Who can do what?

### Admin / Super Admin
- See all stores
- Create locations, suppliers, POs, rules, zones
- Assign staff to stores

### Staff (cashier / floor)
- Only **assigned** stores
- POS for their store
- Menu items depend on **role permissions** (Multi-Store section in Roles)

**Manager tip:** Admin → **Roles** → edit staff role → tick the Multi-Store permissions you need.

If a menu item is missing, that role does not have the permission.

---

## 3. Assign staff to stores (required)

**Path:** Admin → Users → Staff → Add / Edit

1. **Assigned Stores / Locations** (multi-select)
2. **Default Location** (where POS / ledger starts)

Without an assigned store, staff cannot open POS and cannot sell for another branch.

---

## 4. Select / switch current store

- Page: `/admin/locations/select`
- Or use the **POS location switcher**

Switch **before** you sell if you work at more than one counter. Wrong store = wrong stock reduced.

---

## 5. Locations (stores & warehouses)

**Path:** Inventory → Locations → `/admin/locations`

| Type | Use |
|------|-----|
| `store` | Retail / POS / pickup |
| `warehouse` | Central stock / receiving |

**Important flags**

- Active  
- Default (primary store)  
- Fulfills online  
- Allows pickup  
- Priority  
- Address / map coordinates  

Start with **one default store + one warehouse**.

---

## 6. Dashboard (shop sales)

**Path:** Admin home (`/admin`)

Use the **Shop** dropdown:

- One store → KPIs for that shop  
- All shops → company total (admins)

Sales, profit, and charts follow the selected shop.

---

## 7. Store Balances

**Path:** Inventory → Store Balances → `/admin/inventory/balances`

| Field | Meaning |
|-------|---------|
| on_hand | Physical stock |
| reserved | Held for online carts/orders |
| damaged | Not for sale |
| in_transit | On a transfer |

Staff only see stores they are assigned to.

---

## 8. POS

**Path:** Top bar → POS → `/admin/pos`

Every shift:

1. Confirm store name in the switcher  
2. Add products (stock is for **that** store)  
3. Complete payment  
4. Stock reduces on the selected store only  

You **cannot** sell against another store. No store assigned → you will be asked to select one.

---

## 9. Stock Transfers

**Path:** Inventory → Stock Transfers → `/admin/transfers`

**Flow:** Create → Approve → Ship → Receive  
(Cancel is available before receive, when allowed)

**Typical use:** Warehouse → Store, or Store A → Store B

Ship needs enough **available** stock at the FROM location.

---

## 10. Suppliers & Purchase Orders

- **Suppliers:** Inventory → Suppliers  
- **POs:** Inventory → Purchase Orders  

**Flow:** Create PO → Mark Ordered → Receive (stock increases at receive location)

**Best practice:** Receive into **warehouse**, then transfer to stores.

---

## 11. Replenishment

**Path:** Inventory → Replenishment

1. Set rules (min/max per product/location)  
2. Review suggestions  
3. Create transfer from suggestions  
4. Approve → Ship → Receive  

---

## 12. Online orders — Allocation & Delivery Zones

- **Allocation Rules:** Inventory → Allocation Rules  
- **Delivery Zones:** Inventory → Delivery Zones (pincode → preferred store)

**Split Orders is ON by default.** Checkout prefers one store for the whole cart; if items sit in different branches, the order splits and Admin → Order shows **Fulfillment Locations** for packing.

Website stock display uses the **sum** of Fulfills-online available (Item 1 with 10 in A and 2 in B shows as 12).

Keep **Back Orders** OFF (not built).

A location needs: **Active** + **Fulfills online** + enough available stock to participate.

---

## 13. Day Ledger (per store)

**Path:** Reports → Day Ledger

Filter by **Date + Location**.  
Staff see only assigned stores.  
Close the day for the **same store** you sold from.

---

## 14. Location Ops report

**Path:** Reports → Location Ops → `/admin/reports/location-ops`

Snapshot: sales, on-hand units, approx stock cost, open transfers (for stores you can access).

---

## 15. Daily checklist (print)

### Morning
- [ ] Select your store  
- [ ] Open POS — confirm store name  
- [ ] Check Store Balances / low stock  
- [ ] Open Day Ledger for that store  

### During day
- [ ] Sell only from your store  
- [ ] Receive transfers when goods arrive  
- [ ] Receive POs into the correct location  

### Closing
- [ ] Close Day Ledger for your store  
- [ ] Note any transfers still in transit  

### Weekly (manager)
- [ ] Replenishment suggestions  
- [ ] Stock audit for high-value SKUs  
- [ ] Review Location Ops + zones / rules  

---

## 16. Troubleshooting

| Problem | What to do |
|---------|------------|
| Cannot open POS / select a store | Admin must assign store + default on your profile |
| Wrong shop stock reduced | Wrong location selected — switch store for next sales |
| Menu item missing | Role needs Multi-Store permission (Admin → Roles) |
| Transfer cannot ship | FROM location lacks available stock |
| Online order wrong store | Check Active, Fulfills online, stock, zones, rules |
| Empty Store Balances after go-live | Ask tech to run inventory backfill |
| UI looks broken | Hard refresh (Ctrl+F5) |

---

## 17. Go-live checklist (owner)

- [ ] Locations created (stores + warehouse) with correct flags  
- [ ] Every staff user assigned to store(s) + default  
- [ ] Staff roles have required Multi-Store permissions  
- [ ] Spot-check Store Balances vs physical stock  
- [ ] Test POS sale → balance drops for **that** store  
- [ ] Test Day Ledger close for that store  
- [ ] Test one Warehouse → Store transfer (ship + receive)  
- [ ] Test one online paid order (if selling online)  
- [ ] Store locator shows correct addresses  
- [ ] Split Orders ON (default); Back Orders left OFF  
- [ ] Staff know to pack split orders from Fulfillment Locations on the order screen  

---

*Technical reference (PHP): `docs/MultiStoreUserGuide.php`*
