> For the complete documentation index, see [llms.txt](https://docs.fact-finder.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fact-finder.com/webcomponents-overview/web-components-4.x./guides/advanced/category-urls.md).

# Category URLs

Map SEO-friendly category URLs to FactFinder search requests.

This guide covers how to build and use more SEO friendly URLs like `https://www.your-shop.com/c/shoes/sneakers` with FactFinder Web Components.

What we need:

* Disable the URL parameters
* Map the URL to a FactFinder request

### Parameter handling

```html
<ff-communication use-url-parameters="false"></ff-communication>
```

Disables the usage of HTTP parameters entirely.

```html
<ff-communication only-search-params></ff-communication>
```

`only-search-params` provides a pre-configured set of search related parameters which then are pushed to the URL, i.e. *query*, *filter*, *sort*, *page* and *productsPerPage*. This can be used in conjunction with the attribute `parameter-whitelist`.

```html
<ff-communication parameter-whitelist="page,query"></ff-communication>
```

Exactly define which parameters are going to appear in the browser URL.

### Map URL to a request

The mapping is done on server side via an additional `ff-communication` attribute called `add-params`.

`add-params` takes a comma-separated list of HTTP parameters which will be added to the FactFinder request. Consider the following configuration:

```html
<ff-communication url="https://fact-finder.de/your-ff" 
                  channel="en"
                  version="ng"
                  api="v5"
                  add-params="param1=ONE,param2=TWO"
                  search-immediate
                  default-query="shoes"></ff-communication>
```

This will result in a request that will look like: `https://fact-finder.de/your-ff/en?query=shoes&param1=ONE&param2=TWO`.

A typical use case for this feature is adding a category filter to a page, returning all products that are associated with a given category.

This way FactFinder will be used for product lists, facets, sorting options, paging, recommendations, etc. while letting your shop system take care of URL handling and CMS content.

### Generating `add-params` values

This is a very individual case and depends on the shop system you are using and on your data.

In general, filter parameters should be generated in a similar way as you do for the data export. The FactFinder filter parameter pattern is:

<details>

<summary>Filter parameter patterns</summary>

| FF 7.x                       | FF NG                         |
| ---------------------------- | ----------------------------- |
| `filter{FIELD_NAME}={VALUE}` | `filter={FIELD_NAME}:{VALUE}` |
| e.g. `filterColor=blue`      | e.g. `filter=Color:blue`      |

</details>

We recommend using our [ff-asn demo](https://github.com/FACT-Finder-Web-Components/demos/tree/release/4.x/ff-asn) and the browser's dev tools to take a detailed look at parameter generation.

For our existing modules please refer to:

* [Magento](https://github.com/FACT-Finder-Web-Components/magento1-module)
* [Magento 2](https://github.com/FACT-Finder-Web-Components/magento2-module)
* [PrestaShop](https://github.com/FACT-Finder-Web-Components/prestashop-module)
* [OXID eShop](https://github.com/FACT-Finder-Web-Components/oxid-eshop-module)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.fact-finder.com/webcomponents-overview/web-components-4.x./guides/advanced/category-urls.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
