Lookup a user's region using MaxMind.
This plugin is made to work with MedusaJS. You can find the documentation here. Here's what you'll need to get started with this plugin:
- Install the plugin:
npm install medusa-plugin-ip-lookup-maxmind-geoip2
# or
yarn add medusa-plugin-ip-lookup-maxmind-geoip2
-
Obtain a IP geolocation database file from MaxMind. You can download a GeoLite2 Free Geolocation Data here.
-
Add the plugin to your
medusa-config.js
file (inside theplugins
array):
{
resolve: `medusa-plugin-ip-lookup-maxmind-geoip2`,
/** @type {import('medusa-plugin-ip-lookup-maxmind-geoip2').PluginOptions} */
options: {
maxmind_db_path: "<PATH_TO_MAXMIND_DB_FILE>",
route_enabled: true, // This route is under store so it's public
},
}
- Check if the plugin is working by calling api call
GET /store/ip-lookup
with query paramip
(e.g. `GET /store/ip-lookup)
You need to have a valid IP address in order to get a valid response. Localhost will not work.
{
"error": false,
"message": "success",
"region": {
"id": "reg_01HEAZ934BD9JA8SE7033JHYHR",
"created_at": "2023-11-03T16:11:53.194Z",
"updated_at": "2023-11-03T16:11:53.194Z",
"deleted_at": null,
"name": "EU",
"currency_code": "eur",
"tax_rate": 0,
"tax_code": null,
"gift_cards_taxable": true,
"automatic_taxes": true,
"tax_provider_id": null,
"metadata": null
},
"country_code": "fr"
}
{
/**
* DB PATH
*/
maxmind_db_path: string;
/**
* IP LOOKUP SERVICE URL (OPTIONAL)
* @returns {error: boolean, region: Region | null, country_code: string | null}
*/
route_enabled?: boolean;
}
Thanks to
- GitHub - @stnguyen90
- Twitter - @stnguyen90
- Discord - BalistarDrake#3823