My permalink route isn't working nor is the tag shown in the url

I might be doing something wrong here.

I have this in my routes.yaml

routes:
  /shop/:
    controller: channel
    filter: tag:shop
    permalink: /shop/{slug}/
    template: shop
    data: tag.shop

I want the posts that are shown on the shop.hbs page, to link to /shop/post-title. These posts have the tag shop added.
But they are not, they are linking to /post-title right now, the tag is missing.

I also have this in my routes.yaml:

collections:
  /:
    permalink: /{slug}/
    template: index
  /tags/:
    permalink: /tag/{slug}/
    template: tags

taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

But none of my posts are having the tag in the url.
Is this some kind of setting I have off or something, from what I understood from the documentation this should work?

From the documentation it seems that the permalink property is for collections only.
That means your channel will use that property.

Regarding your collections, there is no filter on the main collection, so every post will belong to that one and no posts belong to the /tags/ collection.

You can try the following:

collections:
  /:
    permalink: /{primary_tag}/{slug}/
    template: index

This will use the primary tag of posts, but you can also set a hardcoded value as well.

Okay that worked, but say I want to have only the tag for my shop page.

collections:
  /:
    permalink: /{slug}/
    template: index
  /tags/:
    permalink: /tag/{slug}/
    template: tags
  /shop/:
    permalink: /shop/{slug}/
    template: shop

Adding this, doesn’t do anything to my shop.hbs. I’m not sure how the collections work honestly. The / index overwrites it. But honestly don’t know how to do it only for the shop items