Skip to content

Treat French overseas departments (DROM) as FR for buyer country resolution - #1569

Open
Jgruet wants to merge 1 commit into
PrestaShopCorp:mainfrom
Jgruet:fix/drom-country-resolution
Open

Jgruet wants to merge 1 commit into
PrestaShopCorp:mainfrom
Jgruet:fix/drom-country-resolution

Conversation

@Jgruet

@Jgruet Jgruet commented Aug 26, 2026

Copy link
Copy Markdown

Self-Checks

  • I have performed a self-review of my code.
  • I have updated/added necessary technical documentation in the README file.

JIRA task link

Resolves: N/A — external community contribution (no JIRA ticket)

Summary

Map French overseas departments (DROM: GF, GP, MQ, RE, YT) to FR in the buyer
country resolution, so PayPal payment methods like Apple Pay and Google Pay are
correctly offered to buyers located in these territories.

QA Checklist Labels

  • Bug fix?
  • New feature?
  • Improvement?
  • Technical debt?
  • Covered by tests?

QA Checklist

N/A

Additional Context

CountryResolver::getBuyerCountryIsoCode() returned the raw ISO code of the
buyer's country. For buyers in a French overseas department/region (DROM) —
French Guiana (GF), Guadeloupe (GP), Martinique (MQ), Réunion (RE), Mayotte (YT)
— it returned the local code (e.g. GF).

These territories are an integral part of France and use the Euro, but the
eligibility lists in FundingSourceConstraint::getCountries() only contain FR.
As a result Apple Pay and Google Pay were considered ineligible for these buyers:
getEligibleFundingSources() excluded them and the PayPal SDK was built without
the applepay / googlepay components, so the buttons never rendered — even on
eligible devices/browsers.

This is a real blocker for merchants operating in the DROM (single-country shops
using GF, GP, …), where PayPal actually supports these methods (the merchant
account is FR / EUR).

This PR normalizes DROM ISO codes to FR in the buyer country resolution, the
same way UK is already normalized to GB. The change is scoped to ps_checkout's
payment-method eligibility resolution and does not alter the shop's country data,
taxes, addresses or invoices.

Verified live with a French Guiana (GF) buyer: Apple Pay is now offered on Safari
and the payment is accepted end-to-end by PayPal.

Frontend Changes

image

  • Verify if the version is correct.
  • Update demo environments used for testing.
  • Ensure changelog contains all changes.
  • Update documentation if needed.
  • Test if everything works properly.

…lution

Signed-off-by: Jgruet <jon.gruet@yahoo.fr>

@nicohery nicohery left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi! This one makes sense : these territories are part of France and use the euro, so it's odd that buyers there get nothing.

Before it goes further, it'd probably be worth checking with PrestaShop or PayPal support whether these payment methods are officially supported for buyers in the DROM and which territories should be on the list.

There are probably contractual constraints to be verified as well.

@matks matks left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @Jgruet thanks for the PR. It looks legit but as mentioned by @nicohery I will check with PayPal developer support team.

I can see here https://developer.paypal.com/reference/country-codes/ that they have listed GF as a valid country code. But the page https://developer.paypal.com/v5/apple-pay/integrate is not 100% clear about that.

@matks

matks commented Sep 2, 2026

Copy link
Copy Markdown
Contributor
Screenshot 2026-09-02 at 21 02 56

@matks

matks commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Just to keep you informed I'm still waiting for an answer from PayPal to make sure we don't do something wrong 😉

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants