RECORDGOD/site
type-two ef37063b2e feat(distro): Inertia xlsx ingest + cost/new-used/margin in inventory editor
(1) Inventory edit modal gains Cost + New/Used + a live Margin readout (price−cost, %); inv_edit accepts
cost_price + condition_type; inventory list returns them.
(2) Inertia/Warner SOH list = an xlsx that doubles as the order form (fill ORDER QTY, upload). New
/admin/intake/distro-sheet[/preview]: openpyxl parses header-mapped columns (ORDER QTY/UPC/ARTIST/TITLE/
FORMAT/PPD), takes rows with QTY>0 → shared _ingest_distro core (refactored out of the RareWaves path) →
staged NEW stock with cost_price=PPD, kind from FORMAT (cd/vinyl), catno kept. Upload+preview UI in New stock.
DistroItem gains kind+catno; RareWaves path now passes kind too. Verified on the real 3,368-row Warner sheet:
3 ordered titles → 4 copies, all resolved, kind=cd, cost from PPD. Added openpyxl to requirements.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 11:39:39 +10:00
..
admin.html feat(distro): Inertia xlsx ingest + cost/new-used/margin in inventory editor 2026-06-27 11:39:39 +10:00
builder.html feat(builder): P1 page editor — live preview now renders a REAL release from the catalog (real covers/tracklist) so block-arranging is WYSIWYG; + View-live link 2026-06-23 01:00:28 +10:00
dash.html feat(nav): light/dark switch every page + store→rack→crate navigator 2026-06-22 19:33:24 +10:00
index.html feat(nav): light/dark switch every page + store→rack→crate navigator 2026-06-22 19:33:24 +10:00
kiosk.html feat(shop): per-track Apple previews (lazy iTunes) + jog mini-player + dead-YouTube check 2026-06-23 23:44:17 +10:00
login.html feat(auth): staff email+password login + password reset (login stays token-based under the hood) 2026-06-26 16:24:34 +10:00
nav.js feat(nav): light/dark switch every page + store→rack→crate navigator 2026-06-22 19:33:24 +10:00
pos.html feat: Woo customer sync (non-destructive, in refresh.sh) + AusPost rates mirror & quote calc 2026-06-24 00:55:56 +10:00
receipt-logo.webp feat(pos): receipt logo + Monster Robot template (store name/address/footer) 2026-06-23 17:33:08 +10:00
records.html feat(shop): entity browse pages — artist/label/genre/style storefront views 2026-06-23 01:18:15 +10:00
release.html feat(shop): per-track Apple previews (lazy iTunes) + jog mini-player + dead-YouTube check 2026-06-23 23:44:17 +10:00
search.html feat(nav): rotate diagram button — 90° view rotation (rack + store), text stays upright 2026-06-23 21:55:51 +10:00
shop.html feat: clean stub URLs (/builder /shop /admin /dash) + store geometry + storefront 2026-06-21 23:16:57 +10:00
wantlist.html feat(shop): P4 wantlist — public 'request a record' page + admin queue 2026-06-23 01:29:00 +10:00