Some checks failed
CI / Lint, Unit & Integration Tests (push) Has been cancelled
checkout-datetime (re-enabled, no longer excluded): - api_version was declared as "2025-10" but @shopify/ui-extensions-react has no release for that channel at all (jumps 2025.7.4 -> 2026.0.0 directly) — downgraded to "2025-07" to match what's actually installed and what the code was written/typed against. Verified all three targets (purchase.checkout.block.render, purchase.thank-you.block.render, customer-account.order-status.block.render) exist in that package version before making the change. - [extensions.capabilities] network_access was missing entirely (dropped during the multi-pin-pickup rewrite) despite Checkout.jsx's authedFetch() genuinely needing it — the checkout sandbox would have silently blocked every fetch() call at runtime even though it deployed fine. - OrderStatus.jsx imported reactExtension/BlockStack/Heading/Text/ useTranslate from the *checkout* surface behind a "might not be in the type definition" @ts-ignore, for a *customer-account* target. Verified @shopify/ui-extensions-react/customer-account re-exports the same component names for real and switched the import, removing the @ts-ignore entirely — it now typechecks for real instead of being suppressed. - lib.js's shared useConfirmationText() hardcoded useTranslate/ useAttributes from the checkout surface, but was called from both ThankYou.jsx (checkout) and OrderStatus.jsx (customer-account) — hooks are bound to their surface's React context, so calling checkout-bound hooks from a customer-account extension would break at runtime even though nothing caught it statically. Changed it to a plain function (confirmationText) taking translate/attributes as parameters; each caller now calls its own surface's hooks and passes the results in. payment-customization: schema.graphql never existed (not gitignored, just never fetched/committed when this extension was added — HANDOVER.md's note that this was "by design" was wrong). Fetched via `shopify app function schema` and committed, matching the pattern already used by validation-slot/delivery-customization. Together these three issues were silently failing every single `shopify app deploy` for the whole app, which is why shopify.app.toml's App Proxy URL fix never actually reached Shopify's servers. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
43 lines
1.6 KiB
TOML
43 lines
1.6 KiB
TOML
api_version = "2025-07"
|
|
|
|
[[extensions]]
|
|
type = "ui_extension"
|
|
name = "t:name"
|
|
handle = "checkout-datetime"
|
|
|
|
uid = "14165501-9e99-cb7d-e2bf-2e25f3028ca218bc5e8a"
|
|
description = "Native delivery date & time picker in checkout (Plus), plus confirmation blocks on the Thank you and Order status pages (all plans)."
|
|
|
|
# The picker calls this app's own backend (checkout.scheduling.* routes,
|
|
# session-token auth). A checkout extension runs on a different origin than
|
|
# the app, so it needs the app's absolute URL — set this to the value of
|
|
# `application_url` in shopify.app.toml.
|
|
[extensions.settings]
|
|
[[extensions.settings.fields]]
|
|
key = "app_url"
|
|
type = "single_line_text_field"
|
|
name = "App backend URL"
|
|
description = "https://<your-app-domain> — same as application_url in shopify.app.toml."
|
|
|
|
# --- Plus: native picker inside checkout -------------------------------------
|
|
[[extensions.targeting]]
|
|
module = "./src/Checkout.jsx"
|
|
target = "purchase.checkout.block.render"
|
|
|
|
# --- All plans: confirmation on the Thank you page -------------------------
|
|
[[extensions.targeting]]
|
|
module = "./src/ThankYou.jsx"
|
|
target = "purchase.thank-you.block.render"
|
|
|
|
# --- All plans: confirmation on the Order status page ---------------------
|
|
[[extensions.targeting]]
|
|
module = "./src/OrderStatus.jsx"
|
|
target = "customer-account.order-status.block.render"
|
|
|
|
# Required — Checkout.jsx's authedFetch() calls this app's own backend
|
|
# (checkout.scheduling.* routes). Was present in the extension's original
|
|
# toml but missing after the multi-pin-pickup rewrite, which would have
|
|
# had the checkout sandbox silently block every fetch() call at runtime.
|
|
[extensions.capabilities]
|
|
network_access = true
|