7 Commits

Author SHA1 Message Date
metatroncubeswdev
19b403f98f fix(billing): register plans approved as test charges; reset plan on uninstall
App Store review 1.2.2: the reviewer's store got a test charge, but billing.check ran with isTest:false and ignored it, so the approved plan never registered. Checks now count test subscriptions too, and cancel uses each subscription's own test flag. Uninstall resets the stored plan to free (Shopify cancels the subscription), so a reinstall asks for approval again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 20:31:33 -04:00
metatroncubeswdev
3f1a07382b fix(billing): open Shopify's plan approval page instead of showing 401
billing.request throws a 401 with the approval URL in X-Shopify-API-Request-Failure-Reauthorize-Url for App Bridge to follow, but a React Router form submission rendered it as an error page. The action now returns the URL and the page opens it at the top level. Invalid-session retries are still rethrown for App Bridge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 09:14:37 -04:00
metatroncubeswdev
6061877ca1 fix(review): no shop-domain form on /auth/login; test charges on dev stores
- /auth/login no longer asks for a myshopify domain (App Store 2.3.1). With
  ?shop= it still hands off to OAuth; otherwise it points to Shopify.
- Billing API charges are test charges outside production and on partner
  development stores (shop.plan.partnerDevelopment), so reviewers can pick a
  paid plan. Real shops are charged as before.
- SCREENCAST.md matches the recording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 09:07:22 -04:00
metatroncubeswdev
0a979becc3 feat: restore checkout functions after reinstall; sync listing copy
Shopify deletes an app's validation and delivery/payment customizations on
uninstall. Datewise now remembers which ones were on (settings.checkoutFunctions,
kept in sync with Shopify whenever Settings loads) and switches them back on
when a shop reinstalls.

LISTING.md and alt text updated to what the listing form accepted (5 features,
20-char search terms, 64-char alt text, no "plan" outside pricing).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 06:50:55 -04:00
metatroncubeswdev
85ed1a8f0e feat: delivery-label and payment-rules checkout functions with Settings toggles
- delivery-label renames only options matching the chosen method (en/fr dates)
- payment-rules hides COD / pay-in-store for shipped orders
- functions matched by handle (fixes guard lookup matching any 'datewise' title)
- scopes: write_delivery_customizations, write_payment_customizations

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:21:55 -04:00
metatroncubeswdev
67b86cf411 feat(admin): setup guide on Today page with live step status
Shared checkout-guard lookup moved to app/lib/guard.server.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:18:42 -04:00
metatroncubeswdev
e56182e0e3 chore: initial Datewise app (rebranded from SlotSure prototype)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:06:49 -04:00