Skip to content
  1. Extras
  2. MiniShop3

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

RequirementVersion
MODX Revolution3.0.0+
PHP8.1+
MySQL5.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):

LibraryVersionPurpose
nikic/fast-route^1.3REST API routing
rakit/validation^1.4Form and API data validation
intervention/image^3.0Image processing (resize, watermarks)
robmorgan/phinx^0.16Database migrations
ramsey/uuid^4.7UUID generation for tokens

Installation

Method 1: Via package manager (recommended)

Standard installation via the MODX package manager with repositories enabled:

  1. Go to Extras → Installer
  2. Click Download Extras
  3. Install VueTools (if not already installed)
  4. Find MiniShop3 in the list of available packages
  5. 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:

  1. Download the transport package from the GitHub releases page
  2. Upload the .transport.zip file to /core/packages/ of your site
  3. Go to Extras → Installer
  4. Click Search locally for packages
  5. 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.

bash
# 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.php

After 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 dependencies

Frontend (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