Que sont Google Merchant et Google Shopping ?
Pour utiliser Simple Google Shopping, vous devriez savoir ce que sont Google Merchant et Google Shopping.
Voici quelques notions basiques sur Google Shopping et la gestion des flux de données.
Qu'est-ce que Google Shopping et Google Merchant ?
Google Shopping est un service gratuit de Google qui permet aux internautes de trouver et de comparer les produits qu'ils souhaitent acheter en ligne. Si vous êtes un marchand en ligne, vous pouvez donc soumettre des produits à Google Shopping pour aider vos clients potentiels à trouver votre site plus rapidement et plus facilement.
Google Merchant Center est une interface de gestion des produits qui permet aux propriétaires de boutiques en ligne et aux vendeurs de soumettre leurs produits à Google Shopping.
Comment créer mon compte Google Merchant ?
Pour soumettre vos produits à Google Shopping, vous devez dans un premier temps posséder un compte Google Merchant Center. Vous trouverez toutes les informations dont vous avez besoin en suivant le lien suivant : https://support.google.com/merchants/answer/188924?hl=en
Une fois votre compte créé, vous aurez accès à l'interface de gestion de Google Merchant Center où vous pourrez enregistrer votre flux de données et programmer une mise à jour quotidienne, hebdomadaire ou mensuelle.
Qu'est-ce qu'un flux de données de produits ?
Il s'agit d'un fichier contenant l'intégralité des informations relatives aux produits que vous vendez. Les différentes informations sont décrites dans des attributs qui permettent aux clients de trouver vos produits lorsqu'ils effectuent une recherche. Ce fichier est construit autour d'un schéma RSS classique auquel sont associées des balises XML spécifiques à Google Merchant Center.
Pour plus d'informations sur la construction de ce fichier, vous pouvez vous reporter au support en ligne de Google Merchant Center : https://support.google.com/merchants/answer/188478?hl=en
Comment créer un flux de données ?
Simple Google Shopping pour WooCommerce vous permet de configurer, générer et automatiser plusieurs fichiers de produits en quelques minutes.
Comment utiliser Simple Google Shopping pour WooCommerce?
ETAPE 1 : Configurez Simple Google Shopping de manière générale
Pour créer et configurer vos flux de données, allez dans :
WyomindSimple Google Shopping
Vos flux de données sont listés selon des ID.
Vous devriez retrouver dans le tableau le nom des fichiers, leurs chemins, ainsi que l'URL du flux de données. Vous devriez aussi avoir un message résumant le nombre de produits exportés, le temps que cela a pris et le nombre d'erreurs et d'avertissements dans votre flux de données.
Le statut de votre flux de données dépend de la situation :
- 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
Depuis la colonne Action, vous pourrez :
- Edit : Editer le flux
- Generate : Générer le flux
- Delete : Supprimer le flux
Cliquez sur Create a new data feed afin de configurer votre flux de données comme vous le souhaitez.
La black Box
En créant un flux de données, vous devriez voir une boîte (toolbox) sur votre écran. Le module Simple Google Shopping comprend cet outil pour vous aider à créer votre flux et à voir quelles sont les erreurs.
La toolbox est sans aucun doute un outil très utile. Cela vous aidera à configurer votre flux de données plus rapidement.
Voici ses différentes options.
Preview

Library

Report
En cliquant sur ce bouton, un rapport d'erreurs de votre flux de données sera affiché dans la toolbox.
Ils vous feront gagner du temps et vous aideront à identifier rapidement les principaux problèmes de votre flux et à faire les changements nécessaires.
You can get reports on the errors and warnings of your data feeds.
This will help you to save time by quickly identifying the main problems of your data feed and by making the necessary changes.
- En orange seront affichés les avertissements comme :
Missing recommended attribute: product_type. - En rouge seront affichés les erreurs qu'il faudra corriger pour que votre flux puisse être approuvé :
Missing required attribute: google_product_category.
En face de chacune de ces erreurs ou avertissements, vous devriez voir le nombre d'articles qui sont concernés.
Configuration
Dans ce premier onglet, il s'agit de la configuration de votre flux de données. Vous y trouverez plusieurs champs qui vous permettront de personnaliser votre flux.
- Data Feed Name
Vous pouvez ajouter un nom à votre flux de données. - File Name
Entrez un nom pour le fichier. - Directory path
Définissez le chemin du dossier où vous souhaitez que le fichier soit généré.
/feeds
Template
Dans cet onglet vous pourrez configurer votre modèle XML.
Catégories - Type de filtre
Dans l'onglet Categories, 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.
Catégories - Sélection et mappage
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.
Qu'est ce que le mappage de catégories
La taxonomie Google est une arborescence qui vous aidera à générer des valeurs pour l'attribut catégorie du produit Google.
Les noms de catégories que vous utilisez dans WooCommerce ne sont pas toujours les même que ceux que Google Shopping utilisent pour référencer vos produits.
Cela signifie que vous devez trouver quelles son't les catégories Google Shopping qui correspondent aux vôtres conformément à la taxonomie Google.
Par exemple, si vous vendez des meubles comme des tables de bar, vous aurez une catégorie "Table de bar" dans votre admin WooCommerce. Mais Google Merchant ne connait pas cette catégorie. La catégorie la plus proche sera : Table de Cuisine & Salle à Manger.
Dans votre flux de données, vous devriez alors obtenir :
<g:google_product_category>Furniture > Desks & Tables > Kitchen & Dining Room Tables</g:google_product_category>
Mappez vos catégories avec Simple Google Shopping
Simple Google Shopping 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 Categories. Puis, dans la section Category selection and mapping, vous trouverez une liste arborescente de vos catégories.
Dans un premier temps, sélectionnez la source sur laquelle vous souhaitez baser votre mapping depuis Google Taxonomy source.
Les fichiers de taxonomie pour les principaux pays sont déjà inclus dans le plugin pour vous permettre de mapper vos catégories plus facilement. Vous pouvez aussi jeter un oeil à la documentation pour savoir comment ajouter un nouveau fichier de taxonomie.
A la suite de chaque catégorie, vous voyez une petite flèche suivi de mapped as.
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 dans le template XML
Enfin, pour faire en sorte que la catégorie Google soit bien récupérée dans le flux de données, vous devez ajouter l'attribute suivant au modèle XML :
<g:google_product_category>{{product.google_product_category | parent.google_product_category}}</g:google_product_category>
A lire également : https://support.google.com/merchants/answer/6324406?hl=en
Ajoutez un fichier de taxonomie
Avec Simple Google Shopping, vous avez la possibilité de changer le fichier de taxonomie sur lequel est basé le mappage des catégories.
Depuis cette page, choisissez la langue que vous souhaitez utiliser pour votre taxonomie en bas à droite. Puis, 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 :
wp-contentpluginsWyomind_SimpleGoogleShoppingdataGoogleTaxonomies
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.
Filtres
Simple Google Shopping pour WooCommerce vous permet également de filtrer vos produits sur plusieurs niveaux selon leurs type ou leur visibilité par exemple.
Visibilité des produits
Dans un premier temps, vous pouvez choisir d'inclure des produits dans votre flux selon leurs visibilités :
- Shop and search results
- Shop only
- Search results only
- Hidden
Types des produits
Ensuite, choisissez le type de produits qui seront compris dans le flux :
- Simple products
- Virtual products
- Downloadable products
- Grouped products
- External products
- Variable products
- Children of a variable product
Filtres acancés
Là aussi, vous avez la possibilité de configurer vos filtres selon plusieurs options.
- LIKE / NOT LIKE
name like %shirt : Inclura au flux de données les produits dont le nom se termine par 'shirt'.
name like Apple% : Inclura au flux de données tous les produits dont le nom commence par 'Apple'.
name like %women% : Inclura dans le flux de données les produits dont le nom comporte la chaîne de caractères 'women'.
name not like %shirt : N'inclura aucun produit dont le nom se termine par 'shirt'.
name not like Apple% : N'inclura aucun produit dont le nom commence par 'Apple'.
name not like %women% : N'inclura aucun produit dont le nom comporte la chaîne de caractères 'women'.
- IS NULL / IS NOT NULL
Color is null : inclura tous les produits qui n'ont pas de couleur.Color is not null : inclura tous les produits qui ont une couleur.
- IN / NOT IN
Size in S L : inclura au flux seulement les produits de ces deux tailles.
Size not in S L : inclura dans le flux tous les produits dont la taille n'est pas S ou L.
Tâches Cron
Simple Google Shopping pour WooCommerce vous permet de configurer des tâches planifiées dans l'onglet Cron Schedule pour chacun de vos flux de données.
Vous devez simplement cocher les jours et heures auxquels vous souhaitez que votre flux soit généré.
ETAPE 2 : Générez et téléchargez les flux de données
Générez les flux de données
Simple Google Shopping vous permet de générer vos flux de données manuellement ou automatiquement.
Manuellement
Vous pouvez générer votre flux de données manuellement depuis la colonne Action dans la grille des flux de données.
Vous avez aussi la possibilité de le faire depuis le panneau de configuration en cliquant sur Generate.
Avec les tâches cron
Vous devez sélectionner au moins un jour et une heure depuis l'onglet Cron schedule pour chaque flux de données qui doit être mis à jour par tâche cron.
Téléchargez les flux de données générés
Lorsqu'un flux peut être téléchargé, le lien est affiché dans :
- la grille des flux de données
- la page de configuration du flux de données après l'avoir généré
Pour télécharger le flux de données, sélectionnez Save link as après un clic droit sur le lien.
Gérez vos modèles de flux de données avec Simple Google Shopping
10 choses à savoir pour créer un flux de données XML avec Simple Google Shopping
- Un fichier de produits XML est composé de balises ouvrantes et fermantes qui incluent une valeur.
<g:id>123456</g:id> <price>45.99 USD</price>
- Un template de flux de données est composé de plusieurs balises comprenant des valeurs dynamiques ou fixes.
<g:id>{{product.sku}}</g:id> <g:brand>Fixed Brand</g:brand>
- Les valeurs dynamiques sont des variables qui doivent comprendre un attribut spécifié par son code et précédé d'un objet. La variable doit être entourée de double accolades.
<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>YOUR BRAND</g:brand>
- Vous pouvez également insérer plusieurs variables et valeurs fixes dans une seule et même balise.
<title>{{parent.name}}, available in {{product.color}} for only ${{product.price}}</title>
- Certains attributs peuvent avoir plusieurs options ou parameters de configuration pour correspondre à vos besoins spécifiques.
<price>{{product.price currency=EUR vat_rate=20}}</price>
- Vous pouvez ajouter du code PHP pour personnaliser vos modèles.
<tag>{{product.name output="wyomind_strtolower($self)"}}</tag>
- La coloration syntaxique dans Simple Google Shopping vous aidera à éviter toute erreur de syntaxe dans vos modèles.
- Vous pouvez utiliser une ou plusieurs variables de secours dans le cas où la première est vide ou ne retourne rien. Si attributA existe, alors la valeur sera celle de attributA, sinon la valeur sera celle de attributB.
{{product.color | product.colour}}
- Les CDATA sont conseillés. CDATA signifie Character Data. Cela veut dire que les données entre ces balises comprennent des données qui pourraient être interprétées comme du XML mais qui ne devraient pas (article Wikipedia).
<description> <![CDATA[<p>Fantastic <b>Watch</b>, that not only tells you what time it is,but also gives the weather trends</p>]]> </description>
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, le module Simple Google Shopping 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. - attribute
Définit l'attribut à récupérer. - 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 variable ou groupé. La valeur du premier produit parent correspondant au produit simple est affichée.
Par exemple :
{{parent.product_type}}
{{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.url}}
IDENTIFIANTS PRODUIT
Vous trouverez ci-dessous les attributs les plus couramment utilisés pour identifier les produits dans les flux de données.
{{objet.sku}}
Récupère le SKU du produit.
Par exemple :
{{product.sku}}
{{objet.id}}
Récupère l'id du produit.
Par exemple :
{{product.id}}
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.visibility}}
Récupère la visibilité du produit.
Par exemple :
{{product.visibility}}
{{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}}
CATEGORIES
Afin de récupérer les catégories de vos produits, vous pouvez vérifier les attributs listés ci-dessous.
{{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}}
{{objet.categories}}
Récupère les chemins de catégories dans lesquelles le produit peut se trouver dans votre magasin WooCommerce.
Tous les chemins de catégorie sont listés du plus court au plus long, comme dans l'exemple ci-dessous :
- Default Category
- Default CategorySales
- Default CategoryClothes
- Default CategoryClothesMen
- Default CategoryClothesMenPants
- Default CategorySalesSpring and Summer Sales
Afin d'afficher un chemin de catégorie spécifique, vous avez la possibilité d'utiliser un paramètre avec cet attribut :
- nth : affiche le énième chemin de catégorie. Si non précisé, le 1er chemin de catégorie est utilisé par défaut. Les valeurs négatives sont autorisées.
Par exemple :
{{product.categories nth="1"}}
{{product.categories nth="-1"}}
Montre le dernier chemin de catégorie : Default CategorySalesSpring and Summer Sales
{{product.categories nth="-2"}}
Montre l'avant dernier chemin de catégorie : Default CategorYClothesMenPants
{{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.
LIENS
Ci-dessous sont listés les attributs généralement utilisés pour récupérer tous types de liens.
{{objet.image_link}}
Récupère l'image principale du produit.
Vous pouvez également utiliser des paramètres avec cet attribut :
- nth = index de n'importe quelle image à récupérer. Par défaut 0 (l'image principale).
Par exemple :
{{product.image_link nth="2"}}
{{objet.url}}
Récupère l'URL absolue du produit.
Par exemple :
{{product.url}}
{{object.host}}
Récupère l'URL du site, par exemple https://www.siteweb.com.
Par exemple :
{{product.host}}
DISPONIBILITE
Les attributs ci-dessous sont bien souvent utilisés pour récupérer les disponibilités de vos produits, par exemple la quantité.
{{objet.backorders}}
Récupère yes ou no si le produit utilise le réapprovisionnement.
Par exemple :
{{product.backorders}}
{{objet.manage_stock}}
Récupère yes ou no si le produit gère les stocks.
Par exemple :
{{product.manage_stock}}
{{objet.qty}}
Récupère la quantité disponible du produit.
La quantité récupérée pour les produits variables est basée sur la somme des variations.
Vous pouvez également utiliser des paramètres avec cet attribut :
- float = nombre de décimales.
Par exemple :
{{product.qty float=1}}
{{objet.is_in_stock}}
Récupère "in stock" si le produit est en stock ou "out of stock" si le produit est indisponible.
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
Par exemple :
{{product.is_in_stock in_stock="In stock" out_of_stock="No more Stock"}}
{{objet.availability}}
Récupère soit "in stock" si le produit est en stock, "out of stock" si le produit est en rupture de stock, "available for order" si le produit est en 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
Par exemple :
{{product.availability in_stock="Currently in stock" out_of_stock="Out of stock" backorderable="Available for order"}}
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.
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 = 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 variations associées à des produits variables :
{{parent.price currency=EUR vat_rate=20}}
{{objet.min_price}}
Récupère le prix minimum.
Cet attribut est utilisé pour les produits variables.
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 variables.
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}}
{{objet.regular_price}}
Récupère le prix de base et ignore n'importe quel autre prix.
Par exemple :
{{product.regular_price}}
{{objet.has_special_price}}
Récupère yes si un prix spécial existe, sinon no.
Vous pouvez également utiliser des paramètres avec cet attribut :
- yes = valeur à récupérer si un prix spécial existe.
- no = valeur à récupérer s'il n'y a pas de prix spécial.
Par exemple :
{{product.has_special_price yes="Special price" no="No special price"}}
{{objet.sale_price}}
Récupère le prix spécial.
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.
Par exemple :
{{product.sale_price_effective_date}}
{{objet.sale_price_from}}
Récupère la date de début du prix spécial..
Par exemple :
{{product.sale_price_from}}
{{objet.sale_price_to}}
Récupère la date de fin du prix spécial.
Par exemple :
{{product.sale_price_to}}
{{objet.tax_status}}
Récupère le statut de la taxe.
Par exemple :
{{product.tax_status}}
{{objet.tax_class}}
Récupère la classe de taxe.
Par exemple :
{{product.tax_class}}
VARIANTES DE PRODUIT
Dans le cas où vous avez des variantes de produits (couleur, taille, genre), alors vous pouvez utiliser les attributs de base suivants. Attention, ces attributs sont des exemples et peuvent différer selon la configuration de votre boutique WooCommerce.
{{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}}
PARAMETRES GENERAUX
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é.
Par exemple :
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 prefix="$"}}
{{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é.
Par exemple :
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 suffix=" USD"}}
{{objet.attribut as="myVariable"}}
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).
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 hidden then we display the parent product url, otherwise we use the product url-->
<url>{{parent.url if="visibility==hidden" | 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
Par exemple :
<!-- Product description will be displayed only if product sku is banana -->
<name>{{product.description if="product.sku==banana"}}</name>
{{objet.attribut output="functions"}}
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.
Par 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.
Par 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),0,100)"}}</name>
Vous pouvez également utiliser la valeur null pour ne rien afficher ou une chaine de caractères pour remplacer la valeur à afficher.
Par exemple :
<!-- If product price is greater than $10 then display "Free Shipping"-->
<shipping_cost>{{product.price if="product.price>10" output="'Free Shipping'"}}</shipping_cost>
FONCTIONS BASIQUES
Vous pouvez utiliser n'importe quelle fonctions PHP ainsi que les fonctions ci-dessous qui ont été créées spécialement pour Simple Google Shopping avec n'importe quel attribut défini par défaut dans votre back-office WooCommerce mais également avec tous les attributs que vous avez créés pour vos produits (eg: 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 :
{{object.attribute output=”function(parameters)”}}
Vous pouvez également appliquer une ou plusieurs fonctions à chaque attribut en utilisant cette syntaxe :
{{object.attribute output=”function1(function2(function3($self,parameters)))”}}
Toutes les options sont exécutées dans l'ordre suivant :
<title>{{product.name}}</title>
<title>{{product.name output="strtoupper($self)"}}</title>
<title>{{product.name output="strtoupper(substr($self,15,'...'))"}}</title>
Ce qui produira :
<title>V-Neck T-Shirt</title>
<title>V-NECK T-SHIRT</title>
<title>V-NECK T-SHI...</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 du module Simple Google Shopping.
strtoupper($self)
Transforme la valeur en lettres capitales.
Par exemple :
<g:title>{{product.name output="strtoupper($self)"}}</g:title>
strtolower($self)
Transforme la valeur en lettres minuscules.
Par exemple :
<tag>{{product.name output="strtolower($self)"}}</tag>
implode($separator,$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="implode('-',$self)"}} </activity>
Donnera : Outdoor-Running-Warmup-Lounge-Gym
html_entity_decode($self)
Convertit toutes les entités HTML en caractères applicables.
Par exemple :
<description> {{product.description output="html_entity_decode($self)"}} </description>
strip_tags($self)
Supprime tous les tags HTML.
Par exemple :
<description> {{product.description output="strip_tags($self)"}} </description>
htmlentities($self)
Convertit tous les caractères applicables en entités HTML.
Par exemple :
<description> {{product.description output="htmlentities($self)"}} </description>
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="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="strip_tags(substr($self,50,'...'))"}} </description>
API PHP pour Simple Google Shopping
Avec Simple Google Shopping, vous pouvez utiliser les scripts PHP de différentes façons afin de 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 ... ?>)
Uniquement pour Data Feed Manager.
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é, Simple Google Shopping 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 à Simple Google Shopping.
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_simplegoogleshopping_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)