
MiniShop3
Modern e-commerce component for MODX 3, completely rewritten to leverage new platform capabilities.
Key features
For MODX 3
MiniShop3 is designed specifically for MODX Revolution 3.x and takes full advantage of the new version:
- PHP 8.1+ — modern syntax, typing, attributes
- Namespaces — all classes live in the
MiniShop3\namespace - PSR-4 autoloading — via Composer
- Phinx migrations — database schema versioning
Improved architecture
- REST API — full-featured API for headless integrations
- Service Container — dependencies via MODX DI container
- Vue 3 + PrimeVue — modern Manager UI via VueTools
- Modern frontend — no jQuery, native JavaScript
Compatibility
MiniShop3 maintains backward compatibility with miniShop2 at the level of:
- Snippet names (
msProducts,msCart,msOrder, etc.) - Chunk and placeholder structure
- Snippet parameters
System requirements
| Requirement | Version |
|---|---|
| MODX Revolution | 3.0.0+ |
| PHP | 8.1+ |
| MySQL | 5.7+ / MariaDB 10.3+ |
MODX dependencies
- pdoTools 3.x — for snippets and the Fenom template engine
- VueTools — Vue 3 and PrimeVue for the Manager interface
- Scheduler (optional) — for background tasks (import, notifications, cleanup)
VueTools
MiniShop3 uses Vue 3 for the modern Manager interface. The VueTools package must be installed before or together with MiniShop3. If the package is missing, a message with installation instructions will be shown.
Composer libraries
MiniShop3 uses the following PHP libraries (included in the package):
| Library | Version | Purpose |
|---|---|---|
| nikic/fast-route | ^1.3 | REST API routing |
| rakit/validation | ^1.4 | Form and API data validation |
| intervention/image | ^3.0 | Image processing (resize, watermarks) |
| robmorgan/phinx | ^0.16 | Database migrations |
| ramsey/uuid | ^4.7 | UUID generation for tokens |
Installation
Method 1: Via package manager (recommended)
Standard installation via the MODX package manager with repositories enabled:
- Go to Extras → Installer
- Click Download Extras
- Install VueTools (if not already installed)
- Find MiniShop3 in the list of available packages
- Click Download and then Install
The package is available in modx.com and modstore.pro repositories.
Method 2: Upload transport package
If repositories are unavailable or you need a specific version:
- Download the transport package from the GitHub releases page
- Upload the
.transport.zipfile to/core/packages/of your site - Go to Extras → Installer
- Click Search locally for packages
- Find MiniShop3 in the list and click Install
Method 3: Installation from source (for developers)
This method is for developers who need the latest changes:
Prerequisites
Before installing MiniShop3, make sure the VueTools package is installed on the site. It provides Vue 3 and PrimeVue via import maps.
# Clone the repository
git clone https://github.com/modx-pro/MiniShop3.git
cd MiniShop3
# Install PHP dependencies
composer install
# Build Vue widgets (requires Node.js 18+)
cd vueManager
npm install
npm run build
cd ..
# Build and install the component
# Open _build/build.php in the browser or run:
php _build/build.phpAfter installation, go to Extras → MiniShop3 to configure the store.
A detailed initial setup guide is on the Quick start page.
Component structure
Core (core/components/minishop3/)
core/components/minishop3/
├── bootstrap.php # Component initialization
├── config/
│ ├── routes/ # REST API routes
│ ├── mgr/ # Manager configuration
│ ├── combos/ # Manager comboboxes
│ ├── filters/ # Grid filters
│ └── ms3.services.d/ # Custom services
├── controllers/ # Manager page controllers
├── elements/
│ ├── snippets/ # Snippets (msProducts, msCart, msOrder...)
│ ├── chunks/ # Chunks (Fenom templates)
│ ├── plugins/ # MODX plugins
│ ├── tasks/ # Scheduler tasks
│ └── templates/ # Email templates
├── lexicon/ # Lexicon files (en, ru)
├── migrations/ # Phinx migrations
├── schema/ # xPDO database schema
├── seeds/ # Database seeds
├── src/
│ ├── Controllers/ # Business logic (Cart, Order, Customer)
│ ├── Model/ # xPDO models
│ ├── Processors/ # AJAX processors
│ ├── Services/ # Services (Format, AuthManager...)
│ ├── Notifications/ # Notification system
│ ├── Router/ # API router
│ ├── Middleware/ # API middleware
│ ├── Utils/ # Utilities (ImportCSV...)
│ ├── MiniShop3.php # Main component class
│ └── ServiceRegistry.php # Service registry
└── vendor/ # Composer dependenciesFrontend (assets/components/minishop3/)
assets/components/minishop3/
├── api.php # REST API entry point
├── connector.php # Manager AJAX connector
├── js/
│ ├── mgr/ # Manager JavaScript (ExtJS)
│ └── web/ # Site JavaScript (native JS)
├── css/
│ ├── mgr/ # Manager styles
│ └── web/ # Site styles
├── img/ # Images
├── payment/ # Payment system handlers
└── plugins/ # JavaScript plugins