Order Management
Order Management
Create, view, and manage orders for your pharmacy. Track order status from placement through delivery, and handle special requests.
List All Orders
View all orders across your pharmacy.
# Get orders with filtersgetAllProviderOrder({ page: 1, status: "pending", startDate: "2026-04-01", endDate: "2026-04-30"})Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | No | Page number (default: 1) |
limit | number | No | Results per page (default: 20) |
status | string | No | Filter by status |
startDate | string | No | Filter from date (YYYY-MM-DD) |
endDate | string | No | Filter to date (YYYY-MM-DD) |
customerId | string | No | Filter by customer |
Response:
{ "orders": [ { "orderId": "ORD-789", "customerId": "CUST-123", "customerName": "John Doe", "status": "pending", "total": 8500, "items": 3, "deliveryType": "delivery", "createdAt": "2026-04-18T10:30:00Z", "address": "12 Admiralty Way, Lekki" }, { "orderId": "ORD-790", "customerId": "CUST-124", "customerName": "Jane Smith", "status": "processing", "total": 12000, "items": 5, "deliveryType": "pickup", "createdAt": "2026-04-18T09:15:00Z" } ], "total": 156, "page": 1, "hasMore": true, "summary": { "pending": 12, "processing": 8, "completed": 136 }}Create New Order
Create an order for a customer.
# Create order for customercreateNewProviderOrderController({ customerId: "CUST-123", pharmacyId: "PH-456", items: [ { medicationId: "MED-789", quantity: 2 }, { medicationId: "MED-790", quantity: 1 } ], deliveryType: "delivery", address: "12 Admiralty Way, Lekki, Lagos", notes: "Patient prefers evening delivery after 5pm", isPaid: false, paymentMethod: "cash_on_delivery"})Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
customerId | string | Yes | Customer ID |
pharmacyId | string | Yes | Your pharmacy ID |
items | array | Yes | Array of medication items |
items[].medicationId | string | Yes | Medication ID |
items[].quantity | number | Yes | Quantity to order |
deliveryType | string | Yes | "delivery" or "pickup" |
address | string | No | Required for delivery |
notes | string | No | Special instructions |
isPaid | boolean | No | Payment status (default: false) |
paymentMethod | string | No | Payment method |
Response:
{ "success": true, "orderId": "ORD-791", "status": "pending", "total": 12500, "breakdown": { "subtotal": 12000, "deliveryFee": 500, "tax": 0 }, "items": [ { "medicationId": "MED-789", "name": "Amoxicillin 500mg", "quantity": 2, "unitPrice": 2500, "total": 5000 }, { "medicationId": "MED-790", "name": "Paracetamol 500mg", "quantity": 1, "unitPrice": 7000, "total": 7000 } ], "customer": { "id": "CUST-123", "name": "John Doe", "phone": "+2348012345678" }, "delivery": { "type": "delivery", "address": "12 Admiralty Way, Lekki, Lagos", "eta": "30-45 minutes" }, "createdAt": "2026-04-18T14:00:00Z"}Get Order Details
View complete information about a specific order.
# Get full order detailsgetProviderOrderDetails({ orderId: "ORD-789"})Response:
{ "orderId": "ORD-789", "status": "processing", "statusHistory": [ { "status": "pending", "time": "2026-04-18T10:30:00Z" }, { "status": "processing", "time": "2026-04-18T10:35:00Z" } ], "customer": { "id": "CUST-123", "name": "John Doe", "phone": "+2348012345678", "address": "12 Admiralty Way, Lekki" }, "items": [ { "medicationId": "MED-789", "name": "Amoxicillin 500mg", "quantity": 2, "price": 2500, "instructions": "Take 3 times daily after meals" } ], "payment": { "total": 8500, "subtotal": 8000, "deliveryFee": 500, "status": "pending", "method": "cash_on_delivery" }, "delivery": { "type": "delivery", "address": "12 Admiralty Way, Lekki, Lagos", "riderName": "Michael", "riderPhone": "+2348076543210", "eta": "20 minutes" }, "notes": "Call before arrival", "createdAt": "2026-04-18T10:30:00Z"}Update Order Status
Change the status of an order as it progresses.
# Update order statusupdateProviderOrderStatus({ orderId: "ORD-789", status: "out_for_delivery", notes: "Order packed and with rider"})Status Values:
| Status | When to Use |
|---|---|
pending | New order, awaiting processing |
confirmed | Order accepted |
processing | Preparing medications |
ready_for_pickup | Ready for customer collection |
out_for_delivery | With delivery partner |
delivered | Successfully delivered |
completed | Order finished |
cancelled | Order cancelled |
Cancel Order
Cancel an order before it’s completed.
# Cancel order with reasoncancelProviderOrder({ orderId: "ORD-789", reason: "Customer requested cancellation", refundCustomer: true})Example: Order Workflow
# Step 1: View pending ordersgetAllProviderOrder({ status: "pending" })# → Shows orders awaiting processing
# Step 2: Get order detailsgetProviderOrderDetails({ orderId: "ORD-789" })# → Shows full order information
# Step 3: Update status when processingupdateProviderOrderStatus({ orderId: "ORD-789", status: "processing"})
# Step 4: Mark ready for deliveryupdateProviderOrderStatus({ orderId: "ORD-789", status: "out_for_delivery"})Order Notifications
Customers receive automatic notifications at each status change via SMS and push notifications.