Order Management
Complete guide to managing orders through the SASOM Partners API.
Order Lifecycle
Listing Created → Order Placed → Confirm → Ship → Deliver → Settled
↓
Reject
| Status | Description | Partner Action |
|---|---|---|
| Processing | Order placed, waiting for confirmation | Confirm or reject |
| Confirmed | Partner confirmed availability | Update shipping |
| Shipped | Item shipped with tracking | Wait for delivery |
| Delivered | Item received by buyer | - |
| Settled | Payment processed to partner | - |
| Rejected | Partner rejected order | - |
Checking Orders
Get Processing Orders
Orders waiting for your confirmation:
curl -X GET https://partners.sasomapi.com/partner/processing/orders \
-u "YOUR_API_KEY:YOUR_API_SECRET"
Get Settled Orders
Completed orders with payment info:
curl -X GET https://partners.sasomapi.com/partner/settled/orders \
-u "YOUR_API_KEY:YOUR_API_SECRET"
Get Order Details
curl -X GET https://partners.sasomapi.com/partner/{order_id} \
-u "YOUR_API_KEY:YOUR_API_SECRET"
Response:
{
"success": true,
"data": {
"order_id": "ORD123456",
"status": "processing",
"sku": "AIR-JORDAN-1-HIGH-OG",
"size": "10",
"price": 5000,
"buyer_address": {
"name": "John Doe",
"address": "123 Main St",
"city": "Bangkok",
"postal_code": "10110"
},
"created_at": "2025-01-01T10:00:00Z"
}
}
Confirming Orders
Confirm Regular Order
When you have the item ready to ship:
curl -X PUT https://partners.sasomapi.com/partner/confirm/order \
-u "YOUR_API_KEY:YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"order_id": "ORD123456"
}'
Confirm Preorder
When the preorder item is available:
curl -X PUT https://partners.sasomapi.com/partner/confirm/preorder \
-u "YOUR_API_KEY:YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"order_id": "ORD123456"
}'
Rejecting Orders
If you cannot fulfill an order:
curl -X PUT https://partners.sasomapi.com/partner/reject/order \
-u "YOUR_API_KEY:YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"order_id": "ORD123456",
"reason": "Item out of stock"
}'
Rejection Impact
Frequent rejections may affect your partner status. Only reject when absolutely necessary.
Shipping Updates
Update Shipping Details
curl -X PUT https://partners.sasomapi.com/partner/update/shipping \
-u "YOUR_API_KEY:YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"order_id": "ORD123456",
"shipping_date": "2025-01-02"
}'
Update Tracking Information
curl -X PUT https://partners.sasomapi.com/partner/update/tracking \
-u "YOUR_API_KEY:YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"order_id": "ORD123456",
"tracking_number": "TH12345678901",
"logistics_provider": "Kerry Express"
}'
Shipping Labels
Get the shipping label for an order:
curl -X GET https://partners.sasomapi.com/partner/label/ORD123456 \
-u "YOUR_API_KEY:YOUR_API_SECRET"
Response:
{
"success": true,
"data": {
"label_url": "https://labels.sasom.co.th/ORD123456.pdf"
}
}
Payout Information
Check payout status for completed orders:
curl -X GET https://partners.sasomapi.com/partner/payout/ORD123456 \
-u "YOUR_API_KEY:YOUR_API_SECRET"
Response:
{
"success": true,
"data": {
"order_id": "ORD123456",
"amount": 4750,
"commission": 250,
"status": "completed",
"payout_date": "2025-01-10T10:00:00Z"
}
}
Pagination
Both processing and settled order endpoints support cursor-based pagination:
# First request
curl -X GET "https://partners.sasomapi.com/partner/processing/orders?limit=20" \
-u "YOUR_API_KEY:YOUR_API_SECRET"
# Response includes cursor for next page
{
"success": true,
"data": [...],
"cursor": "eyJsYXN0X2lkIjoiT1JEMTIzNDU2In0=",
"has_more": true
}
# Next page request
curl -X GET "https://partners.sasomapi.com/partner/processing/orders?cursor=eyJsYXN0X2lkIjoiT1JEMTIzNDU2In0=&limit=20" \
-u "YOUR_API_KEY:YOUR_API_SECRET"
Order Processing Workflow
Automated Order Handler (Example)
async function processNewOrders() {
// 1. Get processing orders
const ordersResponse = await sasomRequest('GET', '/partner/processing/orders');
const orders = ordersResponse.data;
for (const order of orders) {
try {
// 2. Check inventory
const hasStock = await checkInventory(order.sku, order.size);
if (!hasStock) {
// 3a. Reject if no stock
await sasomRequest('PUT', '/partner/reject/order', {
order_id: order.order_id,
reason: 'Item out of stock'
});
continue;
}
// 3b. Confirm order
await sasomRequest('PUT', '/partner/confirm/order', {
order_id: order.order_id
});
// 4. Ship item
const tracking = await shipItem(order);
// 5. Update tracking
await sasomRequest('PUT', '/partner/update/tracking', {
order_id: order.order_id,
tracking_number: tracking.number,
logistics_provider: tracking.provider
});
} catch (error) {
console.error(`Failed to process order ${order.order_id}:`, error);
}
}
}
// Run every 5 minutes
setInterval(processNewOrders, 5 * 60 * 1000);
Best Practices
- Respond quickly - Confirm or reject orders promptly (within 24 hours)
- Keep tracking updated - Buyers rely on tracking information
- Use shipping labels - SASOM-provided labels ensure proper routing
- Monitor payouts - Track your earnings regularly
- Handle errors gracefully - Implement retry logic for failed API calls