Medusa plugins
W
Wishlist
Alphabite's Medusa Wishlist Plugin
π§ββοΈ 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
- π¦ Installation
- π§ Plugin Options
- π¦ API Endpoints
- π§βπ» SDK Usage
- π§ͺ Guest Wishlist Flow
- π§© Requirements
- π Postman Collection
- π€ Contributing
β¨ 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 valueswishlistFields: [],wishlistItemsFields: [],includeWishlistItems: true,includeWishlistItemsTake: 5,allowGuestWishlist: true,},},]
π§ Plugin Options
Option | Type | Default | Description |
---|---|---|---|
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 .
Method | Endpoint | Auth | Description |
---|---|---|---|
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 wishlistawait sdk.alphabite.wishlist.create({ name: 'My Sneakers' })// Add itemawait sdk.alphabite.wishlist.addItem({id: 'wishlist_id',product_variant_id: 'variant_id',})// List itemsconst { data } = await sdk.alphabite.wishlist.listItems({ id: 'wishlist_id' })
π§ͺ Guest Wishlist Flow
Guest wishlists work like guest carts:
- Create a wishlist (no auth required)
- Save the in a cookie
- Use that ID for listing/adding/removing items
- 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 ποΈ