scheduleFulfillment
Schedules a fulfillment for transmission to a 3PL integration.
This mutation initiates the async send process for a fulfillment. The fulfillment stays in "allocated" state while a background job handles the integration call. On success, the fulfillment transitions to "sent". If retries are exhausted, it transitions to "failed_to_fulfill".
Requirements
- User must have
schedule_fulfillmentpermission - Valid brand context must be provided (via argument or X-Brand-Id header)
- Order must exist and be in "ordered" state (for V2 orders)
- Fulfillment must exist and be in "allocated" or "failed_to_fulfill" state
Arguments
fulfillment_id(required): The ID of the fulfillment to scheduleorder_id(required): The ID of the order the fulfillment belongs towarehouse_id(required): The ID of the warehouse where the fulfillment is processed
Behavior
- Validates transition requirements (shipping address, carrier service)
- Creates a background job to transmit fulfillment to 3PL integration
- On success: transitions to "sent" state
- On failure: retries with exponential backoff (max 5 attempts)
- After retry exhaustion: transitions to "failed_to_fulfill" state (can be retried manually)
scheduleFulfillment(
input: ScheduleFulfillmentInput!
): OrderFulfillment!
Arguments
scheduleFulfillment.input ● ScheduleFulfillmentInput! non-null input common
Parameters for ScheduleFulfillment
Type
OrderFulfillment object orders
This type represents an order fulfillment. An order can have multiple fulfillments, each one associated with a warehouse and a party that fulfilled the order.