Skip to content
ms3Favorites
ms3Favorites
Wishlists for MiniShop3 and other resources — browser storage, DB sync
  1. Extras
  2. ms3Favorites

ms3Favorites

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.

Features

  • Wishlist block — output by list of IDs (AJAX via connector or server-side snippet)
  • Browser storagelocalStorage (default) or cookie, no registration
  • DB sync — for logged-in users: on login, data from localStorage is moved to the DB
  • Guests in DB — when guest_db_enabled, guest list is stored by session_id
  • Multiple listsdefault, gifts, plans, etc. (up to max_lists)
  • List sharing — public link /wishlist/share?token=xxx, copy someone else’s list
  • Page /wishlist/ms3FavoritesPage: 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 page
  • Cart integration — “Add all to cart”, “Add selected”
  • Popularity — “In N users’ wishlists”
  • Resource typesproducts, resources, articles, pages, custom
  • Localization — MODX Lexicon (ru, en), frontend snippet ms3fLexiconScript
  • Customization — Fenom chunks, BEM classes (prefix ms3f), CSS variables
  • Catalog row — chunk tplCatalogRowMs3f for a favorites button in each pdoPage + msProducts row (integration)
  • Notifications — chain: optional ms3fConfig.notifywindow.ms3Message.show (MiniShop3) → iziToast (lazy-loaded from assets/components/ms3favorites/vendor/izitoast/, base URL in ms3fConfig.iziToastBaseUrl from ms3fLexiconScript).

System requirements

RequirementVersion
MODX Revolution3.0+
PHP8.1+
MySQL5.7+ / MariaDB 10.3+

Dependencies

Installation

See Quick start for requirements and ModStore steps.

Via ModStore

  1. Connect ModStore repository
  2. Go to Extras → Installer and click Download Extras
  3. Ensure MiniShop3 and pdoTools are installed
  4. Find ms3Favorites, click Download, then Install
  5. Settings → Clear cache

Package is available at modstore.pro.

After installation

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.

Terms

TermDescription
WishlistList of favorite products (default list is default)
SyncMoving the list from localStorage to the DB when the user logs in
SharingPublic link to a list by token
PopularityNumber of users who added the resource to their wishlist