Medusa plugins
W

Wishlist

Alphabite's Medusa Wishlist Plugin

Need customizations for this plugin?

Get in touch
npm install @alphabite/medusa-wishlist
Category
other
Built by
alphabite
Type
unknown
Last updated
1 month ago
Monthly downloads
265
Github stars
1

πŸ§žβ€β™‚οΈ Wishlist Plugin for Medusa

The Alphabite Wishlist Plugin is the most feature-complete wishlist system for MedusaJS. It supports both authenticated and guest users, multiple wishlists per user, and a full-featured SDK client for frontend integration.

This plugin ships with:

  • πŸ”Œ A fully typed JS SDK plugin
  • πŸ“­ A Postman collection
  • βœ… Support for guest & authenticated customers

πŸ“š Table of Contents


✨ Features

  • βœ… Multiple wishlists per customer
  • βœ… Add/remove items to/from any wishlist
  • βœ… Guest wishlist supported + transfer when registered
  • βœ… Fully typed Medusa JS SDK integration with our SDK client
  • βœ… Pagination and filtering built-in

πŸ“¦ Installation

Install the plugin via npm:

npm install @alphabite/medusa-wishlist

In your , register the plugin:

const plugins = [
{
resolve: '@alphabite/medusa-wishlist',
options: {
// all are optional, read bellow about default values
wishlistFields: [],
wishlistItemsFields: [],
includeWishlistItems: true,
includeWishlistItemsTake: 5,
allowGuestWishlist: true,
},
},
]

πŸ”§ Plugin Options

OptionTypeDefaultDescription
Selectively include Medusa product or product variant fields on wishlist list/retrieve endpoints that have wishlist items included
Selectively include Medusa product or product variant fields on wishlist items list/retrieve endpoints
Automatically populate wishlist items in
Limit number of items if is true
Enables wishlist creation & usage without authentication (cookie-based)

πŸ“¦ API Endpoints

All endpoints are available under .

MethodEndpointAuthDescription
GETβœ…List wishlists for the current customer
POSTβž– (optional)Create a new wishlist
GETβž– (optional)Retrieve a wishlist by ID
PUTβœ…Update wishlist metadata
DELETEβœ…Delete a wishlist
POSTβœ…Transfer guest wishlist to logged-in user
GETβž– (optional)Get items in a wishlist
POSTβž– (optional)Add an item to the wishlist
DELETEβž– (optional)Remove an item from the wishlist

πŸ§‘β€πŸ’» SDK Usage

❗❗❗Read more about our Medusa compatible SDK here

import { AlphabiteMedusaClient, wishlistPlugin } from '@alphabite/sdk'
const sdk = new AlphabiteMedusaClient({
{
baseUrl,
debug: process.env.NODE_ENV === "development",
publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
},
[wishlistPlugin],
{
getAuthHeader: () => { return { authorization: `Bearer ${customerJwt}` } },
}
})
// Create wishlist
await sdk.alphabite.wishlist.create({ name: 'My Sneakers' })
// Add item
await sdk.alphabite.wishlist.addItem({
id: 'wishlist_id',
product_variant_id: 'variant_id',
})
// List items
const { data } = await sdk.alphabite.wishlist.listItems({ id: 'wishlist_id' })

πŸ§ͺ Guest Wishlist Flow

Guest wishlists work like guest carts:

  1. Create a wishlist (no auth required)
  2. Save the in a cookie
  3. Use that ID for listing/adding/removing items
  4. When the user signs up or logs in, call the endpoint to associate it:
await medusa.alphabite.wishlist.transfer({ id: wishlistId })

After that, the cookie is no longer needed.


🧩 Requirements

  • Medusa v2.5.0+
  • Works with both and

πŸ“­ Postman Collection

You’ll find the ready-to-import Postman collection at:

Use it to explore and test all endpoints interactively.


🀝 Contributing

We welcome issues, feedback, and PRs. Fork it, build it, improve it.

Let’s make commerce more personalized πŸ›οΈ