La collection dynamique de données de catalogue (CDDC) permet à Bazaarvoice de recueillir et d'utiliser des données du catalogue produits. Lorsque les clients consultent une page de produit, JavaScript transmet les données du catalogue à Bazaarvoice en vue de les utiliser. La CDDC recueille à la fois les données du catalogue produits et les mises à jour des données catalogue préalablement fournies.

Événements CDCC signés

Les événements CDDC sont générés lorsqu'un consommateur visite la page détails du produit sur le site Web d'un client. Cet événement permet de communiquer à Bazaarvoice des données sur les produits qui, du fait que le code du PDP est publiquement accessible, deviennent sujettes aux copies ou aux interceptions.

La CDDC classique comprend une fonctionnalité de rappel d'événement qui active un composant AWS Bazaarvoice qui indique la PDP. Une fois que l'événement de rappel et les données relatives au produit ont été envoyés à Bazaarvoice, le composant AWS valide que les données reçues correspondent aux données de la PDP. Cette opération échoue régulièrement en raison notamment de blocages d'IP, de délais d'attente ou de redirections qui empêchent l'étape de validation des données de se finaliser.

Les événements CDDC signés, cependant, garantissent la signature numérique des événements à l'aide d'un jeton Web JSON (JWT). Ce JWT est envoyé avec les données du produit. Lors de la configuration, une clé publique est enregistrée et servira à vérifier ces données sur les serveurs de Bazaarvoice. Cela évite de recourir à un rappel et réduit le risque d'échec des mises à jour de produits dans le catalogue.

Pré-requis

Contactez l'assistance client Bazaarvoice pour activer la CDDC avant d'essayer de fournir les données de votre catalogue produits via les étapes suivantes.

Configurer les événements CDDC signés

Effectuez les étapes suivantes pour configurer les événements CDDC signés.

Étape 1 : générer les clés

Pour générer les clés requises, exécutez les commandes suivantes sur OSX/linux :

ssh-keygen -t rsa -b 2048 -m PEM -f bvdcc.key openssl rsa -in bvdcc.key -pubout -outform PEM -out bvdcc.key.pub
Remarque : l'élément d'encodage RSA doit être utilisé par Bazaarvoice pour accepter votre code.

Ces commandes génèrent les deux fichiers suivants :

  • bvdcc.key. Clé privée du client. Ne doit être utilisée que pour signer des événements sur le serveur du client.
  • Attention : elle doit être conservée en lieu sûr et ne jamais être partagée.
  • bvdcc.key.pub. Clé publique du client. Elle n'a pas besoin d'être conservée en lieu sûr. Elle doit être ajoutée sous le paramètre de clé CDDC dans la configuration :

Étape 2 : implémenter les données côté serveur

L'approche recommandée consiste à :

  1. Modifier le javascript des données produits afin qu'il soit au format correct pour la CDDC.
  2. Signer les données de produit à l'aide du jeton JWT en utilisant le code suivant comme modèle pour signer des événements à l'aide d'un JWT avec une bibliothèque de nœuds .
  3. Remarque : l'élément clé est la fonction signCatalogUpdate qui renvoie un tableau de chaînes de caractères.
    Installing library; npm install --save jsonwebtoken Usage; /* Resources: jsonwebtoken Module: https://www.npmjs.com/package/jsonwebtoken fs Module: https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options JSON.stringify method: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify */ //SERVER SIDE PSEUDO CODE //Import required modules (jsonwebtoken and fs) const jwt = require('jsonwebtoken'); const fs = require('fs'); //Assigns previously generated (and secretly stored) private key to a variable const privateKey = fs.readFileSync('PATH TO PRIVATE KEY GOES HERE'); const locale = 'en_US'; const products = [ {productId":"MH02", "inactive": false, "productName":"Teton Pullover Hoodie", "productDescription":"The Teton Hoodie Description", "productImageURL":"https:\\mywebsite.com\pub\media\catalog\product\mh02-black_main.jpg", "productPageURL":"https:\\mywebsite.com\teton-pullover-hoodie.html", "brandName":"MyBrand", "categoryPath" : [ { "id" : "123", "Name" : "Parent Category Name" }, { "id" : "123-1", "Name" : "Mens" }, { "id" : "123-1-9", "Name" : "Pants" }], "upcs":["724742001735","724742006907","077320775406","077320775307"], "manufacturerPartNumbers":["mpn1","mpn2","mpn3","mpn4","mpn5"], "eans":["0724742001735","0724742006907","0077320775406","0077320775307"], "isbns":["9781891830754","9781603090506","9781891830716","9781603090254"], "modelNumbers":["model1","model2","model3","model4"], "family": "F02", "price": "12.99", "currencyCode": "USD", "color": "red", "size": "large", "material": "nylon", "availability": true }, //Example of custom attributes "customAttributes": [ { "id": "CustomAttributeId123", "value": "Custom attribute value 1" }, { "id": "CustomAttributeId456", "value": "Custom attribute value 2", }], //Example of adding multi-products into a single call { "productId": "1_Black", "productName": "Hummingbird printed t-shirt Black", "productPageURL": "http://dcc-test-site.qa.us-east-1.nexus.bazaarvoice.com/men/1-3-hummingbird-printed-t-shirt-6419892469002.html", }, ]; //Passes catalog data and privateKey into the token; encoded as RS256 function signCatalogUpdate(products, privateKey) { return products.map(product => jwt.sign({ locale, catalogProducts: [ product ] }, privateKey, { algorithm: 'RS256' })); } //Assigns the returned output from the signCatalogUpdate function to a variable which is then visible on front-end const bvDCC = signCatalogUpdate(products, privateKey); //Outputs DCC product data in a console log, and enters 2 spaces for any NULL values console.log(JSON.stringify(bvDCC, null, 2));
    
  4. Exposez les données signées au code JavaScript front-end à l'aide d'une API.
  5. Exposez votre code au front-end sous window.dccSignedTokens.
    Remarque : pour voir un exemple de code, consultez ce site et accédez à la fenêtre Développeur en faisant un clic droit et en sélectionnant « Inspecter ».

Étape 3 : implémenter les données front-end

Remplacez le javascript CDDC « CatalogUpdate » du PDP par l'une des implémentations suivantes :

PDP multi-produits :

<script async type="text/javascript"> window.bvCallback = function (BV) { // Use a loop for multiple products for(var i=0, len=window.dccSignedTokens.length; i < len; ++i){ BV.pixel.trackEvent("CatalogUpdate", { type: 'Product', token: window.dccSignedTokens[i] }); } }; </script>

PDP produit unique :

<script async type="text/javascript"> window.bvCallback = function (BV) { BV.pixel.trackEvent("CatalogUpdate", { type: 'Product', token: window.dccSignedToken }); }; </script>
Attention : assurez-vous que la valeur attribuée à « token » (jeton) correspond à la version signée des données « CatalogProducts » et à la validation définie dans la section des attributs de données CDDC

Attributs de données CDDC

Le tableau suivant décrit les attributs de données utilisés dans le JavaScript CDDC.

Attribut Valeur Obligatoire
productId

Identifiant unique de produit qui ne peut contenir que des caractères alphanumériques, des tirets (-) et des tirets bas (_). Si l'identifiant de produit externe contient un caractère non valide, remplacez ce caractère par un caractère générique, par exemple un tiret bas. Les identifiants ne tiennent pas compte de la casse ; vous ne pouvez donc pas utiliser d'identifiant qui se base uniquement sur la casse.

Ce format est uniquement utilisé dans le flux de données et n'est pas visible par les utilisateurs finaux.

Type : Chaîne

Oui
locale

Indique le paramètre régional souhaité. Si l'attribut n'est pas défini, le paramètre régional de la référence du script de chargement BV est utilisé.

Type : Chaîne

Oui
productName

Nom du produit, visible par les utilisateurs finaux.

Type : Chaîne

Oui
productDescription

Description du produit. Nous recommandons de créer des descriptions d'un minimum de trois phrases ou 300 caractères.

Type : Chaîne

Non
productPageURL

URL unique et non corrompue d'une page produit. N'incluez pas les paramètres de chaîne de requête supplémentaires que vous utilisez potentiellement pour le suivi et les codes de partenariat. Lorsque vous spécifiez une URL, tenez compte des informations suivantes :

Si l'URL contient un caractère réservé (spécial), vous devez l'encoder par URL . Par exemple, utilisez &amp pour remplacer une esperluette, %20 pour un espace ou encore %5B et %5D pour des crochets ([ ]).

Type : URL

Oui
productImageURL

URL unique de l'image du produit. La taille d'affichage optimale est de 600 x 600 pixels, mais elle peut être légèrement différente. Lorsque vous spécifiez une URL, tenez compte des informations suivantes :

Si l'URL contient un caractère réservé (spécial), vous devez l'encoder par URL . Par exemple, utilisez &amp pour remplacer une esperluette, %20 pour un espace ou encore %5B et %5D pour des crochets ([ ]).

Remarque : si Ratings & Reviews est déployé sur un site HTTPS, vous devez fournir les URL des images dans un emplacement HTTPS de votre catalogue produits. En cas de non-respect de cette précaution, vos clients verront un avertissement les prévenant du mélange des contenus.

Type : URL

Oui
Couleur

Couleur du produit.

Non ; recommandé
Size

Taille du produit.

Non ; recommandé
Ressources

Matériau du produit. Par exemple, acier, plastique, soie, etc.

Non ; recommandé
Devise

Devise du produit dans chaque pays.

Remarque : la devise doit être fournie au format ISO 4217N.

Non ; recommandé
Price

Prix du produit.

Non ; recommandé
Disponibilité

Indique si un produit est disponible à l'achat ou non. Il peut être en rupture de stock ou hors saison.

Non ; recommandé
brandId

Identifiant unique de marque qui ne peut contenir que des caractères alphanumériques, des tirets (-) et des tirets bas (_). Si un identifiant de marque contient un caractère non valide, remplacez ce caractère par un caractère générique, par exemple un tiret bas. Ce format est uniquement utilisé dans le flux de données et n'affecte pas les utilisateurs finaux. Les identifiants ne tiennent pas compte de la casse ; vous ne pouvez donc pas utiliser d'identifiant qui se base uniquement sur la casse.

Assurez-vous que l'identifiant est stable et qu'il ne changera pas dans le cadre d'une même marque logique, même si le nom de la marque elle-même change.

Consultez la section Marques pour obtenir plus de détails sur la manière de collecter des données de marque à l'aide de la CDDC.

Type : Chaîne

Non
brandName

Nom de la marque à laquelle le produit appartient. Consultez la section Marques pour obtenir plus de détails sur la manière de collecter des données de marque à l'aide de la CDDC.

Type : Chaîne

Non
categoryPath Liste de catégories classées par ordre hiérarchique. Consultez la section Catégories pour obtenir plus de détails sur la manière de collecter des données de catégorie à l'aide de la CDDC. Non
family Nom de la famille de produits à laquelle le produit appartient. Nous vous recommandons de ne pas utiliser de caractères spéciaux dans les noms de familles de produits. Consultez cette section pour savoir comment configurer les familles de produits à l'aide de la CDDC. Non
upcs

Universal Product Code (UPC). Ce code-barres de 6 ou 12 chiffres est utilisé pour le conditionnement au détail de manière standard aux États-Unis. Dans un tableau, ajoutez chaque UPC à définir. Il doit s'agir d'une chaîne de chiffres sans aucune lettre ni aucun autre caractère. Supprimez les espaces et les tirets, car ils empêchent la mise en correspondance de syndication.

Remarque : Bazaarvoice n'applique pas de contraintes en ce qui concerne la longueur ou les chiffres des UPC, EAN et ISBN. N’importe quelle chaîne dans l’un de ces champs est considérée comme valide par le schéma du produit. Toutefois, les valeurs dans les champs UPC, EAN and ISBN sont validées lors de l'importation du catalogue et seules les valeurs valides sont enregistrées.

Type : tableau

Non, la correspondance de syndication s'améliore si vous indiquez les UPC.
manufacturerPartNumbers

Numéro de pièce spécifique au fabricant. Les numéros de pièce peuvent contenir des lettres, des chiffres et d'autres caractères.

Type : tableau

Non
eans

European Article Number (EAN), utilisé dans le monde entier pour le marquage des biens de grande consommation. Il doit s'agir d'une chaîne de 8 ou 13 chiffres (aucune lettre et aucun autre caractère ne sont autorisés). Supprimez les espaces et les tirets, car ils empêchent la mise en correspondance de syndication.

Remarque : Bazaarvoice n'impose pas de contraintes en ce qui concerne la longueur ou les chiffres des EAN. Toutefois, seules les valeurs valides sont enregistrées lors de l'importation du catalogue.

Type : tableau

Non, la correspondance de syndication s'améliore si vous indiquez les EAN.
isbns

International Standard Book Number (ISBN, identifiant numérique standard destiné aux livres). Valeur à 10 ou 13 caractères utilisée majoritairement pour les produits multimédia comme les livres, la musique et les vidéos. Le dernier caractère représente une somme de contrôle qui aide à valider l'identifiant du produit. La plupart des codes ISBN sont composés uniquement de chiffres, à l'exception de certaines valeurs ISBN à 10 caractères qui utilisent un X pour la somme de contrôle.

Type : tableau

Non
modelNumbers

Code de référence unique que les entreprises utilisent pour identifier une pièce utilisée par une industrie particulière. Le numéro de modèle peut contenir des lettres, des chiffres et d'autres caractères.

Type : tableau

Non
inactifs

Indique que le produit est inactif. La valeur par défaut est false. Consultez Gérer l'ensemble actif de produits pour en savoir plus.

Type : booléen

Non
customAttributeId

Vous permet de définir des informations additionnelles spécifiques au produit lors de la création de rapports. Spécifiez un identifiant et une valeur pour chaque attribut de produit que vous souhaitez définir. L'identifiant d'attribut ne peut pas contenir d'espaces.

Type : tableau

Non. Si inclus, vous pouvez spécifier un nombre illimité d'éléments enfants.

Filtrer les données du catalogue en fonction des attributs de produits personnalisés

Pour filtrer votre flux de produits selon des attributs de produits personnalisés, vous devez ajouter ces attributs à la configuration de votre flux. Vous pourrez ainsi filtrer les tableaux de bord et les rapports sur le contenu dans le Workbench. Les attributs de produits personnalisés vous permettent de créer des rapports sur des informations spécifiques aux produits. Toutefois, ils ne vous permettront pas d'afficher plusieurs catégories dans un même flux. Par exemple, vous pouvez définir un attribut « région » pour créer des rapports sur les hôtels d'une région du pays. Vous pouvez également définir un attribut « service » pour suivre la façon dont les produits issus de divers services sont perçus par vos clients.

Remarque : si vous souhaitez inclure des attributs de produits personnalisés dans un flux de texte, contactez l'assistance client Bazaarvoice pour obtenir de l'aide.

La vidéo suivante vous montre comment utiliser les attributs de produits personnalisés.

Suivez les étapes ci-dessous pour ajouter un attribut à votre implémentation et activer les attributs de produits personnalisés dans le Workbench :

  1. Intégrez des attributs de produits personnalisés dans le flux en ajoutant le bloc <Attributes> à l'élément <Products>. Chaque élément <Attribute> du bloc <Attributes> identifie un attribut personnalisé. Voici trois exemples d'attributs personnalisés :
    <Products>
    <Product> ... <Attributes> <Attribute id="CHANNEL_VISIBILITY">
    <Value>Any</Value>
    </Attribute>
    <Attribute id="SAP_STATUS">
    <Value>L</Value>
    </Attribute>
    <Attribute id="BUYING_NUMBER">
    <Value>Not_Available</Value>
    </Attribute>
    </Attributes> </Product>
    </Products>
  2. Connectez-vous au portail Bazaarvoice .
    Remarque : vous pouvez créer des attributs sur votre serveur de production, mais il est préférable de les tester et de les prévisualiser dans un premier temps sur le serveur de pré-production.
  3. Sélectionnez Configuration dans le menu du portail situé dans le coin supérieur gauche de l'écran.
  4. Sélectionnez une instance.
  5. Sélectionnez Go to Configuration (Aller à Configuration). Le Site Manager (gestionnaire de site) apparaît et liste les zones de déploiement et les implémentations disponibles.

    Remarque : vous pouvez également ajouter de nouvelles zones de déploiement et des implémentations sur cet écran.

  6. Dans Implementations (Implémentations), trouvez le nom de l'implémentation dont vous avez besoin à l'aide du filtre.
  7. Sélectionnez Edit (Modifier) à côté de l'implémentation que vous souhaitez configurer.
    Remarque : vous ne pouvez pas activer les attributs de produit personnalisés dans des zones de déploiement individuelles. Si vous ne les avez pas activés dans la zone de déploiement du site principal, ils ne s'afficheront pas dans Workbench.
  8. Dans le menu à gauche de la page, sélectionnez Technical Setup (Configuration technique) sous Getting Started (Démarrer).
  9. Sélectionnez l'onglet Product Catalog (Catalogue produits).
  10. Dans la section Feed Attributes (Attributs du flux), saisissez un nom d'attribut dans le champ Custom Product Attributes (Attributs de produits personnalisés), puis sélectionnez Add (Ajouter). Le nom de l'attribut doit correspondre à l'attribut id de l'élément <Attribute> du flux de produits. Répétez cette étape pour chaque attribut à ajouter.

    Cet exemple vous présente des attributs qui correspondent aux identifiants de l'exemple XML précédent :

Vous pouvez à présent utiliser les attributs de produits personnalisés pour filtrer le contenu dans les rapports d'analyse du Workbench, les dashboards et d'autres fonctionnalités.

Partager des avis à l'aide de familles de produits

Les familles de produits sont une fonctionnalité de Ratings & Reviews grâce à laquelle vous pouvez partager le CGU entre plusieurs produits appartenant à la même famille. En regroupant les produits par famille, vous pourrez faire apparaître le CGU d'un produit sur la page de chaque produit de la même famille. Dans le cadre de votre implémentation Bazaarvoice, partager des avis entre tous les produits appartenant à une même famille a un effet positif sur ces indicateurs clés de performance :

  • Pourcentage des produits ayant reçu des avis affichés
  • Nombre de produits ayant reçu des avis affichés
  • Nombre moyen d'avis pour chaque produit
  • Total des avis affichés

Types de familles de produits

Le type de famille de produit à utiliser dépend des différences entre les produits :

  • Variantes de produits : produits presque identiques en termes d'expérience pour le consommateur, mais qui ont des UGS ou des numéros de pièces différents. Ainsi, des produits disponibles dans plusieurs couleurs ou dans différentes tailles, ou encore conditionnés différemment en poids ou en quantité, peuvent être des variantes les uns des autres. Le contenu des variantes de produits est généralement partagé bilatéralement. Tous les produits d'une famille donnée présentent, ainsi, le contenu rédigé au sujet des autres produits de cette famille.

    La création d'une famille de variantes de produits est plus pertinente lorsque chaque variante dispose de sa propre page produit. Si toutes les variantes de produits sont affichées sur une même page de votre site, définir ces dernières comme un unique produit lors de l'intégration à Bazaarvoice pourra être plus simple et pratique que de configurer une famille de produits.

  • Pack de produits : groupe de produits vendus ensemble comme un produit unique et qui pourraient, dans d'autres circonstances, être vendus séparément. Le contenu des packs de produits est généralement partagé unilatéralement : des composants individuels vers le pack de produits. En général, tous les avis relatifs aux composants individuels sont affichés sur la page produit du pack. Cependant, la page produit de chaque composant ne présentera que les avis relatifs à ce composant.

Configurer les familles de produits

Il vous est possible de configurer des familles de produits à partir de votre JavaScript CDDC sur des pages produits, des flux de produits ou sur le Workbench. Vous pouvez ajouter un produit à une ou plusieurs familles simultanément à l'aide de ces méthodes.

Lors de la configuration de vos familles de produits, tenez compte des mises en garde suivantes :

  • Les configurations de familles de produits ne sont pas transférées entre les environnements de test et de production.
  • Toute modification apportée aux familles de produits dans le Workbench pourra uniquement être annulée dans le Workbench.
  • Les définitions de familles dans le flux de produits n'ont pas la priorité par rapport aux opérations sur les familles dans le Workbench.
Remarque : les familles de produits fonctionnent uniquement pour les avis natifs. La syndication ne prend pas en compte les relations entre familles de produits. Si vous envisagez d'implémenter la syndication, ou si vous l'avez déjà implémentée, contactez l'assistance client Bazaarvoice avant de configurer les familles de produits dans votre flux de produits.

Utiliser la CDDC

Il existe deux approches pour fournir les données d'une famille de produits à l'aide de la CDDC :

  • l'approche simple — destinée aux cas les plus fréquents d'un produit appartenant à une seule famille et dont les avis sont mis en commun.
  • l'approche complexe — destinée à tous les autres scenarios, y compris les produits appartenant à plusieurs familles.

Approche simple

Dans le JavaScript CDDC de la page produit, vous pouvez ajouter l'attribut family. La valeur de l'attribut family doit être l'identifiant de la famille de produits à laquelle vous souhaitez ajouter le produit en question. Lorsque vous indiquez un attribut family, le résultat est le suivant :

  • Le produit sera ajouté à la famille dont l'ID a été indiqué.
  • L'attribut expand sera défini sur True. Cela permet à un produit d'afficher le contenu des autres produits de la même famille.
  • Si le produit appartient déjà à d'autres familles, il sera supprimé desdites familles.

Exemple avec un seul attribut family fourni :

... catalogProducts: [{ "productId":"MH02", ... "family": "123", ... }] }; ...

Approche complexe

Pour ajouter un produit à plusieurs familles ou contrôler de manière explicite la définition de chaque famille, ajoutez le tableau families. Il contient des attributs supplémentaires (id, expand, members).

Exemple avec un attribut families fourni :

catalogProducts: [{ "productId":"MH02", ... "families": [{ "id": "123", "expand": true, "members": ["MH02","MH01","MH03"] }], ... }]

Avec le flux de produits

Si vous avez déjà une idée précise des produits qu'il vous est possible de regrouper, nous vous conseillons de créer vos familles de produits à partir du flux de produits. Il est plus simple et plus rapide d'automatiser ces relations à partir du flux de produits que de les créer dans Workbench.

Il est possible de configurer les familles dans le flux de produits en intégrant l'un des attributs suivants ou les deux à la fois :

  • BV_FE_FAMILY — place un produit dans une famille donnée.
  • BV_FE_EXPAND — permet à un produit d'afficher le contenu des autres produits de la même famille.
Conseil : nous vous recommandons de ne pas ajouter de caractères spéciaux, tels que des virgules, aux noms de vos familles de produits.

Dans cet exemple XML, tous les produits d'une famille présentent le contenu relatif à l'ensemble des autres produits de la famille.

<Product>
     <ExternalId>...</ExternalId>
     <Name>Green iPod Nano</Name>
     <Description>...</Description>
     <BrandExternalId>...</BrandExternalId>
     <CategoryExternalId>...</CategoryExternalId>
     <ProductPageUrl>...</ProductPageUrl>
     <ImageUrl>...</ImageUrl>
     <Attributes>
          <Attribute id="BV_FE_FAMILY">
               <Value>iPod_Nanos</Value>
          </Attribute>
          <Attribute id="BV_FE_EXPAND">
               <Value>BV_FE_FAMILY:iPod_Nanos</Value>
          </Attribute>
     </Attributes>
</Product>
<Product>					
     <ExternalId>...</ExternalId>
     <Name>Pink iPod Nano</Name>
     <Description>...</Description>
     <BrandExternalId>...</BrandExternalId>
     <CategoryExternalId>...</CategoryExternalId>
     <ProductPageUrl>...</ProductPageUrl>
     <ImageUrl>...</ImageUrl>
     <Attributes>
	   <Attribute id="BV_FE_FAMILY">
		<Value>iPod_Nanos</Value>
		</Attribute>
		<Attribute id="BV_FE_EXPAND">
		     <Value>BV_FE_FAMILY:iPod_Nanos</Value>
	   </Attribute>
     </Attributes>
</Product>

Dans l'exemple XML suivant, le pack de produits comporte l'attribut BV_FE_EXPAND. Tous les avis portant sur les composants de la famille sont donc affichés sur la page du pack. Cependant, BV_FE_EXPAND est absent des définitions <Attribute> des produits pour les composants individuels. Ainsi, les avis relatifs au pack ne sont pas affichés sur les pages des composants.

<Product> <ExternalId>...</ExternalId> <Name>Value Bundle</Name> <Description>...</Description> <BrandExternalId>...</BrandExternalId> <CategoryExternalId>...</CategoryExternalId> <ProductPageUrl>...</ProductPageUrl> <ImageUrl>...</ImageUrl>  <Attributes> <Attribute id="BV_FE_FAMILY"> <Value>Value_Bundle</Value> </Attribute> <!-- Including BV_FE_EXPAND displays content from all components on the bundle page --> <Attribute id="BV_FE_EXPAND"> <Value>BV_FE_FAMILY:Value_Bundle</Value> </Attribute> </Attributes> </Product> <Product> <ExternalId>...</ExternalId> <Name>Standalone Component</Name> <Description>...</Description> <BrandExternalId>...</BrandExternalId><CategoryExternalId>...</CategoryExternalId> <ProductPageUrl>...</ProductPageUrl> <ImageUrl>...</ImageUrl> <Attributes> <Attribute id="BV_FE_FAMILY"> <Value>Value_Bundle</Value> </Attribute> </Attributes> <!-- Omitting BV_FE_EXPAND prevents content from the bundle from being displayed on the component page --> </Product>

Avec le Workbench

Il vous est conseillé de créer vos familles à partir du Workbench dans les situations suivantes :

  • Si vous ne maîtrisez pas le langage XML.
  • S'il vous est impossible d'apporter des modifications au flux de produits.
  • Vous devez créer une famille pour laquelle les relations de partage du CGU ne sont pas directes ou impossibles à configurer à partir du flux de produits.

    Les deux exemples suivants présentent des situations dans lesquelles une famille de produits doit être créée à partir du Workbench.

    • Un responsable de catégorie assigné aux lecteurs MP3 souhaite partager des avis entre toutes les couleurs proposées pour ses lecteurs 32 Mo et 64 Mo. Mais, si configurer des familles distinctes pour l'appareil 32 Mo et l'appareil 64 Mo s'avère être un jeu d'enfant dans le flux, il est impossible de les regrouper dans une même famille, car ils ont des UGS différentes. Le responsable de catégorie sera donc obligé de configurer la famille dans le Workbench.
    • Le Brand Manager d'une marque de produits d'hygiène souhaite créer un pack composé d'un baume à lèvres et d'un produit solaire à l'occasion des soldes d'été. Ce Brand Manager veut donc configurer une famille de produits, composée du baume à lèvres et du produit solaire, afin que les avis relatifs à chacun de ces produits soient partagés sur la page produit du pack. Cependant, le baume à lèvres et le produit solaire ne partagent pas d'élément du flux de produits qui permettrait de les lier. Il est donc conseillé au Brand Manager de configurer la famille de produits à partir du Workbench. À la fin de la saison estivale, lorsque le Brand Manager ne souhaitera plus vendre ces produits ensemble, il lui sera possible de supprimer la famille de produits de ce pack à partir du Workbench.

Pour configurer des familles de produits à partir du Workbench, respectez les étapes suivantes :

  1. Connectez-vous à Workbench, puis naviguez jusqu'à Content > Manage Families (Contenu > Gérer les familles).
  2. Sélectionnez Add New Family (Ajouter une nouvelle famille) et saisissez un nom pour la famille de produits.
  3. Saisissez l'identifiant du produit tel qu'il apparaît dans votre flux de produits XML, et répétez cette manipulation pour chacun des produits que vous souhaitez ajouter à la famille avant de sélectionner Ajouter un produit.
  4. Annulez la sélection de l'attribut Développer si vous ne souhaitez pas que le contenu des produits de la famille soit affiché sur la page du produit correspondant.
  5. Sélectionnez x pour revenir à la page Manage Families (Gérer les familles).

CDDC héritée

Remarque : la CDDC a récemment été remplacée par les événements CDDC signés, qui permet de ne recourir à un rappel et réduit le risque d'échec des mises à jour de produits dans le catalogue. Veuillez consulter la section Événements CDDC signés pour obtenir plus d'informations sur l'implémentation.

Étape 1 : Ajoutez le script de chargement BV

Le script de chargement BV est une application JavaScript peu volumineuse et asynchrone qui permet de gérer et d'afficher les fonctions configurées et le CGU sur vos pages Web. Ce script téléchargera uniquement les applications requises pour la page en question.

Pour intégrer le script de chargement BV, ajoutez le code HTML suivant dans la balise <head> de la page produit :

<!-- load BV loader --> <script async src="https://apps.bazaarvoice.com/deployments/<client_name>/<site_ID>/<environment>/<locale>/bv.js"></script>

  • async — télécharge le script de chargement BV de manière asynchrone. Cet attribut est facultatif, mais recommandé.
  • src — spécifie le chemin d’accès vers le script de chargement BV. Remplacez les éléments suivants dans votre code HTML :
    • <client_name> —fait référence au nom de client fourni par Bazaarvoice. Veillez à utiliser des lettres minuscules pour la valeur.
    • <site_ID> : identifiant de la zone de déploiement que vous voulez utiliser. Cette valeur est définie dans la configuration du portail Bazaarvoice. La zone de déploiement par défaut se nomme « main_site » (site principal). Contactez votre représentant Bazaarvoice pour vous assurer que l'identifiant est correct, ou sélectionnez à droite du site principal sur la page de configuration du portail Bazaarvoice.
    • <environment> — fait référence à l’environnement de déploiement où vous souhaitez implémenter Bazaarvoice. Pour un environnement de production, incluez production dans le chemin d’accès. Si vous utilisez un environnement de pré-production, incluez staging dans le chemin d’accès.
    • <locale> : paramètre régional utilisé dans l'implémentation. Par exemple, en_US pour l'anglais.

Voici un exemple d’URL pour l’environnement de pré-production de l’entreprise Endurance Cycle’s et la zone de déploiement Site principal (Main Site) :

https://apps.bazaarvoice.com/deployments/endurancecycles/main_site/staging/en_US/bv.js

Voici un exemple d’URL pour l’environnement de production de l’entreprise Endurance Cycle’s. La zone de déploiement (site ID) se nomme « Mobile » :

https://apps.bazaarvoice.com/deployments/endurancecycles/Mobile/production/en_US/bv.js

        add-code-to-product-display-pages">Bazaarvoice-hosted display</a> ou <a href="bvpixel.html#steps-to-implement-bv-pixel">BV Pixel</a>, ne plus l'ajouter. Ajoutez le script de chargement BV une seule fois sur chaque page.</div> <a id="add-dcc-javascript"></a>

Étape 2 : Ajoutez JavaScript CDDC aux pages produits

Pour recueillir des données catalogue à partir des pages produits, ajoutez le code JavaScript suivant à chacune de vos pages produits (PDP), juste avant la balise fermante </body>.

Conseil : Pour s'assurer que votre JavaScript est correct, encodez toutes les chaînes de texte afin d'éviter les caractères spéciaux dans les champs comme productName.

Exemple de JavaScript pour une page produit contenant un seul produit

<script async type="text/javascript"> window.bvDCC = { catalogData: { locale: "en_US", catalogProducts: [{ "productId":"MH02", "productName":"Teton Pullover Hoodie", "productDescription":"The Teton Hoodie Description", "productImageURL":"https:\\mywebsite.com\pub\media\catalog\product\mh02-black_main.jpg", "productPageURL":"https:\\mywebsite.com\teton-pullover-hoodie.html", "brandName":"MyBrand", "categoryPath" : [ { "id" : "123", "Name" : "Parent Category Name" }, { "id" : "123-1", "Name" : "Mens" }, { "id" : "123-1-9", "Name" : "Pants" }], "upcs":["724742001735","724742006907","077320775406","077320775307"], "manufacturerPartNumbers":["mpn1","mpn2","mpn3","mpn4","mpn5"], "eans":["0724742001735","0724742006907","0077320775406","0077320775307"], "isbns":["9781891830754","9781603090506","9781891830716","9781603090254"], "modelNumbers":["model1","model2","model3","model4"], "family": "F02", "inactive": false, "price": "12.99", "currencyCode": "USD", "color": "red", "size": "large", "material": "nylon", "availability": true }] } }; window.bvCallback = function (BV) { BV.pixel.trackEvent("CatalogUpdate", { type: 'Product', locale: window.bvDCC.catalogData.locale, catalogProducts: window.bvDCC.catalogData.catalogProducts }); }; </script>

Exemple de JavaScript pour une page produit contenant plusieurs produits

Si une de vos pages de produits référence plusieurs produits (souvent il s'agit de tailles, couleurs différentes, etc.), ajoutez un JavaScript similaire à l'exemple suivant. Le catalogue de Bazaarvoice exige les identifiants de chacune de ces variantes de produits.

<script async type="text/javascript"> window.bvDCC = { catalogData: { locale: "en_US", catalogProducts: [{ "productId":"MH02", "productName":"Red Teton Pullover Hoodie", ... }, { "productId":"MH03", "productName":"Blue Teton Pullover Hoodie", ... }, { "productId":"MH04", "productName":"Green Teton Pullover Hoodie", ... }] } }; window.bvCallback = function (BV) { // Use a loop for multiple products for(var i=0; len=window.bvDCC.catalogData.catalogProducts.length; i < len; i++){ BV.pixel.trackEvent("CatalogUpdate", { type: 'Product', locale: window.bvDCC.catalogData.locale, catalogProducts: [ window.bvDCC.catalogData.catalogProducts[i] ] }); } }; </script>

Exemple de JavaScript pour une page produit contenant des produits avec des attributs personnalisés

Si vous avez des produits dont les attributs ne figurent pas dans notre collection standard d'attributs de données CDDC, vous pouvez tout de même les ajouter en tant qu'attributs personnalisés à votre JavaScript, comme indiqué dans l'exemple ci-dessous.

<script async type="text/javascript"> window.bvDCC = { catalogData: { locale: "en_US", catalogProducts: [{ "productId":"MH02", "productName":"Red Teton Pullover Hoodie", "productDescription":"The Teton Hoodie Description", "productImageURL":"https:\\mywebsite.com\pub\media\catalog\product\mh02-black_main.jpg", "productPageURL":"https:\\mywebsite.com\teton-pullover-hoodie.html", "brandName":"MyBrand", "categoryPath" : [ { "id" : "123", "Name" : "Parent Category Name" }, { "id" : "123-1", "Name" : "Mens" }, { "id" : "123-1-9", "Name" : "Pants" }], "customAttributes": [ { "id": "CustomAttributeId123", "value": "Custom attribute value 1" }, { "id": "CustomAttributeId456", "value": "Custom attribute value 2", }], "upcs":["724742001735","724742006907","077320775406","077320775307"], "manufacturerPartNumbers":["mpn1","mpn2","mpn3","mpn4","mpn5"], "eans":["0724742001735","0724742006907","0077320775406","0077320775307"], "isbns":["9781891830754","9781603090506","9781891830716","9781603090254"], "modelNumbers":["model1","model2","model3","model4"], // "family": "F02", "families": [{ "id": "123", "expand": true, "members": ["MH02", "MH01", "MH03"] }], "inactive": false, "price": "12.99", "currencyCode": "USD", "color": "red", "size": "large", "material": "nylon", "availability": true }] } }; window.bvCallback = function (BV) { BV.pixel.trackEvent("CatalogUpdate", { type: 'Product', locale: window.bvDCC.catalogData.locale, catalogProducts: [ window.bvDCC.catalogData ] }); } </script>

Attributs de données CDDC

Le tableau suivant décrit les attributs de données utilisés dans le JavaScript CDDC.

Attribut Valeur Obligatoire
productId

Identifiant unique de produit qui ne peut contenir que des caractères alphanumériques, des tirets (-) et des tirets bas (_). Si l'identifiant de produit externe contient un caractère non valide, remplacez ce caractère par un caractère générique, par exemple un tiret bas. Les identifiants ne tiennent pas compte de la casse ; vous ne pouvez donc pas utiliser d'identifiant qui se base uniquement sur la casse.

Ce format est uniquement utilisé dans le flux de données et n'est pas visible par les utilisateurs finaux.

Type : Chaîne

Oui
locale

Indique le paramètre régional souhaité. Si l'attribut n'est pas défini, le paramètre régional de la référence du script de chargement BV est utilisé.

Type : Chaîne

Oui
productName

Nom du produit, visible par les utilisateurs finaux.

Type : Chaîne

Oui
productDescription

Description du produit. Nous recommandons de créer des descriptions d'un minimum de trois phrases ou 300 caractères.

Type : Chaîne

Non
productPageURL

URL unique et non corrompue d'une page produit. N'incluez pas les paramètres de chaîne de requête supplémentaires que vous utilisez potentiellement pour le suivi et les codes de partenariat. Lorsque vous spécifiez une URL, tenez compte des informations suivantes :

Si l'URL contient un caractère réservé (spécial), vous devez l'encoder par URL . Par exemple, utilisez &amp pour remplacer une esperluette, %20 pour un espace ou encore %5B et %5D pour des crochets ([ ]).

Type : URL

Oui
productImageURL

URL unique de l'image du produit. La taille d'affichage optimale est de 600 x 600 pixels, mais elle peut être légèrement différente. Lorsque vous spécifiez une URL, tenez compte des informations suivantes :

Si l'URL contient un caractère réservé (spécial), vous devez l'encoder par URL . Par exemple, utilisez &amp pour remplacer une esperluette, %20 pour un espace ou encore %5B et %5D pour des crochets ([ ]).

Remarque : si Ratings & Reviews est déployé sur un site HTTPS, vous devez fournir les URL des images dans un emplacement HTTPS de votre catalogue produits. En cas de non-respect de cette précaution, vos clients verront un avertissement les prévenant du mélange des contenus.

Type : URL

Oui
Couleur

Couleur du produit.

Non ; recommandé
Size

Taille du produit.

Non ; recommandé
Ressources

Matériau du produit. Par exemple, acier, plastique, soie, etc.

Non ; recommandé
Devise

Devise du produit dans chaque pays.

Remarque : la devise doit être fournie au format ISO 4217N.

Non ; recommandé
Price

Prix du produit.

Non ; recommandé
Disponibilité

Indique si un produit est disponible à l'achat ou non. Il peut être en rupture de stock ou hors saison.

Non ; recommandé
brandId

Identifiant unique de marque qui ne peut contenir que des caractères alphanumériques, des tirets (-) et des tirets bas (_). Si un identifiant de marque contient un caractère non valide, remplacez ce caractère par un caractère générique, par exemple un tiret bas. Ce format est uniquement utilisé dans le flux de données et n'affecte pas les utilisateurs finaux. Les identifiants ne tiennent pas compte de la casse ; vous ne pouvez donc pas utiliser d'identifiant qui se base uniquement sur la casse.

Assurez-vous que l'identifiant est stable et qu'il ne changera pas dans le cadre d'une même marque logique, même si le nom de la marque elle-même change.

Consultez la section Marques pour obtenir plus de détails sur la manière de collecter des données de marque à l'aide de la CDDC.

Type : Chaîne

Non
brandName

Nom de la marque à laquelle le produit appartient. Consultez la section Marques pour obtenir plus de détails sur la manière de collecter des données de marque à l'aide de la CDDC.

Type : Chaîne

Non
categoryPath Liste de catégories classées par ordre hiérarchique. Consultez la section Catégories pour obtenir plus de détails sur la manière de collecter des données de catégorie à l'aide de la CDDC. Non
family Nom de la famille de produits à laquelle le produit appartient. Nous vous recommandons de ne pas utiliser de caractères spéciaux dans les noms de familles de produits. Consultez cette section pour savoir comment configurer les familles de produits à l'aide de la CDDC. Non
upcs

Universal Product Code (UPC). Ce code-barres de 6 ou 12 chiffres est utilisé pour le conditionnement au détail de manière standard aux États-Unis. Dans un tableau, ajoutez chaque UPC à définir. Il doit s'agir d'une chaîne de chiffres sans aucune lettre ni aucun autre caractère. Supprimez les espaces et les tirets, car ils empêchent la mise en correspondance de syndication.

Remarque : Bazaarvoice n'applique pas de contraintes en ce qui concerne la longueur ou les chiffres des UPC, EAN et ISBN. N’importe quelle chaîne dans l’un de ces champs est considérée comme valide par le schéma du produit. Toutefois, les valeurs dans les champs UPC, EAN and ISBN sont validées lors de l'importation du catalogue et seules les valeurs valides sont enregistrées.

Type : tableau

Non, la correspondance de syndication s'améliore si vous indiquez les UPC.
manufacturerPartNumbers

Numéro de pièce spécifique au fabricant. Les numéros de pièce peuvent contenir des lettres, des chiffres et d'autres caractères.

Type : tableau

Non
eans

European Article Number (EAN), utilisé dans le monde entier pour le marquage des biens de grande consommation. Il doit s'agir d'une chaîne de 8 ou 13 chiffres (aucune lettre et aucun autre caractère ne sont autorisés). Supprimez les espaces et les tirets, car ils empêchent la mise en correspondance de syndication.

Remarque : Bazaarvoice n'impose pas de contraintes en ce qui concerne la longueur ou les chiffres des EAN. Toutefois, seules les valeurs valides sont enregistrées lors de l'importation du catalogue.

Type : tableau

Non, la correspondance de syndication s'améliore si vous indiquez les EAN.
isbns

International Standard Book Number (ISBN, identifiant numérique standard destiné aux livres). Valeur à 10 ou 13 caractères utilisée majoritairement pour les produits multimédia comme les livres, la musique et les vidéos. Le dernier caractère représente une somme de contrôle qui aide à valider l'identifiant du produit. La plupart des codes ISBN sont composés uniquement de chiffres, à l'exception de certaines valeurs ISBN à 10 caractères qui utilisent un X pour la somme de contrôle.

Type : tableau

Non
modelNumbers

Code de référence unique que les entreprises utilisent pour identifier une pièce utilisée par une industrie particulière. Le numéro de modèle peut contenir des lettres, des chiffres et d'autres caractères.

Type : tableau

Non
inactifs

Indique que le produit est inactif. La valeur par défaut est false. Consultez Gérer l'ensemble actif de produits pour en savoir plus.

Type : booléen

Non
customAttributeId

Vous permet de définir des informations additionnelles spécifiques au produit lors de la création de rapports. Spécifiez un identifiant et une valeur pour chaque attribut de produit que vous souhaitez définir. L'identifiant d'attribut ne peut pas contenir d'espaces.

Type : tableau

Non. Si inclus, vous pouvez spécifier un nombre illimité d'éléments enfants.

Brands

Un produit ne peut être associé qu'à une seule marque dans votre catalogue produits. Une entité Marque possède un seul brandId avec des valeurs brandName localisées (si elles existent dans vos données de catalogue). Il existe deux moyens de fournir des données de marque avec la CDDC, selon le nombre de langues indiqué dans votre implémentation.

Implémentation avec un seul paramètre régional

Si votre implémentation n'utilise qu'un seul paramètre régional, seul brandName est nécessaire. Bazaarvoice génèrera automatiquement les valeurs brandId à l'aide du nom de marque indiqué.

Remarque : Vous pouvez fournir vos propres valeurs pour brandId si vous les avez déjà définies et si vous souhaitez que Bazaarvoice les utilise dans votre catalogue de produits.

Implémentation avec plusieurs paramètres régionaux

Si votre implémentation utilise plusieurs paramètres régionaux, les données de Marque varieront si les valeurs brandName sont différentes selon les paramètres régionaux.

Si vos valeurs brandName changent en fonction du paramètre régional, vous devez indiquer une valeur brandId commune ainsi qu'une valeur brandName différente pour chaque Marque et pour chaque paramètre régional. Si vous n'incluez pas les valeurs brandId dans ces scénarios, Bazaarvoice génèrera automatiquement l'identifiant de marque à l'aide du brandName local. Cela peut semer la confusion dans le système de catalogues de Bazaarvoice quant à savoir à quelle Marque associer un produit donné.

        <b>Code examples</b> <p>Example of providing only <code>brandName</code>:</p> <pre class="prettyprint" xml:space="preserve">... catalogProducts: [{ ... "brandName":"MyBrand", ... }] }; ...</pre> <p>Example of providing <code>brandId</code> and <code>brandName</code>:</p> <pre class="prettyprint" xml:space="preserve">... catalogProducts: [{ ... "brandId":"789", "brandName":"MyBrand", ... }] }; ...</pre>

Categories

Un produit ne peut être associé qu'à une seule Catégorie mère dans votre catalogue produits. Une entité Catégorie possède un seul id de catégorie avec des valeurs Name de catégorie localisées (si elles sont présentes dans vos données de catalogue). Il existe deux moyens de fournir des données de Catégorie avec la CDDC, selon le nombre de paramètres régionaux qui est indiqué dans votre implémentation.

Implémentation avec un seul paramètre régional

Si votre implémentation n'utilise qu'une seule langue, seul le Name de la catégorie est nécessaire. Bazaarvoice génèrera automatiquement les valeurs Id de catégorie à l'aide du nom de catégorie indiqué.

Remarque : Vous pouvez fournir vos propres valeurs de catégorie pour Id si vous les avez déjà définies et si vous souhaitez que Bazaarvoice les utilise dans votre catalogue de produits.

Implémentation avec plusieurs paramètres régionaux

Si votre implémentation utilise plusieurs langues, la manière de fournir les données de Catégorie dépendra de si les valeurs Name de catégorie varient selon le paramètre régional.

Si vos valeurs Name changent en fonction du paramètre régional, vous devez indiquer une valeur Id commune ainsi qu'une valeur Name différente pour chaque Catégorie et pour chaque paramètre régional. Si vous n'incluez pas les valeurs Id dans ces scénarios, Bazaarvoice génèrera automatiquement l'identifiant de catégorie à l'aide du Name local. Cela peut semer la confusion dans le système de catalogues de Bazaarvoice quant à savoir à quelle Catégorie associer un produit donné.

Exemples de code

Exemple avec id de catégorie et Name de catégorie fournis :

... "categoryPath" : [ { "id" : "123", "Name" : "Parent Category Name" // Parent }, { "id" : "123-1", // Child1 "Name" : "Mens" }, { "id" : "123-1-9", // Child2 "Name" : "Pants" } ] }, ...

Exemple avec uniquement des Name de catégorie fournis :

... "categoryPath" : [ { "Name" : "Parent Category Name" // Parent }, { "Name" : "Mens" // Child1 }, { "Name" : "Pants" // Child2 } ] }, ...

Étape 3 : Émettre une demande de lancement de l'accélérateur de CDDC

Pour éviter à Bazaarvoice d'avoir à attendre que chaque page produit soit consultée une fois pour pouvoir collecter les données catalogue de tous vos produits, Bazaarvoice a créé l'accélérateur de CDDC. C'est un outil à usage unique, utilisé lors de l'implémentation qui permet de « traverser » plusieurs pages de votre site Web et de visiter chaque page produit du processus. Chaque visionnage de page déclenchera la CDDC pour cette page. Une fois le processus de « traversée » terminé, Bazaarvoice devrait disposer des données catalogue de tous les produits (avec pages produits) de votre site Web.

Remarque : dès que vous avez terminé d'ajouter le JavaScript CDDC à vos pages de présentation des produits, contactez l'assistance client Bazaarvoice pour lancer l'accélérateur de CDDC.

Associer CDDC et flux de catalogue produit

La CDDC peut être associée aux flux de catalogue produits. Cette approche hybride peut être utile lorsque toutes les données de catalogue requises ne sont pas disponibles dans le JavaScript CDDC. Généralement, il manque les codes article internationaux (UPC, EAN et ISBN) dans vos données JavaScript, mais vous pouvez les fournir grâce à de simples fichiers CSV. Consultez la section Utiliser des sources de catalogue multiples pour en savoir plus sur l'utilisation de plusieurs sources afin de fournir les données catalogue à Bazaarvoice.

Statut actif et inactif

La CDDC s'appuie sur un ou deux des mécanismes suivants visant à contrôler le statut actif ou non d'un produit, d'une marque ou d'une catégorie :

  • élément de donnée inactif dans le JavaScript des pages produits.
  • Fonction d'inactivité contrôlée par Bazaarvoice. Consultez Gérer l'ensemble actif de produits pour en savoir plus.

Nous vous conseillons d'utiliser la fonction d'inactivité contrôlée par Bazaarvoice. Utilisez l'élément de donnée inactif si vous souhaitez que l'état actif/inactif d'un produit soit déterminé en fonction de l'état d'un élément autre que l'existence de la page de détails du produit. Par exemple, il peut vous être utile lorsque vous souhaitez que l'état actif/inactif d'un produit dépende de l'état en stock/épuisé.