| Item | Qty | Price RM | Line |
|---|
Cart is empty. Scan a card to start.
Example: RM27 sale, the customer hands you RM50 cash, and you return RM23 by TNG. Leave the first box blank (it takes the rest, RM50 in cash), choose Other in the second box and type -23. One entry, not three.
Admin & tools team, starting stock, backup, activity log
One manager and one employee in this beta. They sign in with their own Google account. You can remove them at any time and they lose access straight away.
One card per line: name, number, qty, value (value = the Shiny price of ONE card in RM). Then type what you paid, as a percentage of Shiny, or the total you spent, or both. The app works out each card's cost in steps of RM0.50.
Catch up from your Excel. Choose the pack file, read the preview, then press Apply. Anything already imported is skipped, and a cloud backup is saved first.
Loads every buy and sale from your old Excel sheet up to 4 Oct, so each item can show when you bought it and what happened to it. A cloud backup is saved first. Needs Admin.
Signed in as
A cloud backup is saved automatically about once a day. Nothing is downloaded to your phone.
Restore from a backup file (overwrites documents with the same name):
Admin (every edit and delete) asks for this password and the 6-digit code from Google Authenticator on any device that does not use the fingerprint lock below, such as a laptop or desktop. It locks itself after 5 minutes. If you ever lose your phone or the authenticator, delete the document admin/main in the Firebase console (Firestore database) and set it up again.
Optional. On this device Admin then asks for your fingerprint or Face ID instead of the password and code. It locks itself after 5 minutes or when you leave the app.
Tap Find, then tick only what was a test: sales (their stock goes back), cards, and money entries. Everything else stays untouched, including your Excel history and opening balances. A cloud backup is saved first, automatically. It asks for your fingerprint if the Admin lock is on.
Set prices in bulk
Starter prices only: cost plus your %, rounded up to the next RM1. Items that already have a price are not touched. Check them at the register.
Paste rows with a header line: id,price (optional extra column shiny). Only existing items are changed. Names also work if you use a name column.
Scan every card you are holding. The camera counts each card ONCE, even if you keep it in view. If you hold several of the same card (like packs), press +1 for each extra one. At the end, it compares what you scanned with what the system thinks you have. Nothing changes until you tick items and press Adjust.
Type what really left each account. Cards cost RM280, you handed over RM300 cash and got RM20 back by TNG: Cash on Hand 300, then Other and -20. Cards cost RM120, you paid RM90 cash and RM30 by TNG: 90 and 30. If you leave the first box blank it takes the rest. It posts as one buy-back.
Commission, shipping or card fees for these cards. It is added to the cards' cost (spread by value), so your profit comes out right. An advance you paid earlier to this seller can be used instead of cash.
For 集换社 purchases. Fill these in, then upload an Excel or CSV further down with columns name, number, rmb, qty (optional: id, type, paid_from). Cost = RMB × rate, plus the card fee when paid from Personal Funds. The agent's commission is added to the card cost and paid to the agent from the account you pick.
First dropdown: cards paid from (default). Second: commission paid from.
Upload your Shiny list screenshots (several are fine, overlaps are handled). It reads each card and its Shiny value, then splits what you paid across the cards in whole RM.
Columns: id,name,type,qty,cost,price. Excel Transactions rows work too, and so do rows that start with Purchase / Item In (id, type, name, qty, cost) (the account and the Shiny price in Notes are picked up). Rows go to the list below so you can check them before posting.
Type a few words and your stock appears below. Tap one to fill in the ID, name and category. For a brand new card, type its name and pick the category.
| Period | Sales | Revenue | COGS | Expenses | Bought | Net P&L |
|---|
Paste the rows the phone register gave you. Each deal is posted once; pasting the same deal again is skipped.
Pick a period and an account. Every movement is listed in order with the balance after it, so you can match it against your bank app.
Accounts show, hide or add one
Type a card (yu pik), a person (darren), a word from a remark, or a date (2026-10-15). Shows the card's history with profit, and every entry that mentions it.