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:// — 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