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.
);
}