PHPackages                             lupasearch/sylius-lupasearch-plugin - 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. [Search &amp; Filtering](/categories/search)
4. /
5. lupasearch/sylius-lupasearch-plugin

ActiveSylius-plugin[Search &amp; Filtering](/categories/search)

lupasearch/sylius-lupasearch-plugin
===================================

1.5.1(6mo ago)02071[1 PRs](https://github.com/lupasearch/sylius-plugin/pulls)proprietaryPHPPHP ^8.1

Since May 16Pushed 3w ago1 watchersCompare

[ Source](https://github.com/lupasearch/sylius-plugin)[ Packagist](https://packagist.org/packages/lupasearch/sylius-lupasearch-plugin)[ RSS](/packages/lupasearch-sylius-lupasearch-plugin/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (22)Versions (25)Used By (0)

LupaSearch Sylius plugin
========================

[](#lupasearch-sylius-plugin)

The LupaSearch Sylius plugin seamlessly integrates your Sylius store with the LupaSearch SaaS platform. This plugin handles the synchronization of product data and search configuration, ensuring your store's search functionality is always up-to-date and optimized for performance.

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

[](#compatibility)

The plugin is compatible with Sylius 1.12.x - 1.14.x

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

[](#installation)

> ***NOTE:*** Before installation, please contact our support team at  to obtain the necessary credentials and onboarding information.

To install the LupaSearch plugin, follow these steps:

1. Install the bundle using Composer:

    ```
    composer require lupasearch/sylius-lupasearch-plugin
    ```
2. Open your `bundles.php` file located in the `config` directory of your Sylius project.
3. Add the following lines at the end of the file:

    ```
    // config/bundles.php

    return [
        // ... other bundles ...

        LupaSearch\SyliusLupaSearchPlugin\LupaSearchSyliusLupaSearchPlugin::class => [
            "all" => true,
        ],
    ];
    ```
4. Update the schema:

    ```
    php bin/console doctrine:migrations:migrate
    ```
5. Clear your cache:

    ```
    php bin/console cache:clear
    ```

Configure the extension
-----------------------

[](#configure-the-extension)

To start using the LupaSearch, you need to configure it first.

### Environment variables

[](#environment-variables)

```
# LupaSearch environment variables

LUPASEARCH_API_KEY=
LUPASEARCH_INDEX_ID=
LUPASEARCH_SEARCH_QUERY_ID=
LUPASEARCH_BATCH_SIZE_FETCH_FROM_DATABASE=100
LUPASEARCH_BATCH_SIZE_SEND=100
LUPASEARCH_MESSENGER_TRANSPORT_DSN=amqp://rabbitmquser:rabbitmqpass@rabbitmq:5672
LUPASEARCH_ATTRIBUTE_TYPE_NUMERIC_PREFIX=
LUPASEARCH_ATTRIBUTE_TYPE_TEXT_PREFIX=
LUPASEARCH_AUTOMATED_INITIATE_EXPORT_ENABLED=
```

### Configuration file

[](#configuration-file)

Create a file named `lupasearch_sylius_lupasearch.yaml` in the `config/packages` directory of your Sylius project with the following content:

```
parameters:
    env(LUPASEARCH_AUTOMATED_INITIATE_EXPORT_ENABLED): "false"

lupa_search_sylius_lupa_search:
    api_key: "%env(LUPASEARCH_API_KEY)%"
    index_id: "%env(LUPASEARCH_INDEX_ID)%"
    search_query_id: "%env(LUPASEARCH_SEARCH_QUERY_ID)%"
    export:
        batch_size_fetch_from_database: "%env(int:LUPASEARCH_BATCH_SIZE_FETCH_FROM_DATABASE)%"
        batch_size_send: "%env(int:LUPASEARCH_BATCH_SIZE_SEND)%"
        automated_initiate_export_enabled: "%env(bool:LUPASEARCH_AUTOMATED_INITIATE_EXPORT_ENABLED)%"
    attributes:
        type_numeric_prefix: "%env(LUPASEARCH_ATTRIBUTE_TYPE_NUMERIC_PREFIX)%"
        type_text_prefix: "%env(LUPASEARCH_ATTRIBUTE_TYPE_TEXT_PREFIX)%"
        numeric_facet_type: "%env(LUPASEARCH_NUMERIC_FACET_TYPE)%"
```

Also, you need to add the following environment variables to your `.env` file, the variables names may be different depending on your needs, but it should be the same as in the `lupasearch_sylius_lupasearch.yaml` file.

### Update Facets

[](#update-facets)

The `lupasearch:facets:update` command is used to synchronize your facets with LupaSearch. This command fetches all attributes and options from your Sylius project and sends them to LupaSearch as facets.

To do this, use the following command in your terminal:

```
bin/console lupasearch:facets:update
```

This command could be hooked up on a cron job to ensure that your facets are always up-to-date with your Sylius project. For example, you could set up a cron job to run this command every midnight.

> ❗ Please note that for this command to work, you need to have at least one facet in your search query.

Synchronize data
----------------

[](#synchronize-data)

This plugin provides LupaSearch service integration to Sylius projects. It offers several commands to synchronize your data with LupaSearch.

### Export All Documents

[](#export-all-documents)

The `lupasearch:documents:export` command is used to export all enabled product variants as documents to LupaSearch. This command fetches all enabled product variants from your Sylius project and sends them to LupaSearch. To do this, use the following command in your terminal:

```
bin/console lupasearch:documents:export
```

This command could be run one time after a nightly import to your Sylius project to ensure that all your product variants are exported to LupaSearch.

> ❗ Please note that when using CLI (for example, Sylius catalog import), you should set isQueueForExport() to false in LupaExportContext. This will ensure that the product variants would not be put in the queue for export to LupaSearch. Instead, a good practice is to run the `lupasearch:documents:export` command after the import is finished.

### Export Queued Documents

[](#export-queued-documents)

The `lupasearch:documents:export:initiate` command is used to fetch all queued catalog from the database and puts respective variants to the message queue for export to Lupa.

To do this, use the following command in your terminal:

```
bin/console lupasearch:documents:export:initiate
```

> ❗ Please note that when using CLI (for example, Sylius catalog import), you should set isQueueForExport() to false in LupaExportContext. This will ensure that the product variants would not be put in the queue for export to LupaSearch. Instead, a good practice is to run the `lupasearch:documents:export:initiate` command after the import is finished.

#### Queued Synchronization Options

[](#queued-synchronization-options)

You have two options for queued synchronization of product variants:

1. **Enable Automated Export**: Set the `LUPASEARCH_AUTOMATED_INITIATE_EXPORT_ENABLED` environment variable to `true`. The synchronization with LupaSearch occurs upon the completion of the `KernelFinishRequest`. This option is suitable for low-traffic sites.
2. **Scheduled Export (Recommended for High-Traffic Sites)**: Set up a cron job or scheduler to run the `lupasearch:documents:export:initiate` command periodically. For example, you could configure a cron job to run this command every 15 minutes:

    ```
    */15 * * * * bin/console lupasearch:documents:export:initiate
    ```

    This approach ensures that the synchronization process does not impact the performance of your Sylius store during high traffic.

### Start Queue Consumer

[](#start-queue-consumer)

To process the queued product variant exports, you need to run the consumer. This consumer listens for export jobs and sends product data to LupaSearch.

Start it with the following command:

```
bin/console messenger:consume lupasearch_export
```

You can run this command in the background or set it up as a systemd service, Supervisor job, or Docker service to ensure it’s always running in production.

For development environments, you can run it manually in your terminal whenever you need to process the queued exports.

###  Health Score

44

—

FairBetter than 91% of packages

Maintenance83

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95% 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 ~48 days

Recently: every ~14 days

Total

13

Last Release

197d ago

### Community

Maintainers

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

---

Top Contributors

[![aurzal](https://avatars.githubusercontent.com/u/101714175?v=4)](https://github.com/aurzal "aurzal (19 commits)")[![padamonis-adeoweb](https://avatars.githubusercontent.com/u/98740696?v=4)](https://github.com/padamonis-adeoweb "padamonis-adeoweb (1 commits)")

---

Tags

syliussylius-plugin

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/lupasearch-sylius-lupasearch-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/lupasearch-sylius-lupasearch-plugin/health.svg)](https://phpackages.com/packages/lupasearch-sylius-lupasearch-plugin)
```

###  Alternatives

[monsieurbiz/sylius-search-plugin

A search plugin using Elasticsearch for Sylius.

49122.6k](/packages/monsieurbiz-sylius-search-plugin)[sylius/invoicing-plugin

Invoicing plugin for Sylius.

891.0M2](/packages/sylius-invoicing-plugin)[sylius/refund-plugin

Plugin provides basic refunds functionality for Sylius application.

691.7M17](/packages/sylius-refund-plugin)[asdoria/sylius-facet-filter-plugin

A Simply Facet filter plugin for Sylius

117.5k1](/packages/asdoria-sylius-facet-filter-plugin)[webgriffe/sylius-akeneo-plugin

Plugin allowing to import products data from Akeneo PIM to your Sylius store.

2480.4k](/packages/webgriffe-sylius-akeneo-plugin)[monsieurbiz/sylius-media-manager-plugin

Add a media manager to your Sylius.

1789.0k5](/packages/monsieurbiz-sylius-media-manager-plugin)

PHPackages © 2026

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