Skip to main content

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.

note

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.

Per-country mode radio buttons for France, United Kingdom, and United States in the Shipping Countries tab

Mode Meanings

Each country gets one of three radio-button options:

ModeConfig valueLabel in Back OfficeWhat appears in the feed
Do not generate0Do not generateNo shipping line for this country — the country is skipped entirely
Country Mode1Country ModeOne shipping line per carrier, using the country-level zone price
States Mode2States ModeOne 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

ProblemSolution
A country I ship to is missing from the listGo to International > Countries in PrestaShop and make sure the country is set to active
States Mode produces no output for USConfirm your carriers have zone assignments that cover US states in Shipping > Carriers > edit carrier > zones
All US states show the same priceYour 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 thereSet that country to Do Not Generate
Country Mode shows incorrect priceCheck 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.