Guia da API do Fornecedor: Processamento de Pedidos Manuais
Sarah JohnsonPré-requisitos
Antes de começar, certifique-se de ter:
- Uma conta de fornecedor com acesso à API
- Sua chave de API (você pode gerá-la no seu painel do fornecedor)
- Acesso aos endpoints da Admin API v2
Passo 1: Obtenha Sua Chave de API
- Faça login no seu painel do fornecedor
- Navegue até Configurações da API (
/api-settings) - Clique em "Gerar Chave de API" se você não tiver uma
- Copie sua chave de API e mantenha-a segura
Importante: Sua chave de API deve ser mantida em segredo. Nunca a compartilhe publicamente ou a envie para um sistema de controle de versão.
Passo 2: Obter Pedidos Manuais
Use o endpoint GET /api/admin/v2/orders para buscar pedidos manuais pendentes e em processamento.
Solicitação da 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"
Parâmetros da Solicitação
status(opcional): Filtro de status do pedido. Suporta valores separados por vírgula:pending,processingproductType(obrigatório para pedidos manuais): Defina comomanualentityType(opcional): Filtrar porproductousmm_servicesubCategory(opcional): Filtrar por nome da subcategorialimit(opcional): Número de pedidos a retornar (máx. 500, padrão 50)offset(opcional): Deslocamento para paginação (padrão 0)
Exemplo de Resposta
{
"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
}
Notas Importantes
- Apenas pedidos com
paymentStatus: "completed"são retornados - Os pedidos são filtrados para evitar processamento duplicado (intervalo de 30 minutos)
- Você só pode ver pedidos para produtos/serviços que pertencem a você como fornecedor
Passo 3: Processar Pedidos e Enviar Contas
Depois de obter os pedidos, processe-os e prepare as credenciais das contas. Em seguida, use o endpoint POST /api/admin/v2/orders-update para enviar as contas e atualizar o status do pedido.
Solicitação da 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"
}'
Parâmetros do Corpo da Solicitação
order(obrigatório): O ID do pedido (número)status(opcional): Novo status do pedido. Valores válidos:pending,processing,completed,partial,cancelled,erroraccounts(opcional, para pedidos de produto): Array de credenciais de conta no formato"username:password"ou"email:password"supplierOrderId(opcional): Seu ID de pedido interno para rastreamento
Formato da Conta
Para pedidos de produto, as contas devem ser fornecidas como um array de strings. Cada string representa uma conta:
- Formato:
"username:password"ou"email:password" - Exemplo:
["user1:pass123", "user2:pass456"] - Quantidade: Forneça contas correspondentes à quantidade do pedido
Exemplo Completo de Fluxo de Trabalho
Aqui está um exemplo completo usando JavaScript/Node.js:
const axios = require('axios');
const API_BASE_URL = 'https://your-domain.com/api/admin/v2';
const API_KEY = 'YOUR_API_KEY';
// Passo 1: Obter pedidos manuais pendentes e em processamento
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('Erro ao buscar pedidos:', error.response?.data || error.message);
throw error;
}
}
// Passo 2: Processar pedido e enviar contas
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('Erro ao atualizar pedido:', error.response?.data || error.message);
throw error;
}
}
// Fluxo de trabalho principal
async function processOrders() {
try {
// Obter pedidos
const orders = await getOrders();
console.log(`Encontrados ${orders.length} pedidos para processar`);
// Processar cada pedido
for (const order of orders) {
console.log(`Processando pedido ${order.id}...`);
// Preparar contas (aqui é onde você buscaria do seu sistema)
const accounts = [
'user1:pass1',
'user2:pass2',
// ... mais contas correspondendo a order.quantity
];
// Atualizar pedido com contas e marcar como concluído
const updatedOrder = await updateOrder(
order.id,
accounts,
`SUP-${order.id}`
);
console.log(`Pedido ${order.id} concluído com sucesso`);
}
} catch (error) {
console.error('Erro no fluxo de trabalho:', error);
}
}
// Executar o fluxo de trabalho
processOrders();
Tratamento de Erros
Erros Comuns
- Chave de API Inválida
{ "error": "INVALID_API_KEY", "message": "Invalid API key" }Solução: Verifique se sua chave de API está correta e ativa.
- Pedido Não Encontrado
{ "error": "ORDER_NOT_FOUND", "message": "Order not found" }Solução: Verifique se o ID do pedido existe e pertence a você.
- Acesso Negado
{ "error": "ACCESS_DENIED", "message": "You do not have access to this order" }Solução: Certifique-se de que o pedido contém produtos/serviços que pertencem a você.
- Contas Inválidas
{ "error": "INVALID_ACCOUNTS", "message": "No valid accounts provided after deduplication" }Solução: Certifique-se de que o array de contas não está vazio e contém strings válidas.
Melhores Práticas
- Frequência de Consulta: Não consulte com muita frequência. A API evita processamento duplicado com um intervalo de 30 minutos.
- Tratamento de Erros: Sempre implemente tratamento de erros adequado e lógica de repetição.
- Validação de Contas: Valide as contas antes de enviar para garantir que estejam no formato correto.
- Acompanhamento de Pedidos: Use
supplierOrderIdpara rastrear pedidos em seu sistema. - Atualizações de Status: Você pode atualizar o status incrementalmente:
- Primeiro defina como
processingquando começar a trabalhar nele - Depois defina como
completedquando as contas estiverem prontas
- Primeiro defina como
- Pedidos Parciais: Se você só puder atender parte de um pedido, defina o status como
partiale envie as contas disponíveis.
Resumo
O fluxo de trabalho completo é:
- Obter Pedidos:
GET /api/admin/v2/orders?status=pending,processing&productType=manual - Processar Pedidos: Preparar contas para cada pedido
- Enviar Contas:
POST /api/admin/v2/orders-updatecom as contas estatus: "completed"
Este processo simples de três etapas permite que você automatize totalmente seu fluxo de trabalho de atendimento de pedidos!
Ambos são guias de documentação essenciais para fornecedores. Vincular a eles ajuda os fornecedores a navegar desde a configuração do produto até o processamento do pedido, criando um fluxo de trabalho lógico. guia de gerenciamento de produtos.

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.


