Get Started
Why ISO 4217 is used for Google, Facebook, Bing, and Pinterest in XML feeds - AdTribes
  1. Home
  2. Knowledge Base
  3. General Feed Tips
  4. Why ISO 4217 is used for Google, Facebook, Bing, and Pinterest in XML feeds

Why ISO 4217 is used for Google, Facebook, Bing, and Pinterest in XML feeds

When generating XML feeds for Google, Facebook, Bing, and Pinterest, currency values must be formatted correctly to ensure they are processed without errors. These platforms require prices to use a period as the decimal separator, no thousand separators, and three-letter currency codes. The currency codes are defined by ISO 4217, while the separator rules come from each platform’s own feed specification.

Submitting feeds that do not meet these platform formatting requirements will result in feed rejections or incorrect price parsing across Google Merchant Center, Facebook Catalog, Microsoft Bing Shopping, and Pinterest Catalogs. Product Feed Pro and Product Feed Elite handle this formatting automatically for all of these platforms.

If you need to use regional separators instead of this format, a developer-level workaround using PHP snippets is available. See the Using regional separators section below. Note that this approach is unsupported.

Requirements

  • Product Feed Pro or Product Feed Elite installed and active
  • WooCommerce installed and configured with your store currency
  • At least one product feed configured for Google, Facebook, Bing, or Pinterest

Understanding ISO 4217 and feed formatting rules

ISO 4217 is the international standard for currency codes. It defines the three-letter codes used to identify currencies across financial and commercial systems, such as USD for US Dollar, EUR for Euro, and JPY for Japanese Yen. Google, Facebook, Bing, and Pinterest all require these ISO 4217 currency codes in product feed submissions.

The decimal and thousand separator rules are not part of ISO 4217. They come from each platform’s own feed specification, though all four platforms align on the same requirements:

  • Decimal separator: A period (.) must be used for decimal values.
  • Thousand separators: Not used. Omitting them prevents parsing errors.
  • Currency codes: The ISO 4217 three-letter code (e.g., USD, EUR, JPY) is appended to the price value.

Why Google, Facebook, Bing, and Pinterest require this format

When submitting product feeds to Google Merchant Center, Facebook Catalog, Microsoft Bing Shopping, or Pinterest Catalogs, currency values must follow these formatting rules to avoid feed errors. These platforms enforce a uniform standard because:

  1. Prevents data misinterpretation: Some countries use commas (,) as decimal separators and periods (.) for thousands (e.g., 1.000,50 instead of 1,000.50). Without standardisation, this leads to incorrect price parsing.
  2. Ensures consistency: By requiring the same decimal (.) format, platforms can accurately interpret price values regardless of regional differences.
  3. Mandatory feed compliance: Google, Facebook, Bing, and Pinterest reject feeds that do not adhere to their required formatting. See the official documentation for each platform: Google, Facebook, Bing, Pinterest.

How Product Feed Pro handles this formatting

Product Feed Pro and Product Feed Elite automatically format prices in your XML feeds to meet these platform requirements. You do not need to configure anything. The plugin handles this by default:

  • Prices are always formatted using a period (.) as the decimal separator.
  • No thousand separators are included to prevent parsing issues.
  • The correct three-letter currency code (e.g., USD, GBP, EUR) is appended to the price values, read from your WooCommerce store currency setting (get_woocommerce_currency()).

For example:

Regional format (not accepted by these channels)Required feed format
1.234,56 EUR1234.56 EUR
10,500.99 USD10500.99 USD
5.000,75 GBP5000.75 GBP

Note: the regional formats in the left column are not inherently wrong. They are perfectly valid in many countries. They are simply not accepted by Google, Facebook, Bing, and Pinterest, whose feed parsers require the period-decimal format shown on the right.

Common issues and fixes

If your feed is rejected due to currency formatting errors, check for:

  • Incorrect decimal separators: use . instead of ,
  • Use of thousand separators: remove them entirely
  • Missing currency codes: ensure prices include the proper three-letter code

Using regional separators instead of the required format

By default, Product Feed Pro and Product Feed Elite enforce the correct formatting for all Google, Facebook, Bing, and Pinterest feeds. However, if your store uses regional number formatting (for example, a dot as the thousand separator and a comma as the decimal separator) and you need your feeds to reflect this, you can use the PHP snippets below to override the default behaviour.

Caution: This is a developer-level customisation. Support is not available for issues that arise from applying these snippets, so proceed only if you are comfortable editing your theme’s functions.php or using a code snippet plugin such as WPCode.

First, ensure your WooCommerce currency options match your preference. Navigate to WooCommerce → Settings → General and scroll to the Currency options section. For European regional formatting, set the thousand separator to a dot (.) and the decimal separator to a comma (,).

WooCommerce General Settings showing the Currency options section with decimal and thousand separator fields
WooCommerce → Settings → General: Currency options section showing decimal and thousand separator fields

Next, add the following snippet to your functions.php or via the WPCode plugin. This forces all your feeds and templates to use your preferred separators via the adt_product_feed_localize_price_args filter. For European regional formatting, the snippet must set 'decimal' => ',' and 'thousand' => '.':

Then add one or more of the following snippets to remove the required formatting for specific platforms via the adt_pfp_localize_price_iso4217_feeds filter:

For example, a complete snippet to remove the required formatting for Google feeds only:

After adding the snippets, refresh your feeds. The output will reflect your regional separator preferences:

XML feed output showing prices formatted with regional separators after applying the snippet
XML feed output after applying the regional separator snippet. Prices now use the store’s configured separators.

Frequently asked questions

Does Product Feed Pro apply this formatting to all feed types or only Google, Facebook, Bing, and Pinterest?

This formatting is applied specifically to Google, Facebook, Bing, and Pinterest feed templates, as these platforms explicitly require it. Other feed types follow your WooCommerce currency settings unless you configure additional overrides.

My feed was rejected for a price format error. What should I check first?

First confirm that Product Feed Pro is generating prices with a period as the decimal separator, no thousand separator, and a three-letter currency code (e.g., 1234.56 USD). If the feed looks correct, check that you have not applied any regional separator snippets that could be overriding the output. Also verify your WooCommerce currency settings match your intended output.

Will this formatting affect prices displayed on my storefront?

No. This formatting only applies to the XML feed output sent to Google, Facebook, Bing, and Pinterest. Your storefront prices continue to display using your WooCommerce currency formatting settings.

I use a currency with no decimal places (e.g., JPY). How is this handled?

For Google, Facebook, Bing, and Pinterest feeds, prices are always formatted with two decimal places regardless of your WooCommerce decimal settings. A Japanese Yen price of 1500 is submitted as 1500.00 JPY, not 1500 JPY. This is enforced by the plugin to meet platform requirements.

I applied the regional separator snippets but my feed still shows the standard format. Why?

Make sure you have added both snippets: the first sets your preferred separators via adt_product_feed_localize_price_args (with 'decimal' => ',' and 'thousand' => '.' for European formatting), and the second removes the specific platform from the enforcement list via adt_pfp_localize_price_iso4217_feeds. Also ensure you have refreshed the affected feed after saving the snippets, as feeds are cached and will not update until regenerated.

Can I apply regional separators to only one platform and keep the standard format for the others?

Yes. The adt_pfp_localize_price_iso4217_feeds filter lets you remove individual platforms (Google, Facebook, Bing, or Pinterest) from the enforcement list independently. Simply include only the snippet for the platform you want to override and leave the others out.

How do I refresh a feed after making changes?

Go to Product Feed → Manage feeds, locate the feed you want to regenerate, and click Refresh Feed. The feed file will be rebuilt using the current plugin settings and any active snippets.

Does this setting affect sale prices and regular prices the same way?

Yes. The formatting is applied consistently to all price fields submitted in the feed, including regular prices, sale prices, and any custom price attributes mapped in your feed template.

What happens if WooCommerce is set to display prices without decimals?

For Google, Facebook, Bing, and Pinterest feeds, the plugin always outputs prices with two decimal places. Your WooCommerce decimal settings are not applied to these enforced feeds. For example, a price of 1500 will appear as 1500.00 in the feed regardless of how WooCommerce is configured to display it on your storefront.

Help & support

If you need any further assistance with currency formatting in your product feeds, feel free to open a support ticket to reach out to the support team.

Please note that the ticket support system is exclusive to Product Feed Elite users.

If you’re using only the Product Feed Pro plugin, feel free to open a new topic in the WordPress.org forum.

Was this article helpful?

Related Articles

Complete Your Purchase
AdTribes WooCommerce Product Feed

The best WooCommerce product feed plugin

  • AdTribes Pty Ltd
    ABN: 40 675 636 816
Product
Resources & Info
Partner Sites
Rymera