> ## 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.

# Systèmes de Gestion des Commandes

> Connecter les API Topsort avec les Systèmes de Gestion des Commandes pour l'orchestration de campagnes

export const LastUpdatedFr = ({date}) => {
  const label = "Dernière mise à jour:";
  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>
    </>;
};

# Connexion de Topsort avec les Systèmes de Gestion des Commandes

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Les **Systèmes de Gestion des Commandes (OMS)** comme Vantage, Boostr, ADvendio et Placements.io aident les détaillants à gérer la planification, la réservation et l'inventaire des campagnes. Vous pouvez intégrer ces systèmes avec les API de Topsort pour automatiser la création et la gestion des campagnes.
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Ce guide montre comment intégrer l'OMS avec Topsort en utilisant les API existantes pour des flux de travail de campagnes automatisés.
</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="Diagramme montrant la connectivité OMS" 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="Diagramme montrant la connectivité OMS" width="890" height="251" data-path="images/knowledge-base/oms-diagram-dark.svg" />
</Frame>

## Flux de Travail

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  L'intégration OMS implique trois flux de travail principaux pour différents rôles et moments :
</div>

| **Flux de Travail**                                                                                        | **Qui**                                         | **Quand**            | **Objectif**                                                        |
| ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | -------------------- | ------------------------------------------------------------------- |
| [Guide d'Implémentation](#guide-dimplementation)                                                           | Équipe DevOps/Intégration                       | Configuration unique | Établir une synchronisation automatisée OMS ↔ Topsort               |
| [Création de Campagnes](#creation-de-campagnes-a-partir-de-donnees-oms)                                    | Gestionnaires de Campagnes/Équipes Commerciales | Par campagne         | Créer des campagnes automatiquement à partir des données OMS        |
| [Synchronisation des Performances](#recuperation-des-donnees-de-performance-pour-les-tableaux-de-bord-oms) | Équipes Marketing                               | En continu           | Extraire les performances de campagne dans les tableaux de bord OMS |

## Comment Fonctionne l'Intégration OMS

1. **Planification de Campagne** : Les équipes commerciales planifient les campagnes dans leur interface OMS
2. **Création Automatisée** : L'OMS envoie les données de campagne à Topsort via des appels API
3. **Mises à Jour en Temps Réel** : Les notifications webhook maintiennent les systèmes synchronisés
4. **Rapports Unifiés** : Les données de performance retournent aux tableaux de bord OMS

<Tip>
  **Avantage Entreprise** : L'intégration OMS élimine la configuration manuelle des campagnes,
  réduisant les erreurs et permettant aux équipes commerciales de gérer les campagnes à grande échelle sans
  apprendre de nouveaux outils.
</Tip>

## Exemple d'Implémentation

### Création de Campagnes à Partir de Données OMS

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Rôle :** Gestionnaires de Campagnes/Équipes Commerciales | **Fréquence :** Par campagne
</div>

```javascript theme={null}
// Données de campagne de votre 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",
};

// Créer une campagne dans 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();
```

### Intégration Webhook pour les Mises à Jour en Temps Réel

```javascript theme={null}
// Configurer un webhook pour recevoir les mises à jour de campagne
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),
});

// Gérer le webhook dans votre 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");
});
```

## Référence API

### API Topsort Actuelles pour l'Intégration

| API                                                          | Cas d'Utilisation de l'Intégration                             | Statut       | Documentation                                  |
| ------------------------------------------------------------ | -------------------------------------------------------------- | ------------ | ---------------------------------------------- |
| [API Campaign](/fr/ad-server/additional-apis/campaign-api)   | Créer des campagnes avec stratégie d'enchères, budget, ciblage | ✅ Disponible | Gestion complète du cycle de vie des campagnes |
| [API Assets](/fr/ad-server/additional-apis/assets-api)       | Référencer les URL d'actifs dans les campagnes                 | ✅ Disponible | Gestion des actifs et collections              |
| [API Reporting](/fr/ad-server/additional-apis/reporting-api) | Extraire les données de performance vers OMS/tableaux de bord  | ✅ Disponible | Rapports de campagnes, vendeurs, marketplace   |
| [API Auctions](/fr/ad-server/auctions/auctions-api)          | Configurer les paramètres d'enchères et d'offre                | ✅ Disponible | Configuration des enchères                     |

### Authentification

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

### Opérations de Campagnes en Masse

```javascript theme={null}
// Créer plusieurs campagnes à partir d'un lot OMS
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;
}
```

### Récupération des Données de Performance pour les Tableaux de Bord OMS

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  **Rôle :** Équipes Marketing | **Fréquence :** En continu/Planifié
</div>

```javascript theme={null}
// Extraire les performances de campagne vers l'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();

  // Mettre à jour le tableau de bord OMS avec les métriques de performance
  await updateOMSDashboard(campaignId, {
    impressions: performanceData.impressions,
    clicks: performanceData.clicks,
    spend: performanceData.spend,
    conversions: performanceData.conversions,
  });
}
```

## Meilleures Pratiques

### Synchronisation des Données

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Mappage de Champs** : Mappez les champs de campagne OMS aux paramètres de l'API Topsort
  * **Validation des Données** : Validez les données de campagne avant de les envoyer aux API Topsort
  * **Opérations en Masse** : Utilisez le traitement par lots pour la gestion de campagnes à l'échelle de l'entreprise
</div>

### Gestion des Erreurs

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Logique de Nouvelle Tentative** : Implémentez un backoff exponentiel pour les appels API échoués
  * **Journalisation Complète** : Suivez toutes les interactions API et les échecs
  * **Surveillance de la Santé** : Configurez des alertes pour les problèmes d'intégration
</div>

### Sécurité

<Warning>
  **Exigences de Sécurité** : Les intégrations OMS gèrent des données de campagnes et financières sensibles.
  Assurez une authentification appropriée, la validation des données et une gestion sécurisée des
  clés API.
</Warning>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * **Gestion des Clés API** : Stockez les clés API en toute sécurité et effectuez une rotation régulière
  * **Limitation de Débit** : Respectez les limites de débit de l'API pour éviter la limitation
  * **Assainissement des Entrées** : Validez toutes les données avant de les envoyer aux API
</div>

## Guide d'Implémentation

<Steps>
  <Step title="Configuration de l'Accès API">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Obtenez les clés API Topsort et configurez l'authentification :
    </div>

    * Demandez une clé API avancée à votre représentant Topsort
    * Stockez les clés API en toute sécurité dans vos variables d'environnement
    * Configurez les en-têtes d'authentification pour tous les appels API
  </Step>

  <Step title="Configuration des Webhooks">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Configurez les points de terminaison webhook pour les mises à jour de campagne en temps réel :
    </div>

    * Créez un point de terminaison webhook dans votre système OMS
    * Enregistrez l'URL du webhook avec Topsort pour les événements de campagne
    * Implémentez des gestionnaires pour les événements de création/mise à jour/suppression de campagne
  </Step>

  <Step title="Mappage des Champs de Données">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Mappez les champs de campagne OMS aux paramètres de l'API Topsort :
    </div>

    * Documentez les mappages de champs entre les systèmes
    * Implémentez la logique de transformation des données
    * Validez que les champs requis sont présents
  </Step>

  <Step title="Implémentation de la Gestion des Erreurs">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Construisez une gestion complète des erreurs et une logique de nouvelle tentative :
    </div>

    * Implémentez un backoff exponentiel pour les appels API échoués
    * Ajoutez une journalisation complète pour le débogage
    * Configurez des alertes pour les échecs d'intégration
  </Step>

  <Step title="Tests et Validation">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Testez l'intégration avec des données sandbox avant la production :
    </div>

    * Créez des campagnes de test via le flux de travail OMS
    * Vérifiez que les campagnes apparaissent correctement dans Topsort
    * Testez la livraison et la gestion des webhooks
  </Step>

  <Step title="Surveillance et Maintenance">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Configurez une surveillance continue pour l'intégration :
    </div>

    * Suivez les taux de succès/échec des appels API
    * Surveillez les performances de création de campagnes
    * Configurez des tableaux de bord pour la santé de l'intégration
  </Step>
</Steps>

## Ressources Associées

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  * [Guide d'Intégration DAM](/fr/knowledge-base/ad-server/dam-connectivity) - Connectivité Digital Asset Management
  * [Documentation de l'API Campaign](/fr/ad-server/additional-apis/campaign-api)
  * [Documentation de l'API Reporting](/fr/ad-server/additional-apis/reporting-api)
</div>

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

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  *Prêt à intégrer votre OMS avec Topsort ? Contactez votre représentant de compte pour commencer avec l'accès API et le support d'implémentation.*
</div>

***

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