সাপ্লায়ার API গাইড: ম্যানুয়াল অর্ডার প্রক্রিয়াকরণ
সাপ্লায়ার API ব্যবহার করে ম্যানুয়াল অর্ডার সংগ্রহ, অ্যাকাউন্ট জমা দেওয়া এবং অর্ডার সম্পন্ন চিহ্নিত করার সম্পূর্ণ গাইড। কোড উদাহরণ এবং সর্বোত্তম অনুশীলন সহ।
Sarah Johnsonপূর্বশর্ত
শুরু করার আগে, নিশ্চিত করুন আপনার কাছে আছে:
- API অ্যাক্সেস সহ একটি সরবরাহকারী অ্যাকাউন্ট
- আপনার API কী (আপনি এটি আপনার সরবরাহকারী ড্যাশবোর্ড থেকে তৈরি করতে পারেন)
- অ্যাডমিন API v2 এন্ডপয়েন্টে অ্যাক্সেস
ধাপ 1: আপনার API কী পান
- আপনার সরবরাহকারী ড্যাশবোর্ডে লগ ইন করুন
- API সেটিংসে নেভিগেট করুন (
/api-settings) - আপনার যদি না থাকে তবে "API কী তৈরি করুন" এ ক্লিক করুন
- আপনার API কী কপি করুন এবং এটি নিরাপদে রাখুন
গুরুত্বপূর্ণ: আপনার API কী গোপন রাখা উচিত। এটি কখনও পাবলিকভাবে শেয়ার করবেন না বা সংস্করণ নিয়ন্ত্রণে কমিট করবেন না।
ধাপ 2: ম্যানুয়াল অর্ডার পান
পেন্ডিং এবং প্রসেসিং ম্যানুয়াল অর্ডার আনতে GET /api/admin/v2/orders এন্ডপয়েন্ট ব্যবহার করুন।
API অনুরোধ
curl -X GET "https://your-domain.com/api/admin/v2/orders?status=pending,processing&productType=manual&limit=50&offset=0" \
-H "X-Api-Key: YOUR_API_KEY"
অনুরোধ প্যারামিটার
status(ঐচ্ছিক): অর্ডার স্ট্যাটাস ফিল্টার। কমা-বিভক্ত মান সমর্থন করে:pending,processingproductType(ম্যানুয়াল অর্ডারের জন্য প্রয়োজনীয়):manualসেট করুনentityType(ঐচ্ছিক):productবাsmm_serviceদ্বারা ফিল্টার করুনsubCategory(ঐচ্ছিক): উপশ্রেণির নাম দ্বারা ফিল্টার করুনlimit(ঐচ্ছিক): ফেরত দেওয়ার জন্য অর্ডারের সংখ্যা (সর্বোচ্চ 500, ডিফল্ট 50)offset(ঐচ্ছিক): পেজিনেশন অফসেট (ডিফল্ট 0)
উদাহরণ প্রতিক্রিয়া
{
"orders": [
{
"id": 12345,
"order": 12345,
"status": "pending",
"paymentStatus": "completed",
"quantity": 10,
"user": {
"id": "507f1f77bcf86cd799439011",
"email": "customer@example.com",
"name": "John Doe"
},
"items": [
{
"product": {
"id": "507f1f77bcf86cd799439012",
"name": "Instagram Followers",
"type": "product"
},
"quantity": 10,
"unitPrice": 5.00,
"totalPrice": 50.00
}
],
"createdAt": "2024-01-01T10:00:00.000Z"
}
],
"count": 1,
"total": 1
}
গুরুত্বপূর্ণ নোট
- শুধুমাত্র
paymentStatus: "completed"সহ অর্ডার ফেরত দেওয়া হয় - ডুপ্লিকেট প্রসেসিং প্রতিরোধ করতে অর্ডারগুলি ফিল্টার করা হয় (30 মিনিটের ব্যবধান)
- আপনি শুধুমাত্র সেই পণ্য/সেবার অর্ডার দেখতে পারেন যা সরবরাহকারী হিসাবে আপনার
ধাপ 3: অর্ডার প্রক্রিয়া করুন এবং অ্যাকাউন্ট জমা দিন
একবার আপনার অর্ডার হয়ে গেলে, সেগুলি প্রক্রিয়া করুন এবং অ্যাকাউন্টের ক্রেডেনশিয়াল প্রস্তুত করুন। তারপর অ্যাকাউন্ট জমা দিতে এবং অর্ডার স্ট্যাটাস আপডেট করতে POST /api/admin/v2/orders-update এন্ডপয়েন্ট ব্যবহার করুন।
API অনুরোধ
curl -X POST "https://your-domain.com/api/admin/v2/orders-update" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"order": 12345,
"status": "completed",
"accounts": [
"username1:password1",
"username2:password2",
"username3:password3"
],
"supplierOrderId": "SUP-ORDER-12345"
}'
অনুরোধ বডি প্যারামিটার
order(প্রয়োজনীয়): অর্ডার আইডি (সংখ্যা)status(ঐচ্ছিক): নতুন অর্ডার স্ট্যাটাস। বৈধ মান:pending,processing,completed,partial,cancelled,erroraccounts(ঐচ্ছিক, পণ্য অর্ডারের জন্য):"username:password"বা"email:password"ফরম্যাটে অ্যাকাউন্ট ক্রেডেনশিয়ালের অ্যারেsupplierOrderId(ঐচ্ছিক): ট্র্যাকিংয়ের জন্য আপনার অভ্যন্তরীণ অর্ডার আইডি
অ্যাকাউন্ট ফরম্যাট
পণ্য অর্ডারের জন্য, অ্যাকাউন্টগুলি স্ট্রিংয়ের অ্যারে হিসাবে প্রদান করা উচিত। প্রতিটি স্ট্রিং একটি অ্যাকাউন্ট উপস্থাপন করে:
- ফরম্যাট:
"username:password"বা"email:password" - উদাহরণ:
["user1:pass123", "user2:pass456"] - পরিমাণ: অর্ডার পরিমাণের সাথে মিল রেখে অ্যাকাউন্ট প্রদান করুন
সম্পূর্ণ ওয়ার্কফ্লো উদাহরণ
এখানে JavaScript/Node.js ব্যবহার করে একটি সম্পূর্ণ উদাহরণ দেওয়া হল:
const axios = require('axios');
const API_BASE_URL = 'https://your-domain.com/api/admin/v2';
const API_KEY = 'YOUR_API_KEY';
// Step 1: Get pending and processing manual orders
async function getOrders() {
try {
const response = await axios.get(`${API_BASE_URL}/orders`, {
params: {
status: 'pending,processing',
productType: 'manual',
limit: 50,
offset: 0
},
headers: {
'X-Api-Key': API_KEY
}
});
return response.data.orders;
} catch (error) {
console.error('Error fetching orders:', error.response?.data || error.message);
throw error;
}
}
// Step 2: Process order and submit accounts
async function updateOrder(orderId, accounts, supplierOrderId) {
try {
const response = await axios.post(
`${API_BASE_URL}/orders-update`,
{
order: orderId,
status: 'completed',
accounts: accounts,
supplierOrderId: supplierOrderId
},
{
headers: {
'X-Api-Key': API_KEY,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Error updating order:', error.response?.data || error.message);
throw error;
}
}
// Main workflow
async function processOrders() {
try {
// Get orders
const orders = await getOrders();
console.log(`Found ${orders.length} orders to process`);
// Process each order
for (const order of orders) {
console.log(`Processing order ${order.id}...`);
// Prepare accounts (this is where you would fetch from your system)
const accounts = [
'user1:pass1',
'user2:pass2',
// ... more accounts matching order.quantity
];
// Update order with accounts and mark as completed
const updatedOrder = await updateOrder(
order.id,
accounts,
`SUP-${order.id}`
);
console.log(`Order ${order.id} completed successfully`);
}
} catch (error) {
console.error('Error in workflow:', error);
}
}
// Run the workflow
processOrders();
ত্রুটি পরিচালনা
সাধারণ ত্রুটি
- অবৈধ API কী
{ "error": "INVALID_API_KEY", "message": "Invalid API key" }সমাধান: আপনার API কী সঠিক এবং সক্রিয় কিনা তা পরীক্ষা করুন।
- অর্ডার পাওয়া যায়নি
{ "error": "ORDER_NOT_FOUND", "message": "Order not found" }সমাধান: অর্ডার আইডি বিদ্যমান এবং আপনার কিনা তা যাচাই করুন।
- অ্যাক্সেস অস্বীকৃত
{ "error": "ACCESS_DENIED", "message": "You do not have access to this order" }সমাধান: নিশ্চিত করুন অর্ডারে আপনার পণ্য/সেবা রয়েছে।
- অবৈধ অ্যাকাউন্ট
{ "error": "INVALID_ACCOUNTS", "message": "No valid accounts provided after deduplication" }সমাধান: নিশ্চিত করুন অ্যাকাউন্ট অ্যারে খালি নয় এবং বৈধ স্ট্রিং রয়েছে।
সেরা অনুশীলন
- পোলিং ফ্রিকোয়েন্সি: খুব ঘন ঘন পোল করবেন না। API 30 মিনিটের ব্যবধানে ডুপ্লিকেট প্রসেসিং প্রতিরোধ করে।
- ত্রুটি পরিচালনা: সর্বদা সঠিক ত্রুটি পরিচালনা এবং পুনরায় চেষ্টার লজিক প্রয়োগ করুন।
- অ্যাকাউন্ট যাচাইকরণ: জমা দেওয়ার আগে অ্যাকাউন্ট যাচাই করুন যাতে সেগুলি সঠিক ফরম্যাটে থাকে।
- অর্ডার ট্র্যাকিং: আপনার সিস্টেমে অর্ডার ট্র্যাক করতে
supplierOrderIdব্যবহার করুন। - স্ট্যাটাস আপডেট: আপনি ধীরে ধীরে স্ট্যাটাস আপডেট করতে পারেন:
- প্রথমে
processingসেট করুন যখন আপনি কাজ শুরু করেন - তারপর
completedসেট করুন যখন অ্যাকাউন্ট প্রস্তুত হয়
- প্রথমে
- আংশিক অর্ডার: যদি আপনি অ



