Catalogue

Facebook Business Extension (FBE) utilise le catalogue pour dresser l’inventaire d’une entreprise. L’extension permet d’optimiser différentes fonctionnalités, comme les publicités dynamiques, les boutiques de Page et la carte des services à la une. L’intégration de ce composant est facultative, mais FBE est indispensable pour certaines fonctionnalités.

Le catalogue Facebook possède sa propre suite d’API, mais FBE s’intègre directement à certaines d’entre elles afin de faciliter la mise à jour de l’inventaire d’une entreprise sur notre plateforme (sans avoir à effectuer le suivi des ID du catalogue Facebook de votre côté).

Pour vous assurer que tous les champs requis de votre catalogue sont correctement remplis pour les publicités dynamiques et les cas d’utilisation commerciale (boutique de Page, Instagram Shopping, Marketplace), voir la page Champs pris en charge.

Mise à jour de l’inventaire

Vous disposez de deux méthodes pour mettre à jour un inventaire :

  • Push : vous envoyez le catalogue à Facebook via l’API (recommandé)
  • Pull : Facebook récupère régulièrement le catalogue depuis votre plateforme (déconseillé car les inventaires deviennent obsolètes et cela accroît inutilement la charge du serveur)

Méthodes Push

Nous vous recommandons d’utiliser l’une des méthodes Push (API Batch ou API One-Time Feed Upload), car elles mettent instantanément l’inventaire à jour et réduisent la charge du serveur des deux côtés. L’access_token utilisé ici est le même que celui renvoyé par Business Login et le webhook.

Vous devez nous envoyer l’inventaire complet d’une entreprise dès que vous recevez un nouveau Webhook d’installation. Vous devez envoyer une mise à jour chaque fois qu’une entreprise modifie son inventaire sur votre site web.

API Batch

Recommandé pour la plupart des entreprises d’e-commerce. L’API Batch est une API de catalogue Facebook standard destinée aux entreprises disposant d’un inventaire important (plus de 100 articles) et/ou qui mettent régulièrement à jour leurs articles.

API One-Time Feed Upload

Disponible pour les entreprises de rendez-vous (Services). L’API One-Time Feed Upload est une API de catalogue Facebook standard destinée aux entreprises dont l’inventaire est limité (une centaine d’articles ou moins).

Avec cette méthode, vous envoyez un inventaire complet à chaque mise à jour. L’inventaire du catalogue Facebook est alors intégralement remplacé.

Étape 1 : obtenir un ID de flux créé pendant l’installation de FBE en envoyant l’ID du catalogue connecté (à partir des notifications de Webhook ou de notre point de terminaison de l’API d’installation FBE) :

curl -G \
-d "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_feeds

En savoir plus sur l’API Product Feed.

Étape 2 : effectuer des importations ponctuelles vers le flux :

Exemple : fichiers de flux hébergés sur un lieu public.

Explorateur de l’API Graph
curl -X POST \
  -F 'url="http://www.example.com/sample_feed.xml"' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com

url=http%3A%2F%2Fwww.example.com%2Fsample_feed.xml
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{FEED_ID}/uploads',
    array (
      'url' => 'http://www.example.com/sample_feed.xml',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{FEED_ID}/uploads",
    "POST",
    {
        "url": "http:\/\/www.example.com\/sample_feed.xml"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

Exemple : importation directe de fichiers de flux depuis la machine locale. Vous devez modifier le chemin d’accès au fichier en fonction de votre cas d’utilisation.

Explorateur de l’API Graph
curl -X POST \
  -F 'file=@catalog.csv;type=text/csv' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com

file=%40catalog.csv%3Btype%3Dtext%2Fcsv
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{FEED_ID}/uploads',
    array (
      'file' => '@catalog.csv;type=text/csv',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{FEED_ID}/uploads",
    "POST",
    {
        "file": "@catalog.csv;type=text\/csv"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

Formats pris en charge

Tous les autres formats de requête et de réponse sont identiques à ceux documentés pour le point de terminaison initial.

Voir les champs pris en charge dans le catalogue Rendez-vous (Services).

Méthode Pull

Nous déconseillons cette méthode, car les inventaires sont alors obsolètes entre deux récupérations, mais elle reste utile pour les petites entreprises auto-hébergées qui disposent d’un fichier d’inventaire public. Si vous choisissez cette méthode pour une entreprise, vous devez spécifier la fonctionnalité catalog_feed_scheduled dans Business Configuration, transmise via Business Login. Une fois la configuration effectuée, nous récupérons régulièrement l’inventaire de l’entreprise à partir de l’URL publique spécifiée, qu’il soit ou non mis à jour.

En savoir plus sur la récupération programmée des flux.