Order Checklists

Define fulfilment checklist items and tick them off per order

GET /admin/api/order-checklist-items

List every master checklist item, ordered by sort_order then id. These define the template that is snapshotted onto each new order.

Response 200

[
  {
    "id": 1,
    "name": "Pick items from shelf",
    "sort_order": 0,
    "created_at": "2026-04-15T09:00:00Z",
    "updated_at": "2026-04-15T09:00:00Z"
  },
  {
    "id": 2,
    "name": "Print shipping label",
    "sort_order": 1,
    "created_at": "2026-04-15T09:00:00Z",
    "updated_at": "2026-04-15T09:00:00Z"
  }
]

Example

curl "https://yourshop.zeroshop.io/admin/api/order-checklist-items" \
  -H "Authorization: Bearer zspat_..."
POST /admin/api/order-checklist-items

Create a new master checklist item. The name is added to the template snapshotted onto future orders; existing orders are unaffected.

Request Body

{
  "name": "Quality-check packaging",
  "sort_order": 2
}

Response 201

{
  "id": 3,
  "name": "Quality-check packaging",
  "sort_order": 2,
  "created_at": "2026-05-03T10:00:00Z",
  "updated_at": "2026-05-03T10:00:00Z"
}

Example

curl -X POST "https://yourshop.zeroshop.io/admin/api/order-checklist-items" \
  -H "Authorization: Bearer zspat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Quality-check packaging",
    "sort_order": 2
  }'
PATCH /admin/api/order-checklist-items/{id}

Partial update of a master checklist item. Any field may be omitted; omitted fields are left unchanged. Only affects the template — entries already snapshotted onto existing orders are unchanged.

Request Body

{
  "name": "Pick & verify items"
}

Response 200

{
  "id": 1,
  "name": "Pick & verify items",
  "sort_order": 0,
  "created_at": "2026-04-15T09:00:00Z",
  "updated_at": "2026-05-03T10:05:00Z"
}

Example

curl -X PATCH "https://yourshop.zeroshop.io/admin/api/order-checklist-items/1" \
  -H "Authorization: Bearer zspat_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "Pick & verify items"}'
DELETE /admin/api/order-checklist-items/{id}

Permanently delete a master checklist item. Entries already snapshotted onto existing orders are NOT affected, since per-order entries are stored independently of the master table.

Response 204

Example

curl -X DELETE "https://yourshop.zeroshop.io/admin/api/order-checklist-items/1" \
  -H "Authorization: Bearer zspat_..."
POST /admin/api/order-checklist-items/reorder

Bulk reorder master checklist items. Send the (id, sort_order) pairs you want applied; positions take effect on the next order snapshot.

Request Body

{
  "items": [
    {
      "id": 3,
      "sort_order": 0
    },
    {
      "id": 1,
      "sort_order": 1
    },
    {
      "id": 2,
      "sort_order": 2
    }
  ]
}

Response 204

Example

curl -X POST "https://yourshop.zeroshop.io/admin/api/order-checklist-items/reorder" \
  -H "Authorization: Bearer zspat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"id": 3, "sort_order": 0},
      {"id": 1, "sort_order": 1},
      {"id": 2, "sort_order": 2}
    ]
  }'
PATCH /admin/api/orders/{order_id}/checklist/{entry_id}

Tick or untick a single checklist entry on a specific order. Setting checked=true stamps checked_at and the acting admin; checked=false clears them. Idempotent. Returns the order's full refreshed checklist. Note these per-order entries are snapshots and live separately from the master catalog.

Parameters

Name Type Required Description
order_id integer required Id of the order the checklist belongs to.
entry_id integer required Id of the per-order checklist entry to toggle.

Request Body

{
  "checked": true
}

Response 200

{
  "checklist": [
    {
      "id": 10,
      "order_id": 42,
      "name": "Pick items from shelf",
      "sort_order": 0,
      "checked_at": "2026-05-30T12:00:00Z",
      "checked_by_user_id": 5,
      "checked_by_user_name": "Mara"
    },
    {
      "id": 11,
      "order_id": 42,
      "name": "Print shipping label",
      "sort_order": 1,
      "checked_at": null,
      "checked_by_user_id": null,
      "checked_by_user_name": null
    }
  ]
}

Example

curl -X PATCH "https://yourshop.zeroshop.io/admin/api/orders/42/checklist/10" \
  -H "Authorization: Bearer zspat_..." \
  -H "Content-Type: application/json" \
  -d '{"checked": true}'

We value your privacy

We use cookies for essential site functionality and, with your consent, analytics to understand how our platform is used. No personal data is shared with third parties. See our Privacy Policy for details.