
- MODX 3
- PHP 8.1
- miniShop3


ms3Favorites adds wishlists for MiniShop3 products and other resource types (resources, articles, pages, custom). Users save products for later. The list is stored in the browser (localStorage or cookie), with optional DB sync for logged-in users and guests (when guest_db_enabled).
v3.0.0: resource_type for all entity kinds, mode="list" (hide whole card on remove), mxQuickView and mFilter integration, guest rows in DB, popularity snippet, JS callbacks, Add to cart from the wishlist page.
Wishlist page (ms3FavoritesPage): tabs and page shell. For resource_type=products with serverList=1 (default), product cards are rendered server-side in the chunk (pdoPage + msProducts). With serverList=0, favorites.js fills the list (up to 100 items per tab, no in-chunk paging). For non-product types the list still comes from JS after sync. For a fully custom paginated view use ms3FavoritesIds + pdoPage on another resource (see ms3FavoritesPage, Integration).
Naming: user-facing — ms3Favorites; in code (folders, snippets, lexicon) — ms3favorites.
localStorage (default) or cookie, no registrationguest_db_enabled, guest list is stored by session_iddefault, gifts, plans, etc. (up to max_lists)/wishlist/share?token=xxx, copy someone else’s listms3FavoritesPage: SSR product list when serverList=1 (default) and resource_type=products; otherwise JS render; server tab counts and ms3f.total; custom pagination via ms3FavoritesIds + pdoPage on a separate pageproducts, resources, articles, pages, customms3fLexiconScriptms3f), CSS variablestplCatalogRowMs3f for a favorites button in each pdoPage + msProducts row (integration)ms3fConfig.notify → window.ms3Message.show (MiniShop3) → iziToast (lazy-loaded from assets/components/ms3favorites/vendor/izitoast/, base URL in ms3fConfig.iziToastBaseUrl from ms3fLexiconScript).| Requirement | Version |
|---|---|
| MODX Revolution | 3.0+ |
| PHP | 8.1+ |
| MySQL | 5.7+ / MariaDB 10.3+ |
See Quick start for requirements and ModStore steps.
Package is available at modstore.pro.
Load lexicon, CSS and JS on the site, add the button on the product card and output the wishlist block.
See: Quick start and Frontend setup.
| Term | Description |
|---|---|
| Wishlist | List of favorite products (default list is default) |
| Sync | Moving the list from localStorage to the DB when the user logs in |
| Sharing | Public link to a list by token |
| Popularity | Number of users who added the resource to their wishlist |