Deeper companion to WOWPLATTER_MIGRATION_AUDIT.md — refreshes status (covered/partial/todo/dropped) after the recent build wave, drops to tab + AJAX-action level (40 pages / ~90 tabs / 460 actions), and proposes RecordGod's 5-group IA (STOCK/SELL/STOREFRONT/GROW/SYSTEM) to replace WP's 2-root sprawl. Key reframe: internal mirror + local images make whole subsystems evaporate, not migrate (~1/3 of actions drop as WP-survival/pre-data-centre enrichment). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
11 KiB
WowPlatter admin — mega deep-dive & reorganise (2026-06-24)
Deeper companion to WOWPLATTER_MIGRATION_AUDIT.md (page-level, 2026-06-22). That one decided cream-vs-bloat;
this one refreshes status (a lot shipped since), drops to tab + button (AJAX action) level, and proposes a
clean RecordGod information architecture to replace WowPlatter's sprawl.
The thesis: WowPlatter is everything bolted to WordPress because that's the cage John was in. RecordGod runs on
metal/Postgres and uses WP only as a dumb, secure storefront skin (the bridge). So the rule for every feature below is
not "port it" — it's "what is this actually for, and is it still needed once the data lives locally?" Internal
disc_* mirror lookups + the local image store make whole subsystems (per-row API calls, image downloaders, enrichment
harvesters) evaporate, not migrate.
Surface measured: ~40 admin pages · ~90 tabs · 460 distinct AJAX actions. Legend: ✅ COVERED (built in RecordGod) · 🟡 PARTIAL · 🔜 TODO (cream, not yet) · ❌ DROP (rejected, with reason).
A. ALREADY COVERED ✅ (built since the first audit — the bandaid is half off)
| WowPlatter area | RecordGod now |
|---|---|
| Dashboard | /admin dashboard — counts, stock value, sales tiles, quick actions, lazy charts |
| Inventory list/edit/bulk | /admin Inventory — table, search, inline edit, delete, bulk actions, add-item |
| Import (bulk stock-in) | Intake (3-source) — internal mirror lookup + Discogs collection folders + Google Sheet (service account); one _stage() core, enrich-on-demand, skip-existing |
| Sales / POS | /pos — register, tender/change, split, layby, discounts, history, settings |
| Receipts + payments | server-rendered print/email receipts + Square Terminal wired |
| Shipping | AusPost own-rates table + /shop/shipping/quote (no API, no paid WP plugin) |
| Search / Navigator | Store→Rack→Crate→Item drill-down, Collections CRUD, Reorganize backend, locator |
| Crates / Store map | virtual crates + rack map nav |
| Customers | customer table + Woo customer sync (unified CRM) + POS picker + edit |
| Wantlist | table + public "request a record" intake + admin nav |
| Reports | /admin/reports workbench (date×dim×metric) |
| Connect (vault) | Fernet vault + tests: discogs/woo/dealgod/square/mail/google/bridge_key |
| Staff | accounts + roles + time clock |
| 3D Virtual Store | Three.js store, 3 rooms render |
| Gig Guide | lives in DealGod (/api/gigs), consumed via API |
| Storefront | /shop API + WP bridge (SSR pages, on-the-fly Woo product, order webhook) |
| Audio (storefront) | per-track previews, jog/seek, Apple-ID (country-scoped) + dead-YouTube check |
Beyond WowPlatter (net-new in RecordGod): DealGod price-intel join, store-intel dossiers, the WP bridge itself, internal enrich-on-demand that grows the mirror, the 3-source intake.
B. THE DEEP MAP — every page/tab, what it does, status
STOCK group
- Dashboard
dashboard.php— at-a-glance + Top-Performers(30d). ✅ (add the best-sellers widget — small). - Inventory
inventory/{main,list,form,bulk,meta-catalog,discogs-marketplace,ebay-marketplace,ebay/*}— list/form/bulk ✅.meta-catalog= Facebook product feed (fb×12 actions) → 🔜 fold into Ads/Meta.discogs-marketplace= list/manage Discogs Marketplace inventory → 🔜 (wanted).ebay*= ❌ (not used). - Import
import/{main,other,reference-conversion}— paste IDs/catnos/barcodes → match → create stock; reference-conversion = catno/identifier→release_id. ✅ superseded by Intake (matching is now local againstdisc_release/disc_release_identifier). Keep a "paste a list of IDs/barcodes" box as a 4th Intake source — 🔜 small. - Print / Labels
print.php+label-designer.php— thermal price labels + template designer. 🔜 cream, still missing. Reuse PriceGod/rfid-daemon print path; templates first, visual designer later. - Analyse
analyse.php(analyze×4) — find dupes / missing data / anomalies = stock hygiene. 🔜 → build as the "Heal" sweep (scan inventory for missing artist/label/cover → backfill from mirror; dry-run first). The genuinely good idea salvaged from the old import engine. - Search
search.php+ panes — Scanner / Returns / Reorganize / Collections / Stock-Finder. ✅ backend; 🔜 finish Scanner (scan-to-slot), Returns, Reorganize walkthrough UIs. - Wiki
wiki.php— per-release wiki lookup/editor. ❌ DROP — built before the local data centre; enwiki/Discogs/ MusicBrainz lookups + thenotesfield cover it.
SELL group
- Sales
sales/*— POS engine. ✅. - Customers
customers.php— CRM: Overview/Sales/Loyalty/Wantlist/Mailing/Messages/Info per customer. 🟡 table+sync done; 🔜 the customer record page (history, wants, contact, mailing prefs). Messages tab = ❌ (see Messaging). - Wantlist
wantlist.php— who-wants-what → buy signals + notify-on-arrival. 🟡 capture done; 🔜 intake-match + notify (match incoming stock to wants). - Loyalty
loyalty-{users,reports,settings}— points/tiers/rewards. 🔜 migrate data+UI but keep INACTIVE (needs work). - Inbox / Messaging
messaging-settings.php+channels/(Beeper/WhatsApp bridge) — ❌ DROP in-app; messaging stays external (email/socials). Note:/admin/inboxalready runs hello@ mail externally.
STOREFRONT group
- Pages
pages.php— storefront builder: General/Sales/Header/Welcome/FAQ/SEO/URL/Placeholder. 🟡/builderexists; 🔜 fold content bits (welcome/FAQ/SEO/header copy) in. - Profile Editor
profile-editor.php— customer-facing account editing. 🔜 LATER (storefront not far enough). - Audio
audio.php— MusicBrainz / Streaming&Harvester / Beatport BPM-Key / Reports. 🟡 storefront previews + Apple-ID done. 🔜 internalize enrichment: local MusicBrainz (Ultra) + enwiki + Discogs instead of API keys; KEEP Apple-ID (country-preserving JSON) + previews + Beatport. ⭐ needs its own page-by-page pass.reports/audio.php= ❌ (pipeline tooling). - Virtual Store
virtual/{main,builder,editor,tools,store-view,store-view-analytics,audio-tab}— 3D store view ✅; editor (rack/crate placement) 🔜 build inside RecordGod; analytics 🟡; builder(release page) overlaps/builder.
GROW group
- Ads
ads/{summary,meta,google}+ads-admin-display.php(fb×12) — post ads to Meta + manage listings. 🔜 migrate as Meta API post + Discogs-marketplace management (not used yet, but wanted in record-store software). - Beatport
beatport-match.php(bp×14) — BPM/Key matcher (Search / Work Queue) via extension. 🔜 migrate (valuable for the dance catalog). - Reports
reports/*+sales/reports.php— sales/stock/audio analytics. ✅ core; deepen per need. - Gig Guide
gig-guide.php(gi×7) — ✅ in DealGod, consumed via API. - Blagginate
blagginate.php(blagginate×29!) — YouTube-cookie tracklist/metadata scraper. ❌ DROP (29 actions of rope; PriceGod plan already cut it).
SYSTEM / INTEGRATIONS group
- Connect
connect/{main,auspost,dealgod,discogs,ebay,facebook,google,google-service,listenbrainz,mail,recaptcha,serp,square,database,extra}(test×15) — the credential hub. ✅ vault + discogs/woo/dealgod/square/mail/google; 🔜 add auspost/facebook as Ads/Shipping need them; ebay/listenbrainz/serp/recaptcha = ❌ unless used. - Database
database/{export,import,files,locate,transients}(backup×6) — WP backup/restore/transient tools. ❌ mostly (RecordGod has pg_dump syncrefresh.sh);locateoverlaps the navigator (already ✅). - System / Tools / Settings
system.php,tools/{debug,logging,shortcodes,wpcli}(wpcli×7),settings/{general,performance,endpoints},endpoints.php— WP plumbing. ❌ drop the WP-specific bits; General settings (currency/tax/store info) 🟡 → some already in POS settings, finish there. RecordGod has its own/adminSystem health panel ✅. - AI
ai-tabs/{main,agent,chatbot,connect,prompts}— chatbot/agent. ❌ DEFER (side quest, not the seller loop). - Sound
sound.php— the 2nd menu root (SOUND), audio-side landing. 🟡 = the Audio group above.
C. THE REORGANISE — RecordGod's clean IA (5 groups, not 2 roots + 40 pages)
WowPlatter grew organically into ~40 flat-ish pages. RecordGod should expose 5 task-based groups. Proposed nav (✅=there, 🔜=to add):
STOCK Dashboard ✅ · Inventory ✅ · Intake ✅ · Search/Navigator ✅ · Crates ✅ · Labels 🔜 · Heal 🔜
SELL Register/POS ✅ · Orders ✅ · Customers 🟡 · Wantlist 🟡 · Loyalty 🔜(inactive)
STOREFRONT Builder/Pages 🟡 · 3D Store ✅(+editor 🔜) · Audio/Previews 🟡 · (served via WP bridge ✅)
GROW Ads — Meta + Discogs marketplace 🔜 · Beatport 🔜 · Reports ✅
SYSTEM Connections ✅ · Staff ✅ · Shipping ✅ · System health ✅ · Sync ✅
Old → new collapse:
- Import + reference-conversion + meta-catalog-matching → Intake (+ a paste-IDs source).
- Wiki + Audio-enrichment-via-API + Blagginate + Analyse-missing-data → one local enrich/Heal path (mirror + MusicBrainz/enwiki).
- Database tools + System + Tools + Settings/endpoints → System health + Sync (pg_dump), drop WP plumbing.
- Messaging + Inbox + channels → external (email/socials), not in-app.
- eBay (marketplace/inventory/orders/connect) → dropped entirely.
- 2 menu roots (WowPlatter / SOUND) → SOUND folds into STOREFRONT › Audio.
Net drop count: Blagginate(29) + AI(5 tabs) + eBay(~3 pages,6 actions) + Wiki + Messaging/channels + Audio-Reports + WP system/tools/database plumbing ≈ a third of the 460 actions vanish, because they were WordPress survival gear or pre-data-centre enrichment.
D. REFRESHED BUILD ORDER (what's actually left)
- Heal sweep (Analyse, salvaged) — scan stock for missing artist/label/cover → backfill from mirror; dry-run first.
- Labels / Print — templates + price-label print (reuse PriceGod/daemon).
- Customers record page (history/wants/contact/mailing).
- Wantlist intake-match + notify-on-arrival.
- Finish Search UIs (Scanner / Returns / Reorganize walkthrough).
- Audio internalization review+build (local MB/enwiki; keep Apple-ID + previews + Beatport).
- Ads — Meta post + Discogs-marketplace management (+ meta-catalog feed).
- Beatport BPM/Key.
- 3D scene editor (rack/crate placement in-app).
- Pages content → /builder · Dashboard best-sellers widget · Loyalty (migrate, inactive).
DROP: Wiki · Messaging/Inbox/channels · Blagginate · AI chatbot · Audio-Reports · eBay · WP system/tools/database plumbing. LATER: Profile Editor.