> ## 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 gestión de pedidos

> Conecte las API Topsort con los sistemas de gestión de pedidos para la orquestación de campañas.

export const LastUpdatedEs = ({date}) => {
  const label = "Última actualización:";
  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>
    </>;
};

# Conexión de Topsort con sistemas de gestión de pedidos

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Los sistemas de gestión de pedidos (OMS), como Vantage, Boostr, ADvendio y Placements.io, ayudan a los minoristas a gestionar la planificación de campañas, las reservas y el inventario. Puede integrar estos sistemas con las API de Topsort para automatizar la creación y gestión de campañas.
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Esta guía muestra cómo integrar OMS con Topsort utilizando las API existentes para flujos de trabajo de campañas 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>

## Flujos de trabajo

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  La integración del OMS implica tres flujos de trabajo principales para diferentes roles y momentos:
</div>

| **Flujo de trabajo**                                                                       | **Quién**                              | **Cuándo**          | **Objetivo**                                                   |
| ------------------------------------------------------------------------------------------ | -------------------------------------- | ------------------- | -------------------------------------------------------------- |
| [Guía de implementación](#implementation-guide)                                            | Equipo de DevOps/Integración           | Configuración única | Establecer sincronización automatizada de OMS ↔ Topsort        |
| [Creación de campañas](#creating-campaigns-from-oms-data)                                  | Gestores de campañas/Equipos de ventas | Por campaña         | Crear campañas automáticamente a partir de datos de OMS        |
| [Sincronización de rendimiento](#recuperación-de-datos-de-rendimiento-para-paneles-de-OMS) | Equipos de marketing                   | En curso            | Incorporar el rendimiento de las campañas a los paneles de OMS |

## Cómo funciona la integración de OMS

1. **Planificación de campañas**: Los equipos de ventas planifican las campañas en su interfaz OMS.
2. **Creación automatizada**: OMS envía datos de campaña a Topsort mediante llamadas a API.
3. **Actualizaciones en tiempo real**: Las notificaciones de webhook mantienen los sistemas sincronizados.
4. **Informes unificados**: Los datos de rendimiento se envían de vuelta a los paneles de control de OMS.

<Tip>
  **Beneficio para la empresa**: La integración con OMS elimina la configuración manual de campañas.
  reducir errores y permitir que los equipos de ventas gestionen campañas a gran escala sin
  Aprendiendo nuevas herramientas.
</Tip>

## Ejemplo de implementación

### Creación de campañas a partir de datos de OMS

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Rol:** Gestores de campañas/Equipos de ventas | **Frecuencia:** Por campaña
</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();
```

### Integración de webhook para actualizaciones en tiempo 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");
});
```

## Referencia API

### API Topsort actuales para la integración

| API                                                         | Caso de uso de integración                                       | Estado       | Documentación                                    |
| ----------------------------------------------------------- | ---------------------------------------------------------------- | ------------ | ------------------------------------------------ |
| [Campaña api](/en/ad-server/additional-apis/campaign-api)   | Crea campañas con estrategia de puja, presupuesto y segmentación | ✅ Disponible | Gestión completa del ciclo de vida de la campaña |
| [Recursos api](/en/ad-server/additional-apis/assets-api)    | URL de referencia de recursos en campañas                        | ✅ Disponible | Gestión y colecciones de recursos                |
| [Informes api](/en/ad-server/additional-apis/reporting-api) | Obtener datos de rendimiento para OMS/paneles de control         | ✅ Disponible | Informes de campaña, proveedor y marketplace     |
| [Subastas api](/en/ad-server/auctions/auctions-api)         | Configurar parámetros de subasta y pujas                         | ✅ Disponible | Configuración de subastas                        |

### Autenticación

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

### Operaciones de campaña masivas

```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;
}
```

### Recuperación de datos de rendimiento para paneles de control de OMS

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Rol:** Equipos de Marketing | **Frecuencia:** Continua/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,
  });
}
```

## Mejores prácticas

### Sincronización de datos

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Asignación de campos**: Asigne los campos de campaña de OMS a los parámetros Topsort y API.
  * **Validación de datos**: Validar los datos de la campaña antes de enviarlos a las API de Topsort
  * **Operaciones masivas**: Utilice el procesamiento por lotes para la gestión de campañas a escala empresarial.
</div>

### Manejo de errores

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Lógica de reintento**: Implementar un retroceso exponencial para las llamadas fallidas a API
  * **Registro completo**: Seguimiento de todas las interacciones y fallos de API
  * **Monitoreo de salud**: Configurar alertas para problemas de integración
</div>

### Seguridad

<Warning>
  **Requisitos de seguridad**: Las integraciones de OMS gestionan campañas confidenciales y
  datos financieros. Garantizar la autenticación adecuada, la validación de datos y la seguridad de API
  gestión clave.
</Warning>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Gestión de claves API**: Almacene las claves API de forma segura y rótelas periódicamente.
  * **Limitación de velocidad**: Respete los límites de velocidad de API para evitar la limitación de ancho de banda.
  * **Sanitización de entrada**: Validar todos los datos antes de enviarlos a las API.
</div>

## Guía de implementación

<Steps>
  <Step title="API Configuración de acceso">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Obtenga las claves Topsort y API y configure la autenticación:
    </div>

    * Solicite la clave avanzada API a su representante de Topsort
    * Almacena las claves API de forma segura en tus variables de entorno
    * Configurar los encabezados de autenticación para todas las llamadas a API
  </Step>

  <Step title="Configuración de webhook">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Configura los endpoints de webhook para actualizaciones de campaña en tiempo real:
    </div>

    * Crea un punto de conexión webhook en tu sistema OMS
    * Registra el webhook URL con Topsort para eventos de campaña
    * Implementar controladores para eventos de creación/actualización/eliminación de campañas
  </Step>

  <Step title="Asignación de campos de datos">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Asignar los campos de la campaña de OMS a los parámetros Topsort y API:
    </div>

    * Asignación de campos de documentos entre sistemas
    * Implementar la lógica de transformación de datos
    * Verificar que los campos obligatorios estén presentes
  </Step>

  <Step title="Implementación del manejo de errores">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Implemente una lógica integral de manejo de errores y reintentos:
    </div>

    * Implementar retroceso exponencial para llamadas fallidas a API
    * Agregar registro completo para depuración
    * Configurar alertas para fallos de integración
  </Step>

  <Step title="Pruebas y validación">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Prueba la integración con datos de prueba antes de la producción:
    </div>

    * Crear campañas de prueba mediante el flujo de trabajo de OMS
    * Verificar que las campañas aparezcan correctamente en Topsort
    * Prueba de entrega y manejo de webhooks
  </Step>

  <Step title="Monitoreo y mantenimiento">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Establecer un sistema de monitoreo continuo para la integración:
    </div>

    * Seguimiento de las tasas de éxito/fracaso de las llamadas a API
    * Supervisar el rendimiento de la creación de campañas
    * Configurar paneles de control para el estado de la integración
  </Step>
</Steps>

## Recursos relacionados

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * [Guía de integración de DAM](/es/knowledge-base/ad-server/dam-connectivity) - Conectividad de gestión de activos digitales
  * [Documentación de la campaña api](/en/ad-server/additional-apis/campaign-api)
  * [Documentación de informes api](/en/ad-server/additional-apis/reporting-api)
</div>

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

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  ¿Listo para integrar su OMS con Topsort? Póngase en contacto con su representante de cuenta para comenzar con el acceso a API y el soporte de implementación.
</div>

***

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