Local Pickup Options
local_pickup_options functions return a list of merchant-owned pickup
locations (store, warehouse, kiosk) that the customer can choose
instead of having the order shipped. Use it for:
- Buy-online-pickup-in-store (BOPIS).
- Curbside pickup at a specific retail address.
- “Pick up at our warehouse” for B2B customers.
pickup_point_options instead.
Dispatch is live; the customer-facing UI is pending. Installed
local_pickup_options functions fire on every cart verification
(consuming your daily execution quota), and their results are returned in
the verifyCart response as localPickupOptions[]. What’s still pending
is the checkout UI consumer that lets the customer pick one of these
options — until it ships, returned options are not yet shown to
customers.Manifest
inputFields is an object of booleans (or nested objects), never an
array — each leaf must be true/false. Requesting a field as an array of
names fails install validation with a 400. See Input Fields.
Per-shop cap: 5 active local_pickup_options apps.
WASM execution timeout: 1500ms (configurable via
WASM_TIMEOUT_LOCAL_PICKUP_OPTIONS).
Input
There is no
cart.cost, no countryCode / postalCode, and no
latitude / longitude on the shipping address — country arrives as
country and the postal code as zip.Output
pickupOptions: [] to opt out of offering pickup for
this cart (e.g. when the cart contains items not stocked at any pickup
location).
Example — Two retail locations, filtered by destination
Persistence
The options your function returns are computed and merged into the verifyCart response only — they are not persisted to the order. There is noadditionalFields.localPickupOptions field, and the order’s
shipping address is not rewritten to a merchant location. As noted at the
top of this page, the checkout consumer that would let a customer select
one of these options ships in the delivery-options release.
When customers see what
As noted at the top of this page, the options returned by
local_pickup_options functions are not yet shown to customers.
Today the checkout shipping step only renders native
warehouse-backed pickup (options where sourceKind === 'warehouse');
app-supplied options (source: 'local_pickup') are excluded until the
delivery-options consumer is enabled. There is no
order_ready_for_pickup email topic.See also
- Pickup Point Options — carrier parcel lockers / partner pickup points.
- Shipping Rate — custom shipping rates alongside merchant zones.
- Input field selection — trim the input payload to just the address fields you read.