routes.json

The merchant's URLs.

landing

Where a search lands when its query names a page and nothing is left as text, such as "graues sofa". Default: category.

On the merchant's page for what the query named: the category's page with the query's filters chosen, or the brand's page when it names only a brand. The page brings its merchandising and its URL.

On the search page, with the category and the filters as chips.

The search page's path, per locale where it differs, such as /suche or { "de": "/suche", "en": "/search" }. Default: /search.

filter_pages

The filter states that get a path of their own, such as /wohnen/sofas/farbe--grau/: a category with one value of each facet of a listed combination. Every other filter state is the category with parameters. Default: none.

The combinations of facets whose values a path holds, and how a path spells them. A segment is the facet's parameter name, the separator and the value's slug, such as farbe--grau, and the segments follow the category's path in the order of facets, whatever order the shopper chose them in.

facetsarray of stringsRequired

The facets a path may hold, in the order of their segments: options, their groups, and the brand. ["brand", "gender", "material"]

combinationsarray of arrays of stringsRequired

The combinations that get a path, each one to three of facets, with one value of each. [["brand"], ["gender"], ["brand", "gender"]]

before_categorymap of (string or map of strings)

One facet whose value stands before the category's path under a fixed word, as brand pages do, per locale where it differs: { "brand": "marken" } writes /marken/arcteryx/outdoor-jacken/. Default: none.

separatorstring

What joins a segment's parameter name and the value's slug. Default: --, which no slug holds, so - stays possible for a shop whose URLs read color-red.

min_products

The fewest products a filter page shows to be indexed; with fewer it is noindex. Default: 4.

trailing_slash

Whether a page's path ends in a slash. Default: as_written, each path as the catalog writes it.

Each path as the catalog writes it.

Every path ends in a slash: /wohnen/sofas/.

No path ends in a slash but the root: /wohnen/sofas.

parameters

The query parameters whose names differ from their codes, by code: a facet's field, such as color, or one of the reserved q, page, sort, from, ignore and redirect. Every other parameter is named by its code; a range is the name with .gte and .lte, such as price.gte. { "color": "farbe", "q": { "name": "suche", "aliases": ["query"] } }

namestring

The name URLs are written with. Default: the code.

aliasesarray of strings

Further names a URL may use, read as this parameter and written as its name.

$schema

The JSON Schema an editor checks this file against; kept as written.

Example

tests/fixtures/home/routes.json (trimmed)
{
  "$schema": "../../../contracts/schema/routes.json",
  "search": { "de": "/suche", "en": "/en/search" }
}

Guide: routes.json

On this page