RECORDGOD/docs/WOWPLATTER_MIGRATION_AUDIT.md
type-two ca84b7f82f chore(docs): move 14 planning/handover docs to docs/ — declutter repo root
Root carried 15 *_PLAN/_DEEPDIVE/_AUDIT/bridge/handover docs (many describe shipped work).
git mv → docs/ (R100, no content change). README.md stays at root. Already *.md-dockerignored,
so no image impact — purely navigability.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 15:22:45 +10:00

13 KiB

WowPlatter → RecordGod — feature migration audit

Cycle through every WowPlatter wp-admin page, assess cream vs bloat, and spec what to migrate. Legend: 🟢 CREAM (migrate) · 🔴 BLOAT (drop) · 🟡 UNSURE (regroup with John) · DONE (already in RecordGod). Menu = 2 roots (WowPlatter / SOUND) + 28 submenu pages. Source: admin/partials/*, admin/class-*-ajax-handler.php.


STOCK group

1. Dashboard — dashboard.php · DONE (parity to extend)

Purpose: at-a-glance — Top Performers (last 30 days), stock value, counts, quick actions. RecordGod: /admin dashboard already has counts/stock-value/sales/quick-actions. **Migrate the "Top Performers (30d)"

  • best-sellers widget** onto it (from sale_items we already have). Verdict: 🟢 (small add to the existing dash).

2. Search — search.php · DONE / in progress

Scanner / Returns / Reorganize / Collections / Stock Finder + Store→Rack→Crate→Item navigator. RecordGod: navigator (store→rack→crate→locate), Collections (CRUD + editor + fallback locator), Reorganize backend (/nav/reorg/scan,apply,compress) all built. Pending UIs: Scanner (scan-to-slot), Returns, Reorganize walkthrough. Verdict: 🟢 core — finish the 3 pending UIs.

3. Inventory — inventory/{main,list,form,bulk,meta-catalog,discogs-marketplace,ebay-marketplace}.php · 🟢 CREAM (vital, not yet built)

The actual stock manager. list.php = Current Stock table (search, edit, delete, bulk actions). form.php = add/edit one item. bulk.php = 4 tabs: IMPORT / DISCOGS / SYNC / BULK ACTIONS (import missing release data+images, push to Woo). ajax: add_inventory_item, delete_inventory_item, sync_inventory_to_woo, create_woo_product_from_inventory, import_missing_data, inventory_changes_log. RecordGod has the inventory TABLE + intake API but no list/edit/bulk UI. → Migrate: the inventory list (search/filter/edit/delete/bulk) + single-item add/edit form. Skip eBay-marketplace tab (🔴, not used). Woo-sync stays (commerce). Verdict: 🟢 — THE core back-office screen still missing.

4. Import — import/{main,other,reference-conversion}.php · 🟢 CREAM

Bulk-get-stock-in: paste release IDs / catnos / barcodes → match to Discogs → create inventory. reference-conversion = turn catalog numbers / identifiers into release_ids (convert_references, convert_discogs_references). ajax: execute_discogs_import, execute_discogs_selected_import, check_import_progress, cancel_import, convert_*_references. RecordGod: has intake API + the disc_release mirror (so matching is local now). → Migrate: the bulk import UI (paste list → resolve against disc_release/identifier → review → create inventory). Verdict: 🟢.

5. Print — print.php + label-designer.php · 🟢 CREAM

Tabs: Preview / Settings / Label Designer. Thermal/price-label printing with a template designer. ajax: ajax_{save,get,delete}_label_template, get_label_templates_by_type. RecordGod: PriceGod does label printing via the rfid-daemon; RecordGod itself has no label UI. → Migrate: label templates + print (artist/title/price/QR/SKU), reuse the PriceGod/daemon print path. Designer is nice-to-have. Verdict: 🟢 (templates + print core; 🟡 the full visual designer).

6. Reports — reports/audio.php (+ sales/stock reports) · 🟡 UNSURE (depth)

The Reports menu surfaces sales/stock/audio analytics. RecordGod has a basic /admin/reports (revenue, by-month, top items). → Question for John: how deep do reports need to go? Basic sales+stock reports = 🟢; the audio/Beatport/MusicBrainz report tabs lean enrichment-niche. Verdict: 🟡 — confirm which report tabs are cream.

7. Analyse — analyse.php · 🟡 UNSURE

"Analyse Inventory" — analysis + data-cleaning tools (find dupes, missing data, anomalies). Could be genuinely useful (stock hygiene) or overlap with Import's "missing data". → Question: is this a distinct tool you use, or covered by Import + Inventory bulk? Verdict: 🟡.

8. Wiki — wiki.php · 🟡 UNSURE

"Wiki Lookup & Editor" — per-release wiki/notes lookup + editing (wiki_extract enrichment). Niche enrichment; DealGod/ discogs already carry notes. → Question: do you actually use the wiki editor, or is the release notes/description field enough? Verdict: 🟡 (lean 🔴).

9. Other — (misc tools) · 🟡 UNSURE

Catch-all "Other" menu — need to confirm what's parked here (likely odds-and-ends tools). Verdict: 🟡 — confirm contents.

10. Virtual Store — virtual/* · DONE

3D store ported to RecordGod (raw Three.js, coordinate convention fixed, 3 rooms render). Editing tools (rack/crate placement) still WP-side — 🟡 do we need an in-RecordGod scene editor, or keep placing via the navigator? Verdict: core done.

11. Gig Guide — gig-guide.php · DONE (lives in DealGod)

GigGod is already in DealGod (live_gig + /api/gigs/structured + /touring); WowPlatter/RecordGod consume via API. Verdict: — no migration, consume the DealGod API.


SALES group

12. Sales — sales/* · DONE

POS (ring-up/discounts/payment-plans/locate/past-sales/promotions/import/settings) built in RecordGod /pos. Pending: Email-receipt + Square tabs. Verdict: core done.

13. Customers — customers.php · 🟢 CREAM

Full CRM: tabs Overview / Sales / Loyalty / Wantlist / Mailing / Messages / Info per customer. RecordGod has a thin customer table + POS picker only. → Migrate: the customer record page (history, wantlist, contact, mailing prefs). Verdict: 🟢 (Loyalty/Messages tabs depend on those features below).

14. Wantlist — wantlist.php · 🟡 UNSURE (lean 🟢)

Customer wantlists — "who wants what" → buy signals + notify-on-arrival. Genuinely useful for a record store (match incoming stock to wants). → Question: priority? It pairs with Customers + intake. Verdict: 🟡🟢.

15. Inbox — (customer messages) · 🟡 UNSURE

Customer message inbox (ties to Messaging/Beeper). → Question: do you run customer messaging through here, or external (email/socials)? Verdict: 🟡.

16. Loyalty — loyalty-{users,reports,settings}.php · 🟡 UNSURE

Points/tiers/rewards program (loyalty_ledger, loyalty_tiers, loyalty_settings). Real feature but is a loyalty program cream for the shop right now? → Question: are you running loyalty, or is it aspirational? Verdict: 🟡.


FRONTEND group

17. Profile Editor — profile-editor.php · 🟡 UNSURE

Customer-facing profile editing (frontend account). Storefront concern; RecordGod's storefront is nascent. Verdict: 🟡.

18. Pages — pages.php · 🟢 CREAM (partly done)

Storefront page builder: tabs General / Sales / Header / Welcome / FAQ / SEO / URL-structure / Placeholder. RecordGod has the /builder (theme + brand import). → Migrate the content bits (welcome/FAQ/SEO/header copy) into the builder. Verdict: 🟢 (fold into the existing builder).

19. Audio — audio.php · 🟡 UNSURE (split)

Tabs: MusicBrainz / Streaming & Harvester / Beatport BPM-Key / Reports. = audio enrichment + track previews + Apple Music harvester. Streaming/preview audio on the storefront = potentially 🟢 cream (sell records by letting people hear them); the MusicBrainz/Beatport enrichment = DealGod/discogs territory (🟡).Question: do you want audio previews on the RecordGod storefront? Verdict: 🟡 — split preview (cream) from enrichment (DealGod).

20. Audio Reports — reports/audio.php · 🔴 BLOAT (lean)

Reporting on the audio-harvest process. Internal tooling for the enrichment pipeline — not a shop feature. Verdict: 🔴/🟡.

21. Messaging — messaging-settings.php + channels/ · 🟡 UNSURE

Customer messaging config + channels (Beeper bridge = WhatsApp/etc). Powerful but heavy. → Question: channel messaging = keep or external? Verdict: 🟡 (lean 🔴 for v1).


INTEGRATIONS & SYSTEM

22. Shipping — shipping/{main,rates,labels}.php · 🟢 CREAM (if you ship)

AusPost rates + label creation (auspost_create_labels), zones/flat-rates. Fulfillment for mail-order. → Migrate if RecordGod handles fulfillment; else Woo handles it. Verdict: 🟡🟢 — confirm RecordGod owns shipping vs Woo.

23. AI — ai-tabs/{main,agent,chatbot,connect,prompts}.php · 🔴 BLOAT (defer)

AI chatbot/agent + prompt config. Side quest, not the seller loop (PriceGod plan already cut AI). Verdict: 🔴 defer.

24. Beatport — beatport-match.php · 🟡 UNSURE

BPM/Key matcher (Search / Work Queue) via browser extension. DJ-store enrichment — useful for YOUR dance catalog, niche generally. Overlaps DealGod enrichment. → Question: BPM/key valuable enough to carry? Verdict: 🟡.

25. Blagginate — blagginate.php · 🔴 BLOAT

YouTube-cookie tracklist/metadata processor. PriceGod plan explicitly cut it. Verdict: 🔴 drop.

26. Ads — ads-admin-display.php + ads/ · 🔴 BLOAT (lean)

Advertising management. Niche, not core to stock/sell. → Question: is this used? Verdict: 🔴/🟡.

27. Connect — connect/{main,auspost,dealgod,discogs,ebay,facebook,google,listenbrainz,mail,recaptcha,serp,square}.php · 🟢 CREAM

THE integration hub — store all third-party credentials + test connections. RecordGod already has /settings/secrets (Fernet vault) + connection tests for discogs/woo/dealgod. → Migrate the rest: square, mail(SMTP), auspost, facebook, google as needed. eBay/listenbrainz/serp/recaptcha = 🟡 (only if used). Verdict: 🟢 — extend the vault/settings.

28. System — system.php + tools/{debug,logging,shortcodes,wpcli}.php + settings/{endpoints,general,performance}.php · 🟡 UNSURE

Admin plumbing: debug, logs, shortcodes, WP-CLI, endpoint registry, perf. Most is WP-specific (🔴 — RecordGod has its own infra). General settings (currency/tax/store info) = 🟢 (some already in POS settings). Verdict: 🟡 — cherry-pick general settings; drop WP plumbing.


SUMMARY

🟢 CREAM — migrate (priority order):

  1. Inventory list/edit/bulk (the missing core stock screen)
  2. Import (bulk stock-in, now matchable against the local disc_release mirror)
  3. Print / labels (price labels + templates)
  4. Customers CRM record page
  5. Connect — extend the vault with square/mail/auspost/etc.
  6. Pages content → fold into /builder
  7. Dashboard Top-Performers widget
  8. Finish Search (Scanner/Returns/Reorganize UIs), Sales (email/Square)

🔴 BLOAT — drop: Blagginate, AI chatbot, Ads (likely), Audio Reports, WP system/tools plumbing.

DONE: Search (mostly), Sales, Virtual Store, Gig Guide (DealGod).

RESOLVED — regroup with John (2026-06-22):

  • Reports / Analyse🟢 FULL reports + a standalone Analyse tool (dupes/missing-data/anomalies).
  • Wantlist🟢 migrate with intake-match + notify-on-arrival (match incoming stock to customer wants).
  • Loyalty🟢 migrate (data + UI) but keep INACTIVE — "needs a lot of work", don't activate the program yet.
  • Wiki🔴 DROP — superseded by local enwiki/Discogs/MusicBrainz lookups (built before the local data centre existed).
  • Audio🟢 migrate, but INTERNALIZE: replace API-key enrichment with local MusicBrainz (full MB on Ultra)
    • enwiki + Discogs lookups; KEEP the Apple Music ID feature (saves id as JSON to preserve country) + storefront previews + Beatport. Needs its own careful page-by-page review — what each piece does, what's API vs internalisable. (ajax surface: batch_musicbrainz_, discogs_to_musicbrainz_lookup, force_process_apple_id, apple_repair_, bp_search_beatport, batch_harvest_*, audio_player.)
  • Beatport BPM/Key → 🟢 migrate (valuable for the dance catalog).
  • Messaging / Inbox🔴 DROP in-app (Beeper/channels) — keep customer messaging external (email/socials).
  • Profile Editor🟡 LATER — storefront not far enough along.
  • Shipping🟢 migrate own AusPost rates (table-based, NO API, no paid WP plugin) — rates imported from the AusPost guide PDF. ⚠️ Rates +5% on 2026-07-01 (~9 days). Need a low-effort rate-update path (download new PDF → Gemini extracts the tables → load), run ~yearly.
  • Ads🟢 migrate — post-ads-to-Meta API + Discogs marketplace management. Not used yet but wanted in record-store software.
  • "Other" menu (wowplatter-other / display_other_page) → confirm contents during execution (catch-all).
  • Virtual scene editor🟢 BUILD the full 3D rack/crate placement editor inside RecordGod.

FINAL EXECUTION ORDER (cream): 1) Inventory list/edit/bulk · 2) Import · 3) Print/labels · 4) Customers CRM · 5) Connect (extend vault) + Shipping (AusPost rates, before Jul 1) · 6) Wantlist · 7) Reports+Analyse · 8) finish Search (Scanner/Returns/Reorganize) + Sales (email/Square) · 9) Audio internalization review+build · 10) Beatport · 11) Ads (Meta + Discogs marketplace) · 12) Loyalty (inactive) · 13) 3D scene editor · 14) Pages→builder · 15) Dashboard widget. DROP: Wiki, Messaging/Inbox, Blagginate, AI chatbot, Audio-Reports, WP system plumbing. LATER: Profile Editor.