Shipping Prices — Per-country Modes
For every country in your PrestaShop shipping zones, you choose exactly how its shipping prices appear in the feed: skip the country entirely, publish one line for the whole country, or expand into a separate line per state or region.
Available since v2.3.5
Overview
Facebook and Instagram require the shipping field in your product feed to list prices as country-specific (and optionally state-specific) entries. When your store ships to multiple countries or to a country with regional pricing zones — such as the United States or Canada — you need fine-grained control over what appears in each product's shipping column.
The Countries tab inside the shipping configuration panel gives you three choices for every active country in your store. The module automatically defaults new countries to the most appropriate mode: countries that have states defined in PrestaShop default to States Mode; all others default to Country Mode.

Mode Meanings
Each country gets one of three radio-button options:
| Mode | Config value | Label in Back Office | What appears in the feed |
|---|---|---|---|
| Do not generate | 0 | Do not generate | No shipping line for this country — the country is skipped entirely |
| Country Mode | 1 | Country Mode | One shipping line per carrier, using the country-level zone price |
| States Mode | 2 | States Mode | One shipping line per carrier per state, each using that state's zone price |
Do Not Generate (value 0)
The country is excluded from all shipping output. No shipping entries are written for this country, regardless of which carriers serve it.
Use this when you do not actually deliver to that country, when the country is active in PrestaShop for reasons unrelated to shipping (billing addresses, tax rules), or when you want to suppress shipping display for a specific market.
Country Mode (value 1)
The module writes one shipping line per carrier for the country as a whole. The line uses the zone price that covers the country in PrestaShop's carrier configuration. The feed format is:
CC::CarrierName:9.90 EUR
where CC is the ISO country code and the empty field between the two colons indicates no state subdivision.
Use Country Mode for countries where a single national price applies — most European countries, for example — or where state-level detail is not required by your Facebook catalogue setup.
States Mode (value 2)
The module expands the country into one shipping line per carrier per state. Each line uses the zone price that covers that particular state in PrestaShop's carrier configuration. The feed format is:
US:CA:CarrierName:7.99 USD
US:NY:CarrierName:7.99 USD
where the second field is the state's ISO code.
Use States Mode for countries where carrier zones are defined at state or region level, most commonly the United States and Canada. If your carrier uses a single zone for the entire country even though states exist in PrestaShop, all state lines will show the same price — which is valid but verbose.
Note: States Mode only produces meaningful output if the states in that country have their own carrier zone assignments in PrestaShop. If all states share one zone, Country Mode produces the same result with a single, cleaner line.
When to Use Each Mode
Typical setup for a European store shipping internationally:
- European home country: Country Mode — single national rate
- Other EU countries you ship to: Country Mode — flat rates per country
- United States (if you ship there): States Mode — US zone pricing is often state-level
- Countries you do not ship to: Do Not Generate — keeps the feed clean
US-based store:
- United States: States Mode — matches how most US carriers price by state
- Canada: States Mode if you have provincial zone pricing; Country Mode for a flat Canada-wide rate
- International destinations: Country Mode or Do Not Generate depending on whether you ship there
Important Notes
- The mode list shows only countries that are active in your PrestaShop back office. If a country is not in the list, activate it first under International > Countries.
- Setting a country to Do Not Generate does not remove it from PrestaShop's active countries list — it only suppresses shipping output for that country in the feed.
- When the module is first configured, countries that have states defined in PrestaShop are defaulted to States Mode (value 2); all other countries are defaulted to Country Mode (value 1). No country defaults to Do Not Generate.
- These settings apply per shop in a multi-shop setup. Each shop maintains its own per-country mode configuration under the
FPF_COUNTRY_MODE_{ISO}keys. - The shipping section as a whole must be enabled (the Generate Shipping Prices toggle must be on) for any per-country mode to have effect.
Troubleshooting
| Problem | Solution |
|---|---|
| A country I ship to is missing from the list | Go to International > Countries in PrestaShop and make sure the country is set to active |
| States Mode produces no output for US | Confirm your carriers have zone assignments that cover US states in Shipping > Carriers > edit carrier > zones |
| All US states show the same price | Your carrier uses a single zone for all US states — this is correct behavior; consider switching to Country Mode to reduce feed verbosity |
| A country shows shipping but I do not ship there | Set that country to Do Not Generate |
| Country Mode shows incorrect price | Check the zone assignment for that country in the carrier's configuration — the zone price is read from PrestaShop's delivery range tables |
Frequently Asked Questions
Do I need to set a mode for every country in the list?
No. The module pre-fills a sensible default for every active country when you first install it. You only need to change the mode for countries where the default does not match your actual shipping setup.
What happens to countries set to States Mode that have no states defined in PrestaShop?
If a country has no states, States Mode behaves identically to Country Mode — the module falls back to writing a single country-level shipping line because there are no state entries to expand.
Can I set all countries to Do Not Generate and still include shipping for specific countries?
Yes. Set every unwanted country to Do Not Generate and only enable Country Mode or States Mode for the destinations you actually serve. The feed will only include shipping entries for those enabled countries.
Does changing a country's mode require regenerating the feed?
Yes. The mode setting is read at feed generation time. Save your changes and regenerate the feed for the new settings to appear in the output file.
Is States Mode required for the United States, or will Country Mode also work?
Country Mode is valid and will produce a single US::CarrierName:price line that Facebook accepts. States Mode is recommended if your carrier charges different rates by US state, because it gives Facebook more accurate data for matching buyers to the correct shipping cost.