🎟 Drop Manager

MySeatPack Admin Portal

⚠ Incorrect password
🎟 Drop Manager
MySeatPack · Product & Drop Editor

Worker Code Backup

Paste the full msp-products worker source here. Stored in browser localStorage — does not deploy anywhere.

Last saved:
Lines: 0
Characters: 0
⚠️ 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.