Shopify Local Delivery: Mark as Ready for Delivery on Writeback
M
Meaningful Firefly
## Request
Please add a Shopify writeback option for
Local Delivery orders
similar to the existing "Mark pickup in store orders as ready for pickup"
option.### Current behaviour
When we scan and pack a Shopify Local Delivery order in Starshipit, Starshipit currently writes the order back to Shopify as fulfilled/delivered.
This is too far along in Shopify's Local Delivery workflow.
Our actual workflow is:
- Order is packed in Starshipit.
- Shopify should show the order as Prepared / Ready for delivery.
- We physically deliver the order ourselves.
- We manually click Mark as deliveredin Shopify after the delivery has actually been completed.
At the moment, step 2 is being skipped and Starshipit effectively performs step 4 when the parcel is packed.
## Requested option
Please add a setting similar to:
Mark local delivery orders as ready for delivery
When enabled:
* Detect Shopify fulfillment orders where
deliveryMethod.methodType = LOCAL
.* When Starshipit writeback occurs after packing, transition the Shopify Local Delivery order to its
prepared for local delivery / ready for delivery
state.* Do not mark the order as
DELIVERED
.* Leave the final
Mark as delivered
action for the merchant to complete later in Shopify.This could sit alongside the existing:
Mark pickup in store orders as ready for pickup
## Shopify developer information
Shopify exposes Local Delivery through the
FulfillmentOrder
GraphQL object and identifies the method using:deliveryMethod.methodType = LOCAL
Shopify also exposes the webhook:
fulfillment_orders/line_items_prepared_for_local_delivery
This event occurs when a fulfillment order's line items have been prepared for local delivery.
For comparison, Shopify's pickup workflow has the GraphQL mutation:
fulfillmentOrderLineItemsPreparedForPickup
As of the Shopify Admin GraphQL API 2026-07, Shopify does not appear to expose an equivalent public
fulfillmentOrderLineItemsPreparedForLocalDelivery
mutation. Starshipit's development team may therefore need to confirm with Shopify which supported method third-party order management apps should use to trigger the native Prepared for delivery
state.The important part for us is that packing a Local Delivery order in Starshipit should
not create a DELIVERED fulfillment event
.A
DELIVERED
event should only occur once the parcel has physically been delivered.M
Meaningful Firefly
Follow-up with verified developer detail (we've since tested all of this against the live Shopify Admin GraphQL schema, 2026-07 through unstable):
- Confirmed: the "prepared for local delivery" mutation doesn't exist publicly. fulfillmentOrderLineItemsPreparedForLocalDelivery isn't in the schema (it literally responds "did you mean fulfillmentOrderLineItemsPreparedForPickup?"). The state itself is real — the fulfillment_orders/line_items_prepared_for_local_delivery webhook exists in every current API version — but today only Shopify admin's own "Prepare delivery" button can set it. So full parity with your pickup feature needs Shopify to expose the mutation (worth raising with your Shopify partner contact).
- But please don't let that block the part that matters — it needs no new Shopify API. A fulfillment's "Delivered" state only ever comes from a fulfillment event:
GraphQL: fulfillmentEventCreate with status: DELIVERED
REST: POST /fulfillments/{fulfillment_id}/events.json with {"event": {"status": "delivered"}}
The interim fix is simply: for fulfillment orders where deliveryMethod.methodType = LOCAL (you already branch on method type for the pickup feature), keep the fulfillment writeback on pack but skip the delivered event. One suppressed API call, behind a setting like "Don't mark local delivery orders as delivered".
We then progress the order ourselves at the true times (OUT_FOR_DELIVERY when the driver leaves, DELIVERED at the doorstep), and Shopify's native local-delivery notifications fire at the right moments.
Why it's urgent: as it stands, every local-delivery customer gets Shopify's "Delivered" email while their parcel is still on our packing bench — which generates confused support contacts and disputes about deliveries that haven't happened yet.