E-Commerce Requires WooCommerce

Headless Wishlist

Simple, lightweight wishlist for headless WooCommerce stores. Stores wishlist data in user meta (no custom tables). Includes automatic stale product cleanup, duplicate detection, and admin analytics for most-wishlisted products.

Features

Per-user product wishlists via REST API
User meta storage — no custom database tables
Automatic stale product cleanup on read
Duplicate detection (409 Conflict on add)
Configurable max items per wishlist
Admin analytics: top 20 most wishlisted products

API Endpoints

Method Path
GET /headless-wishlist/v1/items
POST /headless-wishlist/v1/items
DELETE /headless-wishlist/v1/items/{product_id}
DELETE /headless-wishlist/v1/items

API Example

# Add product to wishlist
curl -X POST https://store.example.com/wp-json/headless-wishlist/v1/items \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "Content-Type: application/json" \
  -d '{"product_id": 156}'

# List wishlist
curl https://store.example.com/wp-json/headless-wishlist/v1/items \
  -H "Authorization: Bearer eyJhbGci..."

FAQ

Why user meta instead of a custom table?
User meta keeps the plugin lightweight with zero database migrations. For typical wishlist sizes (under 100 items), the performance is identical and the data is automatically cleaned up when a user is deleted.