Skip to content

Latest commit

 

History

278 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Merlin_ProductFinder

A powerful, admin-configurable product finder for Magento 2 that guides customers through a step-by-step product selection process. Features a drag-and-drop profile builder, configurable product support, dynamic filtering, responsive frontend, and advanced price filtering.


Changelog

v2.1.4

Security

Fix: Resolved GitHub CodeQL js/xss-through-dom warning within the frontend Product Finder.

Fix: Added strict validation for attribute set profile image URLs before assigning them to frontend <img> elements.

Fix: Restricted profile images to same-origin HTTP(S) URLs within /media/merlin_productfinder/, preventing untrusted URLs from being rendered.

Changed

Change: Refactored frontend image rendering to validate image URLs before assigning the src property.

Fix: Invalid image URLs are now safely ignored, preventing unsafe DOM injection while preserving existing functionality.

Fix: Replaced malformed em-dash characters in progressive AJAX status messages with Unicode escape sequences to prevent character encoding issues.

Version 2.1.3

Security

  • Resolved GitHub CodeQL warning js/xss-through-dom affecting profile image previews within the admin Profile Builder (view/adminhtml/web/js/profiles.js).
  • Added strict validation for profile image URLs before assigning them to the preview <img> element.
  • Profile image previews now only accept same-origin HTTP(S) URLs within /media/merlin_productfinder/.
  • Applied the same validation to both existing profile images and newly uploaded images before rendering them in the admin UI.

Changed

  • Switched profile image preview updates from jQuery .attr('src', ...) to .prop('src', ...) after URL validation.
  • Improved upload error handling to provide clearer feedback when invalid image URLs are returned.
  • Internal JavaScript hardening only.
  • No functional or configuration changes for administrators.

Version 2.1.2

Security

  • Resolved CodeQL warning js/incomplete-sanitization within the admin Profile Builder (view/adminhtml/web/js/profiles.js).
  • Removed dynamic CSS selector generation for attribute set lookups.
  • Attribute set names are now resolved using direct DOM value comparison instead of escaped selector strings, eliminating the need for manual sanitisation and improving code robustness.

Changed

  • Internal JavaScript refactoring only.
  • No changes to functionality, configuration, or the administrator user experience.

Version 2.1.1

Fixed

  • Resolved an issue introduced during configurable product support that prevented the finder form from rendering correctly.
  • Restored normal operation of the profile builder and frontend filtering.

Version 2.1.0

Added

  • Full configurable product support.
  • Compatible filtering for configurable and simple products within finder results.

Fixed

  • Corrected dependency injection type error in the Results controller constructor.

Version 2.0.6

Fixed

  • The module Enable/Disable configuration now correctly controls frontend output.
  • Product Finder widget and routes are no longer accessible when the module is disabled.

Version 2.0.5

Fixed

  • Corrected widget.xml validation issues.
  • General widget configuration cleanup and compatibility improvements.

Version 2.0.4

Fixed

  • Removed unsupported show_in_wysiwyg element to restore Magento XML validation compatibility.

Version 2.0.3

Changed

  • Improved the "Save Profile JSON" instructions to make the profile building workflow clearer for administrators.

Version 2.0.2

Added

  • Support for multiselect product attributes.
  • Default content for both Custom HTML Above Form and Custom HTML Below Form configuration fields.

Fixed

  • Corrected currency symbol encoding issues.
  • Resolved JavaScript encoding mismatches and malformed string literals.

Version 2.0.1

Fixed

  • Restored attribute set image uploads within the Profile Builder.

Version 2.0.0

Added

  • Completely redesigned drag-and-drop Profile Builder.
  • Visual attribute builder for creating product finder steps without editing JSON manually.
  • Attribute set image support integrated into the new builder.
  • Side-by-side Available Attributes and Profile Steps interface.

Changed

  • Complete redesign of the frontend user experience.
  • Modernised responsive results page.
  • Simplified configuration interface.

Removed

  • Legacy profile builder controls.
  • Legacy section ordering configuration.
  • Obsolete attribute mapping interface.

Version 1.6.7

Fixed

  • Price slider now respects Special Prices and automatically falls back to regular prices when required.

Version 1.6.6

Added

  • Compact responsive price slider integrated directly into the Product Finder.
  • Improved compatibility with progressive filtering and in-stock product selection.

Version 1.6.5

Added

  • Optional image for each Attribute Set, displayed between the first and second questions on the frontend.

Version 1.6.4

Fixed

  • Corrected mobile layout where discounted prices could be clipped on certain devices.

Version 1.6.3

Fixed

  • Improved mobile product grid.
  • Display two products per row on mobile devices.
  • Prevented special prices from overflowing product cards.

Version 1.6.2

Updated

  • Refreshed Product Finder and Results pages with a modern responsive interface.

Version 1.6.1

Fixed

  • Added progressive AJAX filtering so each selection only displays valid remaining options.
  • Prevented customers from selecting attribute combinations with no matching products.
  • Corrected button placement issues.

Version 1.6.0

Added

  • Finder cache creation and flush tools within the Magento Admin.

Fixed

  • Corrected profile JSON saving when multiple profiles were created.
  • Attribute Set labels now correctly use the actual Attribute Set name instead of generic identifiers.

Version 1.5.1

Added

  • Improved product pricing display with:

    • Struck-through original price
    • Prominent special price
    • Automatic percentage discount badge

Fixed

  • Attribute Sets now display alphabetically throughout the frontend.

Version 1.5.0

Added

  • Intelligent caching layer for Attribute Set options.
  • Automatic cache invalidation whenever products or stock are updated.

Version 1.4.0

Fixed

  • Finder now only displays options belonging to in-stock products.
  • Product Finder now progresses naturally by revealing each subsequent step after completion of the previous one.

Version 1.3.0 (Initial Release)

Features

  • Enable or disable the Product Finder.
  • Drag-and-drop section ordering.
  • Product attribute mapping through Magento Admin.
  • Configurable Attribute Set selection.
  • Custom HTML above and below the finder.
  • Dynamic product filtering.
  • Optional layered navigation.
  • Widget support for CMS Pages, Blocks and Layouts.
  • Responsive frontend.
  • Price filtering.
  • Extensible architecture.

Routes

Route Description
/product-finder/ Product Finder
/product-finder/index/results Results Page

Installation

bin/magento module:enable Merlin_ProductFinder
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush

Configuration

Stores → Configuration → Catalog → Merlin Product Finder

General

  • Enable / Disable module
  • Show Layered Navigation
  • Allowed Attribute Sets
  • Top Categories

Product Finder Profiles

  • Create Attribute Set Profiles
  • Drag-and-drop Profile Builder
  • Attribute Set Images
  • Custom HTML Above Form
  • Custom HTML Below Form

Results

  • Price Slider
  • Sorting
  • Pagination
  • Layered Navigation

Notes

  • Supports both Simple and Configurable products.
  • Supports Dropdown and Multiselect attributes.
  • Product filtering automatically excludes unavailable attribute combinations.
  • Fully responsive frontend.
  • Designed for Magento 2.4.5+.
  • Compatible with modern Magento coding standards and GitHub CodeQL scanning.

About

Drill-down product finder for Magento 2.4.5+. Admin-driven sections, attribute mapping, price slider, and results page with optional layered navigation.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages