5.5 KiB
5.5 KiB
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.tsallowedActionOrigins); shop-record self-heal and install race; plan location limit counts switched-on locations; widget empty state, width and contrast; bookings list polish; ShopifyuserErrorslogged. - 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/loginhas no shop form) and 1.2.2 (test charges on dev stores viashop.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.
Left, in order
- Automated checks all green (re-run if any fail).
- User: add the storefront password at the end of the listing's testing instructions, Save.
- User decision: turn off the old Metatron-delivery app embed on veloxautomotive (its cart widget sits next to checkout).
- User ticks "I've reviewed all the App Store Requirements"; Claude clicks Submit for review only after an explicit yes.
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 "..."fromdatewise/.