PHPackages                             aligent/magento2-fredhopper-indexer - 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. [API Development](/categories/api)
4. /
5. aligent/magento2-fredhopper-indexer

ActiveMagento2-module[API Development](/categories/api)

aligent/magento2-fredhopper-indexer
===================================

Index and push data from Magento to Fredhopper

4.2.3(1y ago)15.6k↓50%1GPL-3.0-onlyPHPPHP ^8.3.0

Since Mar 3Pushed 2mo ago6 watchersCompare

[ Source](https://github.com/aligent/magento2-fredhopper-indexer)[ Packagist](https://packagist.org/packages/aligent/magento2-fredhopper-indexer)[ RSS](/packages/aligent-magento2-fredhopper-indexer/feed)WikiDiscussions main Synced 1mo ago

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

Aligent Fredhopper Indexer
==========================

[](#aligent-fredhopper-indexer)

Overview
--------

[](#overview)

This package provides indexing of product data, as well as the subsequent exporting of that data to Fredhopper, a merchandising platform.

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

[](#installation)

This package provides 3 related modules, and can be installed via composer:

```
composer require aligent/magento2-fredhopper-indexer
bin/magento module:enable Aligent_FredhopperIndexer Aligent_FredhopperExport Aligent_FredhopperCommon
bin/magento setup:upgrade
```

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

[](#architecture)

- New database table, `fredhopper_product_data_index`
    - Stores attribute data for both products and variants in JSON format
    - Associated new database table, `fredhopper_changelog`
        - Keeps track of which products have been added, updated or deleted from the index. This allows for incremental exports.
- New `fredhopper` indexer, responsible for indexing the required product data.
- New `Export` entity, which allows for tracking of exports to Fredhopper. Information such as the number of products added/updated/deleted, as well as status is maintained.
- 8 new cron jobs for generating and maintaining exports.
    - `fredhopper_full_export` - Generates a full export of the current attribute data for all products/variants. This will also include meta information about attributes.
    - `fredhopper_incremental_export` - Generates an export of product/variants that have changed since the last data set was exported.
    - `fredhopper_suggest_export` - Generates an export for data to be used in 'instant search' functionality.
    - `fredhopper_upload_export` - Uploads any waiting export to Fredhopper
    - `fredhopper_trigger_export` - Triggers an uploaded export to be loaded into Fredhopper
    - `fredhopper_invalidate_exports` - Marks any exports that have not been uploaded, and been superseded by another export as invalid
    - `fredhopper_update_data_status` - Checks and updates the status of exports based on information returned from Fredhopper.
    - `fredhopper_clean_exports` - Removes exports older than a configured age (default 3 days)

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

[](#configuration)

This module provides a number of configurable settings for controlling which data is sent to Fredhopper and in what format:

- Use Variant Products?
    - Should variant products be sent separately from their parent, or will their data be aggregated and sent with the parent instead?
- Product-Level Attributes
    - Which attributes are sent at the product level, the attribute type, and if site variants are to be appended.
        - Only attributes meeting certain criteria (e.g. searchable, visible in front-end, etc.) will be able to be selected.
- Variant-Level Attributes
    - Which attributes are either sent at the variant level (if using variant products) or aggregated to the parent product.
- Attribute name mapping
    - Maps Magento attribute codes to Fredhopper attribute ids
- Allowed/Disallowed Search Terms
    - Force or prevent certain search results in instant search functionality.
- Cron Schedules
    - Change schedule of each cron job that generates an export if desired.

Customisation
-------------

[](#customisation)

There are a number of customisation points in the module, allowing for data to be added/modified.

- Additional Fields Provider
    - A virtual type, `additionalFieldsProviderForFredhopper`, is provided with a number of common fields. Additional classes implementing `\Magento\AdvancedSearch\Model\Adapter\DataMapper\AdditionalFieldsProviderInterface` can be added as needed.

```

            Aligent\FredhopperIndexer\Model\Indexer\Data\CategoryFieldsProvider
            Aligent\FredhopperIndexer\Model\Indexer\Data\ImageFieldsProvider

```

- Document Pre/Post-Processors
    - `\Aligent\FredhopperIndexer\Model\DataHandler` class has 2 arguments, `documentPreProcessors` and `documentPostProcessors`, which handle an array of classes implementing `\Aligent\FredhopperIndexer\Api\Indexer\Data\DocumentProcessorInterface`
        - These will be run before and after "processing" of documents as a whole (i.e. after all attribute information has been added). As such, this is a good place to handle any custom aggregation or functionality relating to the product as a whole (as opposed to individual attributes).
- Meta
    - Custom attributes added via code will need to be added to the meta information that is sent to Fredhopper. This is done by adding to the `customAttributeData` argument of the `\Aligent\FredhopperCommon\Model\Config\CustomAttributeConfig` class:

```

                reviews_count
                int
                Review Count

```

- Custom Suggest Data
    - The `\Aligent\FredhopperExport\Model\GenerateSuggestExport` class provides the `fileGenerators` argument by which custom data feeds can be added to the "suggest" export.
        - Each class added to the array must implement `\Aligent\FredhopperExport\Api\FileGeneratorInterface`

```

        true

        false

            BlacklistFileGenerator
            WhitelistFileGenerator

```

- Export Validation
    - The `\Aligent\FredhopperExport\Model\UploadExport` class provides the `validators` argument by which any pre-export validation can be added.
        - Each class added to the array must implement `\Aligent\FredhopperExport\Api\PreExportValidatorInterface`

```

            Aligent\FredhopperExport\Model\Validator\DeletedProductsValidator
            Aligent\FredhopperExport\Model\Validator\MinimumProductsValidator

```

Administration
--------------

[](#administration)

A view of exports is provided in the Adobe Commerce admin area. This view lists all generated exports, including information such as the number of added, updated and deleted products, as well as the export's current status in the system.

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance65

Regular maintenance activity

Popularity24

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 70.3% 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 ~20 days

Recently: every ~1 days

Total

49

Last Release

538d ago

Major Versions

1.0.0 → 2.0.02022-03-16

2.4.0 → 3.0.02022-07-11

3.2.6 → 4.0.02024-10-09

PHP version history (3 changes)1.0.0PHP ^7.0.0

2.0.0PHP &gt;=7.4

4.0.0PHP ^8.3.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/d2562970d9b77564454ead1236c1db5ddedb44198bb00925b614418c4105f541?d=identicon)[aligent](/maintainers/aligent)

---

Top Contributors

[![aligent-lturner](https://avatars.githubusercontent.com/u/40189797?v=4)](https://github.com/aligent-lturner "aligent-lturner (213 commits)")[![carbsrule](https://avatars.githubusercontent.com/u/10014710?v=4)](https://github.com/carbsrule "carbsrule (87 commits)")[![viktor-petryk-aligent](https://avatars.githubusercontent.com/u/105193222?v=4)](https://github.com/viktor-petryk-aligent "viktor-petryk-aligent (2 commits)")[![nalin-perera-aligent](https://avatars.githubusercontent.com/u/199547708?v=4)](https://github.com/nalin-perera-aligent "nalin-perera-aligent (1 commits)")

---

Tags

magento

### Embed Badge

![Health badge](/badges/aligent-magento2-fredhopper-indexer/health.svg)

```
[![Health](https://phpackages.com/badges/aligent-magento2-fredhopper-indexer/health.svg)](https://phpackages.com/packages/aligent-magento2-fredhopper-indexer)
```

###  Alternatives

[smile/elasticsuite

Magento 2 merchandising and search engine built on ElasticSearch

8044.5M33](/packages/smile-elasticsuite)[mollie/magento2

Mollie Payment Module for Magento 2

1121.6M10](/packages/mollie-magento2)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

50374.2k18](/packages/dotdigital-dotdigital-magento2-extension)[swissup/module-search-mysql-legacy

Legacy mysql search for magento 2.4

10483.0k](/packages/swissup-module-search-mysql-legacy)[yireo/magento2-googletagmanager2

Add Google Tag Manager to Magento

167930.4k5](/packages/yireo-magento2-googletagmanager2)[akeneo/module-magento2-connector-community

Akeneo Connector for Adobe Commerce

95709.3k1](/packages/akeneo-module-magento2-connector-community)

PHPackages © 2026

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