I'm trying to augment a Commerce query with additional parameters like so, but I can't get 'colour' and 'range' working together. Clearly my and/relatedTo syntax is wrong but how exactly?
{% set colour = craft.app.request.getQueryParam('colour') ?? null %}
{% set range = craft.app.request.getQueryParam('range') ?? null %}
{% set query = {
type: 'fabric',
limit: 999,
orderBy: 'defaultSku asc'
} %}
{% set query = colour is defined ? query|merge({ relatedTo: ['and', { targetElement: craft.categories.slug(colour) }]}) : query %}
{% set query = range is defined ? query|merge({ relatedTo: ['and', { targetElement: craft.categories.slug(range) }]}) : query %}
{% set swatches = craft.products(query).all() %}
{% for swatch in swatches %}
(Also need to add further queries params for texture etc which are also related to categories)