@hollowpoint-io/medusa-plugin-redirects
v0.1.0
Published
URL redirects for Medusa v2 — admin CRUD, bulk import, and a store endpoint for Next.js middleware.
Maintainers
Readme
@hollowpoint-io/medusa-plugin-redirects
URL redirects for Medusa v2. Medusa has no redirects primitive — this plugin is the store of truth.
Authored by Billy Mahmood. Maintained by Hollowpoint. MIT licensed.
Install
npm install @hollowpoint-io/medusa-plugin-redirects// medusa-config.ts
module.exports = defineConfig({
plugins: [
{
resolve: "@hollowpoint-io/medusa-plugin-redirects",
options: {
// Optional. Used to collapse same-host absolute destinations
// when detecting redirect chains/loops.
primary_domain: "example.com",
},
},
],
})Then run migrations:
npx medusa db:migrateBuilt and tested against Medusa >=2.17 <3.
What you get
- Admin page URL Redirects — search, add, edit, disable, delete
POST /admin/redirects/bulk—{ redirects: [...], source? }GET /store/redirects— full active set, or?path=for one lookup- Shopify-style provenance (
shopify/manual/import)
Storefront
Do not hit the database on every request. Fetch the set at build or in middleware and cache it:
// Next.js middleware / next.config redirects()
const res = await fetch(`${BACKEND_URL}/store/redirects`)
const { redirects } = await res.json()
// [{ from: "/old", to: "/new", status: 301 }, ...]GET /store/redirects?path=/old/ also matches trailing-slash and query permutations.
Options
| Option | Type | Default | Notes |
|---|---|---|---|
| primary_domain | string | unset | Hostname whose absolute to_path URLs are treated as on-site for chain/loop detection |
API
| Method | Path | Notes |
|---|---|---|
| GET | /admin/redirects | ?q=&status=active\|inactive&limit=&offset= |
| POST | /admin/redirects | upsert one by from_path |
| DELETE | /admin/redirects/:id | |
| GET | /admin/redirects/stats | totals, chains, loops |
| POST | /admin/redirects/bulk | { redirects, source? } |
| GET | /store/redirects | full set or ?path= |
Develop
npm install
npm test
npm run build # medusa plugin:build
npm run dev # medusa plugin:develop (yalc watch)Need this installed and wired on a live Medusa store? Hollowpoint does Medusa migrations and plugin work.
