Руководство по API поставщика: Обработка ручных заказов
Sarah JohnsonПредварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Учетная запись поставщика с доступом к API
- Ваш API-ключ (его можно сгенерировать в панели управления поставщика)
- Доступ к конечным точкам Admin 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(обязательно для ручных заказов): Установите значениеmanualentityType(опционально): Фильтр поproductилиsmm_servicesubCategory(опционально): Фильтр по названию подкатегории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(обязательно): ID заказа (число)status(опционально): Новый статус заказа. Допустимые значения:pending,processing,completed,partial,cancelled,erroraccounts(опционально, для заказов на товары): Массив учетных данных в формате"username:password"или"email:password"supplierOrderId(опционально): Ваш внутренний ID заказа для отслеживания
Формат учетных записей
Для заказов на товары учетные записи должны предоставляться в виде массива строк. Каждая строка представляет одну учетную запись:
- Формат:
"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';
// Шаг 1: Получение ожидающих и обрабатываемых ручных заказов
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.response?.data || error.message);
throw error;
}
}
// Шаг 2: Обработка заказа и отправка учетных записей
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.response?.data || error.message);
throw error;
}
}
// Основной рабочий процесс
async function processOrders() {
try {
// Получение заказов
const orders = await getOrders();
console.log(`Найдено ${orders.length} заказов для обработки`);
// Обработка каждого заказа
for (const order of orders) {
console.log(`Обработка заказа ${order.id}...`);
// Подготовка учетных записей (здесь вы бы получали их из своей системы)
const accounts = [
'user1:pass1',
'user2:pass2',
// ... больше учетных записей, соответствующих order.quantity
];
// Обновление заказа с учетными записями и отметка как завершенного
const updatedOrder = await updateOrder(
order.id,
accounts,
`SUP-${order.id}`
);
console.log(`Заказ ${order.id} успешно завершен`);
}
} catch (error) {
console.error('Ошибка в рабочем процессе:', error);
}
}
// Запуск рабочего процесса
processOrders();
Обработка ошибок
Распространенные ошибки
- Неверный API-ключ
{ "error": "INVALID_API_KEY", "message": "Invalid API key" }Решение: Убедитесь, что ваш API-ключ корректен и активен.
- Заказ не найден
{ "error": "ORDER_NOT_FOUND", "message": "Order not found" }Решение: Проверьте, существует ли ID заказа и принадлежит ли он вам.
- Доступ запрещен
{ "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, когда аккаунты готовы
- Сначала установите
- Частичные заказы: Если вы можете выполнить только часть заказа, установите статус
partialи отправьте доступные аккаунты.
Итог
Полный рабочий процесс:
- Получение заказов:
GET /api/admin/v2/orders?status=pending,processing&productType=manual - Обработка заказов: Подготовка аккаунтов для каждого заказа
- Отправка аккаунтов:
POST /api/admin/v2/orders-updateс аккаунтами иstatus: "completed"
Этот простой трехэтапный процесс позволяет полностью автоматизировать ваш рабочий процесс выполнения заказов!
Оба являются основными руководствами для поставщиков. Связывание их помогает поставщикам переходить от настройки продукта к обработке заказов, создавая логичный рабочий процесс. руководство по управлению продуктами.

Sarah Johnson
Digital marketing expert with 10+ years of experience in social media strategy. Passionate about helping businesses grow their online presence through effective marketing techniques.


