Support Hub Engineering

Our Technology

Explore the shared package ecosystem behind mypresta.rocks modules. 12 proprietary libraries, consistent admin UI, and cross-version compatibility.

Not just modules — a platform

Every mypresta.rocks module runs on a shared foundation of 12 proprietary packages we've built and maintained since 2012. These aren't wrappers or boilerplate generators — they're purpose-built libraries that solve hard problems in PrestaShop module development.

When you install one of our modules, you get years of accumulated engineering: consistent admin interfaces, smart entity selection, cross-version compatibility from PS 1.6 to 9.x, and shared infrastructure that means bugs fixed in one module get fixed everywhere.

The shared packages

prestashop-admin

Our most fundamental package. Every module admin panel is built on this — a complete UI toolkit that provides:

  • Base controllers — MPRAdminController and MPRListController with built-in AJAX image upload, inline editing, and field modals
  • Advanced filtering — database-backed filtering with six filter types: text, numeric range, date range, select, multiselect, and boolean
  • Column management — users choose which columns to show, save presets, and the state persists per employee
  • 20+ JavaScript components — datepickers, modals, toasts, inline editors, AJAX lists, all working together
  • 35+ SCSS component styles — consistent look across every module, every PrestaShop version

This is why every mypresta.rocks module admin panel feels the same. It's not a coincidence — it's a shared toolkit with over a decade of iteration.

prestashop-entity-selector

Probably our most complex package. A universal widget for selecting PrestaShop entities with include/exclude logic.

  • 18 entity types — products, categories, manufacturers, suppliers, CMS pages, employees, customers, customer groups, carriers, zones, countries, currencies, languages, shops, profiles, order states, taxes, and more
  • 130+ selection methods — select products by category, manufacturer, tag, attribute, feature, combination, condition, visibility, stock status, price range, date range, ID range, name pattern, and dozens more
  • Include/exclude logic — define what's included, then carve out exceptions. “All products in category X, except those from manufacturer Y, unless they're on sale”
  • Grouping with AND/OR — multiple selection groups combined with boolean logic, each with its own limit and sort
  • Live preview — see matching items update in real time as you adjust conditions

Instead of every module reinventing product selection with a basic autocomplete, they all share one powerful, tested component.

prestashop-compatibility

PrestaShop changes significantly between versions. Controller signatures, template paths, AJAX response formats, hook names — all different between 1.7 and 8.x and 9.x.

This package absorbs those differences. Modules write against a stable API, and the compatibility layer handles version-specific behavior underneath. That's how we support PS 1.6 through 9.x from a single codebase without littering code with version checks.

template-injector

Some modules need to inject content into theme templates without requiring manual template edits. This package scans Smarty .tpl files, identifies hook call points, and injects module output at the right location.

  • Automatic template scanning — discovers injection points in any theme
  • Theme-aware resolution — handles child themes, template overrides, and parent theme fallbacks
  • Injection tracking — knows what was injected where, so it can cleanly remove itself on uninstall
  • Profile management — different injection configs for different contexts

Used by modules like mprsubtitles, mprblogrevolution, and mprhtmlblocks that need to place content in locations where PrestaShop doesn't provide hooks.

prestashop-url

URL management for PrestaShop is notoriously fragile. This package provides a proper URL engine with pattern management, routing, and entity lifecycle handling.

  • Pattern-based URL generation — define URL patterns with variables, generate SEO-friendly URLs automatically
  • Entity lifecycle integration — when a product or category is created, updated, or deleted, URLs update automatically
  • Pluggable storage backends — database-backed or configuration-backed patterns depending on the use case
  • Schema management — handles its own database table creation and migration

Powers mprseorevolution and mprfriendlyurl.

prestashop-icons

PrestaShop themes use different icon sets — Hummingbird uses Material Icons, Classic uses Font Awesome, some third-party themes use something else entirely.

  • Semantic icon names — modules use names like “cart”, “success”, “edit”, “delete” instead of font-specific class names
  • Theme detection — automatically detects which icon set the active theme uses and maps semantic names to the right classes
  • Self-hosting — if the theme doesn't include the needed icon font, the package bundles it
  • SVG sprite sheets — 38 payment brand icons and 12 social media icons with light, dark, and accent color variants

prestashop-session

Shared session tracking across modules, using a single mpr_sessions database table.

  • Bot detection — identifies crawlers and automated traffic before they hit module logic
  • Device fingerprinting — browser, OS, and device type detection
  • Session hashing — consistent session identification across page loads

Used by mprsecurityrevolution and mprcheckoutrevolution — they share session data instead of each tracking independently.

prestashop-schedule & prestashop-public-holidays

Time-based logic that multiple modules need:

  • Schedule widget — datetime ranges, weekly recurring schedules, timezone handling
  • Holiday management — centralized public holiday database shared across modules via the mpr_public_holidays table
  • Used together — “apply this discount on weekdays except public holidays” in mprsalesrevolution, or “show these search results only during business hours” in mprsearchrevolution

prestashop-target-conditions & prestashop-front

Newer packages in our ecosystem:

  • Target conditions — reusable targeting rules (by customer group, country, device, cart value, etc.) shared across modules that need conditional display logic
  • Front components — frontend UI building blocks for customer-facing module output, ensuring consistent styling without theme conflicts

Why this matters for you

Consistency

Every module admin panel works the same way. Same filtering, same column management, same keyboard shortcuts, same AJAX patterns. Learn one module, and you know how they all work. This isn't a style guide — it's shared code.

Reliability

A bug fixed in prestashop-admin gets fixed in every module that uses it on the next update. Security patches propagate everywhere. When we optimize the entity selector's database queries, every module with product selection gets faster.

Cross-version support

The compatibility layer means you can upgrade PrestaShop without worrying about our modules breaking. We test across PS 1.6, 1.7, 8.x, and 9.x — and the shared infrastructure handles the differences so individual modules don't have to.

No conflicts

Modules that share database tables (ps_mpr_config, mpr_sessions, mpr_public_holidays) are designed for coexistence. Install five of our modules and they coordinate through shared infrastructure instead of stepping on each other.

Lightweight

Shared packages mean shared code. The entity selector isn't duplicated in every module — it's installed once and used by all. This keeps module ZIP files smaller and avoids the bloat of bundling the same library multiple times.

The numbers

  • 12 shared packages maintained as separate libraries with their own versioning
  • 30+ modules built on this foundation
  • 130+ entity selection methods in the entity selector alone
  • 4 PrestaShop major versions supported from a single codebase (1.6, 1.7, 8.x, 9.x)
  • 20+ admin JavaScript components for consistent interactivity
  • 13 years of continuous development since 2012

Open architecture

All shared packages use the MyPrestaRocks PHP namespace with PSR-4 autoloading. They're installed via Composer as proper dependencies — not copy-pasted into module directories. Each package has its own version constraints, and modules declare which versions they need.

This means when you look inside a module's vendor/myprestarocks/ directory, you're looking at real, maintained libraries — not abandoned code dumps.

See it in action

The best way to understand what these packages do is to try a module. Every module in our catalog offers a free demo — install it, open the admin panel, and see the shared infrastructure at work.

Questions about our architecture or interested in custom development? Get in touch.

Need more help?

Browse our full support resources or reach out to our team directly.

Loading...
Back to top