🎟 Drop Manager
MySeatPack Admin Portal
⚠ Incorrect password
Worker Code Backup
Paste the full msp-products worker source here. Stored in browser localStorage — does not deploy anywhere.
⚠️ KV Binding reminder: After every worker deployment re-add the binding in Cloudflare Dashboard → Workers & Pages → msp-products → Bindings → Variable:
TOKENS, Namespace: msp-tokens.
📖 Drop Manager — How To Guide
Everything you need to manage drops, edit products, and keep the worker backed up.
🔐 Signing In
- Enter the admin password and click Sign In.
- The password is ADMIN_KEY in the worker source. Change it there and redeploy.
- Session lives in the browser tab — refreshing requires logging in again.
📋 Browsing & Searching Drops
- The Drops tab lists all Shopify products (up to 250).
- Use the search bar top-right to filter by title in real time.
- Each row shows: thumbnail, title, Shopify status badge, price, inventory, tags.
- Click any row to open the editor for that drop.
✏️ Editing a Drop
- Core Settings — Title, Price, Compare-At Price, Shopify status, Pack Status, Sport/League, Tags, Number of Games.
- Inventory & Scheduling — Inventory Cap (sets Shopify stock qty), Drop Opens/Closes datetime, Auto-publish flag.
- Drop Details — Drop Label, MSP Drop ID, MSP Drop Storefront (Metaobject GID — do not delete), Games list one per line.
- Seat & Venue — Seat Guarantee Text, Seat Tier Label, Buyback %, Primary Entity, Event Noun.
- Storefront Copy — Badge Text, Teaser Line, Short Description, Disclaimer.
- Upgrades & Add-ons — format: Label | Price | Description one per line.
Note: Product images are not managed here — edit them in Shopify Admin → Products.
💾 Saving Changes
- Click Save Changes at the bottom — green = saved, red = error.
- Saves all 22 metafields, title, status, tags, price, compare-at, and inventory.
- After saving, the Inventory Cap field refreshes automatically to confirm the value Shopify actually stored.
- Red error usually means network issue or expired Shopify token.
📋 Duplicating a Drop
- Click Duplicate Drop — enter a new title when prompted.
- Clones the product and all metafields. Clears drop_opens_at and drop_closes_at on the copy.
- You'll land in the editor for the new drop.
🗄 Worker Backup Tab
- Switch to Worker Backup to store a copy of the Cloudflare Worker source.
- Paste the JS and click Save — stored in browser localStorage.
- Copy puts it on the clipboard for Cloudflare deployment.
- This does NOT deploy. Reference backup only.
⚠️ After every deployment: Re-add KV binding — Cloudflare Dashboard → Workers & Pages → msp-products → Bindings → Variable = TOKENS, Namespace = msp-tokens.
🔧 Adding a New Metafield
- Add entry to METAFIELDS[] in worker source.
- Add input in re() in worker JS.
- Add key to ks[] in dmSave().
- Redeploy worker (multipart FormData, ES Module) + re-add KV binding.
🏗 Architecture Quick Reference
- Part 1 — CSS + HTML shell (this file). Edit in Shopify theme code editor.
- Part 2 — loads worker JS + applies tab patches. Only changes if worker URL changes.
- Worker — serves client JS at /drop-manager-js, proxies all Shopify API calls.
- Token — Cloudflare KV key shopify_access_token in namespace msp-tokens.
- Max 250 products — add pagination if catalog grows beyond that.
- auto_publish flag doesn't auto-publish — needs a Cloudflare Cron Trigger.