
ContentProtect for Magento 2 provides a streamlined, secure solution to password-protect any CMS, product, or category page without the need for complex customer group configurations. Simply set a global password and toggle protection on any specific page in seconds. Once a visitor enters the correct password, access is granted for their entire session, no account creation required and no hassle for the user.
This extension is the ideal choice for B2B wholesale portals, VIP product ranges, exclusive pre-launch content, or members-only resources.


Free Support
up to 60 days


Free Upgrades
up to 1 year


Fully open source
Compatible with Magento 2 community and enterprise 2.3.3 - 2.4.x including cloud edition
Magento 2 is a powerful platform, but it offers no simple, built-in way to put a password gate in front of an individual page. Customer groups and shared catalogues are capable tools, but they require every visitor to create an account and log in, and setting them up correctly demands real configuration effort.
ContentProtect solves a fundamentally different problem: you need to share a specific URL with a specific group of people, and you don't want the general public to see it. You don't need them to register. You just need a password.
Whether that's your wholesale trade catalogue, a pre-launch product, a members-only CMS page, or a set of restricted resources, ContentProtect handles it cleanly, quickly, and without touching core Magento files.
ContentProtect uses Magento's native plugin system to intercept three controller actions, CMS page view, product page view, and category page view. When a visitor lands on a protected page, a lightweight session check runs:
"I have a specific category of products intended only for my wholesale trade partners. I don't want to force them to create a full account just to view the current range and terms. Can I simply put a password on the 'Wholesale' category so I can share the link and password via email?"
Yes! With ContentProtect, you simply navigate to Catalog > Categories, select your Wholesale category, and toggle "Enable Password Protected" to Yes under "Page Protection". Any visitor hitting that category or its products will be prompted for the password. Once entered, they can browse the entire protected range for the rest of their session.

"We are launching a new VIP product line next week and want to give our top customers early access via a private CMS landing page. We need this to be secure but easy for the customers to use. Does your extension support individual CMS pages?"
Absolutely. You can enable protection for specific CMS pages under Content > Pages. The extension uses an encrypted global password, meaning your VIPs use one simple code to unlock the content. Because the gate page inherits your store's header and footer, the customer experience remains professional and on-brand.

The Challenge: A wholesale supplier runs a single Magento store serving both retail and trade customers. Their trade pricing, bulk pack sizes, and reseller SKUs must not be visible to the general public or indexable by search engines.
Implementation: They protect their entire "Trade Catalogue" category with a password, then share the URL and password with approved buyers during onboarding. Retail visitors see the public store normally. Trade buyers enter the password on their first visit and browse freely for the rest of their session, no account required.
Result: Trade pricing and wholesale-only products stay completely private, without building a separate store or maintaining a customer group structure.
The Challenge: A brand is launching a limited-edition collection. They want newsletter subscribers to have 48 hours of exclusive shopping access before the public launch, without building a custom early-access system or gating the entire store.
Implementation: The new collection's category page and individual product pages are protected with a password included in the subscriber email. On launch day, the admin simply disables protection with a single config change, no page-by-page toggling needed thanks to the global enable/disable switch.
Result: Subscribers get a genuinely exclusive experience that rewards loyalty, set up in minutes with no custom development.
The Challenge: A distributor needs to host trade terms, reseller agreements, and technical data sheets on their website, accessible to authorised partners only, invisible to the public and competitors.
Implementation: They create CMS pages for each document and enable password protection on each. Partners receive the password as part of their onboarding welcome email. The same password works across all gated CMS pages, partners enter it once and access everything freely.
Result: Sensitive commercial documents hosted securely on Magento, partners access them instantly, the public never sees them.
The Challenge: A premium lifestyle brand sells a members-only product range exclusively to subscribers of their physical membership club. They need frictionless access for members without requiring them to create a website account.
Implementation: The members-only products are protected by a password printed on each member's welcome card and sent in their welcome email. Members visit the store, enter the password, and shop immediately. No account creation, no login wall, just seamless access that matches the premium feel of the brand.
Result: A frictionless, premium experience for members, without building or maintaining a custom account management portal.
The Challenge: An agency needs to demo a new store build to their client on a live URL before launch, without exposing product pricing, content, or design to competitors, search engines, or the public.
Implementation: Key product and category pages are password-protected during the client review phase. The client receives the password and can browse the full, real store. When sign-off is granted, the agency disables protection globally in a single config change.
Result: Client reviews happen on the real production site without any risk of exposure, faster sign-offs and a more impressive, realistic demo experience.
The Challenge: A training company sells event tickets through Magento. After the event, they want to give attendees exclusive access to CMS pages containing slides, recordings, and downloadable resources, for a limited window only.
Implementation: Post-event resource pages are protected with a time-limited password included in the follow-up email sent to all confirmed attendees. After 30 days, the password is changed and the old one expires naturally. No attendee portal to build or maintain.
Result: Attendees get a polished, exclusive post-event experience that is easy for the organiser to manage.
Admin: Once installed, a dedicated "Page Protection" fieldset with a toggle switch appears on every CMS page, product, and category edit screen. The toggle is injected via Magento's UI component merge system, meaning it appears reliably on every Magento 2.4.x installation without layout XML conflicts. The global password is set in Stores → Configuration → Scommerce → CMS Page Protect and is stored using Magento's encrypted backend model.
Customer: When a customer arrives at a protected page, they see a clean, full-width gate page that sits within your existing theme. After entering the correct password, they are taken immediately to the page they were trying to reach. If they then navigate to another protected page in the same session, it loads without any gate, frictionless browsing from that point forward.
Here are the main features of this module-:
We offer 60 days of free support and 12 months of free upgrade for any standard Magento site when you buy this extension. You can also get our installation service for a small fee. If you want more benefits, you can purchase our 12 months of free premium support and free lifetime upgrade package. Please contact us if you need any assistance or customization for this extension. We will reply to you within 48 hours. We may also offer you a special deal or a free solution if we like your idea.
core_config_data table using your Magento installation's encryption key. It is never stored or transmitted in plain text. gate.phtml file using Tailwind utility classes for a perfectly on-brand result.is_password_protected attribute values are preserved in the database, so re-enabling the module restores all your configured protection settings instantly.is_password_protected attribute is scoped at the store view level. However, the CMS page flag is a flat database column, so CMS protection applies across all store views that serve that specific page.
Step 2: Next, run the config commands shown on the top of the page then click on the extension that you want to install. A composer require command will be revealed in the dropdown menu. Run the command then clear caches to complete the installation.