metatroncubeswdev aa14f34e36
Some checks failed
CI / Lint, Unit & Integration Tests (push) Has been cancelled
chore: temporarily exclude checkout-datetime from shopify app deploy
Its @shopify/ui-extensions-react dependency has no release matching the
declared api_version = "2025-10" (the package jumps straight from 2025.7.4
to 2026.0.0, skipping 2025.10.x entirely) — a real migration, not a quick
version bump, and already tracked as HANDOVER.md's open item B4 ("not yet
reconciled against live checkout types").

This extension has never successfully deployed even once, so nothing
currently live regresses by excluding it — but its build failure was
aborting deploy for every OTHER extension too (esbuild fails the whole
`shopify app deploy` when any one extension can't bundle), which meant
shopify.app.toml's App Proxy URL fix never actually reached Shopify's
servers despite being correct in the repo. Renaming its config file
(shopify.extension.toml -> .disabled) excludes it from discovery without
touching its source; re-enable once B4's version migration is done by
renaming it back.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-12 23:34:31 -04:00
..

checkout-datetime

Checkout UI Extension. Three targets in one extension:

Module Target Plans
src/Checkout.jsx purchase.checkout.block.render Plus only — native in-checkout date/time picker
src/ThankYou.jsx purchase.thank-you.block.render all plans
src/OrderStatus.jsx customer-account.order-status.block.render all plans

The picker calls this app's own checkout.scheduling.availability / checkout.scheduling.hold routes (session-token auth) and draws from the same capacity pool as the storefront widget and POS. It only collects a selection into checkout attributes — the validation-slot Function is still what enforces it, so the extension is not a security boundary.

The all-plan confirmation is also covered by the theme block extensions/datetime-widget/blocks/order-confirmation.liquid; the Thank you / Order status modules here are the Plus-native version of the same thing.

Before deploy

  1. npm --prefix extensions/checkout-datetime install (pulls @shopify/ui-extensions + preact).
  2. In the extension's settings (Partners dashboard or shopify.extension.toml defaults), set App backend URL to the same value as application_url in shopify.app.toml — the extension runs on a different origin and needs the absolute URL to reach the backend.
  3. shopify app deploy.

The previous build output under dist/ is gitignored and regenerated on deploy — this src/ tree is the source of record.

Type checking

tsconfig.json ships with checkJs: false because this source hasn't yet been iterated against the live @shopify/ui-extensions checkout component types (that needs the extension's deps installed and, ideally, a real checkout to verify runtime shapes — same caveat pos-datetime carries). Before deploying: npm install in this folder, flip checkJs back to true, run npm run typecheck, and reconcile the <s-*> component props against the real typings. The decision logic it depends on (resolveAvailabilityRequest, resolveHoldRequest) is already fully tested on the server side.