justbetter / magento2-graphql-search-fallback
Magento 2 module providing GraphQL product query fallback when search engine is disabled
Installs: 20
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Open Issues: 0
Type:magento2-module
Requires
- php: >=8.1
- magento/framework: ^103.0
- magento/module-catalog: ^104.0
- magento/module-catalog-graph-ql: ^100.4
This package is auto-updated.
Last update: 2025-08-04 11:13:41 UTC
README
A simple and lightweight Magento 2 module that provides a fallback mechanism for GraphQL product queries when the search engine (Elasticsearch/OpenSearch) is disabled.
Why this module was created
We initially used the zepgram/module-disable-search-engine
module to disable the search engine, but quickly discovered that product reviews were no longer available via GraphQL. This revealed that the search engine was still required for product queries in GraphQL. This module solves that problem by providing a fallback mechanism, ensuring that product queries (including reviews) continue to work even when the search engine is disabled.
Features
- Complete search engine bypass: Directly uses Magento product collections instead of search engine
- Filter support: Works with all standard GraphQL product filters (SKU, name, price, categories, etc.)
- Zero configuration: Works out of the box after installation
Installation
Via Composer (Recommended)
composer require justbetter/magento2-graphql-search-fallback php bin/magento module:enable JustBetter_GraphqlSearchFallback php bin/magento setup:upgrade php bin/magento cache:flush
Usage
The module works automatically once installed. It intercepts all GraphQL products
queries and provides results using direct database queries instead of the search engine.
Supported GraphQL Filters
sku: {eq: "product-sku"}
name: {match: "product name"}
price: {from: 10, to: 100}
category_id: {eq: "123"}
category_uid: {eq: "encoded-category-uid"}
- Any custom product attribute with operators:
eq
,in
,match
,from
,to
Technical Details
How It Works
- Plugin Interception: Uses
aroundResolve
plugin onMagento\CatalogGraphQl\Model\Resolver\Products
- Direct Collection: Creates product collection directly via
CollectionFactory
- Filter Mapping: Maps GraphQL filter operators to Magento collection filters
- Standard Response: Returns the same response format as the original resolver
Requirements
- Magento 2.4.8 or higher
- PHP 8.1 or higher
Support
This module is developed and maintained by JustBetter.