Sales Order Service
Overview
Sales orders represent customer orders for products or services.
They are central to sales operations, including order processing, tracking, and reporting.
Sales orders provide a consistent reference for:
- managing customer orders
- tracking order status and fulfillment
- reporting and analytics
- integration with inventory and pricing modules
Sales orders are tenant-scoped, and all operations respect the current tenant context.
All sales order operations are tenant-aware.
Endpoints
GET
/api/SalesOrder/GetAllSalesOrders
Returns all sales orders for the current tenant.
Query parameters:
- none
Behavior:
- Returns a list of all sales orders
- Returns
404if no sales orders exist
Authorization:
- Requires Bearer Token
GET
/api/SalesOrder/GetSalesOrderById/{id}
Returns a single sales order by its numeric identifier.
Behavior:
- Looks up sales order by
Id - Returns
404if not found
Authorization:
- Requires Bearer Token
GET
/api/SalesOrder/GetAllSalesOrdersByEntityId/{entityId}
Returns all sales orders for a given customer/entity.
Behavior:
- Looks up sales orders by
EntityId - Returns
404if no orders exist for the entity
Authorization:
- Requires Bearer Token
GET
/api/SalesOrder/GetSalesOrderByOrderRefAndEntityId/{orderNumber}/{entityId}
Returns a sales order matching both order reference and entity Id.
Behavior:
- Looks up sales order by
OrderNumberandEntityId - Returns
404if no match found
Authorization:
- Requires Bearer Token
POST
/api/SalesOrder/AddNewSalesOrder
Creates a new sales order.
Request body:
SalesOrderModel(required)
Behavior:
- Validation is handled in the service layer
- Successful creation writes an audit log entry
Errors:
- Returns
400if validation -
Authorization:
- Requires Bearer Token
PUT
/api/SalesOrder/UpdateSalesOrderById/{id}
Updates an existing sales order.
Request:
- Route parameter:
id(numeric) - Body:
SalesOrderModel(with updated fields)
Behavior:
- Updates all fields of the order
- Partial updates are not supported
- Successful update writes an audit log entry
Errors:
- Returns
400if validation - or sales order does not exist
Authorization:
- Requires Bearer Token
DELETE
/api/SalesOrder/DeleteSalesOrderById/{id}
Deletes a sales order by its identifier.
Behavior:
- Performs a hard delete
- Record is permanently removed from the database
- Successful deletion writes an audit log entry
Errors:
- Returns
400if sales order does not exist or deletion -
Authorization:
- Requires Bearer Token
Notes
- Validation is enforced in the service layer, not via model attributes
- All operations are tenant-aware
- All state-changing operations are audited
- Internal errors are logged but not exposed to clients