A powerful, installable Saleor extension that brings wishlist functionality to your e-commerce store. Let your customers save products they love and come back to them later—boosting engagement and conversions.
- Increase Customer Retention - Keep shoppers engaged by letting them save items for later
- Boost Conversions - Wishlists act as a gentle reminder, bringing customers back to complete purchases
- Understand Your Customers - Track which products customers are interested in
- Social Proof - Enable wishlist sharing to drive organic traffic
- Saleor Integration - Seamless installation via
/manifestendpoint - Wishlist Management
- Create new wishlists
- Retrieve single or all wishlists per user
- Update wishlist details (rename, modify)
- Delete wishlists
- Product Management
- Add products to wishlist
- Remove products from wishlist
- Webhook Support - Real-time synchronization with Saleor events
- Authentication - Secure access with JWT and JWKS
- Health Check Endpoint - Monitor service status easily
- Social Sharing - Share wishlists via link or social media
- E-mail Notifications - Get alerted when wishlist items are back in stock
- Quick Actions - Add items to cart directly from wishlist
- Backend: Go 1.25+ with Gorilla Mux
- Database: PostgreSQL 16
- Authentication: JWT with JWKS
- Logging: Structured logging with Zerolog
- Container: Docker & Docker Compose ready
- Cloud: AWS ECS compatible
- Go 1.25 or higher
- PostgreSQL 16
- Docker & Docker Compose (optional)
- Clone the repository
git clone https://github.com/GrzegorzDerdak/wishlist
cd wishlist-- Set up environment variables
cp .env.example .env
# Edit .env with your configuration- Run with Docker Compose
docker-compose up --build- Or run locally
go mod download
go run main.goThe API will be available at http://localhost:8080
- In your Saleor dashboard, go to Apps → Install External App
- Enter the manifest URL:
http://your-domain:8080/manifest - Authorize the app
- Start using wishlists! 🎉
Wishlists
GET /api/v1/wishlists- Get all wishlists for authenticated userPOST /api/v1/wishlists- Create a new wishlistGET /api/v1/wishlists/{id}- Get specific wishlistPUT /api/v1/wishlists/{id}- Update wishlistDELETE /api/v1/wishlists/{id}- Delete wishlist
Health Check
GET /healthcheck- Service health status
wishlist-app/
├── bruno/ # Bruno API collection for testing
├── internal/ # Private application code
│ ├── config.go # Configuration management
│ ├── middleware.go # Request middleware
│ └── database.go # Database connection
├── wishlists/ # Wishlist domain
│ ├── handler.go # HTTP handlers
│ ├── service.go # Business logic
│ ├── repository.go # Data access
│ └── models.go # Domain models
├── saleor/ # Saleor integration
│ ├── auth.go # HTTP handlers
│ ├── handlers.go # Saleor manifest and webhooks
│ ├── repository.go # Data access
│ └── models.go # Domain models
├── logger/ # Logging utilities
└── docker-compose.yml # Container orchestration
└── Dockerfile # Docker image definitionLICENSE © 2025 Grzegorz Derdak