📋 Sorted highest DSN → lowest DSN. Pack top card first — that customer is delivered last.
Loading...
🧾 POS — Home Delivery
Today: —
Recent Customers
📋 Cart
🛒
Tap a fish to add to cart
Discount ₹
0 items0.00 kg
Discount-₹0
TOTAL₹0
Quick Select
0.5 kg
₹0
Fish & Stock
Customers
📱 WhatsApp Name = the display name that shows in the WA group chat (often different from real name). Fill this so WA Import can auto-match orders to the right customer. Export → fill in Excel → re-upload via Bulk Add.
DSN
Call
Name
WA Chat Name
Phone
Area
Address
Orders
GPS
Actions
🤝 CRM
days idle
⏰ Needs Follow-up
Customer
Area
Last Order
Days Idle
Lifetime ₹
Nudge
Customer
Area
Tags
Orders
Lifetime ₹
Credit Due
Notes
🔢 DSN Management
How positional reorder works: Enter any DSN number in the input and press Set.
The system automatically shifts every other customer in that area to keep the sequence unique and gap-free — moving Sarath from A5 to A1
pushes the old A1, A2, A3, A4 down to A2, A3, A4, A5 automatically. No duplicates are ever created.
DSN ▲
Name
Phone
Area
Address
Set New DSN
Delivery Boys
Loading…🔄 auto-refreshes every 25s while open
Expenses
Date
Category
Description
Amount
Offers
💰 Accounts / Receipts
📋 Outstanding Now
Order Date
DSN
Customer
Area
Total
Received
Balance Due
Payment Split
By Area
📅 Date-wise Payment Report
Date
Orders
💵 Cash
📱 GPay
💳 Credit
Total
Fish Sales
Fish
Qty
Revenue
Margin
📈 Reports
Top Fish
Fish
Orders
Qty
Revenue
Daily Breakdown
Date
Orders
Revenue
Cash
GPay
Credit
Item-wise Sales — Qty, Revenue & Margin
Fish
Orders
Qty Sold
Sale ₹/kg
Revenue
Purchase ₹/kg
Est. COGS
Est. Margin
Margin %
"actual" = real cost from the stock batch that was sold (tracked from Fish → +Stock). "est." = fish had no tracked batch yet, so today's buy price was used instead. "blend" = a mix of both within that row.
By Area
Area
Orders
Revenue
Delivered
Pending
Avg Order
By Delivery Boy
Boy
Assigned
Delivered
Pending
Collected ₹
Pending ₹
Payment Split
Customer-wise — Top Customers
Customer
Area
Orders
Revenue
Avg Order
Last Order
Days Since
📤 Notify Buyers of a Fish
Use {name} and {fish} — they're filled in automatically for each customer.
Customers who bought this fish
#
Name
Item
Qty
Call
WhatsApp
🛒 Purchase Log (Fish Stock Bought)
Date
Description
Amount
Sourced from Expenses entries logged under category "Purchase". Add purchases there (Expenses → +Add → Category: Purchase) to see them here.
📋 Customers with Outstanding Credit
Customer
Phone
Area
Outstanding ₹
Lifetime ₹
Last Order
📈 Daily Profit — Sales − Purchase Cost − Expenses
Date
Sales ₹
Est. COGS ₹
Other Expenses ₹
Profit ₹
🐟 Daily Item-wise Profit
Date
Fish
Qty Sold
Sale ₹/kg
Purchase ₹/kg
Profit ₹
"actual" = real cost from the stock batch that was consumed for that sale (Fish → +Stock records the buy price of every batch). "est." = no tracked batch covered that sale yet, so today's buy price was used as a fallback. Add stock through Fish → +Stock each time you buy, and every future sale gets an "actual" cost automatically.
💳 Payment Ledger — Customer × Order Date
Order Date
DSN
Customer
Area
Cash ₹
GPay ₹
Credit ₹
Total ₹
GPay only shows here once the payment is actually confirmed received (Orders tab → Pay dropdown, or Delivery boy's Pay QR screen). Anything not yet confirmed paid is listed under Credit until it's marked paid.
Staff & Logins
Staff log in using their password. They only see tabs you allow via module restrictions.
⚠️ Danger Zone
Clear ALL data — orders, customers, fish, expenses. Cannot be undone.
💬 WhatsApp Order Import
Copy messages from WhatsApp (Select messages → Copy) and paste below. Works with all 3 groups — paste one group at a time, or all together. Already-imported messages are skipped automatically (duplicate-safe). Stock-out messages (e.g. "Netholi kazhinjhu" / "Netholi over" sent from your own number) automatically cut off any later order for that fish — those rows are flagged in red and excluded from import by default.
Either match is enough to identify an admin message (used to detect "Booked" replies and stock-out announcements like "Netholi kazhinjhu" — messages from either match are never treated as customer orders).
In WhatsApp: open the group → ⋮ menu → More → Export chat → Without Media → share the .txt file to yourself → upload it here
⛔ Stock-out cutoffs detected
Preview — check each row, uncheck any you don't want imported
Group
Time
Sender
Customer Match
Area
Fish
Qty
Status
🤖 WhatsApp AI — Order Automation● checking…
🧾 Orders Today (WA AI)
0
💰 Revenue Today
₹0
⏳ Pending
0
⚠ Needs Review
0
✕ Rejected — No Stock
0
Auto-refreshes every 3 seconds while this tab is open — this is your real-time order count box.
Time
Sender
Message
Fish
Qty
Status
Fish
Ordered Today (WA AI)
# Orders
Remaining Stock
Orders the AI couldn't confidently auto-confirm — wrong/unclear fish, unmatched customer, or insufficient stock. Fix and confirm, or reject.
💡 Once the WhatsApp service connects, every group the shop's number is in appears in "Discovered Groups" below with its real ID — click Use → next to your 4 order groups to add them here. Anything NOT added here is never watched, even though it's visible in the discovered list — so personal/family groups stay private by default.
🔍 Discovered Groups (browse only — click Use to add)
Group Name
ID
Waiting for the WhatsApp service to connect and report its groups…
Group
Active
Broadcasts Catalog
Every spelling a customer might type for a fish — Malayalam script, Manglish, English, common typos. The AI tries this list first before calling Gemini.
Fish
Variant
Checking connection status…
✅ Connected to WhatsApp
Open WhatsApp on the shop's phone → Settings → Linked Devices → Link a Device, then scan the QR above. It refreshes automatically every few seconds while waiting.
If nothing appears after ~30 seconds, make sure the WhatsApp service is running on the machine you set it up on (double-click start.bat if it isn't).
Time
Sender
Type
Text/Transcript
Match
Status
Used only when a customer replies to a fish photo with no quantity at all (e.g. just "ok" or a 👍).
Gemini API key/provider are shared with the existing WA Import tool — configure those under 💬 WA Import → AI Settings.