Skip to content

A Medusa plugin to lookup a user's country based on IP using MaxMind

License

Notifications You must be signed in to change notification settings

luluhoc/medusa-plugin-ip-lookup-maxmind-updated

 
 

Repository files navigation

medusa-plugin-ip-lookup-maxmind

About

Description

Lookup a user's region using MaxMind.

Preview

Preview

Set up this plugin

Requirements

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 Project

  1. Install the plugin:
npm install medusa-plugin-ip-lookup-maxmind-geoip2

# or

yarn add medusa-plugin-ip-lookup-maxmind-geoip2
  1. Obtain a IP geolocation database file from MaxMind. You can download a GeoLite2 Free Geolocation Data here.

  2. Add the plugin to your medusa-config.js file (inside the plugins 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
    },
  }
  1. Check if the plugin is working by calling api call GET /store/ip-lookup with query param ip (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.

Example Response

{
    "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"
}

OPTIONS

{
  /**
   * 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

About

A Medusa plugin to lookup a user's country based on IP using MaxMind

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.1%
  • JavaScript 4.9%