⏳ Connecting to database…

Dashboard

Recent salesView all →
Pending payoutsView all →
💵 Deposits — balance dueView all →
📈 Sales trend
🛍️ By channel
📦 Inventory health
💰 Money & inbound
⏳

Loading inventory…

Consignors

Suppliers

Contacts

Export

Bukku Sales CSV
Sold items only — import to Bukku as sales invoices

Activity Log

Full audit of every change — additions, edits, sales, repairs, returns, payouts and deletions. Click an entry to open the record it belongs to.

Purchases

Every Stock In becomes a purchase receipt here. Attach the supplier invoice, mark it paid, and edit details — totals recalculate automatically.

Bank

🗄️ Audit

Everything an auditor asks for, in folders: one per account for bank and card statements, the card-terminal merchant statements and swipe CSVs, Stripe reports and anything else. Open a folder, click a file to open it, ⬆ to add one. A bank statement's closing balance is tied to the app's balance at that month end. Files live in the Files library under the folder Statements.

📥 Shoebox

Receipts, bills and invoices land here first — read automatically, then create the record beside the file.

📒 Bukku

A live, auto-synced mirror of every section — showing where each record lands in Bukku. Read-only; nothing is written back to Bukku.

Expenses

Rent, marketing, packaging, fees and other running costs — each can be recorded in Bukku (Money out).

Director Own Use

Own-stock items taken by the director for personal use — non-cash drawings at cost. Each taking is charged to the director's account in Bukku (stock adjustment + journal to 1007 Director Account) — "Settle to Director Account" records that journal and the amount Bukku charged.

Consignment

Files

Drop in invoices, receipts and any document. Give it a quick description (or let AI read it for you), then find it later just by typing.

Health check

Bills, expenses, payments, costs, cards and statements that don't add up. Click a row to open the record and fix it there; the list clears itself as you do.

Reports

Bukku's own figures, read live — the same numbers as Bukku → Reports. Click any account to see its ledger. Read-only: nothing is written to Bukku.

Shipping

Sales

🗑️ Trash

Deleted items are kept here so you can restore them. Restoring puts the record back exactly where it was. Only admins can permanently delete.

Settings

Most settings sync across all your devices. Lists (categories, channels, payments) and the AI key save instantly; the rest save with the buttons shown.
💾 Data backup
Download a snapshot of every collection — sales, inventory, expenses, transfers, purchases, refunds, credit notes, accounts, consignors, customers, activity and settings — as one JSON file. Do this before any big change and keep it somewhere safe (cloud drive + a USB). Photos and attachments stay in Firebase Storage; condition photos are copied to Drive by the daily backup below.
☁️ Google Drive backup — writes the entire system to a Google Sheet (a tab per section) in your Leluxestudio Backup Excel folder, so you have a readable failover copy even if the app is down. Runs automatically every day; use the button for an on-demand snapshot.
Company profile
Used on invoices, consignor statements and agreements. The more you fill in, the more professional your invoices look.
Payment details (printed on invoices so customers know how to pay)
Sender / pickup address
The "from" details on shipping labels and courier bookings.
Branding
Company logo (shown in sidebar)
Upload logo
Accepts PNG, JPG, SVG. Recommended size: 300×120 px or wider. Transparent PNG works best on the dark sidebar.
The browser-tab icon already follows your logo. For the installed home-screen icon, tap ⬇ App icons from logo, then place the 3 downloaded files into your public/ folder and redeploy.
Colour theme
💳 Payment links
Optional features
Untick what the shop doesn't use to hide it for the whole team. Nothing is deleted: tick it again and everything is still there.
Layout
Pick the page that opens on launch; drag to reorder sidebar items or untick to hide them.
Groups — collapsible categories, like channels. Name them, then assign menu items below.
Sidebar menu — drag to reorder, untick to hide, pick a group
⌨️ Keyboard shortcuts
Speed up data entry on desktop. Click a shortcut and press the keys you want — the hint on the buttons updates to match.
Costing defaults
Pre-filled when you stock in an item (you can still override per item).
Added to landed cost of imported items.
Per-bag authentication cost.
Consignment policy
Shown in the consignment form & agreement. The consign period also drives the "due for return" alerts.
Consignment T&C
One clause per line. Shown at the bottom of the consignment intake form.
Agreement description (the paragraph shown under the agreement header)
Exchange rates (to MYR)
How much 1 unit of each currency equals in MYR. Auto-updates daily from live market rates.
Sales Channels
These appear as options when recording a sale. Drag the ⠿ handle to reorder — the sequence carries into the sale form.
Accessories / inclusions
The tick-chips on the item form's Extras section. Drag ⠿ to reorder, ✎ to rename (offers to update the items that carry it), × to remove — items that already have it keep it.
Product Categories
These appear as options when adding or editing an item. Drag the ⠿ handle to reorder.
Payment Methods
Available payment options when recording a sale. Drag the ⠿ handle to reorder. Use ✎ to rename — it carries the fee rule, the deposit account and every payment already recorded under that name.
✨
AI Assistant
Paste your Anthropic API key to switch on the AI features. Pay-as-you-go & very cheap (a few sen per action). Get a key at console.anthropic.com → API keys.
Shopify
Checks which items are live on your Shopify store (by SKU) and shows a "✓ On Shopify" badge on each product. Read-only. Auto-refreshes in the background when open (every ~2h); tap below to refresh instantly.
🧾 Bukku (accounting)
Read-only pull of invoices, bills, payments, credit notes, bank balances and products into the Bukku section, where each app record is matched to its Bukku document. Hourly in the background and on demand. Nothing is written to Bukku.
🔗 Stripe (payments)
Read-only pull of every Stripe charge with its exact fee, payouts and balance. The real fee replaces the 3% + RM 1 rule once stamped (Balances → 💳 Payment links). Hourly and on demand.
📥 Shoebox intake (WhatsApp + email)
Receipts sent to the shop's WhatsApp number or to a person's Shoebox email address land in the Shoebox, read and ready to key. Official WhatsApp Business Platform + SendGrid Inbound Parse; both receive only.
☁️ Google Drive backup
Every collection is written to a tabbed Google Sheet in the company Drive daily, and on demand from Settings → Admin & data. Vault entries are exported as ciphertext only.
Daily at 03:00 · on-demand copies run from here.
📅 Google Calendar
Appointments and public bookings are pushed into the shared company calendar as they are saved (Cloud Function trigger). The backfill pushes everything once.
✉️ Invoice email (Resend)
Invoices and receipts are emailed from invoices@leluxestudio.com through Resend; delivery, open and bounce status flows back onto each sale.
🤖 Document reader (Claude)
Every file added to Files or the Shoebox is read for supplier, date, amount and a description. Runs through the aiProxy function; the key never reaches the browser.
Users
Admins have full access. Staff cannot access Settings or delete items.
Loading users…
🔒 Staff permissions
Change my password
🛎️ Services
Services you sell in the Sales section — these have no quantity (e.g. Authentication, Bag spa, Watch service, Delivery). Set each one's default price and the details that show under the line; on the sale form, pick one from “🛎️ Add a service.” Add new ones any time; the list syncs to the whole team.
🔐 Business password vault
Zero-knowledge: every password and note is encrypted in your browser with the vault passphrase (AES-256-GCM; key derived by PBKDF2, 600,000 rounds). The passphrase is never stored or sent anywhere — not to the database, not to backups, not to anyone. If it is forgotten, nothing can recover the entries. Admins only. Locks itself after 5 minutes idle or 5 minutes away from this tab; a revealed password hides again after 20 seconds; a copied one is cleared from the clipboard after 30 seconds where the browser allows.
Loading…
💬 Message templates
Every canned WhatsApp/email message the app drafts — edit the wording here. Changes sync to the whole team. Keep the {placeholders}; they're filled in automatically.
Used when a customer has no language set. Per-customer language overrides this and auto-translates their WhatsApp drafts.
📜 Activity & health
Who did what, when — and any app errors caught on team devices.
📄 Document expiry tracking
Agreements, permits, insurance policies, tenancy — the dashboard reminds you 30 days before each renewal.
🗑️ Trash / Recycle Bin
Anything you delete (products, sales, customers, consignors, suppliers) is kept here so you can restore it. Open it to review or restore deleted records.
🔗 Outbound webhooks
POST a JSON payload to Zapier, Make, or a Google Apps Script web app every time a sale is recorded — extend the app without any code. Leave blank to disable.
🔁 Duplicate SKUs
Items that share a SKU (should be unique). Review each pair and move the wrong copy to Trash (recoverable).
📤 Export
Export your inventory, sales and contacts to CSV for accounting or backup.
🕓 Activity log
A history of everything done in the app — who added, edited, sold, or deleted what, and when.
📧 Invoice email self-test
Sends a sample invoice email to your own signed-in address and reports whether the PDF attachment survived. Nothing is sent to a customer, and no sale is touched — the send deliberately carries no sale id, so no invoice gets stamped as emailed.
🧹 Storage orphans — purchases
Files under purchases/ that no bill, payment, payout or expense references. Policy (2026-09-07): these are PARKED for future reference — nothing is deleted. A replaced or ✕-removed attachment stays in Storage too. Scan only counts.
🎨 Display
📅 Public booking link
Share a link where customers pick an available date & time themselves. Requests land on your Dashboard to confirm — confirming creates the appointment. Set your available days, hours and how long each slot is.
Available days
📝 What the customer fills in
Name & phone are always asked. Add your own purpose options and any extra questions — change these anytime.
Extra questions
👁️ Preview booking page
Saves Business profile, Operations & finance. (Layout, lists and the AI key have their own save buttons.)

💱 Exchange Rates

How much 1 unit of each currency equals in MYR. Auto-updates daily from live market rates; you can also edit any rate manually.

Contacts
Shipping
Consignment
Pop-up Fairs
Stock
Settings
Sign out