datewise/HANDOFF.md
metatroncubeswdev 799789ca28 docs: Datewise submitted for App Store review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 09:43:20 -04:00

5.8 KiB
Raw Permalink Blame History

Datewise: session handoff (2026-10-16)

Read this first in a new session. It covers everything needed to finish the Shopify App Store submission. Process: follow the shopify-app-launch skill (Offerlyst was the first app through it).

What Datewise is

Shopify app "Datewise: Delivery & Pickup": customers choose store pickup, local delivery or shipping, then a date and a time slot, in the cart. Capacity holds, rush days and waitlist, checkout guard on every plan, reminders, run sheets. Forked from the SlotSure reference build (../slotsure/); some features were ported from the old app (../shipping-app/).

Key facts

Repo https://git.metatroncube.in/MetatroncubeSoftwareSolutions/datewise.git (branch main)
Local path D:\MCS_Repos\2026\claude_shopify_shipping_app\datewise
Production https://datewise.metatronlabz.com (VPS /opt/datewise, Nginx → 127.0.0.1:3320; runbook deploy/README.md)
Shopify app name "Datewise: Delivery & Pickup", handle datewise-delivery (datewise is taken), client_id 7e7c4baa00daac7fc6909336039d40b5
Partner Dashboard partners.shopify.com/2451848/apps/435762528257
Dev Dashboard dev.shopify.com/dashboard/129011982/apps/435762528257
Dev store veloxautomotive (storefront password protected: the user types the password)
Latest released version datewise-delivery-5
API version 2026-01 (upgrade after launch)
Stack React Router 7, Polaris web components, Prisma + Postgres, JS Functions, theme app extension

Done

  • Code: all features working end to end. Fixes this round: CSRF origin behind Nginx (react-router.config.ts allowedActionOrigins); shop-record self-heal and install race; plan location limit counts switched-on locations; widget empty state, width and contrast; bookings list polish; Shopify userErrors logged.
  • Security: customer PII encrypted at rest (AES-256-GCM via Prisma extension, app/lib/pii.server.ts); keyed-hash lookups; access log of staff views (DataAccessLog); SECURITY.md; privacy/terms pages live.
  • Server: latest code deployed, migrations 0001–0003 applied, encrypted nightly backups (cron 3 AM, key /root/.datewise-backup-key).
  • Partner Dashboard:
    • Public distribution selected (irreversible).
    • Protected customer data: step 1 done (Name/Email/Phone/Address; reasons Store management + App functionality); step 2 done (16/16).
    • Network access for UI extensions enabled.
  • Dev store setup:
    • App installed.
    • "Shop location" taking bookings; Shopify Local pickup on at that location (the user's home address: never show it unblurred in public assets).
    • Theme block + app embed saved.
    • Checkout guard, delivery label and payment rules on.
    • Bogus test gateway active.
  • Verified:
    • Test order #1001 (pickup Oct 15, 12–1 PM) → booking confirmed, pickup line renamed "Shop location — Thu, Oct 15, 12 PM–1 PM", order attributes and tags.
    • Checkout blocked without a time ("Please choose a delivery or pickup time…").
  • Listing assets (brand/):
    • shopify/app-icon-1200x1200.png, shopify/feature-image-1600x900.png.
    • 6 screenshots in screenshots/listing/ + alt-text.txt.
    • LISTING.md (all listing text + reviewer testing steps).
    • SCREENCAST.md (14 scenes, captions, YouTube title/description).

Done 2026-10-16

  • Cancellation of #1001 verified; uninstall + reinstall test passed (data kept; checkout functions now auto-restore on reinstall, settings.checkoutFunctions).
  • Listing complete, 0 issues: text, category tags, icon, feature image, 6 screenshots (alt ≤64), Manual pricing plans starter/growth/pro, screencast https://youtu.be/VZW767L6bNo (Unlisted).
  • Self-review (live requirements) run; fixed 2.3.1 (/auth/login has no shop form) and 1.2.2 (test charges on dev stores via shop.plan.partnerDevelopment; plan approval opens Shopify's page instead of a 401). Growth approve + downgrade to Starter tested on veloxautomotive.
  • Review page: capabilities embedded + online store; onboarding confirmed; AI self review marked done; automated checks run.

Submitted 2026-10-16

Submitted for App Store review (status "Submitted", reviewer being assigned). Shopify emails info@metatroncubesolutions.com with numbered requirement IDs if anything needs fixing.

Next

  1. Answer reviewer emails quickly: fix, redeploy, verify, reply in the thread.
  2. App Store visibility is "direct URL only" until "Make fully visible" is clicked (review page). Decide before or at approval; search ranking needs full visibility.
  3. Consider turning off the old Metatron-delivery embed on veloxautomotive (its cart widget sits beside checkout).
  4. After approval: clean up dev-store test orders, listing translations, honest first reviews, Built for Shopify later; API version upgrade within ~12 months.

Known notes / follow-ups (not blockers)

  • Theme check warns AssetSizeAppBlockJavaScript (18 KB raw, ~7 KB gzipped). Non-blocking.
  • Shopify's own pickup card shows its "Usually ready in 24 hours" estimate; the setup guide tells merchants to set the shortest pickup time.
  • Billing plan test (choose Growth → test charge → user clicks Approve) not yet done; worth doing before or with the screencast scene 13.
  • Webhook API version 2026-01; upgrade within ~12 months.

Rules for the next session

  • Secrets never in chat or Git. The user types every password and card number.
  • Ask before irreversible clicks: Submit for review, deleting apps or orders, OAuth/permission approvals not already approved.
  • After code changes: npx tsc --noEmit, npx vitest run, commit + push, then the user runs on the server: cd /opt/datewise && git pull && docker compose -f docker-compose.yml -f docker-compose.nginx.yml up -d --build app worker. Extension changes: CI=1 shopify app deploy --allow-updates --message "..." from datewise/.