HstockPlus

Руководство по API поставщика: Обработка ручных заказов

Sarah JohnsonSarah Johnson
January 5, 202619 мин чтения166 просмотров

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  • Учетная запись поставщика с доступом к API
  • Ваш API-ключ (его можно сгенерировать в панели управления поставщика)
  • Доступ к конечным точкам Admin API v2

Шаг 1: Получение вашего API-ключа

  1. Войдите в свою панель управления поставщика
  2. Перейдите в раздел "Настройки API" (/api-settings)
  3. Нажмите "Сгенерировать API-ключ", если у вас его еще нет
  4. Скопируйте ваш 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,processing
  • productType (обязательно для ручных заказов): Установите значение 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 (обязательно): ID заказа (число)
  • status (опционально): Новый статус заказа. Допустимые значения: pending, processing, completed, partial, cancelled, error
  • accounts (опционально, для заказов на товары): Массив учетных данных в формате "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();

Обработка ошибок

Распространенные ошибки

  1. Неверный API-ключ
    {
          "error": "INVALID_API_KEY",
          "message": "Invalid API key"
        }

    Решение: Убедитесь, что ваш API-ключ корректен и активен.

  2. Заказ не найден
    {
          "error": "ORDER_NOT_FOUND",
          "message": "Order not found"
        }

    Решение: Проверьте, существует ли ID заказа и принадлежит ли он вам.

  3. Доступ запрещен
    {
          "error": "ACCESS_DENIED",
          "message": "You do not have access to this order"
        }

    Решение: Убедитесь, что заказ содержит товары/услуги, которые принадлежат вам.

  4. Неверные учетные записи
    {
          "error": "INVALID_ACCOUNTS",
          "message": "No valid accounts provided after deduplication"
        }

    Решение: Убедитесь, что массив учетных записей не пуст и содержит допустимые строки.

Лучшие практики

  1. Частота опроса: Не опрашивайте слишком часто. API предотвращает дублирующую обработку с интервалом в 30 минут.
  2. Обработка ошибок: Всегда реализуйте корректную обработку ошибок и логику повторных попыток.
  3. Валидация аккаунтов: Проверяйте аккаунты перед отправкой, чтобы убедиться в их корректном формате.
  4. Отслеживание заказов: Используйте supplierOrderId для отслеживания заказов в вашей системе.
  5. Обновление статусов: Вы можете обновлять статус постепенно:
    • Сначала установите processing, когда начинаете работу над заказом
    • Затем установите completed, когда аккаунты готовы
  6. Частичные заказы: Если вы можете выполнить только часть заказа, установите статус partial и отправьте доступные аккаунты.

Итог

Полный рабочий процесс:

  1. Получение заказов: GET /api/admin/v2/orders?status=pending,processing&productType=manual
  2. Обработка заказов: Подготовка аккаунтов для каждого заказа
  3. Отправка аккаунтов: POST /api/admin/v2/orders-update с аккаунтами и status: "completed"

Этот простой трехэтапный процесс позволяет полностью автоматизировать ваш рабочий процесс выполнения заказов!

Оба являются основными руководствами для поставщиков. Связывание их помогает поставщикам переходить от настройки продукта к обработке заказов, создавая логичный рабочий процесс. руководство по управлению продуктами.

#API#Supplier#Documentation#Manual Orders#Integration
Sarah Johnson

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.

Related Posts

Полное руководство: Как присоединиться в качестве поставщика

Полное руководство: Как присоединиться в качестве поставщика

Узнайте, как присоединиться в качестве поставщика с помощью этого полного пошагового руководства. Откройте для себя, как настроить свой магазин, добавить товары, управлять заказами, подключить Supplier API и быстро и безопасно выводить заработанные средства.

Обзор платформы маркетплейса HstockPlus

Обзор платформы маркетплейса HstockPlus

HstockPlus — это масштабируемая программная платформа для маркетплейса, предназначенная для поставщиков и клиентов, с защищенными панелями управления, структурированным управлением заказами и полной совместимостью с API PerfectPanel.

Руководство по управлению товарами поставщика: Создание товаров, понимание подтоваров и управление запасами

Руководство по управлению товарами поставщика: Создание товаров, понимание подтоваров и управление запасами

Полное руководство для поставщиков по созданию продуктов, пониманию подпродуктов, выбору между типами товаров (инвентарный и ручной) и эффективному управлению запасами. Включает пошаговые инструкции и лучшие практики.