Case study · Product I own
StoqShelf
Inventory for owner operators: QR scan to sell, cashiers who never see cost price, per item profit.
- Role
- Founder, sole developer
- Status
- Relaunching
- Stack
- PHP, CodeIgniter, MySQL, PayPal
Summary
- Problem
- Small businesses with staff need to delegate selling without handing over their margins or paying per seat.
- System
- Cloud inventory where a cashier delegate sells by QR scan from any phone and sees only price and stock; the purchase cost stays on the server, owner only.
- Outcome
- Relaunching: hosting is being restored, so there is no public link until it is back online.
What needed to exist
Inventory an owner can delegate without giving away the margin.
StoqShelf is inventory and stock management for small and medium businesses: live stock tracking, product catalogues and business reporting. Owners with staff need someone else to sell without handing over their margins.
Architecture
The cost price never leaves the server.
- CAMERA Phone browser reads the item QR
- CLIENT Cashier enters quantity 2
- AUTH Server checks the delegate role
- DB Stock decremented in one transaction
- LEDGER Sale and margin logged for the owner
- ALERT Low stock threshold crossed
- VIEW Cashier sees price and stock, never cost
Every stageSample data
01/07 · CAMERA · PHONE
scan → SKU-0142 item: "USB-C Hub 7-Port"
02/07 · CLIENT · PHONE
POST /sales
{ sku: "SKU-0142", qty: 2 }
03/07 · AUTH · SERVER
role: cashier can(sell) ✓ can(edit) ✗ can(view_cost) ✗
04/07 · DB · SERVER
BEGIN SELECT … FOR UPDATE qty 12 → 10 COMMIT
05/07 · LEDGER · SERVER
sale · 2 × $24.00 margin → owner ledger only
06/07 · ALERT · SERVER
qty 10 ≤ reorder_at 12 queue: email owner
07/07 · VIEW · PHONE
200 OK
{ price: 24.00, stock: 10 }
// cost never left the server
- Stock
- 10 · low
- Revenue
- +$48
A cashier sells by QR scan from any phone and sees only price and stock. The purchase cost stays on the server, owner only, enforced by the server rather than the screen.
Result
Relaunching.
StoqShelf runs on PHP, CodeIgniter and MySQL with PayPal billing. Its hosting is being restored, so there is no public link until it is back online.