Editing fulfillment order notes
Fulfillment orders carry two note fields: customer notes (visible to the customer and forwarded to the warehouse) and internal notes (operator-only). Both are now editable after the fulfillment order is created.
In the UI
Open the fulfillment order detail screen. Scroll to the Notes card, just below the Ship To / Bill To panel. Click the single Edit button at the top-right of the Notes card — it puts both the Customer note and Internal note fields into edit mode together, not just the one you clicked. Make your changes to either or both fields, then click Save to commit both at once. Edited notes are sent to the warehouse automatically on the next push — no manual re-push is needed just to update a note.
Via the External API
PATCH /external/api/v1/fulfillment-orders/{id}/notes
Content-Type: application/json
Authorization: Bearer <token>
Body — send only the fields you want to change:
{
"customer_notes": "Please gift-wrap and include a card.",
"internal_notes": "Customer called — expedite if possible."
}
Both fields are optional in a single request. Omitting a field leaves it unchanged; passing null or an empty string clears it.
Validation
- At least one of
customer_notesorinternal_notesmust be present. Sending an empty body returns422. 404is returned if the fulfillment order does not exist.
Response — the full updated fulfillment order resource:
{
"data": {
"id": 8421,
"customer_notes": "Please gift-wrap and include a card.",
"internal_notes": "Customer called — expedite if possible.",
...
}
}
Notes and the drift indicator
The fulfillment order grid shows a "Changed since sent" indicator when a fulfillment order's notes differ from its parent sales order. Once you deliberately edit a fulfillment order's own note, that divergence is intentional — Luminous tracks when each note was last manually edited and suppresses the false-drift flag for fields you have intentionally overridden.
Note length
Notes accept free-form text with no practical length limit (the field was expanded from a 255-character limit as part of this change).