> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sistemas de gestão de pedidos

> Conecte as APIs Topsort com os sistemas de gestão de pedidos para a orquestração de campanhas.

export const LastUpdatedPt = ({date}) => {
  const label = "Última atualização:";
  return <>
      <style>{`
        .last-updated-component {
          display: inline-flex;
          align-items: center;
          gap: 8px;
          padding: 10px 16px;
          border-radius: 8px;
          margin-top: 12px;
          margin-bottom: 16px;
          font-size: 14px;
          background-color: rgba(0, 0, 0, 0.05);
          border: 1px solid rgba(0, 0, 0, 0.12);
          color: rgba(0, 0, 0, 0.75);
          line-height: 1;
        }

        .last-updated-component svg {
          flex-shrink: 0;
          vertical-align: middle;
        }

        .last-updated-component span {
          display: inline-flex !important;
          align-items: center !important;
          line-height: 1 !important;
        }

        [data-theme="dark"] .last-updated-component {
          background-color: #3a3a3a;
          border: 2px solid #888888;
          color: #ffffff;
        }

        [data-theme="dark"] .last-updated-component svg {
          stroke: #ffffff;
        }
      `}</style>
      <div className="last-updated-component">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <circle cx="12" cy="12" r="10" />
          <polyline points="12 6 12 12 16 14" />
        </svg>
        <span>
          <strong style={{
    fontWeight: 600
  }}>{label}</strong> 
          <time dateTime={date}>{date}</time>
        </span>
      </div>
    </>;
};

# Conexão de Topsort com sistemas de gestão de pedidos

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Os sistemas de gestão de pedidos (OMS), como Vantage, Boostr, ADvendio e Placements.io, ajudam os varejistas a gerenciar o planejamento de campanhas, as reservas e o inventário. Você pode integrar estes sistemas com as APIs de Topsort para automatizar a criação e gestão de campanhas.
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Este guia mostra como integrar OMS com Topsort utilizando as APIs existentes para fluxos de trabalho de campanhas automatizadas.
</div>

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/topsort/h-pUiNQBFh7nVN27/images/knowledge-base/oms-diagram-light.svg?fit=max&auto=format&n=h-pUiNQBFh7nVN27&q=85&s=ef36a1634d73cdd3dea851e244ea06f5" alt="Diagram showing oms connectivity" width="890" height="251" data-path="images/knowledge-base/oms-diagram-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/topsort/h-pUiNQBFh7nVN27/images/knowledge-base/oms-diagram-dark.svg?fit=max&auto=format&n=h-pUiNQBFh7nVN27&q=85&s=d72d7cf127d66c23d927fb826a7ac30f" alt="Diagram showing oms connectivity" width="890" height="251" data-path="images/knowledge-base/oms-diagram-dark.svg" />
</Frame>

## Fluxos de trabalho

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  A integração do OMS envolve três fluxos de trabalho principais para diferentes funções e momentos:
</div>

| **Fluxo de trabalho**                                                                  | **Quem**                                | **Quando**         | **Objetivo**                                             |
| -------------------------------------------------------------------------------------- | --------------------------------------- | ------------------ | -------------------------------------------------------- |
| [Guia de implementação](#implementation-guide)                                         | Equipe de DevOps/Integração             | Configuração única | Estabelecer sincronização automatizada de OMS ↔ Topsort  |
| [Criação de campanhas](#creating-campaigns-from-oms-data)                              | Gestores de campanhas/Equipes de vendas | Por campanha       | Criar campanhas automaticamente a partir de dados de OMS |
| [Sincronização de desempenho](#recuperação-de-dados-de-desempenho-para-painéis-de-OMS) | Equipes de marketing                    | Em curso           | Incorporar o desempenho das campanhas aos painéis de OMS |

## Como funciona a integração de OMS

1. **Planejamento de campanhas**: As equipes de vendas planejam as campanhas em sua interface OMS.
2. **Criação automatizada**: OMS envia dados de campanha ao Topsort através de chamadas à API.
3. **Atualizações em tempo real**: As notificações de webhook mantêm os sistemas sincronizados.
4. **Relatórios unificados**: Os dados de desempenho são enviados de volta aos painéis de controle de OMS.

<Tip>
  **Benefício para a empresa**: A integração com OMS elimina a configuração manual de campanhas, reduz erros e permite que as equipes de vendas gerenciem campanhas em grande escala sem aprender novas ferramentas.
</Tip>

## Exemplo de implementação

### Criação de campanhas a partir de dados de OMS

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Função:** Gestores de campanhas/Equipes de vendas | **Frequência:** Por campanha
</div>

```javascript theme={null}
// Campaign data from your OMS
const campaignData = {
  name: "Q4 Holiday Campaign - Brand X",
  budget: 15000,
  startDate: "2024-11-01",
  endDate: "2024-12-31",
  biddingStrategy: "target_roas",
  targetRoas: 4.5,
  vendorId: "vendor-123",
};

// Create campaign in Topsort
const response = await fetch("https://api.topsort.com/v2/campaigns", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: campaignData.name,
    type: "sponsored_products",
    vendor_id: campaignData.vendorId,
    bidding_strategy: campaignData.biddingStrategy,
    target_roas: campaignData.targetRoas,
    budget: {
      amount: campaignData.budget,
      currency: "USD",
      period: "lifetime",
    },
    start_date: campaignData.startDate,
    end_date: campaignData.endDate,
  }),
});

const campaign = await response.json();
```

### Integração de webhook para atualizações em tempo real

```javascript theme={null}
// Set up webhook to receive campaign updates
const webhookPayload = {
  url: "https://your-oms.com/webhooks/topsort",
  events: ["campaign:create", "campaign:update", "campaign:delete"],
};

await fetch("https://api.topsort.com/v2/webhooks", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify(webhookPayload),
});

// Handle webhook in your OMS
app.post("/webhooks/topsort", (req, res) => {
  const { channel, payload } = req.body;

  switch (channel) {
    case "campaign:create":
      updateOMSCampaignStatus(payload.campaign_id, "active");
      break;
    case "campaign:update":
      syncCampaignData(payload);
      break;
  }

  res.status(200).send("OK");
});
```

## Referência da API

### APIs Topsort atuais para integração

| API                                                              | Caso de uso de integração                                        | Estado       | Documentação                                     |
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ------------ | ------------------------------------------------ |
| [API de Campanhas](/pt/ad-server/additional-apis/campaign-api)   | Criar campanhas com estratégia de lance, orçamento e segmentação | ✅ Disponível | Gestão completa do ciclo de vida da campanha     |
| [API de Recursos](/pt/ad-server/additional-apis/assets-api)      | URL de referência de recursos em campanhas                       | ✅ Disponível | Gestão e coleções de recursos                    |
| [API de Relatórios](/pt/ad-server/additional-apis/reporting-api) | Obter dados de desempenho para OMS/painéis de controle           | ✅ Disponível | Relatórios de campanha, fornecedor e marketplace |
| [API de Leilões](/pt/ad-server/auctions/auctions-api)            | Configurar parâmetros de leilão e lances                         | ✅ Disponível | Configuração de leilões                          |

### Autenticação

```http theme={null}
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

### Operações de campanha em massa

```javascript theme={null}
// Create multiple campaigns from OMS batch
async function createBulkCampaigns(campaignsList) {
  const results = [];

  for (const campaignData of campaignsList) {
    try {
      const response = await fetch("https://api.topsort.com/v2/campaigns", {
        method: "POST",
        headers: {
          Authorization: "Bearer YOUR_API_KEY",
          "Content-Type": "application/json",
        },
        body: JSON.stringify(campaignData),
      });

      const campaign = await response.json();
      results.push({ success: true, campaign });
    } catch (error) {
      results.push({ success: false, error: error.message });
    }
  }

  return results;
}
```

### Recuperação de dados de desempenho para painéis de controle de OMS

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Função:** Equipes de Marketing | **Frequência:** Contínua/Programada
</div>

```javascript theme={null}
// Pull campaign performance back to OMS
async function syncPerformanceData(campaignId) {
  const reportResponse = await fetch(
    `https://api.topsort.com/v2/reports/campaigns/${campaignId}`,
    {
      method: "GET",
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
      },
    }
  );

  const performanceData = await reportResponse.json();

  // Update OMS dashboard with performance metrics
  await updateOMSDashboard(campaignId, {
    impressions: performanceData.impressions,
    clicks: performanceData.clicks,
    spend: performanceData.spend,
    conversions: performanceData.conversions,
  });
}
```

## Melhores Práticas

### Sincronização de dados

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Mapeamento de campos**: Mapeie os campos de campanha de OMS aos parâmetros da API Topsort.
  * **Validação de dados**: Validar os dados da campanha antes de enviá-los às APIs de Topsort
  * **Operações em massa**: Utilize o processamento em lote para a gestão de campanhas em escala empresarial.
</div>

### Tratamento de erros

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Lógica de nova tentativa**: Implementar um recuo exponencial para as chamadas falhadas à API
  * **Registro completo**: Acompanhamento de todas as interações e falhas de API
  * **Monitoramento de saúde**: Configurar alertas para problemas de integração
</div>

### Segurança

<Warning>
  **Requisitos de segurança**: As integrações de OMS gerenciam campanhas confidenciais e dados financeiros. Garantir a autenticação adequada, a validação de dados e a segurança de gestão de chaves API.
</Warning>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Gestão de chaves API**: Armazene as chaves API de forma segura e faça rotação periódica.
  * **Limitação de taxa**: Respeite os limites de taxa de API para evitar a limitação de largura de banda.
  * **Sanitização de entrada**: Validar todos os dados antes de enviá-los às APIs.
</div>

## Guia de implementação

<Steps>
  <Step title="Configuração de acesso à API">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Obtenha as chaves da API Topsort e configure a autenticação:
    </div>

    * Solicite a chave avançada de API ao seu representante de Topsort
    * Armazene as chaves API de forma segura em suas variáveis de ambiente
    * Configure os cabeçalhos de autenticação para todas as chamadas à API
  </Step>

  <Step title="Configuração de webhook">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Configure os endpoints de webhook para atualizações de campanha em tempo real:
    </div>

    * Crie um ponto de conexão webhook em seu sistema OMS
    * Registre a URL do webhook com Topsort para eventos de campanha
    * Implemente manipuladores para eventos de criação/atualização/exclusão de campanhas
  </Step>

  <Step title="Mapeamento de campos de dados">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Mapeie os campos da campanha de OMS aos parâmetros da API Topsort:
    </div>

    * Documente o mapeamento de campos entre sistemas
    * Implemente a lógica de transformação de dados
    * Verifique que os campos obrigatórios estejam presentes
  </Step>

  <Step title="Implementação do tratamento de erros">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Implemente uma lógica integrada de tratamento de erros e novas tentativas:
    </div>

    * Implementar recuo exponencial para chamadas falhadas à API
    * Adicionar registro completo para depuração
    * Configurar alertas para falhas de integração
  </Step>

  <Step title="Testes e validação">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Teste a integração com dados de teste antes da produção:
    </div>

    * Criar campanhas de teste através do fluxo de trabalho de OMS
    * Verificar que as campanhas apareçam corretamente no Topsort
    * Testar entrega e manipulação de webhooks
  </Step>

  <Step title="Monitoramento e manutenção">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Estabeleça um sistema de monitoramento contínuo para a integração:
    </div>

    * Acompanhar as taxas de sucesso/falha das chamadas à API
    * Supervisionar o desempenho da criação de campanhas
    * Configurar painéis de controle para o estado da integração
  </Step>
</Steps>

## Recursos relacionados

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * [Guia de integração de DAM](/pt/knowledge-base/ad-server/dam-connectivity) - Conectividade de gestão de ativos digitais
  * [Documentação da API de Campanhas](/pt/ad-server/additional-apis/campaign-api)
  * [Documentação da API de Relatórios](/pt/ad-server/additional-apis/reporting-api)
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  ***
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Pronto para integrar seu OMS com Topsort? Entre em contato com seu representante de conta para começar com o acesso à API e o suporte de implementação.
</div>

***

<LastUpdatedPt date="2025-11-18" />
