Company & Services Info

Our Technology Stack for PrestaShop Modules

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

The stack behind 151 modules

Every module we ship runs on a shared foundation of around 38 internal Composer packages. These aren't thin wrappers -- they're libraries we've built and maintained since ~2015 to solve problems that come up repeatedly in PrestaShop module development: admin UIs, entity selection, cross-version compatibility, URL management, session tracking, scheduling.

When you install one of our modules, you're getting years of accumulated engineering. A bug fixed in one package propagates to every module that uses it on the next update.

Dev infrastructure

We run everything on a TrueNAS server (Debian 12, 64GB RAM) with 25+ Docker containers -- production shops, staging environments, demo generators, dev tools. The toolchain: PHP 8.4, Node.js 20, Composer 2.8, Redis for shared caching, Claude Code and Codex for AI-assisted development, VS Code as the editor.

Every module is tested across PrestaShop 1.7.6 through 9.1, multiple PHP versions, and different server configs before release. One ZIP covers all supported versions -- no separate builds per PS major.

The shared packages

prestashop-admin

The foundation of every module admin panel. Provides base controllers (MPRAdminController, MPRListController) with built-in AJAX image upload, inline editing, and field modals. Database-backed filtering with six filter types. Column management with per-employee persistence. 20+ JavaScript components (datepickers, modals, toasts, inline editors, AJAX lists) and 35+ SCSS component styles.

This is why every mypresta.rocks admin panel feels the same. It's not a style guide -- it's shared code with over a decade of iteration.

prestashop-entity-selector

A universal widget for selecting PrestaShop entities with include/exclude logic. 18 entity types, 130+ selection methods, boolean grouping with AND/OR, and live preview. Instead of every module reinventing product selection with a basic autocomplete, they all share one tested component.

"All products in category X, except those from manufacturer Y, unless they're on sale" -- that's a single entity selector config.

prestashop-compat

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 compat layer handles version-specific behaviour underneath. That's how we support PS 1.7.6 through 9.1 from a single codebase without littering code with version checks.

Example: Tools::displayPrice() was removed in PS 9.0. Our PriceFormatter::format() wrapper detects the version and calls the right method.

prestashop-integrity

Database schema management and self-healing. When a module's table structure drifts from what's expected (missing columns, wrong types, missing indexes), the integrity package detects and repairs it automatically. Handles tab registration rescue and one-click updates across all 151 modules.

prestashop-license

License verification that transmits only the domain, module version, and license key. Nothing else. No customer data, no store analytics, no tracking.

prestashop-search

Shared search engine with tokenisation, dimension handling, and sync. Used by modules that need full-text search across PrestaShop entities -- products, CMS pages, blog posts.

prestashop-url

URL management with pattern-based generation, entity lifecycle integration, and pluggable storage backends. When a product is created or updated, URLs regenerate automatically. Powers SEO Revolution and Friendly URL.

prestashop-icons

Theme-aware icon mapping. Hummingbird uses Material Icons, Classic uses Font Awesome, third-party themes use something else entirely. This package maps semantic names ("cart", "edit", "delete") to the active theme's icon set. Also bundles 38 payment brand icons and 12 social media icons as SVG sprites.

prestashop-session

Shared session tracking across modules via a single mpr_sessions table. Bot detection, device fingerprinting, consistent session identification. Security Revolution and Checkout Revolution share session data instead of each tracking independently.

prestashop-schedule and prestashop-public-holidays

Time-based logic: datetime ranges, weekly recurring schedules, timezone handling, and a centralised public holiday database. "Apply this discount on weekdays except public holidays" is a single config in Sales Revolution.

template-injector

Some modules need to place content where PrestaShop doesn't provide hooks. This package scans Smarty .tpl files, finds injection points, and inserts module output. Handles child themes, template overrides, parent theme fallbacks. Tracks what was injected where so it can cleanly remove itself on uninstall.

And the rest

prestashop-front (frontend UI components), prestashop-target-conditions (conditional display rules by customer group, country, device, cart value), prestashop-crawler (shared curl_multi engine for health checks and URL scanning), and more. Around 38 packages in total, each with its own versioning and Composer constraints.

Why this matters for you

Consistency: Every admin panel works the same way. Same filtering, same column management, same keyboard shortcuts. Learn one module, you know them all.

Reliability: A fix in prestashop-admin gets fixed in every module on the next update. Security patches propagate everywhere.

Cross-version support: The compat layer means you can upgrade PrestaShop without worrying about our modules breaking.

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.

Architecture

All shared packages use the MyPrestaRocks PHP namespace with PSR-4 autoloading. They're synced via deployment scripts as proper Composer dependencies -- each with version constraints, each maintained as a separate library. When you look inside a module's vendor/myprestarocks/ directory, you're looking at real, maintained code.

See it in action

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

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

Loading...
Back to top