Order management gives admin staff a complete view of every sale in the system. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/fredy-rizo/ecommerce-delivery-frontend/llms.txt
Use this file to discover all available pages before exploring further.
SalesReport component renders a paginated, Excel-style table where each row represents one sale. Admins can change the payment status, update the delivery tracking history, inspect uploaded payment proof images, and export the full list to an .xlsx file with one click. Customers have a separate, lighter view at /shoppingList that shows only their own orders and auto-refreshes every five seconds.
Route
/sales renders pages/sales/salesPage.vue, which mounts the SalesReport component. The page requires admin role (2) — validateUser({ rol: 2 }) is called inside every data-fetching function and redirects to /login when the check fails.
Sales table columns
| Column | Field | Description |
|---|---|---|
| Comprobante | imgPay | Payment proof thumbnail / “Ver” button |
| Estado | status.name | Current payment status |
| Total | total | Order total |
| Domicilio | address | Delivery address |
| Ciudad | city | Delivery city |
| Fecha | dateproof | Order date |
| Correo | email | Customer email |
| Identificacion | identification | Customer ID number |
| Nombre | name_client | Customer first name |
| Apellido | lastName_client | Customer last name |
| Telefono | phone_number | Customer phone |
Loading sales
Sales are fetched server-side via Quasar’sq-table @request event. The handler calls getSales(), which uses Authorization: Basic <token>:
pagination.rowsNumber so Quasar can render the correct page count without fetching all records at once.
Filtering sales
TheBarFilterSales component calls getDataFilter(query) in the parent whenever the search input changes. For a non-empty query the parent fires:
resetListSale(), which re-runs getSales() from page 1.
Changing order status
Clicking the blue checklist icon (checklist) in the actions column sets dialogchangestatus = true and opens ChangeStatusSale inside a maximised q-dialog. The component shows the current payment proof image (if any) and a q-select with five status options:
POST /api/sale/status-change/:idSale with the selected status object:
reloadlist prop callback and the dialog closes.
Viewing delivery tracking
Clicking the green local_shipping icon opensDeliveryTracking inside a full-width q-dialog. The component receives the delivery_status array from the row and the sale ID. See the Delivery Tracking page for the full update flow.
Viewing payment proof
When a sale row has a non-emptyimgPay array, a Ver button appears in the Comprobante column:
Excel export
The export button triggersexcel_export(), which POSTs the current filter object to the export endpoint and auto-downloads the response blob as ventas.xlsx:
The admin sales list endpoint (
/api/sale/all-list) uses Authorization: Basic <token>, while the Excel export endpoint (/api/sale/export-list-sale-xlsx) uses Authorization: Bearer <token>. Use the correct scheme for each call exactly as shown in the source.Customer order history
Customers can view their own purchases at/shoppingList, rendered by pages/shopping/ShoppingList.vue. The page calls POST /api/sale/list-sale/:pag/:perpage with Authorization: Basic <token> and displays a table with Total, Estado, and Codigo columns.
setInterval on mount to call getShopping() every 5 seconds so status changes made by the admin are reflected in near-real-time without a manual refresh:
DeliveryStatusList dialog (shipping icon) and upload a payment proof (payments icon, shown only when status.value == 2 or 3).