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.
Requires Sylius 2.3+ only.
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.
| Mode | Visitor not signed in | Signed-in customer |
|---|---|---|
open (default) | Everything, as Sylius | Everything |
prices_hidden | Catalogue 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 carts | Everything |
closed | Only 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 |
private, no-store.

composer require tmonier/sylius-channel-access-pluginTmonier\SyliusChannelAccessPlugin\TmonierSyliusChannelAccessPlugin in config/bundles.php.AccessModeTrait to your channel entity and declare it in config/packages/_sylius.yaml.Full documentation: README on GitHub.
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.
English, French, German, Spanish, Italian, Dutch, Polish.
No reviews yet. Be the first to review this product!
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© 2026 Sylius. All rights reserved.