Two ecosystems,
One big event.
November 5, 2026. Lyon
Save your seat >>
No reviews yet

Channel Access

Product Channel Access Image

Per-channel access mode for visitors who are not signed in: open, prices hidden, or closed behind a login. Enforced server-side, shop and shop API.

Sylius version
2.2
Downloads
< 1K

Requires Sylius 2.3+ only.

The problem

A B2B shop often needs a login wall, or a catalogue without prices until the customer signs in. Hiding a price in a template is not enough: the same price is in the shop API, and the add-to-cart works whatever the page shows.

Features

ModeVisitor not signed inSigned-in customer
open (default)Everything, as SyliusEverything
prices_hiddenCatalogue pages without price, promotion or buy button ("Log in to see your prices"); cart, checkout and order routes redirect to the login; the shop API returns no price and refuses cartsEverything
closedOnly the home page, login, registration, password reset and the routes you exempt; everything else redirects to the login (401 JSON on /api/v2/shop/*)Everything
  • A field on the channel form of the admin.
  • Responses of a restricted channel are private, no-store.
  • A last-line guard refuses any add to cart of an anonymous visitor on a channel that hides prices (pages, live components, shop API, reorder).
  • A channel class without the plugin's trait is treated as closed: the plugin refuses rather than opening everything.

Screenshots

product list with prices hidden

access mode on the channel form

Installation

  1. composer require tmonier/sylius-channel-access-plugin
  2. Register Tmonier\SyliusChannelAccessPlugin\TmonierSyliusChannelAccessPlugin in config/bundles.php.
  3. Add AccessModeTrait to your channel entity and declare it in config/packages/_sylius.yaml.
  4. Import the hooks configuration, then run the migration (see the README).
  5. Pick the mode of each channel in the admin.

Full documentation: README on GitHub.

Compatibility

Sylius 2.3+ only (relies on the condition option of Twig hooks, absent from Sylius 2.2), PHP 8.3+; MySQL, MariaDB and PostgreSQL. Version 0.x: read the CHANGELOG before each upgrade.

Languages

English, French, German, Spanish, Italian, Dutch, Polish.

Reviews

No reviews yet

No reviews yet. Be the first to review this product!

Loading
  • Free updates
  • Community support

Have already account? Sign in
See how it works
Compatibility & requirements
  • Compatible with Sylius 2.2 and higher

No reviews yet
17 plugins
Since 12.10.2026

Free, open source (MIT) Sylius 2 plugins for European merchants: compliance (Factur-X, EU withdrawal, GPSR), B2B (quick order, volume pricing, quotes) and back-office productivity. Tested, PHPStan max, 7 languages.

Read more
Sylius Addons Marketplace

Discover plugins, themes, and resources from trusted vendors, helping you get the most out of your work.

© 2026 Sylius. All rights reserved.

Powered by Stripe