Why
The admin web panel's Store tab renders the buyer's storefront — cards with a
Buy button — and POST /api/servers/:id/store/buy is reachable with view. An
operator opening their own store to check a crate's contents can spend a
player's currency, or their own, by clicking the thing that looks like a
preview.
That is the wrong shape entirely. The panel is where a store is authored;
buying belongs on the public site, where the buyer is a player with a linked
Minecraft name.
Scope
- Remove buying from the admin panel. The Buy button goes;
sfBuy becomes a
preview action there. The route stays for the public site.
- Preview, explicitly. Show the storefront exactly as a player sees it —
sections, layout, images, crate contents, odds — with a clear "preview" frame
so nobody mistakes it for a shop. Opening a crate in preview plays the
animation with placeholder rolls and buys nothing (cratePreview already
exists for this).
- Author from the same tab. Create and edit products and crates in the
panel, with the image field (URL or upload), extra images, per-crate animation
and its preview — parity with the desktop app's editor, which already has all
of it.
Not this issue
The public storefront keeps buying. This is only about the admin surface.
Verify
MSMS_SMOKE_WEB: the panel page contains no Buy control in its storefront, and
a panel-rendered card's action calls the preview path rather than
/store/buy. The public page still buys — asserted, so removing the button
cannot quietly remove the feature.
Why
The admin web panel's Store tab renders the buyer's storefront — cards with a
Buy button — and
POST /api/servers/:id/store/buyis reachable withview. Anoperator opening their own store to check a crate's contents can spend a
player's currency, or their own, by clicking the thing that looks like a
preview.
That is the wrong shape entirely. The panel is where a store is authored;
buying belongs on the public site, where the buyer is a player with a linked
Minecraft name.
Scope
sfBuybecomes apreview action there. The route stays for the public site.
sections, layout, images, crate contents, odds — with a clear "preview" frame
so nobody mistakes it for a shop. Opening a crate in preview plays the
animation with placeholder rolls and buys nothing (
cratePreviewalreadyexists for this).
panel, with the image field (URL or upload), extra images, per-crate animation
and its preview — parity with the desktop app's editor, which already has all
of it.
Not this issue
The public storefront keeps buying. This is only about the admin surface.
Verify
MSMS_SMOKE_WEB: the panel page contains no Buy control in its storefront, anda panel-rendered card's action calls the preview path rather than
/store/buy. The public page still buys — asserted, so removing the buttoncannot quietly remove the feature.