Introduction
Lors de la génération de flux XML pour Google, Facebook et Bing, il est essentiel de formater correctement les valeurs monétaires pour garantir leur traitement précis. Ces plateformes adhèrent à la norme ISO 4217, qui spécifie comment les devises doivent être représentées, y compris leurs séparateurs décimaux et de milliers.
Facebook : https://www.facebook.com/business/help/120325381656392?id=725943027795860
Google : https://support.google.com/merchants/answer/7052112?hl=en
Bing : https://learn.microsoft.com/en-us/advertising/transaction-message/reference
Comprendre la norme ISO 4217
La norme ISO 4217 est la norme internationale pour les codes et le formatage des devises. Elle garantit la cohérence des données financières sur différentes plateformes et dans différents pays. L'un de ses éléments clés est le formatage des valeurs numériques, qui comprend :
- Séparateurs décimaux : La norme exige que les décimales soient représentées par un point (
.). - Séparateurs de milliers : La norme évite généralement l'utilisation de séparateurs de milliers pour éviter les erreurs d'analyse.
- Codes de devise : La norme ISO 4217 utilise des codes de devise à trois lettres (par exemple,
USD,EUR,JPY) au lieu de symboles.
Pourquoi Google, Facebook et Bing exigent la norme ISO 4217
Lors de la soumission de flux de produits au Google Merchant Center, au catalogue Facebook ou à Microsoft Bing Shopping, les valeurs monétaires doivent être conformes aux règles de la norme ISO 4217 pour éviter les erreurs de flux. Ces plateformes appliquent une norme uniforme pour le formatage des devises car :
- Empêche la mauvaise interprétation des données : Certains pays utilisent des virgules (
,) comme séparateurs décimaux et des points (.) pour les milliers (par exemple,1.000,50au lieu de1,000.50). Si ce n'est pas standardisé, cela peut entraîner une analyse incorrecte des prix. - Assure la cohérence : En utilisant le même format décimal (
.), les plateformes peuvent interpréter avec précision les valeurs de prix, quelles que soient les différences régionales. - Conformité obligatoire des flux : Google, Facebook et Bing rejettent les flux qui ne respectent pas leur formatage requis.
Comment notre plugin gère le formatage ISO 4217
- Les prix sont toujours formatés avec un point (
.) comme séparateur décimal. - Aucun séparateur de milliers n'est inclus pour éviter les problèmes d'analyse.
- Le code de devise à trois lettres correct (par exemple,
USD,GBP,EUR) est ajouté aux valeurs de prix.
Par exemple :
| Format incorrect (régional) | Format ISO 4217 correct |
|---|---|
| 1,23 EUR | 1234.56 EUR |
| 10,50 USD | 10500.99 USD |
| 5,75 GBP | 5000.75 GBP |
Problèmes courants et solutions
Si votre flux est rejeté en raison d’erreurs de formatage monétaire, vérifiez ceci :
- Séparateurs décimaux incorrects (utilisez
.au lieu de,) - Utilisation de séparateurs de milliers (supprimez-les complètement)
- Codes monétaires manquants (assurez-vous que les prix incluent le code à trois lettres approprié)
Et si je veux utiliser des séparateurs régionaux
Attention : Si vous utilisez cet extrait, veuillez noter que nous ne pouvons pas fournir de support en cas de problèmes.
Tout d’abord, assurez-vous que vos options monétaires sont définies selon vos préférences. Dans la plupart des cas, le séparateur de milliers est un point (.) et le séparateur décimal est une virgule (,)

Ajoutez maintenant l’extrait pertinent à votre fichier functions.php ou via le plugin WPCode :
La première étape consiste à ajouter cet extrait afin que tous vos flux/modèles suivent vos séparateurs décimaux et de milliers préférés
// Force localization for all feeds
add_filter('adt_product_feed_localize_price_args', function($args) {
$args['decimal_separator'] = '.';
$args['thousand_separator'] = ',';
return $args;
});
Ajoutez ensuite un ou plusieurs des éléments suivants pour supprimer le format ISO4217 pour Facebook, Google et Bing
//Google Feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
// Remove all Google feeds from ISO4217 formatting
return array_filter($feeds, function($feed) {
return strpos($feed, 'google_') !== 0;
});
});
//Facebook Feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
// Remove all Facebook feeds from ISO4217 formatting
return array_filter($feeds, function($feed) {
return strpos($feed, 'facebook_') !== 0;
});
});
//Bing Feeds
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
// Remove all Bing feeds from ISO4217 formatting
return array_filter($feeds, function($feed) {
return strpos($feed, 'bing_') !== 0;
});
});
Un code complet pour dire que vous souhaitez supprimer le format ISO 4217 pour Google est
// Force localization for all feeds
add_filter('adt_product_feed_localize_price_args', function($args) {
$args['decimal_separator'] = '.';
$args['thousand_separator'] = ',';
return $args;
});
add_filter('adt_pfp_localize_price_iso4217_feeds', function($feeds) {
// Remove all Google feeds from ISO4217 formatting
return array_filter($feeds, function($feed) {
return strpos($feed, 'google_') !== 0;
});
});
Actualisez les flux une fois que vous avez ajouté les extraits. Le résultat sera quelque chose comme ceci :



