# Sales Order Operations related to sales order, including create, get, etc ## Create Sales Order - [POST /SalesOrder](https://developer.dealpos.com/openapi/openapi/sales-order/createsalesorder.md): Create Sales Order You must have "Create" role in "Sell" Module OR "EDIT" role in "Global" Module ## Delete Sales Order - [DELETE /SalesOrder](https://developer.dealpos.com/openapi/openapi/sales-order/deletesalesorder.md): Delete Sales Order You must have "Delete" role in "Sell" Module ## Convert Sales Order to Invoice - [PUT /SalesOrder/ConvertInvoice](https://developer.dealpos.com/openapi/openapi/sales-order/convertsalesordertoinvoice.md): Convert Sales Order to Invoice You must have “Create” role in “Sell” Module OR “EDIT” role in “Global” Module ## Update Sales Order Fields - [PUT /SalesOrder/Field](https://developer.dealpos.com/openapi/openapi/sales-order/updatefieldsalesorder.md): Update the fields (Reference Number, Logistic Service Code, Note) of an existing Sales Order. You must have "Edit" role in "Sell" Module OR "EDIT" role in "Global" Module * POS Condition * The system sets the fulfillment state to AWAITING_COLLECTION when a payload containing "Fulfillment": "AwaitingCollection" is received. * A transition to AWAITING_COLLECTION occurs only if the current fulfillment state is UNSENT or any earlier state. * When duplicate updates are received, the existing fulfillment state remains unchanged. Metadata fields (ReferenceNumber and/or LogisticServiceCode) are updated only when new values are provided. * Channel Service Condition * "Fulfillment": "AwaitingCollection" is emitted to the Channel Service only when at least one of the following fields is included: * ReferenceNumber * LogisticServiceCode ## Get Sales Order By List Number - [GET /SalesOrder/GetByListNumber](https://developer.dealpos.com/openapi/openapi/sales-order/getsalesorderlistbylistnumber.md): >Also available as HTTP POST with the same endpoint Get Sales Order List based on Number Required Group Role: "Orders" - "View" ## Get Sales Order ID by Number - [GET /SalesOrder/GetIDByNumber](https://developer.dealpos.com/openapi/openapi/sales-order/getsalesorderidbynumber.md): >Also available as HTTP POST with the same endpoint Get Sales Order ID by Number Required Group Role: "Orders" - "View" ## Get Sales Order Total Count - [GET /SalesOrder/TotalCount](https://developer.dealpos.com/openapi/openapi/sales-order/salesorder-totalcount.md): >Also available as HTTP POST with the same endpoint Get Sales Order Total Count based on selected outlet(s). Required Group Role: "Orders" - "View" ## Get Parked Order - [GET /SalesOrder/GetParked](https://developer.dealpos.com/openapi/openapi/sales-order/getparkedorder.md): >Also available as HTTP POST with the same endpoint Get Parked Order List with multiple outlet ## Get Reference Number By Sales Order ID - [GET /SalesOrder/GetReferenceNumber](https://developer.dealpos.com/openapi/openapi/sales-order/get-salesorder-getreferencenumber.md): Get List of Reference Number By Sales Order ID ## Get Sales Order Next Number - [GET /SalesOrder/GetNextNumber](https://developer.dealpos.com/openapi/openapi/sales-order/get-salesorder-getnextnumber.md): This API use to check sales order next number that generated from our system