Sales
A ledger for selling singles — buyers, statuses, batches, share receipts and binder unloading.
Silvane Pro
Sales is a Pro feature. See Silvane Pro.
Sales is a ledger for moving singles — locals, Discord buylists, table deals. It tracks who bought what, for how much, and where the deal stands; when the cards physically leave your binders, it updates your collection too — but only when you say so.
Retail or Batch mode
The first time you open Sales it asks how you sell:
- Retail — a simple flat list of sales, one per buyer and date.
- Batch — sales grouped under named batches ("GP Austin 2026", a buylist shipment) with per-batch totals.
This is a display preference, not a commitment — switch anytime from the ⋯ menu, per device. Retail mode always lists all sales, including ones that live in batches; Batch mode is a grouped lens over the same ledger.
Inside a batch, Paid / Packed / Delivered chips under the search box work as filters — combine them to see, say, everything paid but not yet packed. And a long-press on any sale offers Move: a picker of your other batches (newest first) re-files the sale, exactly the way binders move into folders.
Recording a sale
Tap +, name the buyer and set the date. Buyers are created as you type — an autocomplete offers the people you've sold to before, so repeat buyers stay one row, not five spellings.
Then Add Card: search anything and tap a printing's finish chip to drop it in — tap it again and the line's quantity grows (no duplicate rows). With the Owned filter on, listing more copies than your binders hold shows a heads-up toast — informative, never blocking. Tap a line to refine it — finish, condition, quantity, and the unit price:
- Price is optional. The market price appears as a suggestion; leave the field blank and the line simply follows the market (it shows a small "mkt" tag). Type a price and that's the agreed deal, frozen.
- Totals — per line, per sale, per batch — use the agreed price when you set one and the current market price when you didn't. Prices are USD.
A sale also holds a free-text note, edited right on the sale screen.
The note is part of the receipt
The sale note appears on the shared receipt page under "Note from the seller" — write it for the buyer, not for yourself.
Statuses
Every sale carries three independent switches — Paid, Packed, Delivered — shown as tappable chips on the sale and as three dots on every list row. They're yours to flip in any order (money first, usually), each remembers when it happened, and the shared receipt shows the same three steps with their dates, so the buyer can follow along.
One flips itself: unloading every card of a sale from your binders marks it Packed automatically — pulled and sleeved is packed.
Batches
In Batch mode, + creates a batch (name + date); inside it, + adds sales pre-dated to the batch date. The batch list rolls up totals and statuses — the dots light up only when every sale in the batch has that flag. Deleting a batch deletes its sales with it (with a warning — there's no undo).
Sales join a batch when they're created inside one; there's no moving a sale between batches later.
Sharing a sale — the receipt link
Long-press a sale (or open it and hit ⋯) → Share. Each sale gets a
permanent link like silvane.app/sale/… that renders a clean order
receipt: buyer name, seller username, the three status steps with dates,
every card with set, finish, condition and price, the total, and your note.
The buyer can refresh it to watch the status move — no account needed.
- Links are private by default — flip the Public toggle in the share sheet to activate one, and flip it back anytime to shut the same URL off for everyone but you.
- Receipts are link-only: they're never listed on your public profile, and search engines are told not to index them.
- What the buyer never sees: which binders the cards come from, your batches, or any other sale.
- Creating the link needs a connection (the token is minted server-side).
The pick list — from ledger to binders
Recording a sale doesn't touch your collection. When it's time to actually pull cards, Sales closes the loop:
1. Assign sources
On each sale line, the binder icon opens Assign source: every binder holding that exact printing in the line's finish, with its condition, language and available count. Pick where this card will come from. Positions with fewer copies than the line needs are shown disabled — no partial pulls. (Copies reserved in tracked decks are flagged as a caption, but it's your call.)
2. Work the pick list
The pick list (tray icon on a sale — or on a whole batch) groups every assigned card by binder, so you pull binder by binder instead of jumping around. Unassigned lines and lines whose binder has since been deleted get their own sections.
3. Unload
Unload deducts the pulled cards from the exact assigned positions — all-or-nothing: if anything no longer fits (copies gone, binder deleted), nothing is deducted and the blockers are listed. On success the items are check-marked, fully-unloaded sales flip to Packed, and a position that hits zero goes to the recycle bin like any other removal.
Changed your mind?
Revert unload — per line or for the whole pick list — puts the copies back exactly where they came from (status flags stay as they are). The assignment survives as history, so a completed sale still remembers which binder each card left.
Delete ≠ revert
Deleting a sale (or a line) does not return unloaded copies to your binders — revert first, then delete. Sales, unlike collection cards, are hard-deleted with no recycle bin.
Filters, search and sorting
Both modes search by name (buyer or batch), sort by date, name/buyer or total, and filter by date — This month, Last month, This year, Last year, or a custom range.
Backups
Account backups include the full sales ledger — buyers, batches, sales, lines and their binder assignments. Restoring into a different account clears share links (the clone starts private, no old receipt URLs point at it).