Open-source middleware for Magento 2

Natural language search for any Magento 2 store. Zero install.

A middleware that sits between your customers and your Magento 2 GraphQL API. It translates natural language queries into precise product filters — no Composer packages, no deployments, no version conflicts.

Zero Magento install Auto-discovers schema LLM or regex parser

5 minutes to connect. Works with any Magento 2.4+ store.

Live translation
demo
Customer query
Nike running shoes under €100 in red, size 42
Resolved GraphQL filters
brand Nike ID: 43
category Running Shoes ID: 28
price < €100 0-100
color Red ID: 52
size 42 ID: 167
Parser mode
LLM (Claude)
or regex for simple queries
Attributes discovered
Auto
from store aggregations
Built on: Magento 2 GraphQL API, Claude API (Anthropic), Go middleware

How it works

Three steps. Five minutes to first query.

1

Connect

Create an integration token in Magento Admin. Give it to the middleware. No Composer, no deployment, no SSH.

Admin > System > Integrations > Add New. Takes under 5 minutes.

2

Discover

The middleware queries your store's GraphQL API once and caches the full schema: every filterable attribute, every option value, every price range.

Uses products(search:"", pageSize:1) aggregations + customAttributeMetadata.

3

Translate

Natural language queries are matched against your cached attribute options and converted to precise GraphQL filter objects with resolved option value IDs.

Choose LLM mode (Claude API) for complex queries or regex mode for zero cost.

Architecture

The middleware layer between natural language and Magento GraphQL.

Customer
NL Query
Agentic Commerce
GraphQL Filter
Magento Store
Rule-based regex
zero cost

Pattern matching against cached attribute options. No external API calls. Best for stores with predictable, structured queries and fewer attributes.

  • Zero LLM cost
  • Deterministic results
  • Sub-millisecond parsing
  • Works fully offline

Who it's for

Any Magento 2.4+ store that wants natural language product search without touching their codebase.

Fashion & Apparel

Complex attribute combinations: brand, color, size, material, style, season. Customers search naturally — the middleware resolves it all.

  • Multi-attribute filtering (brand + color + size)
  • Synonym resolution (sneakers = running shoes)
  • Size normalization across brands
  • Seasonal and collection awareness
Get early access

Electronics & Tech

Spec-heavy product catalogs with precise technical filters. Turn natural language specs into exact attribute matches.

  • Technical spec parsing (RAM, storage, screen size)
  • Model number recognition
  • Price range extraction from natural language
  • Compatibility-aware filtering
Get early access

B2B & Large Catalogs

Thousands of SKUs, hundreds of filterable attributes. The middleware auto-discovers everything and scales with your catalog.

  • Handles 100+ filterable attributes
  • Part number and SKU search
  • Bulk query optimization
  • Custom attribute type support
Get early access

Under the hood

How the middleware discovers and translates your store schema.

Store discovery via GraphQL aggregations

A single query returns every filterable attribute with available values and counts. No catalog export. No manual mapping.

products(search: "", pageSize: 1) {
  aggregations {
    attribute_code
    label
    options {
      label
      value
      count
    }
  }
}

Cached on startup. Refreshed on schedule or manually.

Schema introspection with customAttributeMetadata

Discovers the full store schema: attribute types, input types, and entity types for every custom attribute.

customAttributeMetadata(
  attributes: [{
    attribute_code: "color"
    entity_type: "catalog_product"
  }]
) {
  items {
    attribute_code
    attribute_type
    input_type
  }
}

Resolves attribute types for proper filter construction.

NL-to-filter resolution

The parser matches natural language tokens against cached attribute options, resolves to internal option value IDs, and constructs a valid GraphQL filter object.

products(
  filter: {
    brand: { eq: "43" }
    price: { from: "0", to: "100" }
    color: { eq: "52" }
    size: { eq: "167" }
  }
  sort: { relevance: DESC }
  pageSize: 20
) {
  items {
    name
    sku
    price {
      regularPrice {
        amount { value currency }
      }
    }
  }
}

Filter values are option IDs, not labels. The middleware handles the resolution.

Compatibility & requirements

Minimal requirements. Maximum compatibility.

Magento platforms
supported
Magento Open Source 2.4+ Adobe Commerce 2.4+ Adobe Commerce Cloud Magento 2.3.x (limited)
Parser engines
choose one
Claude API (Anthropic) Rule-based regex (built-in) Custom LLM (OpenAI, etc.)
Hosting & infrastructure
any
Any hosting provider Cloud or on-premise Docker / Kubernetes Self-hosted Go binary
Requirements
minimal
GraphQL API enabled Integration token (Admin API) Go 1.21+ (self-hosted) No Composer packages needed

Pricing

Open source core. Managed service for teams that want zero ops.

Self-hosted
Free / open source

Full source code. Run it yourself.

  • Complete Go middleware source
  • LLM + regex parser modes
  • Store schema auto-discovery
  • GraphQL filter generation
  • Community support (GitHub)
Managed
€49 / month

Per store. We host and operate it.

  • Everything in Self-hosted
  • Managed infrastructure
  • Schema refresh automation
  • Uptime monitoring
  • Email support
Enterprise
Custom / annual

Multi-store. SLA. Dedicated support.

  • Everything in Managed
  • Multi-store configuration
  • Custom parser fine-tuning
  • SLA with guaranteed uptime
  • Priority support & onboarding

Why merchants choose this approach

Zero install opens the market from 'stores with a dev team' to 'any Magento 2.4+ store'.

"We connected the middleware to our store in under 10 minutes. No Composer, no deployment, no version conflicts. It just discovered our catalog and started translating queries."

FAQ

Common questions about the middleware.

Do I need to install anything on my Magento store?

No. The middleware only needs a Magento integration token with catalog read access. It connects via the standard GraphQL API. No Composer packages, no code changes, no deployment.

What's the difference between LLM and regex parser modes?

LLM mode (Claude API) handles complex, ambiguous queries with synonyms and typos. Regex mode matches patterns against cached attributes at zero cost. You can use both: regex for simple queries, LLM as fallback.

How does schema discovery work?

One GraphQL query (products with aggregations) returns all filterable attributes, their options, and counts. customAttributeMetadata adds type information. Cached and refreshed on a schedule.

What Magento versions are supported?

Magento 2.4+ and Adobe Commerce 2.4+ are fully supported. Magento 2.3.x has limited support since some GraphQL aggregation features were added in 2.4.

What does the middleware return?

A valid Magento GraphQL products query with resolved filter objects. Filter values are internal option IDs, not labels. The response includes the matched products with all requested fields.

Can I use my own LLM instead of Claude?

Yes. The parser interface is pluggable. Claude API is the default and recommended option, but you can integrate OpenAI, a local model, or any API-compatible LLM.

Get early access

24h response

Share your store details. We'll reply with a technical assessment and connection instructions.

Please provide a valid work email.
Please provide a valid store url.
Please provide a valid magento version.
Please provide a valid current search solution.
Please provide a valid parser mode interest.
Please provide a valid notes (optional).
No spam. We reply within 24 hours.
Get a Proposal • 24h response Call