Bootstraps from Shopify's official shopify-app-template-remix (cloned directly rather than via `shopify app init`, which requires an interactive Partner login unavailable in this session): - Prisma (SQLite dev / Postgres-ready) with baseline Session model + migration - Vitest configured for unit tests, Playwright configured for E2E - Redis client + BullMQ worker skeleton (app/lib/redis.server.ts, jobs/worker.ts) - shopify.app.toml: minimal scopes, GDPR + orders webhooks wired (stub handlers), app proxy config for the future storefront widget - Stripped template-repo-only meta files (CLA, issue templates, demo product page) and replaced CI with a lint+typecheck+test workflow - Bumped @shopify/shopify-app-session-storage-prisma to resolve a duplicate @shopify/shopify-api install that broke typecheck - Dropped the Jest-only ESLint config (template default) since the project standardizes on Vitest per IMPLEMENTATION_PLAN.md Verified: npm install, lint, typecheck, unit tests, prisma migrate dev, and npm run build all pass on Node 22 LTS. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
74 lines
2.5 KiB
TOML
74 lines
2.5 KiB
TOML
# This file stores configurations for your Shopify app.
|
|
# Learn more at https://shopify.dev/docs/apps/tools/cli/configuration
|
|
|
|
client_id = ""
|
|
name = "delivery-datetime-app"
|
|
application_url = "https://replace-with-your-tunnel-url.example.com"
|
|
embedded = true
|
|
|
|
[access_scopes]
|
|
# Minimum scopes for the v1 (Phase 0-4) feature set. Add more only when a
|
|
# feature in IMPLEMENTATION_PLAN.md actually needs it.
|
|
scopes = "read_products,read_customers,read_orders,write_orders,read_locations,read_metaobjects,write_metaobjects,write_cart_transforms,write_delivery_customizations,write_payment_customizations,read_markets,read_locales"
|
|
|
|
[auth]
|
|
redirect_urls = [
|
|
"https://replace-with-your-tunnel-url.example.com/auth/callback",
|
|
"https://replace-with-your-tunnel-url.example.com/auth/shopify/callback",
|
|
"https://replace-with-your-tunnel-url.example.com/api/auth/callback"
|
|
]
|
|
|
|
[webhooks]
|
|
api_version = "2024-10"
|
|
|
|
# Handled by: app/routes/webhooks.app.uninstalled.tsx
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/app/uninstalled"
|
|
topics = ["app/uninstalled"]
|
|
|
|
# Handled by: app/routes/webhooks.app.scopes_update.tsx
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/app/scopes_update"
|
|
topics = ["app/scopes_update"]
|
|
|
|
# Handled by: app/routes/webhooks.orders.create.tsx (Phase 4)
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/orders/create"
|
|
topics = ["orders/create"]
|
|
|
|
# Handled by: app/routes/webhooks.orders.updated.tsx (Phase 4)
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/orders/updated"
|
|
topics = ["orders/updated"]
|
|
|
|
# Handled by: app/routes/webhooks.orders.cancelled.tsx (Phase 4)
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/orders/cancelled"
|
|
topics = ["orders/cancelled"]
|
|
|
|
# Mandatory GDPR compliance topics — required for Built-for-Shopify / public app review.
|
|
# Handled by: app/routes/webhooks.customers.data_request.tsx
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/customers/data_request"
|
|
compliance_topics = ["customers/data_request"]
|
|
|
|
# Handled by: app/routes/webhooks.customers.redact.tsx
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/customers/redact"
|
|
compliance_topics = ["customers/redact"]
|
|
|
|
# Handled by: app/routes/webhooks.shop.redact.tsx
|
|
[[webhooks.subscriptions]]
|
|
uri = "/webhooks/shop/redact"
|
|
compliance_topics = ["shop/redact"]
|
|
|
|
# App proxy so the storefront Theme App Extension can call our backend
|
|
# without CORS issues (see IMPLEMENTATION_PLAN.md §5.3).
|
|
[app_proxy]
|
|
url = "https://replace-with-your-tunnel-url.example.com/apps/scheduling"
|
|
subpath = "scheduling"
|
|
prefix = "apps"
|
|
|
|
[build]
|
|
include_config_on_deploy = true
|