Inventory, batches & sales — backed by your Google Sheet
All-time, across every sale. Sales profit charges each £0 reward redemption its real, stored COGS.
| Sweet | Tier | Price | Stock remaining |
|---|
| Date | Sweet | Qty | Price charged | Revenue | COGS | Profit | Stock after | Customer | Actions |
|---|
A stock pool lets two or more sweets share the same physical delivery of stock (e.g. sold under two interchangeable names at the same price) — selling ANY sweet in a pool draws down the shared total. Assign a sweet to a pool from its Edit form above. Most sweets have no pool — leave "Shares stock with" set to none.
A sweet's sale price is always whatever its assigned tier currently says here — editing a tier's price only affects sales recorded from now on; past sales keep the price they were sold at.
| Order date | Sweet | Qty ordered | Remaining | Cost/unit | Supplier |
|---|
Each courier gets a short access code, generated here, that they enter once into courier.html. It's a real credential — checked server-side against this list on every single sale they record, not just at login. Flip a courier to Inactive to revoke their access immediately; their very next sale attempt will be rejected, even if they never reload the page.
| Name | Access code | Status | Added |
|---|
A REAL physical stock draw — this decrements the chosen batch's remaining stock immediately, same as any other draw. The courier then owes you the sale-price revenue for whatever they sell from it; unsold stock just stays outstanding (no "return to batch" — a future manual fix if it's ever needed). Since this shipped, a courier can ONLY sell stock they currently have an open handout for on courier.html — this replaces free selling from the whole warehouse.
Open and settled handouts both stay visible here, tagged — audit-trail style, same as voided sales. Outstanding/revenue owed are always computed fresh from the Sales log (excluding voided sales), never a stored counter.
| Courier | Sweet / Pool | Batch date | Handout date | Handed out | Sold | Outstanding | Revenue owed | Status |
|---|