Orders (admin API)
Admin routes of the orders module. Every route needs a staff session and the permission named on it; send X-Resolve-Locale: false to receive every locale of a translatable field for editing.
GET /v1/admin/orders
Section titled “GET /v1/admin/orders”List orders (admin)
Parameters:
dateFromin query (string, optional).dateToin query (string, optional).pagein query (number, min 1, optional).pageSizein query (number, min 1, optional).searchin query (string, optional).sortByin query (string, optional).userIdin query (string, optional).
Responses:
200: Orders retrieved.401: Unauthorized.403: Insufficient permissions.
POST /v1/admin/orders
Section titled “POST /v1/admin/orders”Create order (admin manual)
Parameters:
accept-languagein header (string, required).
Request body: CreateAdminOrderDto.
Responses:
201: Order created.400: Invalid input.401: Unauthorized.403: Insufficient permissions.
GET /v1/admin/orders/{id}
Section titled “GET /v1/admin/orders/{id}”Get order by ID (admin)
Parameters:
idin path (string, required).
Responses:
200: Order retrieved.401: Unauthorized.403: Insufficient permissions.404: Order not found.
PATCH /v1/admin/orders/{id}
Section titled “PATCH /v1/admin/orders/{id}”Edit order
Parameters:
accept-languagein header (string, required).idin path (string, required).
Request body: EditOrderDto.
Responses:
200: Order updated.400: Invalid input.401: Unauthorized.403: Insufficient permissions.404: Order not found.
GET /v1/admin/orders/{id}/invoice
Section titled “GET /v1/admin/orders/{id}/invoice”Get order invoice (admin)
Parameters:
idin path (string, required).
Responses:
200: Invoice retrieved.401: Unauthorized.403: Insufficient permissions.404: Order not found.
GET /v1/admin/orders/{id}/invoice/pdf
Section titled “GET /v1/admin/orders/{id}/invoice/pdf”Download order invoice as a branded PDF (admin)
Parameters:
accept-languagein header (string, required).idin path (string, required).
Responses:
200: PDF stream.401: Unauthorized.403: Insufficient permissions.404: Order not found or invoice not ready.
POST /v1/admin/orders/{id}/notes
Section titled “POST /v1/admin/orders/{id}/notes”Add order note
Parameters:
idin path (string, required).
Request body: AddNoteDto.
Responses:
200: Note added.400: Invalid input.401: Unauthorized.403: Insufficient permissions.404: Order not found.
POST /v1/admin/orders/{id}/shipments
Section titled “POST /v1/admin/orders/{id}/shipments”Create shipment
Parameters:
idin path (string, required).
Request body: CreateShipmentDto.
Responses:
201: Shipment created.400: Invalid input.401: Unauthorized.403: Insufficient permissions.404: Order not found.
PATCH /v1/admin/orders/{id}/shipments/{sid}
Section titled “PATCH /v1/admin/orders/{id}/shipments/{sid}”Update shipment
Parameters:
idin path (string, required).sidin path (string, required).
Request body: UpdateShipmentDto.
Responses:
200: Shipment updated.400: Invalid input.401: Unauthorized.403: Insufficient permissions.404: Shipment not found.
PATCH /v1/admin/orders/{id}/status
Section titled “PATCH /v1/admin/orders/{id}/status”Update order status
Parameters:
idin path (string, required).
Request body: UpdateOrderStatusDto.
Responses:
200: Status updated.400: Invalid input.401: Unauthorized.403: Insufficient permissions.404: Order not found.
GET /v1/admin/orders/export
Section titled “GET /v1/admin/orders/export”Export orders to CSV
Parameters:
dateFromin query (string, optional).dateToin query (string, optional).pagein query (number, min 1, optional).pageSizein query (number, min 1, optional).searchin query (string, optional).sortByin query (string, optional).userIdin query (string, optional).
Responses:
200: CSV file.401: Unauthorized.403: Insufficient permissions.
GET /v1/admin/orders/stats
Section titled “GET /v1/admin/orders/stats”Get orders statistics
Responses:
200: Statistics retrieved.401: Unauthorized.403: Insufficient permissions.
Schemas
Section titled “Schemas”AddItemDto
Section titled “AddItemDto”variantId(string, required).quantity(number, min 1, required).
AddNoteDto
Section titled “AddNoteDto”note(string, min length 1, required).
AdminOrderAddressDto
Section titled “AdminOrderAddressDto”fullName(string, required).phone(string, required).addressLine1(string, required).addressLine2(string, optional).city(string, required).state(string, optional).postalCode(string, optional).country(string, pattern/^[A-Z]{2}$/, required).
AdminOrderItemDto
Section titled “AdminOrderItemDto”variantId(string, required).quantity(number, min 1, required).
CreateAdminOrderDto
Section titled “CreateAdminOrderDto”userId(string, optional).items(array of AdminOrderItemDto, required).shippingAddress(AdminOrderAddressDto, required).billingAddress(AdminOrderAddressDto, optional).shippingMethodId(string, optional).couponCode(string, optional).notes(string, optional).
CreateShipmentDto
Section titled “CreateShipmentDto”items(array of ShipmentItemDto, required).carrier(string, optional).trackingNumber(string, optional).
EditAddressDto
Section titled “EditAddressDto”fullName(string, required).phone(string, required).addressLine1(string, required).addressLine2(string, optional).city(string, required).state(string, optional).postalCode(string, optional).country(string, pattern/^[A-Z]{2}$/, required).
EditOrderDto
Section titled “EditOrderDto”addItems(array of AddItemDto, optional).removeItems(array of RemoveItemDto, optional).shippingAddress(EditAddressDto, optional).manualDiscount(number, min 0, optional).internalNotes(string, optional).
RemoveItemDto
Section titled “RemoveItemDto”orderItemId(string, required).
ShipmentItemDto
Section titled “ShipmentItemDto”orderItemId(string, required).quantity(number, min 1, required).
UpdateOrderStatusDto
Section titled “UpdateOrderStatusDto”status(object, required).
UpdateShipmentDto
Section titled “UpdateShipmentDto”carrier(string, optional).trackingNumber(string, optional).status(object, optional).