Skip to main content

Order Management

Complete guide to managing orders through the SASOM Partners API.

Order Lifecycle

Listing Created → Order Placed → Confirm → Ship → Deliver → Settled

Reject
StatusDescriptionPartner Action
ProcessingOrder placed, waiting for confirmationConfirm or reject
ConfirmedPartner confirmed availabilityUpdate shipping
ShippedItem shipped with trackingWait for delivery
DeliveredItem received by buyer-
SettledPayment processed to partner-
RejectedPartner 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

  1. Respond quickly - Confirm or reject orders promptly (within 24 hours)
  2. Keep tracking updated - Buyers rely on tracking information
  3. Use shipping labels - SASOM-provided labels ensure proper routing
  4. Monitor payouts - Track your earnings regularly
  5. Handle errors gracefully - Implement retry logic for failed API calls