import type { ReactNode } from "react"; import type { LoaderFunctionArgs } from "@remix-run/node"; import { Page, Layout, Card, BlockStack, Text } from "@shopify/polaris"; import { TitleBar } from "@shopify/app-bridge-react"; import { authenticate } from "../shopify.server"; export const loader = async ({ request }: LoaderFunctionArgs) => { await authenticate.admin(request); return null; }; function Section({ heading, children }: { heading: string; children: ReactNode }) { return ( {heading} {children} ); } export default function Help() { return (
A location is a fulfillment point — a store, warehouse, or kitchen. Each location has its own weekly slot templates: the days and time windows it's open for Shipping, Local Delivery, or Pickup, plus how many orders it can take per slot (capacity), how long before a slot it stops accepting orders (cutoff), and how much lead time it needs to prepare (prep time). Overrides and blackout dates adjust or close specific days without touching the weekly pattern — a holiday, an early closure, a one-off capacity bump.
The date/time picker in your storefront and checkout is a convenience — the real enforcement happens server-side in a Shopify Function attached to checkout. That means a shopper can't bypass the picker (browser dev tools, a scripted checkout, etc.) and get an order for a slot that's full, closed, or past cutoff. This works on every Shopify plan, not just Plus.
Zones define which addresses a location's Local Delivery covers — by postal/ZIP code list or by straight-line radius. When a shopper enters an address, the app finds the nearest eligible location and offers only that location's slots. A zone's{" "} minimum orders setting can delay opening it until you've already routed enough orders there (delivery-density gating), so you're not committing to sparse routes too early. Rates price Local Delivery either by zone or by distance band from the location. Without a rate configured, checkout falls back to your own Shopify shipping rates.
Filter bookings by date range, location, method, and status; see revenue by method, capacity utilization per day/location, and a list of upcoming fulfillments you can mark Fulfilled or No-show directly. Export the filtered list as CSV.
Staff can book the same Shipping/Delivery/Pickup slots from the POS Smart Grid tile as a shopper booking online — both draw from the same capacity, so an in-store booking can't double-book a slot a customer just took online, or vice versa. On Shopify Plus, checkout shows a native date/time picker; on every plan, the confirmed slot appears on the order confirmation block once the order's placed.
Scheduling data (locations, slots, zones, rates, bookings) lives in this app's own database, scoped to your shop — nothing is shared across merchants. If you uninstall the app, your data is erased automatically 48 hours later, per Shopify's data protection requirements.
); }