Comment utiliser Data Feed Manager ?
ETAPE 1 : Configurez Data Feed Manager de manière générale
Avant de pouvoir configurer vos flux de données, vous devez vérifier que les paramètres généraux de l'extension sont adaptés à vos attentes. Pour cela, allez dans :
Stores Settings Configuration Wyomind Data Feed Manager
Cron job reporting
Dans l'onglet Cron job reporting, vous pouvez activer le rapport sur les tâches cron ainsi que définir une adresse pour la réception de ces rapports. Vous pouvez également définir l'expéditeur des rapports ainsi que renommer les rapports comme vous le souhaitez.
Core Settings
Dans l'onglet Core Settings, vous avez un certain nombre de champs :
- Items in preview
Par défaut il y a 10 articles en prévisualisation, vous pouvez augmenter ou diminuer ce nombre. - Items in buffer
Par défaut, les produits sont insérés dans le fichier sur le serveur tous les 10 articles. Vous pouvez réduire ou augmenter ce nombre. - Items in SQL request
Par défaut, il y a 1500 articles dans chaque requête MySql. - Number of advanced filters
Par défaut, vous avez 10 filtres avancés. Vous pouvez à tout moment augmenter ce nombre si vous en avez besoin de plus. - Use of OR/AND statements in advanced filters
Les expressions OR/AND peuvent être utilisées dans les filtres avancés simplement en activant cette option. - Include not in menu categories
Vous pouvez inclure les catégories des produits qui ne figurent pas dans le menu. - Memory limit size (M)
La mémoire par défaut est 1024. - Use canonical URLs
Vous avez la possibilité de choisir entre plusieurs options afin d'utiliser l'url de la catégorie la plus courte, la plus longue ou l'url du produit. - Enable log reporting
Vous pouvez aussi activer le rapport de log. - Allow trans-domain import/export
Vous avez la possibilité d'activer les options d'import et d'export. - Include disabled products
Vous pouvez choisir d'inclure les produits désactivés au flux de données.
ETAPE 2 : Configurez vos flux de données avec Data Feed Manager
Afin de créer et configurer vos flux de données, allez dans :
ProductsData Feed Manager Data Feeds
Des modèles de flux de données sont listés selon des identifiants. Pour chaque modèle de flux de données, vous devriez retrouver dans la grille le nom du fichier, le chemin ainsi que son url.
Le statut de votre flux de données pourra être :
- Pending : le flux de données n'a jamais été généré ou l'heure planifiée est dépassée (dans l'attente que la tâche cron l’exécute)
- Success : Génération du flux de données réussie, manuellement ou automatiquement (corresponds à une planification)
- Hold : en cours de génération (latences, statut indéterminé)
- Processing : pourcentage de progression de la génération
- Error: abandon de la génération
Dans la grille, vous devriez retrouver la date et l'heure de la dernière génération du flux de données ainsi que la vue de magasin pour laquelle le flux de données a été enregistré.
Depuis la colonne Action, vous avec le choix entre :
- Edit : Editer le flux
- Generate : Générer le flux
- Preview (10 products) : Visualiser les 10 premiers produits du flux
- Delete : Supprimer le flux
La Blackbox
L'extension Data Feed Manager comprend un outil pour vous aider à créer votre flux. En créant un flux de données, vous devriez voir une boite noire.
La blackbox est sans aucun doute très utile. Elle vous aidera à configurer votre flux plus rapidement.
Preview
Library
Si vous cliquez sur ce bouton, une librairie de vos attributs sera affichée. Il est alors plus simple de trouver rapidement quel attribut vous devez ajouter à votre template.
Exportez et importez un modèle de flux de données
Data Feed Manager vous permet aussi d'importer et d'exporter vos templates depuis votre admin Magento 2.
Export
Afin d'exporter un modèle de flux de données, vous pouvez éditer n'importe quel flux depuis :
Products Data Feed ManagerData Feeds
Une fois la page de configuration du flux chargée, vous pourrez cliquer sur Export.
Une fenêtre s'ouvre et vous propose de sauvegarder le modèle du flux de données au format .dfm (spécifique à Data Feed Manager). Après quoi vous pourrez trouver le modèle de flux de données dans votre répertoire de téléchargements.
Import
Avant toute chose, pour importer un modèle de flux de données, il doit s'agir d'un fichier .dfm, spécifique à l'extension Data Feed Manager.
Pour cela, cliquez sur Import a data feed depuis :
Products Data Feed Manager Data Feeds
Sélectionnez votre fichier .dfm et cliquez sur Import data feed.
Le modèle du flux de données a été ajouté à la liste des flux.
Configuration
Afin de créer votre propre modèle de flux de données, cliquez sur Create new data feed dans :
Products Data Feed Manager Data Feeds
Dans ce premier onglet, vous pourrez personnaliser la configuration de votre flux de données grâce à plusieurs champs.
- Name
Entrez le nom de votre flux.
GoogleShopping - File Type
Choisissez le format de votre fichier parmi xml, csv, txt et tsv. - File name format
Vous avez plusieurs possibilités pour afficher le nom de votre fichier.
GoogleShopping-2015-01-26.xml - Encoding type
Choisissez le type d'encodage du flux de données. - Path
Définissez le chemin du dossier où vous souhaitez que le flux soit généré.
/feeds/ - Status
Activez ou désactivez le fichier. - Store View
Définissez quelle vue magasin est concernée.
Notez que vous pouvez aussi exporter les valeurs pas défaut des attributs.
La configuration de votre flux de données va dépendre du type de fichier que vous avez choisi.
Fichiers XML
- Enclose XML tag content inside CDATA (recommended)
Insérez le contenu des balises XML dans CDATA. - Remove all empty XML tags (recommended)
Supprimez les balises vides. - Header pattern
Ajoutez votre header à ce champ. - Product Pattern
Ce champ est inévitable pour configurer votre flux de produits. - Footer pattern
Ajoutez votre footer dans ce champ.
Fichiers CSV, TXT, TSV
- Extra header
Ajoutera le contenu de ce champ en haut de votre fichier (correspond aux spécifications Amazon). - Include header
Vous permet d'inclure ou non le nom des colonnes dans la première ligne de votre fichier. - Columns name
Inclura le nom de vos attributs (vous devez jetez un oeil aux spécifications du moteur de comparaison pour savoir quels noms sont attendus). - Pattern
Fonctionne de la même manière que les fichiers XML. Par exemple, {{product.url}} retournera l'url des produits. Vous pouvez aussi ajouter des valeurs fixes. - Insert a new field
Cliquez sur ce bouton pour ajouter une nouvelle colonne à votre modèle. L'ordre des champs peut être facilement modifié en utilisant les flèches. - Extra footer
Vous pouvez ajouter un footer dans ce champ. - Fields delimiter
Vous avez le choix entre différents types de séparateurs pour séparer vos champs. - Fields enclosure
Vous avez aussi le choix entre plusieurs types de délimiteurs pour vos données. - Escape character
Définissez le caractère d'échappement entre ou ".
Filtre catégories
Vous pouvez filtrer vos catégories selon 2 manières :
- Exclude all products from the selected categories : exclure tous les produits des catégories sélectionnées.
- Include all products from the selected categories : inclure tous les produits des catégories sélectionnées.
Vous avez encore plus de possibilités pour filtrer vos catégories. Vous pouvez inclure ou exclure vos catégories selon :
- Parent categories only
Si vous avez un produit configurable qui a une catégorie assignée et dont les produits simples associés n'en ont pas. - Product categories only
Si des catégories sont assignées aux produits simples (variantes) mais pas au produit configurable. - Product and parent categories
Dans le cas où vous avez les deux situations.
Category selection and mapping
Dans cet onglet, vous pouvez mapper vos catégories à celles de Google. Cette étape est très importante pour que Google puisse faire le lien entre vos catégories et les catégories Google.
Avec Data Feed Manager, vous avez également la possibilité de modifier le fichier sur lequel est basé le mappage des catégories.
Les fichiers de taxonomie sont directement inclus pour les principaux pays afin de vous aider à mapper vos catégories plus facilement. Vous pouvez jeter un œil à notre documentation pour savoir comment ajouter un fichier de taxonomie et comment mapper vos catégories.
Qu'est ce que le mappage des catégories ?
Les noms des catégories que vous utilisez dans votre back-office Magento 2 ne sont pas forcément les mêmes que ceux que Google Merchant utilise pour référencer vos produits.
Vous devez alors trouver la catégorie Google Merchant qui se rapproche le mieux possible de chacune de vos catégories, en vous basant sur la Taxonomie des produits Google.
Par exemple, si vous vendez des meubles tels que des tables à café, vous aurez sans doute une catégorie Tables à café dans votre admin Magento 2.
Le problème est que Google Merchant ne dispose peut être pas d'une telle catégorie. La catégorie de produit Google se rapprochant le plus serait Tables basses.
Dans votre flux de données, vous devriez alors obtenir :
<g:google_product_category>Meubles > Tables > Consoles > Tables basses</g:google_product_category>
Mappez vos catégories avec Data Feed Manager
Data Feed Manager vous permet de saisir les catégories de produits Google correspondant aux vôtres de manière très simple.
Dans la configuration de votre flux de données, allez dans l'onglet Catégories. Puis, dans la section Sélection et mappage des categories, vous trouverez une liste arborescente de vos catégories.
A la suite de chaque catégorie, vous voyez une petite flèche suivi de mapped as.
C'est à cet endroit que vous pouvez commencer à taper un mot clé pour qu'une liste de catégories dans lesquelles ce mot apparaît se déroule. Il ne vous reste plus qu'à sélectionner celle que vous souhaitez.
Une fois que le mappage de toutes vos catégories est terminé, vous pouvez cliquer sur le bouton Save.
Voici quelques principes de base pour choisir au mieux la catégorie appropriée :
- Utilisez la catégorie qui décrit le mieux votre article. Pour cela, identifiez la principale fonction des produits que vous soumettez. Pour des articles spécifiques comme des lecteurs MP3, choisissez la catégorie Lecteurs MP3. Même si certains de ces lecteurs MP3 proposent aussi d'autres fonctionnalités, par exemple une horloge, ils n'en restent pas moins principalement des lecteurs MP3.
- N'utilisez qu'une seule catégorie. Dans certains cas, vous souhaiterez peut-être utiliser plusieurs catégories. Par exemple, un adaptateur permettant d'utiliser un lecteur MP3 dans une voiture peut correspondre à deux catégories : Véhicules automobiles > Audio > Vidéo et Multimédia > Audio > Accessoires audio > Accessoires de lecteur MP3. En cas de doute, n'utilisez qu'une seule catégorie.
- Utilisez la catégorie la plus spécifique possible. Plus vous serez précis, meilleure sera la qualité de vos données et, par conséquent, meilleures seront également vos chances de voir vos offres figurer dans la catégorie appropriée. En vous basant sur la classification des produits, identifiez la catégorie la plus spécifique qui couvre tous les produits que vous proposez. Par exemple, si vous proposez des chargeurs pour lecteurs MP3, utilisez la catégorie Chargeurs pour lecteurs MP3. À l'inverse, si vous proposez différents types de chargeurs, utilisez la catégorie Chargeurs.
Ajoutez la catégorie Google au modèle XML de Data Feed Manager
Enfin, pour que la catégorie soit récupérée dans votre flux de données, vous devez ajouter à votre modèle XML :
<category>{{product.category_mapping}}</category>
ou pour Google :
<g:google_product_category>{{product.category_mapping}}</g:google_product_category>
Ajoutez un nouveau fichier de taxonomie dans Data Feed Manager
La classification des produits Google est une arborescence de catégories décrivant des familles de produits. Cette classification liste toutes les valeurs possibles pour l'attribut Google product category.
You can easily add a taxonomy file with Data Feed Manager.
Pour Google Shopping, choisissez la langue que vous souhaitez utiliser pour votre taxonomie en bas, à droite de cette page. Dans la partie Classification à télécharger, ouvrez le lien Texte Brut qui contient tous les noms des catégories.
Sauvegardez ce fichier et collez le dans :
Repertoire racine Magento 2libWyomind
N'oubliez pas d'appliquer les droits 644 au fichier.
Vous serez ensuite capable de choisir cette taxonomie depuis la configuration de votre flux de données.
Filters
Data Feed Manager vous permet de filtrer vos produits sur différents niveaux.
Product Type
Dans un premier temps, définissez le ou les types de produits que vous souhaitez inclure dans votre flux de données. Par exemple, choisissez d'inclure les produits simples, virtuels et téléchargeables.
Attribute Set
Vous pouvez aussi choisir les jeux d'attributs que vous souhaitez inclure ou exclure de votre flux de données.
Product Visibility
Il vous est possible de choisir d'inclure des produits dans votre flux selon leur visibilité : Not visible individually, Catalog, Search results, Catalog and Search.
Advanced Filters
Dans les filtres, vous pouvez aller plus loin en définissant des filtres plus avancés. Par exemple, il vous est possible d'inclure uniquement les produits dont le prix est supérieur à 0 et dont le SKU n'est pas nul très facilement.
Vous avez là aussi la possibilité de définir des filtres avancés selon plusieurs options telles que =, >, < et bien plus comme vous pouvez le voir ci-dessous.
- LIKE / NOT LIKE
name like %shirt : Incluera au flux de données les produits dont le nom se termine par 'shirt'.
name like Apple% : Incluera au flux de données tous les produits dont le nom commence par 'Apple'.
name like %women% : Incluera dans le flux de données les produits dont le nom comporte la chaîne de caractères 'women'.
name not like %shirt: N'incluera aucun produit dont le nom se termine par 'shirt'.
name not like Apple%: N'incluera aucun produit dont le nom commence par 'Apple'.
name not like %women%: N'incluera aucun produit dont le nom comporte la chaîne de caractères 'women'. - IS NULL / IS NOT NULL
Special price is null : incluera tous les produits qui n'ont pas de prix spécial.
SKU is not null : incluera tous les produits dont le SKU n'est pas nul. - IN / NOT IN
Size in S L : incluera au flux seulement les produits de ces deux tailles.
Size not in S L : incluera dans le flux tous les produits dont la taille n'est pas S ou L.
Cron schedule
Data Feed Manager for Magento 2 vous permet de configurer des tâches planifiées dans l'onglet Cron Schedule afin que chacun de vos modèles de flux de données puisse être généré automatiquement.
Vous devez simplement cocher les jours et heures auxquels vous souhaitez que votre flux soit généré.
Dans le cas où vous avez quelques problèmes avec les tâches planifiées, ou si vous pensez que votre flux n'est pas automatiquement généré selon vos tâches, vous pouvez jeter un oeil à notre faq sur ce sujet.
FTP settings
Avec Data Feed Manager pour Magento 2, vous pouvez définir des paramètres FTP afin de télécharger vos flux de données. Dans l'onglet FTP settings de votre flux de données, vous aurez plusieurs champs à configurer :
- Enable FTP upload
Sélectionnez Yes si vous souhaitez télécharger votre flux de données par FTP - Use SFTP
Sélectionnez Yes si vous utilisez une connexion SFTP - Use Active mode
Si vous utilisez une connexion SFTP, vous n'avez pas à vous préoccuper du mode passif/actif - Host
Dans ce champ, définissez le serveur. Par exemple :
ftp.wyomind.com - Port
Définissez le port. Par exemple : 22 - Login
Il s'agit de votre identifiant pour vous connecter au serveur - Password
Il s'agit de votre mot de passe pour vous connecter au serveur - Destination directory
Il s'agit du chemin du répertoire de destination lorsque vous vous connectez au FTP. Par exemple :
"upload/"or"/"
Afin d'être certain que les informations sont correctes, vous pouvez cliquer sur Test Connection.
- Si vous n'avez aucun message d'erreur, cela veut dire que la connexion au serveur a fonctionné.
- Si vous avez un message d'erreur, il faudra vérifier les informations.
Dans le cas où vous n'avez pas de message d'erreur lors du test de connexion, il est tout de même conseillé de vérifier que le fichier a été correctement téléchargé.
ETAPE 3 : Générer les flux de données
Générer les flux de données
Avec Data Feed Manager, vous avez la possibilité de générer votre flux de données manuellement ou automatiquement.
Manuellement
Vous pouvez générer votre flux de données manuellement dans la grille du menu déroulant.
Vous pouvez aussi le faire depuis la configuration en cliquant sur Generate.
Via les tâches planifiées
Afin de générer automatiquement vos flux de données par tâches planifiées vous devez vous assurez que la tâche cron principale s’exécute bien sur votre serveur.
Dans le cas contraire un message d'alerte apparaît dans Data Feed Manager.
Vous devez également avoir sélectionné les jours et les heures de mise à jour de chaque flux dans l'onglet Scheduled Tasks.
Générer les flux de données en lignes de commandes
Vous pouvez utiliser les lignes de commandes pour générer les flux de données en lignes de commandes.
Pour générer tous les flux de données:
bin/magento wyomind:datafeedmanager:generate
Pour générer un flux de données spécifique:
bin/magento wyomind:datafeedmanager:generate int DATA_FEED_ID
Pour générer plusieurs flux de données:
bin/magento wyomind:datafeedmanager:generate int DATA_FEED_ID [, int DATA_FEED_ID] [, int DATA_FEED_ID]...
Pour lister tous les flux de données disponibles:
bin/magento wyomind:datafeedmanager:list
Téléchargez les flux de données
Lorsqu'un flux de données est prêt à être téléchargé, le lien est affiché dans la grille des flux. Afin de télécharger le flux de données, exécutez un clic droit sur le lien et sélectionnez Enregistrer le lien sous. Vous pouvez aussi trouver le fichier dans votre client FTP si le répertoire où les flux de données sont stockés est accessible publiquement.
Gérez vos modèles de flux de données avec Data Feed Manager
10 choses à savoir pour créer un flux de données XML avec Data Feed Manager
Tous les fichiers de produits XML utilisés par le moteur de recherche de produits, comme celui utilisé par Google Shopping sont vraiment simples à construire, mais la plupart du temps, chaque fichier de produits a sa propre configuration.
Simple Google Shopping et Data Feed Manager comportent un ou plusieurs flux d'exemple prêts à être configurés. Ces modèles vous aideront à créer plus rapidement un fichier de produits valide et bien structuré.
- Un fichier de produits XML est composé de balises ouvrantes et fermantes qui incluent une valeur.
<tag>valeur</tag>
- Un flux de données est fait de plusieurs balises qui peuvent comprendre des valeurs dynamiques ou fixes.
<g:id>{{product.sku}}</g:id> <g:brand>YOUR BRAND</g:brand>
- Les valeurs dynamiques sont appelées des variables. Une variable doit comprendre un attribut spécifié par son code et précédé d'un objet. La variable doit être entourée de double accolades : {{objet.attribut}}.
<g:id>{{product.sku}}</g:id> <price>{{parent.price}}</price>
- Entre chaque balise ouvrante et fermante, vous pouvez y ajouter des valeurs fixes. Il s'agit simplement de texte.
<g:brand>MARQUE</g:brand>
- Vous pouvez également insérer plusieurs variables et valeurs fixes dans une seule et même balise.
<title>{{parent.name}}, disponible en {{product.color}} pour seulement {{product.price}}€</title>
- Des attributs Magento 2 comme price, image ou url peuvent avoir plusieurs options ou parameters de configuration qui correspondront à vos besoin particulier. Par exemple :
<price>{{product.price currency=EUR vat_rate=20}}</price>
- Vous pouvez ajouter du code PHP pour personnaliser vos modèles. Par exemple, pour récupérer le nom d'un produit en lettres minuscules :
<tag>{{product.name output="wyomind_strtolower($self)"}}</tag>
- La coloration syntaxique dans Data Feed Manager vous aidera à éviter toute erreur de syntaxe dans vos modèles comme dans l'exemple ci-dessous
- Vous pouvez utiliser une ou plusieurs fallback variables dans le cas ou la première ne retourne rien. Si l''attribut color renvoi une information, la valeur sera celle de color, sinon la valeur sera celle de colour :
{{product.color | product.colour}}
- CDATA sont conseillés. CDATA signifie Character Data. Cela veut dire que ces balises contiennent des données qui peuvent être interprétées comme des infos XML et ne devrait pas l'être (Wikipedia article).
<description> <![CDATA[<p>Fantastic <b>Watch</b>, that not only tells you what time it is, but also gives the weather trends</p>]]> </description>
10 choses à savoir pour créer un fichier de données CSV/TXT avec Data Feed Manager
Data Feed Manager vous permet de générer des fichiers CSV/TXT en plus de fichiers XML. Ce format de fichier est requis pour certains moteurs de recherche comme Amazon, Shopzilla, Twenga, etc.
Data Feed Manager pour Magento 2 comprend tout ce dont vous avez besoin pour créer des fichiers CSV/TXT.
Chaque moteur de comparaison a ses propres spécifications et noms de colonnes. Certains nécessitent des caractères d'encadrement, d'autres ont besoin de délimiteurs spécifiques.
Vous pourriez aussi avoir besoin d'ajouter un header spécialement pour votre fichier (pour les flux de données destinés à Amazon par exemple).
- Un fichier CSV est composé d'une multitude d'entrées. Chaque entrée est composée de champs séparés par d'autres caractères ou chaînes de caractères. Il y a une ligne pour chaque entrée (donc une par produit). Voici un exemple du contenu d'un fichier CSV :
- Vous devez définir des délimiteurs afin de séparer vos champs ( ';' ',' '|' ' ab' ou '[|]' par exemple) et des caractères d'encadrement pour vos données (" ou ').
- Vous pouvez entrer le nom des attributs dans chaque champ Column name (vérifiez les spécifications du moteur de comparaison pour savoir quels noms sont requis). Par exemple :
- Vous pouvez inclure dans chaque champ Pattern un ou plusieurs attributs Magento 2. Un attribut est spécifié par son code et doit être encadré par des doubles accolades et précédé par un objet. Par exemple, afin de récupérer le SKU du produit, vous devriez utiliser :
{{product.sku}}
- Vous pouvez également inclure des valeurs fixes. Les valeurs fixes sont de simple texte. Par exemple, à la place de l'attribut {{product.manufacturer}}, vous pourriez utiliser directement :
YOUR BRAND
- Vous avez aussi la possibilité d'ajouter plusieurs attributs et valeurs fixes dans un même champ. Par exemple, à la place de {{product.url}}, vous pouvez utiliser :
{{product.url}}?_campaign=google&_adwords=test123
- Vous pouvez utiliser une ou plusieurs fallback variables dans le cas où la première ne retourne rien. Par exemple, si color existe alors la valeur de color sera utilisée, sinon la valeur de colour sera utilisée :
{{product.color | product.colour}}
- Vous pouvez utiliser du code PHP si vous souhaitez personnaliser le modèle. Vous devez simplement écrire votre code PHP sur une seule ligne, et cela fonctionnera parfaitement (vérifiez comment ajouter des scripts PHP dans vos modèles).
{{product.name output="wyomind_strtolower($self)"}}
- Vous pouvez ajouter un champ en utilisant le bouton Insert a new field. L'ordre des champs peut être modifié en utilisant les flèches.
- Vous pourrez avoir un aperçu de votre flux de données en cliquant sur Preview.
Comment se compose une variable ?
Pour modifier votre modèle de flux de données tel que vous le souhaitez, il vous faut avant tout respecter une syntaxe particulière. En effet, pour faire appel aux attributs, l'extension Data Feed Manager utilise une construction spécifique. Ceci requiert donc que vous sachiez comment la variable est composée pour ainsi pouvoir configurer votre flux selon vos besoins.
L'image ci-dessus détaille les différents composants d'une variable.
- object
Définit quelle est la cible de l'attribut à récupérer. Il peut s'agir du produit simple, parent, configurable, bundle ou groupé. - attribute
Définit l'attribut à récupérer. Par exemple, le prix, l'url... - parameters
Définit pour des attributs spécifiques, des paramètres additionnels, comme la monnaie ou le taux de TVA. - value
Définit les différentes valeurs disponibles pour le paramètre précédent.
Spécifications des attributs
Le modèle du flux de données est totalement personnalisable.
OBJETS
Afin de récupérer la valeur d'un attribut vous devez définir quel objet est ciblé. Voici ci-dessous les différents types d'objets que vous pouvez utiliser.
{{product.code_attribut}}
Récupère l'attribut pour le produit.
Par exemple :
{{product.sku}}
{{product.color}}
{{parent.code_attribut}}
Récupère la valeur de l'attribut pour le produit parent.
La valeur de l'attribut du parent est récupérée seulement si le produit simple est associé à un produit parent, sinon aucune valeur n'est affichée.
Le produit parent peut être un produit configurable, groupé ou bundle. La valeur du premier produit parent correspondant au produit simple est affichée.
Par exemple :
{{parent.product_type}}
{{parent.brand}}
{{configurable.code_attribut}}
Récupère la valeur de l'attribut du premier produit parent configurable.
La valeur de l'attribut du produit configurable est récupérée seulement si le produit simple est associé à un produit configurable, sinon, aucune valeur n'est affichée.
Par exemple :
{{configurable.image_link}}
{{configurable.url}}
{{grouped.code_attribut}}
Récupère la valeur de l'attribut du premier produit parent groupé.
La valeur de l'attribut du produit groupé est récupérée seulement si le produit simple est associé à un produit groupé, sinon, aucune valeur n'est affichée.
Par exemple :
{{grouped.google_product_category}}
{{grouped.url}}
{{bundle.code_attribut}}
Récupère la valeur de l'attribut du premier produit parent bundle.
La valeur de l'attribut du produit bundle est récupérée seulement si le produit simple est associé à un produit bundle, sinon, aucune valeur n'est affichée.
Par exemple :
{{bundle.sale_price}}
{{bundle.price}}
IDENTIFIANTS PRODUIT
Vous trouverez ci-dessous les attributs les plus couramment utilisés pour identifier les produits dans les flux de données.
{{objet.id}}
Récupère l'id du produit.
Par exemple :
{{product.id}}
{{objet.sku}}
Récupère le sku du produit.
Par exemple :
{{product.sku}}
{{objet.brand}}
Récupère la marque du produit.
Par exemple :
{{product.brand}}
{{objet.manufacturer}}
Récupère la marque du produit.
Par exemple :
{{product.manufacturer}}
INFORMATION BASIQUE
Ci-dessous sont listés les attributs généralement utilisés pour définir les informations de base des produits dans les flux de données.
{{objet.inc}}
Récupère une valeur auto-incrémentée, commençant à 1.
Par exemple :
{{product.inc}}
{{objet.name}}
Récupère le nom du produit.
Par exemple :
{{product.name}}
{{objet.description}}
Récupère la description du produit.
Par exemple :
{{product.description}}
{{objet.short_description}}
Récupère la description courte du produit.
Par exemple :
{{product.short_description}}
{{objet.condition}}
Récupère l'état du produit.
Par exemple :
{{product.condition}}
{{objet.weight}}
Récupère le poids du produit.
Par exemple :
{{product.weight}}
{{objet.type_id}}
Récupère le type du produit.
Par exemple :
{{product.type_id}}
{{objet.children}}
Récupère les SKUs des produits enfants du produit séparés par des virgules.
Par exemple :
{{product.children}}
Vous pouvez également utiliser des paramètres avec cet attribut :
- separator = comma, pipe ou semi-colon (par défaut : comma)
- identifier = SKU ou id (par défaut : SKU)
Par exemple :
{{product.children separator="pipe" identifier="id"}}
PRIX ET PROMOTIONS
Vous trouverez ci-dessous les attributs de prix que vous pouvez utiliser dans votre modèle de flux. La plupart d'entre eux peuvent comporter des paramètres pour définir par exemple la monnaie utilisée ou encore le taux de TVA à appliquer.
{{objet.price}}
Récupère le meilleur prix parmi tous les prix définis.
Si les prix du catalogue sont entrés hors taxes et si une classe de taxe qui correspond à un taux unique de TVA est définie pour le produit, alors les prix sont récupérés avec la TVA. Sinon, le prix hors TVA est récupéré.
Par exemple :
{{product.price}}
Vous pouvez également utiliser des paramètres avec cet attribut :
- currency = est la monnaie à appliquer pour la conversion du prix. Ce paramètre convertit automatiquement le prix original vers la monnaie spécifiée en utilisant les taux de changes enregistrés dans votre panneau d'administration. Par défaut, la monnaie par défaut est utilisée.
- vat_rate = est une valeur décimale comprise entre 0.00 et 100.00 et représente une taxe arbitraire à appliquer. Ce paramètre réécrit les règles de TVA pour le produit à condition que le produit n'ait pas de classe de taxe.
Voici quelques exemples d'utilisation :
Pour convertir les prix en EUR et appliquer une TVA de 20% :
{{product.price currency=EUR vat_rate=20}}
Pour convertir les prix en USD et n'appliquer aucune TVA :
{{product.price currency=USD vat_rate=0}}
Si les prix de votre catalogue comprennent déjà la TVA :
{{product.price currency=USD}}
Pour utiliser un code ISO2 correspondant à un des pays pour lequel vous avez défini un taux de TVA dans vos paramètres de taxe :
{{product.price currency=EUR vat_rate=FR}}
Ce code peut également être complété par un code régional :
{{product.price currency=USD vat_rate=US/NY}}
Pour déduire la TVA correspondant à un pays/région :
{{product.price currency=GBP vat_rate=-GB}}
Pour récupérer les prix comprenant différentes valeurs de prix pour les produits simples associés à des produits configurables :
{{parent.price currency=EUR vat_rate=20}}
{{objet.normal_price}}
Récupère le prix de base et ignore n'importe quel autre prix.
Par exemple :
{{product.normal_price}}
{{objet.base_price}}
Récupère le prix de base défini dans la base de données dans la table index prix.
Par exemple :
{{product.base_price}}
{{objet.special_price}}
Récupère le prix spécial s'il y en a un. Si ce prix n'existe pas, la valeur est nulle.
Par exemple :
{{product.special_price}}
{{objet.price_rules}}
Récupère le prix incluant les règles de prix catalogue s'il existe, sinon rien n'est récupéré.
Si les prix du catalogue entrés par l'administrateur ne sont pas soumis à une taxe et si une classe de taxe qui correspond à un taux unique de TVA est définie pour le produit, alors les prix sont récupérés avec la TVA. Sinon, les prix sont récupérés en excluant la TVA.
Par exemple :
{{product.price_rules}}
{{objet.sale_price}}
Récupère le meilleur prix promotionnel entre les régles de prix et les prix spéciaux.
Par exemple :
{{product.sale_price}}
{{objet.sale_price_effective_date}}
Récupère les dates de début et de fin du prix spécial sous la forme : 2011-03-01T13:00-0800/2011-03-11T15:30-0800. Si aucune date n'est définie ou si les dates définies ne correspondent pas aux dates actuelles alors la valeur est nulle.
Par exemple :
{{product.sale_price_effective_date}}
{{objet.has_special_price}}
Récupère 1 si le prix spécial existe, sinon 0.
Vous pouvez également utiliser des paramètres avec cet attribut :
- yes = valeur à récupérer si le prix spécial existe. Par défaut 1.
- no = valeur à récupérer si le prix spécial n'existe pas. Par défaut 0.
Par exemple :
{{product.has_special_price yes="Special price" no="No special price"}}
{{objet.has_sale_price}}
Récupère 1 si un prix promotionnel existe, sinon 0.
Vous pouvez également utiliser des paramètres avec cet attribut :
- yes = valeur à récupérer si le prix promotionnel existe. Par défaut 1.
- no = valeur à récupérer si le prix promotionnel n'existe pas. Par défaut 0.
Par exemple :
{{product.has_sale_price yes="Sale price" no="No sale price"}}
{{objet.tier_price}}
Récupère le prix par paliers s'il y en a un. Si ce prix n'existe pas, la valeur est nulle.
Par exemple :
{{product.tier_price}}
{{objet.tier_price_qty}}
Récupère la quantité définie pour le prix par paliers s'il y en a un. Sinon, la valeur est nulle.
Par exemple :
{{product.tier_price_qty}}
{{objet.min_price}}
Récupère le prix minimum.
Cet attribut est utilisé pour les produits configurables, bundle ou groupés.
Si les prix du catalogue entrés par l'administrateur ne sont pas soumis à une taxe et si une classe de taxe qui correspond à un taux unique de TVA est définie pour le produit, alors les prix sont récupérés avec la TVA. Sinon, les prix sont récupérés en excluant la TVA.
Par exemple :
{{product.min_price}}
{{objet.max_price}}
Récupère le prix maximum.
Cet attribut est utilisé pour les produits configurables, bundle ou groupés.
Si les prix du catalogue entrés par l'administrateur ne sont pas soumis à une taxe et si une classe de taxe qui correspond à un taux unique de TVA est définie pour le produit, alors les prix sont récupérés avec la TVA. Sinon, les prix sont récupérés en excluant la TVA.
Par exemple :
{{product.max_price}}
{{object.promotion_id}}
Récupère l'id de la promotion du produit s'il y en a une et si l'extension Google Merchant Promotions est installée.
Par exemple :
{{product.promotion_id}}
{{object.catalog_rule_id}}
Récupère le premier id de la règle de prix catalogue appliquée au produit s'il y en a une.
For example:
{{product.catalog_rule_id}}
{{objet.tax_class}}
Récupère la classe de taxe du produit s'il y en a une.
Par exemple :
{{product.tax_class}}
LIENS
Ci-dessous sont listés les attributs généralement utilisés pour récupérer tous types de liens.
{{product.url_config}}
Récupère l'URL permettant de présélectionner les attributs du produit simple depuis son configurable.
Vous pouvez également utiliser un paramètre avec cet attribut :
- currency=XXX = Ce paramètre ajoutera ?currency=XXX à l'URL générée.
L'accès à l'URL générée remplacera la page produit avec la monnaie correspondante.
Par exemple :
{{product.url_config currency=USD}}
Ceci va générer l'URL :
https://www.votremagasin.com/chaz-kangeroo-hoodie.html?currency=USD#142=5594&93=5476
{{objet.url}}
Récupère l'URL absolue du produit.
Vous pouvez également utiliser un paramètre avec cet attribut :
- currency=XXX = Ce paramètre ajoutera ?currency=XXX à l'URL générée.
L'accès à l'URL générée remplacera la page produit avec la monnaie correspondante.
Par exemple :
{{product.url currency=EUR}}
Ceci va générer l'URL :
https://www.votremagasin.com/joust-duffle-bag.html?currency=EUR
{{objet.image_link}}
Récupère l'image principale du produit.
Vous pouvez également utiliser des paramètres avec cet attribut :
- index = index de l'image additionnelle du produit. Il peut être positif ou négatif.
Par défaut 0 (l'image principale). - role = rôle de l'image à récupérer. Fonctionne aussi avec les rôles configurés en admin.
Par exemple :
Pour récupérer la deuxième image, utilisez :
{{product.image_link index=2}}
Pour récupérer la dernière image, utilisez :
{{product.image_link index=-1}}
Pour récupérer l'avant-dernière image, utilisez :
{{product.image_link index=-2}}
Pour récupérer l'image vignette, utilisez :
{{product.image_link role="thumbnail"}}
Notez que les deux paramètres ci-dessus ne peuvent pas être utilisés ensemble.
{{objet.host}}
Récupère l'url du site, par exemple https://www.siteweb.com.
Exemple avec l'attribut small_image :
{{product.host}}/media/catalog/{{product.small_image}}
{{objet.uri}} ou {{objet.url_key}}
Récupère l'url relative du produit.
Par exemple :
https://www.mywebsite.com/mystore_code/{{product.uri}}
CATEGORIES
Afin de récupérer les catégories de vos produits, vous pouvez vérifier les attributs listés ci-dessous.
{{objet.categories}}
Affiche les chemins de categories dans lesquels le produit peut être trouvé.
Tous les chemins de catégories sont listés dans categories du plus court au plus long, comme dans l'exemple ci-dessous :
- Default Category
- Default CategorySales
- Default CategoryClothes
- Default CategoryClothesMen
- Default CategoryClothesMen Pants
- Default CategorySalesSpring and Summer Sales
Afin d'afficher un chemin de catégorie spécifique vous avez la possibilité d'utiliser des paramètres avec cet attribut :
- nth : affiche le énième chemin de catégorie, si pas précisé, le 1er chemin de catégorie est utilisé par défaut. Les valeurs négatives sont autorisées.
- from : affiche un chemin de catégorie à partir d'un énième niveau de catégorie, si pas précisé le 1er niveau de catégorie est utilisé pas défaut. Les valeurs négatives sont autorisées.
- length : affiche un chemin de catégorie limité à un nombre de niveaux de catégories donné, si pas précisé le chemin entier est affiché par défaut
- separator : le caractère de séparation entre les niveaux de catégorie.
- url : remplace les noms des catégories par leurs URLs
Par exemple:
{{product.categories nth="1"}}
Montre le premier chemin de catégorie : Default Category
{{product.categories nth="-1"}}
Montre le dernier chemin de catégorie : Default CategorySales Spring and Summer Sales
{{product.categories nth="3" separator="-"}}
Montre le 3ème chemin de catégorie et modifie le séparateur de niveaux de catégories en "-" : DEFAULT CATEGORY - CLOTHES
{{product.categories nth="-2"}}
Montre l'avant dernier chemin de catégorie : Default CategorY Clothes MenPants
{{product.categories nth="-2" from="2"}}
Montre l'avant dernier chemin de catégorie à partir du 2nd niveau de catégorie : ClothesMen Pants
{{product.categories nth="-1" from="-1"}}
Montre le dernier chemin de catégorie à partir du dernier niveau de catégorie : Spring and Summer Sales
{{product.categories nth="-2" from="2" length="1"}}
Montre l'avant dernier chemin de catégorie à partir du 2nd niveau de catégorie avec seulement un niveau de catégorie : Clothes
<?php /* {{product.categories_url}} */ ?> {{product.categories url=1 nth="-2" from="2"}}
Montre l'avant dernier chemin de catégorie à partir du 2nd niveau de catégorie en remplaçant les noms des catégories par leurs URLs :
https://www.boutique.com/clothes.html > https://www.boutique.com/clothes/men.html > https://www.boutique.com/clothes/men/pants.html
{{objet.category_mapping}}
Récupère la catégorie Google que vous avez assigné (dans la section Categories) à la première catégorie trouvée pour le produit. Si il n'y a pas de catégorie Google assignée à la première catégorie trouvée, la seconde sera utilisée, s'il n'y pas de catégorie Google assignée à la seconde, la troisième sera utilisée, etc...
Vous pouvez également utiliser des paramètres avec cet attribut :
- index = index de la catégorie à récupérer
Par exemple :
{{product.category_mapping index=0}}
{{product.category_mapping index=1}}
{{product.category_mapping index=2}}
{{product.category_mapping index=3}}
{{product.category_mapping index=4}}
Récupérera un maximum de 5 catégories Google dans 5 balises différentes.
{{objet.google_product_category}}
Récupère la catégorie Google que vous avez assignée (dans la section Categories) à la première catégorie trouvée pour le produit (index 0).
Par exemple :
{{product.google_product_category}}
Pour trouver les catégories Google qui correspondent aux catégories de vos produits, consultez : https://support.google.com/merchants/answer/160081?hl=fr{{objet.attribute_set}}
Récupère le jeu d'attribut du produit.
Par exemple :
{{product.attribute_set}}
DISPONIBILITÉ ET INVENTAIRE
{{objet.status}}
Récupère soit 1 si le produit est activé, ou 2 si le produit est désactivé.
Par exemple :
{{product.status}}
{{objet.qty}}
Récupère la quantité disponible du produit.
La quantité récupérée pour les produits configurables est basée sur la somme des produits simples.
Vous pouvez également utiliser des paramètres avec cet attribut :
- float = nombre de décimales.
- stock_id = id du stock pour lequel vous souhaitez récupérer la quantité.
La somme des quantités des sources associées au stock est récupérée (module de Magento Multi Stock Inventory).Par défaut, la valeur du stock par défaut est récupérée.
- source_code = code de la source pour laquelle vous souhaitez récupérer la quantité disponible.
Par défaut, la valeur de la source par défaut est récupérée.
Par exemple :
{{product.qty float=1 stock_id="1"}}
{{product.qty float=2 source_code="store_1"}}
{{objet.availability}}
Récupère soit "in stock" si le produit est en stock, "out of stock" si le produit est indisponible ou "available for order" si le produit est en cours de réapprovisionnement.
Vous pouvez également utiliser des paramètres avec cet attribut :
- in_stock = valeur à récupérer si le produit est en stock.
- out_of_stock = valeur à récupérer si le produit est indisponible.
- backorderable = valeur à récupérer si le produit est en cours de réapprovisionnement.
- stock_id = id du stock pour lequel vous souhaitez récupérer la disponibilité (module de Magento Multi Stock Inventory).
Par défaut, la valeur du stock par défaut est récupérée.
- source_code = code de la source pour laquelle vous souhaitez récupérer la disponibilité.
Par défaut, la valeur de la source par défaut est récupérée.
Par exemple :
{{product.availability stock_id="2" in_stock="In Stock" out_of_stock="No more Stock" backorderable="Can be ordered"}}
{{product.availability source_code="store_1" in_stock="Currently in stock" out_of_stock="Out of stock" backorderable="Available for order"}}
{{objet.is_in_stock}}
Récupère le statut "in stock" ou "out of stock".
Vous pouvez également utiliser des paramètres avec cet attribut :
- source_code = code de la source pour laquelle vous souhaitez récupérer le statut.
Par défaut, la valeur de la source par défaut est récupérée. - stock_id = id du stock pour lequel vous souhaitez récupérer le statut (module de Magento Multi Stock Inventory).
Par défaut, la valeur du stock par défaut est récupérée.
Par exemple :
{{product.is_in_stock stock_id="1"}}
{{product.is_in_stock source_code="store_1"}}
AVIS
Vous pouvez aussi récupérer différentes informations sur les avis de vos produits en utilisant les attributs suivants.
{{objet.review_count}}
Récupère le nombre d'avis pour le produit.
Vous pouvez également utiliser des paramètres avec cet attribut :
- store_id = id de la vue de magasin
Parr exemple :
{{product.review_count store_id=1}}
{{objet.review_average}}
Récupère la note moyenne de tous les avis pour un produit.
Vous pouvez également utiliser des paramètres avec cet attribut :
- store_id = id de la vue de magasin
- score_base = base de la notation
Par exemple :
{{product.review_average store_id=1 score_base=5}}
VARIANTES DE PRODUIT
Dans le cas où vous avez des variantes de produits par couleur, genre ou encore taille, alors vous pouvez utilisez les attributs de base suivants. Attention, ces attributs sont des exemples et peuvent différer selon la configuration de votre boutique Magento 2.
{{objet.relation_ship}}
Récupère tous les noms d'attributs pour lesquels le produit configurable a des variantes définies.
Par exemple :
{{product.relation_ship}}
{{objet.gender}}
Récupère le genre du produit.
Par exemple :
{{product.gender}}
{{objet.age_group}}
Récupère le groupe d'âge du produit.
Par exemple :
{{product.age_group}}
{{objet.color}}
Récupère la couleur du produit.
Par exemple :
{{product.color}}
{{objet.size}}
Récupère la taille du produit.
Par exemple :
{{product.size}}
{{objet.material}}
Récupère la matière du produit.
Par exemple :
{{product.material}}
{{objet.pattern}}
Récupère le modèle du produit.
Par exemple :
{{product.pattern}}
PARAMÈTRES GÉNÉRAUX
Ci-dessous sont listés tous les paramètres que vous pouvez utiliser avec n'importe quel attribut dans vos flux de données.
{{objet.attribut prefix="valeur"}}
Le préfixe est ce qui sera affiché avant la valeur de l'attribut seulement si la valeur de celui-ci n'est pas nulle, sinon rien n'est récupéré.
Voici quelques exemples d'utilisation :
Pour ajouter le symbole de la monnaie avant le prix et ne rien récupérer lorsque la valeur de l'attribut est nulle :
{{product.price currency=EUR vat_rate=20 prefix="€"}}
Pour ajouter l'unité de poids avant la valeur de l'attribut et ne rien récupérer lorsque celle-ci est nulle :
{{product.weight prefix="KG "}}
{{objet.attribut suffix="valeur"}}
Le suffixe est ce qui sera affiché après la valeur de l'attribut seulement si la valeur de celui-ci n'est pas nulle, sinon rien n'est récupéré.
Voici quelques exemples d'utilisation :
Pour ajouter le code de la monnaie après le prix et ne rien récupérer lorsque la valeur de l'attribut est nulle :
{{product.price currency=EUR vat_rate=20 suffix=" EUR"}}
Pour ajouter l'unité de poids après la valeur de l'attribut et ne rien récupérer lorsque celle-ci est nulle :
{{product.weight suffix=" KG"}}
{{objet.attribut as="maVariable"}}
Le paramètre as vous permet de stocker la valeur d'un attribut pour une utilisation ultérieure dans un script PHP ou dans une condition (voir le paramètre if).
Attention, l'appel de l'attribut même avec le paramètre as produira l'insertion de données dans le flux sauf si vous utilisez l'attribut output avec la valeur null (voir le paramètre output).
Voici quelques exemples d'utilisation :
Pour afficher le nom d'un produit et stocker le nom du produit dans une variable $name:
<!-- Product name is displayed and stored under a new variable "name" -->
<name>{{product.name as="name"}}</name>
$name pourra être utilisé dans un script PHP plus loin dans le template
<?php
/* If variable $name is equal to "Apple", then display "Apple" then display "Banana" */
if($name=="Apple")
return $name;
else return "Banana";
?>
Pour stocker la visibilité d'un produit dans une variable visibility et l'utiliser dans la condition d'un autre attribut:
<!-- Product visibility is stored under a new variable "visibility" and the attribute doesn't display -->
{{product.visibility as="visibility" output="null"}}
<!-- If the product is not visible individually (4) then we display the parent product url, otherwise we use the product url-->
<url>{{parent.url if="visibility==4" | product.url}}</url>
{{objet.attribut if="condition"}}
Le paramètre if vous permet de définir une ou plusieurs conditions indispensables à l'affichage de l'attribut dans le flux.
Une condition se construit autour de 3 éléments:
- une variable à tester qui peut être:
un attribut produit
un variable stockée précédemment grâce au paramètre as (voir le paramètre as) - un comparateur
== égal
<= inférieur ou égal à
=> supérieur ou égal à
< inférieur à
>supérieur à
!= différent de - un valeur de comparaison
Exemple :
<!-- Product description will be displayed only if product brand is equal to "Apple" -->
<name>{{product.description if="product.brand==Apple"}}</name>
<!-- Product weight will be displayed only if the product is not virtual AND not downloadable-->
<weight>{{product.weight if="product.type_id!=virtual" if="product.type_id!=downlodable"}}</weight>
{{objet.attribut output="fonctions"}}
Le paramètre output vous permet de définir le format de sortie de l'attribut.
Vous pouvez utiliser les fonctions de base (voir les fonctions de base), les fonctions avancées (voir les fonctions avancées) ou n'importe quelle fonction PHP.
Vous devez toujours utiliser la variable $self comme paramètre des fonctions.
Exemple :
<!-- Get the product name with the first letter of each word in uppercase -->
<name>{{product.name output="ucwords($self)"}}</name>
Si plusieurs fonctions sont utilisées dans le paramètre, celle-ci doivent être imbriquées comme vous le feriez en PHP.
Exemple :
<!-- Remove all html tags from the description and limit the description to the first 100 characters -->
<name>{{product.description output="substr(strip_tags($self),100"}}</name>
Vous pouvez également utiliser la valeur null pour ne rien afficher ou une chaine de caractères pour remplacer la valeur à afficher.
Exemple :
<!-- If product price is lower than $10 then display "Free Shipping"-->
<shipping_cost>{{product.price if="product.price<10" output="'Free Shipping'"}}</shipping_cost>
{{objet.attribut php="fonctions"}}
Le paramètre php agit de la même manière que le paramètre output .
FONCTIONS BASIQUES
Vous pouvez utiliser n'importe quelle fonctions PHP ainsi que les fonctions ci-dessous qui ont été créées spécialement pour Data Feed Manager avec n'importe quel attribut défini par défaut dans votre back-office Magento 2 mais également avec tous les attributs que vous avez créés pour vos produits comme name, description, short_description, weight, size, color… Cela dit, vous ne pouvez pas utiliser de fonction avec les attributs qui génèrent du XML.
La syntaxe à utiliser pour inclure des fonctions PHP dans vos variables est :
{{objet.attribut output="fonction(parametres)"}}
Vous pouvez également appliquer une ou plusieurs fonctions à chaque attribut en utilisant cette syntaxe :
{{objet.attribut output="fonction1(fonction2(fonction3($self,parametres)))"}}
Toutes les options sont exécutées dans l'ordre suivant :
<title>{{product.name}}</title>
<title>{{product.name output="dfm_strtoupper($self)"}}</title>
<title>{{product.name output="dfm_strtoupper(dfm_substr($self,20,'...'))"}}</title>
Ce qui produira :
<title>Affirm Water Bottle</title>
<title>AFFIRM WATER BOTTLE</title>
<title>AFFIRM WATER...</title>
float($self,$décimales)
Convertit une valeur numérique en valeur décimale.
Vous devez définir certains paramètres :
- décimales : le nombre de chiffres après la virgule. Par défaut : 0
Par exemple :
<g:shipping_weight> {{product.weight output="float($self,2)"}}kg </g:shipping_weight>
cleaner($self)
Supprime tous les caractères qui n'appartiennent pas au jeu de caractères UTF-8.
Par exemple :
<g:title> {{product.name output="cleaner($self)"}} </g:title>
inline($self)
Supprime toutes les fins de ligne de la valeur.
Par exemple :
<description> {{product.description output="inline($self)"}} </description>
FONCTIONS AMÉLIORÉES
Les fonctions améliorées s'utilisent de la même manière que les fonctions basiques php mais offrent plus de possibilités. Ces fonctions sont en réalité une réécriture des fonctions php natives mais ont été améliorées pour une utilisation spécifique de l'extension Data Feed Manager.
wyomind_strtoupper($self)
Transforme la valeur en lettres capitales.
Par exemple :
<g:title>{{product.name output="wyomind_strtoupper($self)"}}</g:title>
wyomind_strtolower($self)
Transforme la valeur en lettres minuscules.
Par exemple :
<tag>{{product.name output="wyomind_strtolower($self)"}}</tag>
wyomind_implode($séparateur,$self)
Regroupe tous les éléments d'un tableau en chaîne de caractères.
Vous devez définir certains paramètres :
- séparateur : chaîne de caractères à utiliser entre chaque élément du tableau. Par défaut : ,
Cette fonction peut être utile pour les attributs à sélections multiples comme climate, activity general...
Par exemple :
<activity> {{product.activity_general output="wyomind_implode('-',$self)"}} </activity>
Donnera :
Outdoor-Running-Warmup-Lounge-Gym
wyomind_html_entity_decode($self)
Convertit toutes les entités HTML en caractères applicables.
Par exemple :
<description> {{product.description output="wyomind_html_entity_decode($self)"}} </description>
wyomind_strip_tags($self)
Supprime tous les tags HTML.
Par exemple :
<description> {{product.description output="wyomind_strip_tags($self)"}} </description>
wyomind_htmlentities($self)
Convertit tous les caractères applicables en entités HTML.
Par exemple :
<description> {{product.description output="wyomind_htmlentities($self)"}} </description>
wyomind_substr($self,$taille_max,$chaîne_fin)
Réduit la taille de la valeur.
Vous devez définir certains paramètres :
- taille_max : taille maximale de la valeur
- chaîne_fin : la chaîne de caractères à ajouter à la valeur tronquée. Par défaut : ...
Par exemple :
<description> {{product.description output="wyomind_substr($self,50,'...')"}} </description>
S'il y a des balises HTML dans vos descriptions, vous devrez peut-être utiliser une autre fonction complémentaire :
<description> {{product.description output="wyomind_strip_tags(dfm_substr($self,50,'...'))"}} </description>
Utilisez l'API PHP
Data Feed Manager permet d'utiliser les scripts PHP de différentes façons afin de pouvoir personnaliser et contrôler entièrement la sortie du flux de données.
- Scripts PHP en ligne
Les scripts ajoutés directement dans le modèle de flux de données, délimités par des balises PHP (<?php ... ?>)
- Attributs personnalisés
Les appels de script utilisant le nom de l'attribut personnalisé (comme pour chaque attribut de votre modèle de flux de données)
- Fonctions personnalisées
Les appels de fonctions utilisant le nom de la fonction et les paramètres supplémentaires ainsi que les fonctions appliquées à chaque attribut de votre modèle de flux de données
Codage API standard
Le codage API PHP utilise exactement la même syntaxe et standards que le codage PHP.
Appels d'attributs
Pour des raisons d'efficacité, Data Feed Manager charge uniquement dans la collection de produits, les attributs requis pour le modèle de flux de données.
Cela signifie que seulement les appels attributs utilisant le modèle placeholders, {{scope.attribute_code}}, seront ajoutés à la collection de produits.
Par conséquence, lorsque vous essayez d'accéder à la valeur d'un attribut depuis l'objet $product, vérifiez au préalable que l'attribut soit ajouté à la collection de produits.
Dans la plupart des cas, lorsque la valeur de retour est nulle pour un attribut donné, c'est que l'attribut en question n'a pas été chargé dans la collection de produits.
La façon la plus simple de vérifier que tous les attributs requis sont chargés dans la collection, est d'ajouter au début de votre modèle un script simple permettant de faire une liste de ces attributs.
<?php
/* list of required attributes
* {{product.attribute_1}} {{product.attribute_2}} {{product.attribute_3}} {{product.attribute_4}}...
*/
?>
Vous pourrez alors obtenir la valeur de ces attributs dans votre script php:
<?php
return $product->getAttribute1();
?>
<?php
return $product->getAttribute2();
?>
<?php
return $product->getAttribute3();
?>
....
Fonctions PHP dans les appels d'attributs
Vous pouvez appliquer la fonction php de votre choix à l'appel d'attribut, même si la fonction exige un ou plusieurs arguments:
{{product.name output="str_replace('Apple','Banana',$self)"}}
Vous pouvez utiliser plusieurs fonctions consécutives:
{{product.ean output="str_pad(str_replace('X','0',$self),10,'0',STR_PAD_LEFT)"}}
Valeurs conditionnelles
Pour contrôler l'affichage de vos valeurs suivant des conditions spécifiques, vous pouvez utiliser les instructions conditionnelles dans votre code PHP :
- if/else
<?php /* attribute {{product.sku}} required */ if ($product->getSku()=="abc"){ return "Alphabetic"; } elseif($product->getSku()=="123"){ return "Numeric"; } else{ return "Mixed"; } ?>
- switch/case
<?php /* attribute {{product.sku}} required */ switch($product->getSku()){ case "abc": return "Alphabetic"; break; case "123": return "Numeric"; break; default: return "Mixed"; } ?>
Balises d'ouverture et de fermeture
Lorsque vous utilisez l'API PHP directement dans votre modèle de flux de données, utilisez les balises PHP d'ouverture et fermeture (<?php ... ?>) permettant de délimiter le code à interpréter.
<?php
if($product->getData('size')=="X-Large") {
return "XL";
}
?>
Valeur de sortie
Return
Toute valeur à sortir de votre flux de données doit être retournée avec une instruction de retour.
<?php return "Don't miss! ".$product->getTitle(); ?>
/* This script adds for each product in data feed a new ouput line
* Don't miss! Iphone 5
* Don't miss! Galaxy note 7
* ...
*/
Portée des variables
Toutes les variables disponibles en script PHP ont une portée locale, ce qui veut dire qu'elles ne peuvent pas être partagées entre plusieurs scripts.
Si vous souhaitez partager une variable entre différents scripts à travers le processus de génération de flux de données, la variable doit alors être considérée comme globale.
<?php
global $increment;
$increment++;
return $increment;
/* This script will output a incremental $variable
* 1
* 2
* 3
* ...
*/
?>
Objets API, Variables et Méthodes
Objet $product
L'objet $product est une instance de la classe Mage_Catalog_Model_Product, contenant toutes les méthodes par défaut et celles spécifiques à Data Feed Manager.
La liste ci-dessous reprend les principales méthodes à utiliser:
- $product->getCategoriesArray()
Permet de renvoyer un tableau de plusieurs tableaux décrivant les catégories auxquelles appartient le produit - $product->getCategoryIds()
Permet de lister tous les ids des catégories du produit
- $product->getVisibility()
Permet de renvoyer la visibilité du produit (1 = non visible individuellement, 2 = catalogue, 3 = recherche, 4 = catalogue et recherche) - $product->getStatus()
Permet de renvoyer le statut du produit (1 = activés, 2 = désactivés)
- $product->getData($attributeCode)
Permet de renvoyer la valeur du code de l'attribut - $product->getAttributeText($attributeCode)
Permet de renvoyer la valeur textuelle du code de l'attribut
Objet $this
L'objet $this est une instance de la classe Wyomind_datafeedmanager_Model_Feed, contenant plusieurs méthodes très utiles:
- $this->hasParent($product, $type="parent")
Permet de renvoyer la valeur booléenne d'un produit que son parent soit de type (parent, configurable, bundle) ou non
- $this->getParent($product, $type="parent", $strict=false)
Permet de renvoyer l'objet d'un produit de type parent si il est disponible (parent, configurable, bundle) ou l'objet d'un produit modifié comme premier paramètre lorsque le $strict est défini comme faux - $this->skip()
Permet d'ignorer le produit actuel (utile pour éliminer certains produits suivant des conditions spécifiques)
Chaînes, nombres entiers, valeurs booléennes et tableaux contenus dans variable $self
La variable $self est la valeur de l'attribut du produit actuel.
Cette variable est uniquement disponible pour les fonctions et attributs personnalisables.Utilisation des variables personnalisées
Data Feed Manager vous permet de créer vos propres variables et de les ajouter à votre flux de données.
Créer une variable personnalisée
Pour créer des variables personnalisées depuis votre admin Magento, allez dans :
products Data Feed Manager Custom variables
Pendant l'installation de l'extension, des modèles d'utilisation sont chargés par défaut.
Voilà comment procéder:
Exemples de variables personnalisées
Remplacez certains mots dans la description du produit :
<?php
$search=array('Nokia','BlackBerry','apple');
$replace=array("NOKIA","BLACKBERRY","APPLE");
return str_ireplace($search, $replace,$product->getDescription());
?>
Créez un thumbnail de l'image de base du produit :
<?php
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$_imagehelper = $objectManager->get('MagentoCatalogHelperImage');
return $_imagehelper->init($product, 'image')->resize(200,200)->getUrl();
?>
Éliminez le produit correspondant à la condition :
<?php
if(strlen($product->getUpc())>=12) return $product->getUpc();
elseif ($product->getMpn()) return $product->getMpn();
else $this->skip();
?>
Calculez la somme de toutes les quantités disponibles pour le produit configurable :
<?php
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$_productConfigurable= $objectManager->get('MagentoConfigurableProductModelProductTypeConfigurable');
$childProducts = $_productConfigurable->getUsedProducts($product);
$stock_count=0;
foreach($childProducts as $child){
$stockItem=$objectManager->get('MagentoCatalogInventoryModelStockItem');
$stock_count+=(int)$stockItem->loadByProduct($child)->getQty();
}
return "<g:quantity>".$stock_count."</g:quantity> ";
?>
Utilisation des fonctions personnalisées
Data Feed Manager vous permet également de créer des fonctions personnalisées.
Créer une fonction personnalisée
Pour créer vos propres fonctions, allez dans :
productsData Feed Manager Custom functions
Exemples de fonctions personnalisées
Augmentez la valeur de l'attribut avec une autre chaîne d'une certaine taille :
<?php
/*
* {{product.ean output="str_pad_custom($self,10,0)"}}
* when ean is 12345, then the output is 0000012345
*/
return str_pad($self,$pad_length,$pad_string,STR_PAD_LEFT);
/*
* could also be used as a inline function
* {{product.ean output="str_pad($self,10,0,STR_PAD_LEFT)"}}
*/
?>
Formatez le nombre :
<?php
/*
* {{product.price output="number_format_customl($self,2,',')"}}
* when price is 9.99345, then the output is 9,99
*/
return number_format($self,$decimal,$decimal_separator,' ');
/*
* could also be used as a inline function
* {{product.ean output="number_format($self,2,',',' ')"}}
*/
?>