Skip to main content

Get Fulfillment Order Line Items

GET 

/api/fulfillment-orders/:fulfillmentOrder/line-items

The FO's lines (sku / name / product_id / quantity / remaining_quantity) for the list view's lazily-loaded expandable rows. Mirrors the SOF / PO line-items endpoints. quantity is the FOL budget; remaining_quantity is the amount still to be fulfilled.

Required scope: orders:read

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Authenticate with a Personal Access Token.

Fulfillability: each line carries fulfillable_quantity and unfulfillable_quantity, computed against the FulfillmentOrder's own (intent) warehouse — not the SalesOrderLine's warehouse_id. The warehouse block's tracks_inventory flag is false for externally-managed warehouses (Amazon FBA/AWD). The sibling channel_fulfilled flag answers a different question — whether the sales channel ships THIS ORDER from its own fulfillment centre: a native Amazon order at an FBA warehouse, or any order at AWD / Walmart WFS / Fulfilled-by-Faire. It is an order-level answer, not a warehouse-type one — a Walmart or Shopify order routed to an FBA warehouse is an Amazon Multi-Channel Fulfillment order that SKU.io submits itself, so it reads false there and keeps its submit / cancel / move actions. The two can disagree: Fulfilled-by-Faire stock is counted in SKU.io (tracks_inventory true) but shipped by Faire (channel_fulfilled true), and an order routed to such a warehouse cannot be dispatched through the API.

swapped_from_sku / swapped_from_product_id are set when the line was filled by a substitute product — they identify the SKU the customer originally ordered (null otherwise).

Each line includes requires_pallet_delivery (bool): the buyer chose pallet (freight/LTL) delivery for that line, so it should ship by freight, not parcel.

Required permission: fulfillment_orders.index (Fulfillment Orders → View). A token also needs its orders scope.

Request​

Responses​

OK

Response Headers
    Content-Type