PHPackages                             rollpix/module-configurable-gallery - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rollpix/module-configurable-gallery

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

rollpix/module-configurable-gallery
===================================

Configurable product gallery with color mapping, video support, and multi-gallery compatibility

1.0.60(2w ago)046↓93.8%1proprietaryPHPPHP &gt;=8.1 &lt;8.5

Since Feb 16Pushed 1mo agoCompare

[ Source](https://github.com/ROLLPIX/M2-ConfigurableGallery)[ Packagist](https://packagist.org/packages/rollpix/module-configurable-gallery)[ RSS](/packages/rollpix-module-configurable-gallery/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (18)Versions (62)Used By (0)

Rollpix\_ConfigurableGallery
============================

[](#rollpix_configurablegallery)

Magento 2 module for managing galleries on configurable products via color mapping. Images and videos are uploaded once on the configurable parent, tagged to a color option, and the gallery is filtered client-side when a swatch is selected.

**Compatibility:** Magento 2.4.7+ · PHP 8.1 – 8.4

---

Problem
-------

[](#problem)

In apparel stores a configurable product is typically **color × size** (e.g. 8 colors × 6 sizes = 48 simple SKUs). The visual variant is color, not size, yet Magento forces image management at the simple-product level. This means:

- The same 8 photos must be loaded 48 times (once per simple).
- Any image change requires editing N simples.
- Out-of-stock colors still show in the gallery.
- CSV import tools don't natively handle the image-to-color mapping.

Solution
--------

[](#solution)

1. **Single upload point** — images live on the configurable parent.
2. **Explicit color tag** — each image/video is mapped to an `option_id` via `associated_attributes`.
3. **Optional propagation** — parent-to-children inheritance for SEO/feeds.
4. **Centralised stock filter** — colors without stock are hidden or dimmed.
5. **Gallery-agnostic** — adapters for Fotorama, Rollpix Gallery, Amasty, and Hyva.

---

Installation
------------

[](#installation)

### Via Composer (recommended)

[](#via-composer-recommended)

```
composer require rollpix/module-configurable-gallery
bin/magento module:enable Rollpix_ConfigurableGallery
bin/magento setup:upgrade
bin/magento cache:flush
```

### Manual

[](#manual)

Copy the module to `app/code/Rollpix/ConfigurableGallery/` then run:

```
bin/magento module:enable Rollpix_ConfigurableGallery
bin/magento setup:upgrade
bin/magento cache:flush
```

### Hyva compatibility

[](#hyva-compatibility)

If using Hyva Theme, also enable the companion sub-module:

```
bin/magento module:enable Rollpix_ConfigurableGalleryHyvaCompat
bin/magento setup:upgrade
```

---

Configuration
-------------

[](#configuration)

**Stores &gt; Configuration &gt; Rollpix &gt; Galeria Configurable**

### General

[](#general)

FieldDefaultDescriptionEnable ModuleYesGlobal on/off switchSelector Attributes`color`Priority-ordered list of swatch attributes used for image mapping. The module uses the first attribute that matches the product's super attributes (variants).Show Generic ImagesYesDisplay untagged images alongside the selected color's imagesPreselect Variant (PDP)YesAutomatically select the first in-stock color on the product detail pagePreselect Variant (PLP)YesAutomatically select the first in-stock color on category listing pagesDeep Link by ColorYesAllow `#color=318` or `?color=rojo` URL parametersUpdate URL on SelectYesUpdate the URL hash when a swatch is clickedSEO-friendly URL by ColorNoClean URLs like `/product/color/rojo` instead of `?color=rojo`. Requires Deep Link enabled.Dropdown SupportNoEnables color-based gallery filtering when the selector attribute renders as a native `` dropdown (instead of swatches). Useful for clients who prefer dropdowns over visual swatches. When OFF the module has zero functional impact on the native dropdown flow.### Stock

[](#stock)

FieldDefaultDescriptionFilter by StockYesHide/dim colors that have no salable simplesOut-of-Stock BehaviorHide`hide` removes images from the gallery; `dim` adds a CSS class### Propagation

[](#propagation)

FieldDefaultDescriptionPropagation ModeDisabled`disabled` / `automatic` / `manual`Roles to Propagateimage, small\_image, thumbnailImage roles assigned on propagated imagesClean Before PropagateYesRemove previously propagated images before re-propagating### Cart / Checkout

[](#cart--checkout)

FieldDefaultDescriptionCart Image OverrideYesShow the selected color's image in cart, mini-cart, and checkout### Advanced

[](#advanced)

FieldDefaultDescriptionDebug ModeNoVerbose logging to `var/log/rollpix_gallery.log`Gallery AdapterAutoForce a specific adapter (`fotorama` / `rollpix` / `amasty`) or auto-detect---

Usage
-----

[](#usage)

### 1. Map images to colors

[](#1-map-images-to-colors)

Edit a configurable product in the admin. In the **Images and Videos** panel each media entry shows a color dropdown. Select the color option each image belongs to, or leave as "All Colors" for generic/brand images.

**Auto-detection from filename:** When uploading images whose filenames contain a color name, the module automatically assigns the color. For example, `rojo_frente.jpg` is assigned to "Rojo", `campera_azul_marino.jpg` to "Azul Marino". Auto-detected assignments are highlighted in yellow so you can verify and correct if needed. Supports Spanish accents, compound colors, and partial matches.

> **Note:** The color selector appears after saving the product. Newly uploaded images do not have a database ID yet, so the dropdown is injected once the product is saved and the page reloads.

The module works automatically on **all configurable products** that have at least one matching selector attribute. No per-product toggle is needed.

### 2. Color preselection

[](#2-color-preselection)

When the page loads, the module automatically selects a color and filters the gallery. The priority order is:

1. **URL parameter** — `#color=318` or `?color=rojo`
2. **First color with stock** — when stock filter is enabled
3. **First color by position** — fallback when stock filter is disabled
4. **First visible swatch (DOM)** — leverages Magento's native stock validation for swatch visibility

When the user deselects a swatch, the gallery shows images from all in-stock colors (respecting the stock filter), not all images.

### 3. Deep linking

[](#3-deep-linking)

Share URLs with a pre-selected color:

```
/product-url#color=318          (by option_id)
/product-url#color=rojo         (by label, case-insensitive)
/product-url?color=318          (query param for campaigns/emails)

```

#### SEO-friendly URLs

[](#seo-friendly-urls)

When enabled in **General &gt; URL SEO-friendly por Color**, the module generates clean, crawlable URLs:

```
/zapatillas-peak-mujer/color/marron
/campera-outdoor/medida/grande

```

The attribute code segment is dynamic (uses the resolved selector attribute for each product). Labels are slugified with accent normalization (`Marrón` → `marron`, `Azul Marino` → `azul-marino`).

A custom Magento router intercepts these paths, resolves the product via `url_rewrite`, and preselects the color. When the user clicks a swatch, the URL updates via `replaceState` to the new color path. Old `#color=` and `?color=` formats remain supported as fallback.

---

Gallery Adapters
----------------

[](#gallery-adapters)

The module auto-detects the active gallery system and loads the appropriate adapter.

PriorityGallerySwatchesDetected by1Rollpix ProductGalleryMagento native`Rollpix_ProductGallery` enabled2Amasty GalleryAmasty Swatches`Amasty_Conf` enabled3Fotorama (native)Magento nativeDefault fallback4Hyva GalleryHyva Swatches`Hyva_Theme` enabled (via HyvaCompat sub-module)Detection can be overridden via **Configuration &gt; Advanced &gt; Gallery Adapter**.

---

PLP (Product Listing Page)
--------------------------

[](#plp-product-listing-page)

When propagation is **disabled**, the module activates PLP plugins so that swatch clicks on category pages still show the correct color image.

PluginPurposeConditional on`SwatchImagePlugin`Swap thumbnail on swatch clickAlways active`HoverSliderCompatPlugin`Filter HoverSlider images by color`Rollpix_HoverSlider` installed`ImageFlipCompatPlugin`Update flip-hover image by color`Rollpix_ImageFlipHover` installedCompatibility plugins check `ModuleManager::isEnabled()` internally and return unmodified results when the target module is absent.

---

CLI Commands
------------

[](#cli-commands)

### Diagnose

[](#diagnose)

```
bin/magento rollpix:gallery:diagnose --product-id=123
bin/magento rollpix:gallery:diagnose --all
```

Reports global config, catalog statistics, color mapping status, stock status, and potential issues per product. Scans all configurable products (no per-product opt-in required).

### Propagate

[](#propagate)

```
bin/magento rollpix:gallery:propagate --product-id=123
bin/magento rollpix:gallery:propagate --all
bin/magento rollpix:gallery:propagate --all --dry-run
bin/magento rollpix:gallery:propagate --all --clean-first
```

Copies images from configurable parents to simple children filtered by color. Propagated images are flagged so they are not confused with manually uploaded images.

### Clean

[](#clean)

```
bin/magento rollpix:gallery:clean --product-id=123
bin/magento rollpix:gallery:clean --all
bin/magento rollpix:gallery:clean --all --dry-run
```

Removes ALL images from simple children of configurable products. Useful for resetting propagated images or debugging.

### Migrate

[](#migrate)

```
bin/magento rollpix:gallery:migrate --mode=diagnose --all
bin/magento rollpix:gallery:migrate --mode=consolidate --product-id=123 --dry-run
bin/magento rollpix:gallery:migrate --mode=consolidate --all --clean
bin/magento rollpix:gallery:migrate --mode=auto-map --all --dry-run
```

ModeDescription`diagnose`Report current state without changes`consolidate`Move images from simples to the configurable parent, dedup by color (one child per color)`auto-map`Auto-assign colors to unmapped images by filename/label pattern matchingOptions: `--product-id`, `--all`, `--dry-run`, `--clean` (remove existing configurable images before consolidating).

---

Architecture
------------

[](#architecture)

### Two-layer design

[](#two-layer-design)

```
┌─────────────────────────────────────────────┐
│  Layer 1: Backend (gallery-agnostic)        │
│  - DB column associated_attributes          │
│  - Admin UI (color dropdown per image)      │
│  - AttributeResolver (dynamic attribute     │
│    detection per product)                   │
│  - ColorMapping / ColorPreselect / Config   │
│  - StockFilter (MSI + legacy fallback)      │
│  - Propagation engine                       │
│  - JSON data provider (ViewModel)           │
│  - Cart image override plugin               │
└─────────────────────────────────────────────┘
         ↓ dispatches rollpix:gallery:filter
┌─────────────────────────────────────────────┐
│  Layer 2: Frontend (gallery adapters)       │
│  - gallery-switcher.js (vanilla JS core)    │
│  - adapter/fotorama.js (jQuery)             │
│  - adapter/rollpix-gallery.js (jQuery)      │
│  - adapter/amasty.js (jQuery)               │
│  - swatch-renderer-mixin.js (intercepts     │
│    native swatch events, blocks native      │
│    gallery updates when module is active)   │
│  - HyvaCompat/ (Alpine.js)                  │
└─────────────────────────────────────────────┘

```

### Frontend initialization flow

[](#frontend-initialization-flow)

1. `gallery_data.phtml` outputs `window.rollpixGalleryConfig` (color mapping, stock data, config) and `window.rollpixGalleryImages` (enriched gallery images with `value_id` and `associatedAttributes`).
2. The swatch-renderer mixin creates a `GallerySwitcher` and `FotoramaAdapter`, then calls `init()` which resolves the default color and dispatches the first filter event.
3. `_ensureGalleryFiltered()` uses two strategies to guarantee the filter is applied:
    - **`gallery:loaded` event** — re-applies the filter after Magento resets Fotorama.
    - **Polling** — detects Fotorama readiness in case `gallery:loaded` already fired before the mixin loaded (RequireJS timing).
4. Once initialized, the mixin blocks all native gallery updates (`updateBaseImage`, `_processUpdateGallery`) so the module is the sole gallery controller.

### Key conventions

[](#key-conventions)

- **Plugins only** — no `` overrides.
- **Vanilla JS core** — jQuery only in gallery-specific adapters.
- **MSI optional** — nullable constructor params with di.xml `xsi:type="null"` defaults; falls back to legacy `StockRegistryInterface`.
- **Conditional PLP plugins** — registered always, guarded by `ModuleManager::isEnabled()`.
- **Strict types** — `declare(strict_types=1)` in every PHP file.
- **Constructor promotion** — `readonly` promoted properties throughout.
- **No per-product gate** — the module is active for all configurable products when globally enabled.

### Database

[](#database)

One column added to `catalog_product_entity_media_gallery_value`:

ColumnTypeFormat`associated_attributes`TEXT, nullable`attribute{ID}-{OPTION_ID}` (e.g. `attribute92-318`)Two legacy EAV attributes (created by earlier data patches, now hidden from admin via `HideGalleryProductAttributes`):

AttributeStatusNotes`rollpix_gallery_enabled`HiddenNo longer used; module is always active for all configurables`rollpix_default_color`HiddenNo longer used; preselection is automatic based on stock and position---

File Structure
--------------

[](#file-structure)

```
Rollpix_ConfigurableGallery/
├── registration.php
├── composer.json
├── etc/
│   ├── module.xml
│   ├── db_schema.xml
│   ├── di.xml
│   ├── config.xml
│   ├── acl.xml
│   ├── adminhtml/
│   │   ├── di.xml
│   │   ├── system.xml
│   │   └── events.xml
│   └── frontend/
│       └── di.xml
├── Setup/Patch/Data/
│   ├── AddGalleryEnabledAttribute.php
│   ├── AddDefaultColorAttribute.php
│   └── HideGalleryProductAttributes.php
├── Model/
│   ├── Config.php
│   ├── AttributeResolver.php
│   ├── ColorMapping.php
│   ├── ColorPreselect.php
│   ├── StockFilter.php
│   ├── Propagation.php
│   └── Config/Source/
│       ├── SwatchAttributes.php
│       ├── OutOfStockBehavior.php
│       ├── PropagationMode.php
│       ├── ImageRoles.php
│       └── GalleryAdapter.php
├── Observer/
│   └── ProductSaveAfterObserver.php
├── Plugin/
│   ├── AddAssociatedAttributesToGallery.php
│   ├── AdminGallerySavePlugin.php
│   ├── EnrichGalleryJson.php
│   ├── CartItemImagePlugin.php
│   └── Plp/
│       ├── SwatchImagePlugin.php
│       ├── HoverSliderCompatPlugin.php
│       └── ImageFlipCompatPlugin.php
├── Block/Adminhtml/
│   ├── Product/Gallery/
│   │   └── ColorMapping.php
│   └── System/Config/
│       └── ModuleInfo.php
├── ViewModel/
│   ├── GalleryData.php
│   └── PlpGalleryData.php
├── Console/Command/
│   ├── DiagnoseCommand.php
│   ├── PropagateCommand.php
│   ├── MigrateCommand.php
│   └── CleanCommand.php
├── view/
│   ├── adminhtml/
│   │   ├── layout/catalog_product_edit.xml
│   │   ├── templates/product/gallery/color_mapping.phtml
│   │   └── web/
│   │       ├── js/gallery-color-mapping.js
│   │       └── css/gallery-admin.css
│   └── frontend/
│       ├── requirejs-config.js
│       ├── layout/
│       │   ├── catalog_product_view.xml
│       │   └── catalog_category_view.xml
│       ├── templates/product/
│       │   ├── gallery_data.phtml
│       │   └── plp_gallery_data.phtml
│       └── web/js/
│           ├── gallery-switcher.js
│           ├── gallery-init.js
│           ├── adapter/
│           │   ├── fotorama.js
│           │   ├── rollpix-gallery.js
│           │   └── amasty.js
│           ├── mixin/
│           │   ├── swatch-renderer-mixin.js
│           │   └── amasty-swatch-renderer-mixin.js
│           └── plp/
│               ├── swatch-image.js
│               ├── hoverslider-compat.js
│               └── imageflip-compat.js
├── HyvaCompat/
│   ├── registration.php
│   ├── etc/module.xml
│   └── view/frontend/
│       ├── layout/catalog_product_view.xml
│       └── templates/product/gallery-switcher.phtml
└── i18n/
    ├── en_US.csv
    ├── es_AR.csv
    └── es_ES.csv

```

---

Compatibility
-------------

[](#compatibility)

ModuleRoleMagento\_SwatchesBase for Fotorama adapterMagento\_ConfigurableProductConfigurable product structureRollpix\_ProductGalleryDedicated gallery adapterRollpix\_HoverSliderPLP slider compatibility pluginRollpix\_ImageFlipHoverPLP flip-hover compatibility pluginAmasty\_ConfAmasty Color Swatches Pro adapterHyva\_ThemeAlpine.js adapter (HyvaCompat sub-module)When the module is globally disabled, all behaviour falls back to stock Magento with zero overhead.

---

Changelog
---------

[](#changelog)

### v1.0.60

[](#v1060)

- Fix (root cause): auto-propagation on save no longer wipes the configurable's color mapping. `Propagation::removeAllImages` (used by `clean before propagate` and the `clean` command) deleted `catalog_product_entity_media_gallery_value` rows **by `value_id` without an `entity_id` filter**; since consolidate shares the `value_id` between parent and child, cleaning a child also deleted the **parent's** `gallery_value` rows — including `associated_attributes`. The delete is now scoped to the child's own `entity_id`. This was the real reason consolidated mappings vanished on save (the v1.0.59 snapshot/restore ran before propagation undid it).

### v1.0.59

[](#v1059)

- Fix: color mapping from `migrate --mode=consolidate` is no longer lost when the configurable is saved in admin. Consolidate now writes a gallery\_value row **owned by the configurable** (`entity_id = parent`) instead of mutating the child's row, so Magento's core gallery save preserves `associated_attributes` instead of regenerating the row and dropping it.
- Fix: `ColorMapping::getColorMediaMapping` dedupes gallery rows per `value_id`, preferring the row owned by the product, so images shared between a configurable and its simples are not double-counted in admin/frontend. Backward compatible with products consolidated before this fix.
- New: `AdminGallerySavePlugin` snapshots the color mapping in `beforeSave` and restores it in `afterSave` (matching by file path, then by position). This is a robust safety net that survives Magento changing `value_id`s on save, recovers colors whose filename does not match the label (e.g. `green_*` → VERDE, `black_*` → NEGRO), and distinguishes same-filename colors by position (NEGRO vs NEGRO 2.0). Runs before the filename auto-detect fallback.

### v1.0.58

[](#v1058)

- New: optional support for native `` dropdown (non-swatch) configurable attributes via `rollpix_configurable_gallery/general/dropdown_support` (default OFF). When enabled, registers a mixin over `Magento_ConfigurableProduct/js/configurable` that hooks `_configureElement` to dispatch the color change to the gallery switcher, blocks `_changeProductImage` to prevent native gallery overwrite, applies preselect/deep-link/SEO-URL via the existing pipeline, and hides out-of-stock options from the dropdown. Includes guard for swatch+dropdown mixed products: when the color attribute is rendered as a swatch on the page, the dropdown mixin bails and lets the swatch-renderer-mixin own the gallery. Zero functional impact when OFF (early return in `_create()`).

### v1.0.38

[](#v1038)

- New: SEO-friendly URLs for color deep links (`/product/color/rojo` instead of `?color=rojo` or `#color=318`)
- Custom Magento router resolves `/product/{attr-code}/{slug}` paths to the product page with color preselected
- Slugification with accent normalization (Marrón → marron, Azul Marino → azul-marino)
- Works with dynamic attribute codes (color, medida, etc.), not hardcoded
- Backward compatible: old `?color=` and `#color=` URLs still work
- Toggleable per store via admin config (disabled by default)

### v1.0.37

[](#v1037)

- Fix: "clean before propagate" now removes ALL child images instead of relying on broken flag-based detection
- Fix: remove broken `markAsPropagated()` that was overwriting image alt text with internal flag
- Perf: auto-propagation only triggers when gallery actually changed (new/removed images or color mapping modifications)
- Perf: child products are only saved when propagation actually added/removed images (avoids unnecessary indexer/cache invalidation)

### v1.0.36

[](#v1036)

- New: auto-detect color from filename on image upload in admin (yellow indicator for auto-detected assignments)

### v1.0.35

[](#v1035)

- Remove unused `--source` option from migrate command
- Update documentation (README, CLAUDE.md)

### v1.0.34

[](#v1034)

- New: `--clean` flag for `rollpix:gallery:migrate --mode=consolidate` — removes existing configurable parent images before consolidating

### v1.0.33

[](#v1033)

- Fix: migrate consolidate dedup — dedup by color (first child per color) instead of file path, avoids Magento `_1`/`_2` suffix duplicates

### v1.0.32

[](#v1032)

- New: `bin/magento rollpix:gallery:clean` CLI command to remove all images from simple children

### v1.0.31

[](#v1031)

- New: automatic propagation on product save via `catalog_product_save_after` observer (when propagation mode = automatic)
- Remove diagnostic logs from CartItemImagePlugin

### v1.0.30

[](#v1030)

- Fix: cart image override rewritten to hook `ItemProductResolver::getFinalProduct()` — works in cart page, mini-cart, and checkout (Luma &amp; Hyva)
- Previous approach on `DefaultItem::getItemData()` only affected KO.js mini-cart section

### v1.0.29

[](#v1029)

- Fix: move cart plugin target from `AbstractItem` to `DefaultItem` (frontend-only)

### v1.0.28

[](#v1028)

- Fix: change cart plugin logging from `debug()` to `info()` for system.log visibility

### v1.0.27

[](#v1027)

- Perf: only reload simple product via ProductRepository when color attribute is missing

### v1.0.26

[](#v1026)

- Fix: reload configurable product for cart image color mapping + debug logs

### v1.0.25

[](#v1025)

- Fix: reload simple product in cart plugin when EAV attributes not loaded

### v1.0.24

[](#v1024)

- Fix: cart image override — remove propagation gate, add simple product fallback strategy

### v1.0.23

[](#v1023)

- Admin color dropdown filtering by product's actual color options
- Scroll to top on color swatch change

### v1.0.16 – v1.0.22

[](#v1016--v1022)

- Iterative improvements to gallery filtering, PLP compatibility, and admin UI

### v1.0.15

[](#v1015)

- Fix: deselection now respects stock filter (gallery shows only in-stock color images)
- `_isRollpixHandlingGallery` blocks native gallery updates from initialization onward

### v1.0.14

[](#v1014)

- Fix: robust gallery preselection using polling + `gallery:loaded` event
- New: DOM-based swatch detection leveraging Magento's native stock validation

### v1.0.13

[](#v1013)

- Fix: stock filter default changed to enabled
- Fix: re-apply preselection after `gallery:loaded` event

### v1.0.12

[](#v1012)

- Fix: block native `updateBaseImage` / `_processUpdateGallery` when Rollpix filter is active
- Support swatch deselection (toggle off)

### v1.0.11

[](#v1011)

- Fix: gallery filtering — inject enriched images into page via `window.rollpixGalleryImages`
- Lazy initialization with retry logic for RequireJS timing

### v1.0.10

[](#v1010)

- Refactor: remove per-product `rollpix_gallery_enabled` gate — module active on all configurables
- Replace `preselect_color` with separate PDP/PLP preselection settings
- Hide legacy EAV attributes from admin form

### v1.0.9

[](#v109)

- Fix: frontend gallery filtering and stock filter

### v1.0.8

[](#v108)

- Fix: color mapping persistence — inject data via uiRegistry form source

### v1.0.7

[](#v107)

- Fix: thumbnail color dropdown opens correctly (stopPropagation fix)

### v1.0.6

[](#v106)

- Compact color dropdown on thumbnails, remove badges

### v1.0.5

[](#v105)

- Dynamic attribute resolver — priority-based selector attributes

---

License
-------

[](#license)

Proprietary — Rollpix

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance93

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Recently: every ~30 days

Total

59

Last Release

14d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20818155?v=4)[Nicolas Marquevich](/maintainers/nmarquev)[@nmarquev](https://github.com/nmarquev)

---

Top Contributors

[![nmarquev](https://avatars.githubusercontent.com/u/20818155?v=4)](https://github.com/nmarquev "nmarquev (61 commits)")

---

Tags

rcpm

### Embed Badge

![Health badge](/badges/rollpix-module-configurable-gallery/health.svg)

```
[![Health](https://phpackages.com/badges/rollpix-module-configurable-gallery/health.svg)](https://phpackages.com/packages/rollpix-module-configurable-gallery)
```

###  Alternatives

[buckaroo/magento2

Buckaroo Magento 2 extension

32420.3k8](/packages/buckaroo-magento2)[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[amzn/amazon-pay-magento-2-module

Official Magento2 Plugin to integrate with Amazon Pay

108531.2k1](/packages/amzn-amazon-pay-magento-2-module)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)[yireo/magento2-googletagmanager2

Add Google Tag Manager to Magento

1681.0M5](/packages/yireo-magento2-googletagmanager2)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

50398.5k20](/packages/dotdigital-dotdigital-magento2-extension)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
