Overview Dashboard
Brand Portfolio Distribution
Security & Product Audit Feed
View Full Log ›Catalogue Pricing
Applies to every product with no discount of its own. Saving stores the rate; press Apply to write the prices.
Uses the search, brand, type, category, billing slab, units and stock filters on the table below. Set per product, and only the filtered products are repriced. A later discount-plan import will overwrite it — the plan matches on style code and does not know a rate was set by hand.
| Product & Model | Colourway | Brand / Category | Price | Live Stock | Status | Visibility | Actions |
|---|
Sales, Customers & Best Sellers
Indian calendar months. Revenue is counted when the money arrived, not when the checkout started.
Traffic — last 30 days
Counted first-party, only from visitors who accepted measurement. Bots are not counted, so this reads lower than a server log.
Size-Level Inventory Matrix
Directly edit inventory counts for each product's own sizes. Setting 0 marks that size out of stock.
| Product / Model | Stock by Size | Total Stock | Availability |
|---|
Official Brand Partners
| Brand | Tagline / Headline | Subtext | Active Models | Actions |
|---|
Customer Reviews
| Product | Customer | Rating | Review | Photos | Date | Actions |
|---|
New coupon
A percentage off, or free delivery. Leave the three scope boxes empty and it applies to the whole bag.
Existing coupons
| Code | Discount | Minimum | Applies to | Shown as | Used | Status |
|---|
Product Categories
What the catalogue is actually grouped by. Renaming one moves every product in it.
| Category | Sits under | Products | Actions |
|---|
Homepage Product Placement & Sorter
Toggle which products appear in Trending Best-Sellers, Hero, and New Drops.
| Product | Brand | Trending Rail | Featured Hero | Best Seller | New Drop |
|---|
Inventory Log
Every movement of a shelf count, newest first. A sale takes stock off; a refund, cancellation or return puts it back. Asked is what the order wanted and Applied is what actually moved — they differ only when the shelf held less than was asked for, and that gap is an oversell.
| When | Product | Size | Reason | Asked | Applied | Qty after | Order | By |
|---|
Server Security & Activity Audit Log
Immutable record of logins, product edits, inventory adjustments, and authorization events.
| Timestamp | Admin Account | Event Action | Target Resource | Details |
|---|
Customer Store Orders
Manage incoming orders, update fulfillment statuses, and track carrier dispatches.
| Order ID | Customer Details | Items Ordered | Total Amount | Payment | Status | Update Status |
|---|
Refunds ledger
Money is released by hand in the Cashfree dashboard. Recording it here is how the shop knows it went.
| Raised | Order | Customer | Amount | Reason | Status | Actions |
|---|
Returns queue
Requests customers have raised, and where each one has got to.
| Requested | Order | Customer | Items | Reason | Status | Actions |
|---|
Registered Customer Accounts
Registration dates, order counts and captured spend, composed from profiles, the auth service and the orders table.
| Customer Name | Email Address | Phone | Registered Date | Orders | Captured | Last Order | Actions |
|---|
Stock & Discount Spreadsheets
Download the live stock in the supplier's own 19 columns — edit it and import it straight back, no remapping. This is the import template: it is the real format with the real products, so it cannot drift from what the importer expects.
Catalog Ingestion & Image Matcher
Import spreadsheets (.xlsx / .csv), preview diffs, and auto-match product photography.
🧭 Columns in
Every column below was matched by name. Change anything that is wrong — nothing is written until you confirm the next step.
| Product | Style code | Colour | Price | Gender | Division | Category | Sizes | Units |
|---|
⚡ Dry-Run Diff Preview: nike fw 31826.xlsx
Ready to Ingest{ModelNumber}-{ColourSlug}-{1..N}.jpg (e.g. FD6757-302-pine-green-sail-1.jpg)
✅ Matched & Linked (0)
❌ Unmatched Filenames (0)
Products Currently Using Category Placeholders
Use this checklist to identify which items require photo sourcing.
| Placeholder | Model Number | Product Name | Brand & Category | Colourway | Division | Stock Qty | Visibility | Action |
|---|
| Timestamp | Spreadsheet Filename | Total Rows | Products Created | Variants Created | Variants Updated | Operator | Status |
|---|
Tax invoices
Issued automatically when an order is paid. Prices are inclusive of GST, so the tax shown is extracted from what the customer paid rather than added to it — 5% below ₹2,500 and 18% at or above, split CGST + SGST inside Karnataka and charged as IGST outside it.
| Invoice | Date | Order | Supply | Taxable | GST | Total | Emailed |
|---|
Delhivery
Paid orders book themselves: one paid before the daily cutoff rides that day’s van, a later one waits for the next. Everything here is the manual path — for a booking that failed, a parcel that must be stopped, or a question the automatic flow never asks. Weights are in grams and dimensions in centimetres, the same units Delhivery uses.
Parcel presets
Named parcels, in grams and centimetres. Pick one when manifesting instead of retyping four numbers. The default is what an order uses when nothing else is set.
Store Configuration & Backup
Delhivery — automatic booking
When this is on, every order manifests a courier consignment as soon as its payment is
confirmed. The API token comes from the deployment environment
(DELHIVERY_API_TOKEN); the pickup location must match a warehouse
registered on your Delhivery account exactly — same case, same spacing.
Run npm run delhivery:check to confirm it before switching this on.
Orders paid on a closed day ride the next working day’s van.
Parcel defaults
Every consignment is declared with these. Delhivery reweighs at its facility and bills what it finds, so a figure that is badly wrong shows up as a weight-discrepancy charge on your invoice, not as an error here. The defaults describe a mid-size shoebox.
Your Password
Changing your password signs nothing else out — your current session stays valid. Your current password is required, so an unattended open session cannot be used to take the account over.
Administrators
| Name | Role | 2FA | Last sign-in | Status | ||
|---|---|---|---|---|---|---|
| Loading… | ||||||
Add an administrator
They sign in at /admin.html with this email and password. Two-factor is off
until they set it up themselves from this screen, so send the password over something other
than the email address you just typed.
🛡️ Break-glass Recovery
Master recovery key
The vault link opens a single field that takes the master recovery key and nothing else.
It exists for one situation: every administrator account is locked out or gone. It is not
a second way in for ordinary sign-in, and a session opened with it is marked as such in
the audit log. The admin console itself is not hidden — it is reachable
at /admin.html by anyone who types it, and the sign-in is what protects it.