PHPackages                             solution25/age-checker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. solution25/age-checker

ActiveShopware-platform-plugin[Utility &amp; Helpers](/categories/utility)

solution25/age-checker
======================

Age Checker - Shopware 6 Plugin

1.0.0(1y ago)00MITPHPCI failing

Since Jun 30Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/solution25com/agechecker-shopware-6-solution25)[ Packagist](https://packagist.org/packages/solution25/age-checker)[ RSS](/packages/solution25-age-checker/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

[![Packagist Version](https://camo.githubusercontent.com/ac357e4d84191299bae5a948bd9d2d44177739b0ea973a04a4a6fceec522c664/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736f6c7574696f6e32352f6167652d636865636b65722e737667)](https://packagist.org/packages/solution25/age-checker)[![Packagist Downloads](https://camo.githubusercontent.com/65cc24c418a9e574d28a98c2a5d9809333a55fb1220313b2d5fd4921fdc2937e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736f6c7574696f6e32352f6167652d636865636b65722e737667)](https://packagist.org/packages/solution25/age-checker)[![License: MIT](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](https://github.com/solution25com/agechecker-shopware-6-solution25/blob/main/LICENSE.md)

AgeChecker
==========

[](#agechecker)

Introduction
------------

[](#introduction)

The AgeChecker plugin helps merchants enforce age verification on their Shopware 6 storefronts. By integrating with an external age verification service, it ensures that customers meet age requirements before proceeding to checkout.

This tool is especially useful for businesses selling age-restricted products, providing a configurable and user-friendly verification layer that integrates seamlessly with Shopware's sales channels.

### Key Features

[](#key-features)

1. **Sales Channel Integration**
    - Add API keys per sales channel for flexible configuration.
2. **Age Verification Options**
    - Customers can verify their age by entering their date of birth.
3. **Retry Management**
    - Users have 3 attempts by default to verify their age.
4. **Temporary Denial Logic**
    - Block users temporarily after 3 failed attempts.
5. **Admin Panel Configuration**
    - Easily manage settings from the Shopware admin panel.

Compatibility
-------------

[](#compatibility)

- ✅ Shopware 6.6.x

Get Started
-----------

[](#get-started)

### Installation &amp; Activation

[](#installation--activation)

1. **Download**

Git
---

[](#git)

- Clone the Plugin Repository:
- Open your terminal and run the following command in your Shopware 6 custom plugins directory (usually located at custom/plugins/):

```
git clone https://github.com/solution25com/agechecker-shopware-6-solution25.git
```

Packagist
---------

[](#packagist)

```
 composer require solution25/age-checker

```

2. **Install the Plugin in Shopware 6**

- Log in to your Shopware 6 Administration panel.
- Navigate to Extensions &gt; My Extensions.
- Locate the newly cloned plugin and click Install.

3. **Activate the Plugin**

- After installation, click Activate or toggle the plugin to activate it

4. **Verify Installation**

- After activation, you will see AgeChecker in the list of installed plugins.
- The plugin name, version, and installation date should appear as shown in the screenshot below.

[![img1](https://private-user-images.githubusercontent.com/101514766/438103110-719ab524-7636-45b9-966a-66670f356c47.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzMTEwLTcxOWFiNTI0LTc2MzYtNDViOS05NjZhLTY2NjcwZjM1NmM0Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04ODFmOTFiNjQyNjcxYjQ0MGE2OGI2YjNiMWNkMjUwNzhlZjI2ZmYzZmI1YzUxNzUzNDhlNGJhMmUxZDRmN2U0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.4LW32Adl6nu8bTIDbhvKC2pO4J-OznTH378nJkfVkME)](https://private-user-images.githubusercontent.com/101514766/438103110-719ab524-7636-45b9-966a-66670f356c47.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzMTEwLTcxOWFiNTI0LTc2MzYtNDViOS05NjZhLTY2NjcwZjM1NmM0Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04ODFmOTFiNjQyNjcxYjQ0MGE2OGI2YjNiMWNkMjUwNzhlZjI2ZmYzZmI1YzUxNzUzNDhlNGJhMmUxZDRmN2U0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.4LW32Adl6nu8bTIDbhvKC2pO4J-OznTH378nJkfVkME)

---

Plugin Configuration
--------------------

[](#plugin-configuration)

1. **Access Plugin Settings**

- Go to Settings &gt; System &gt; Plugins.
- Locate AgeChecker and click the three dots (...) icon or the plugin name to open its settings.

2. **API Key Setup**

- Go to **Extensions &gt; My Extensions &gt; AgeChecker**.
- Select the appropriate **Sales Channel**.
- Enter the **API Key** provided by AgeChecker.net. You must create an account there to obtain your API Key.

Warning

Each sales channel requires a unique API key.

[![img2](https://private-user-images.githubusercontent.com/101514766/438103364-01e9a268-1dae-4eea-b6dd-db453b959765.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzMzY0LTAxZTlhMjY4LTFkYWUtNGVlYS1iNmRkLWRiNDUzYjk1OTc2NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05OTk5ZTMxMjdjMjIzM2JiM2NmNzkzYmJhN2NkNGE4YTU0NDg2YzA5ODM1Y2MwOTgzZDRkMTVlNWQ4MzI1MzYxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.1DIBL20HJnswDAfskK-1B6LtzOGW8Ak4DI5UBsDsZFg)](https://private-user-images.githubusercontent.com/101514766/438103364-01e9a268-1dae-4eea-b6dd-db453b959765.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzMzY0LTAxZTlhMjY4LTFkYWUtNGVlYS1iNmRkLWRiNDUzYjk1OTc2NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05OTk5ZTMxMjdjMjIzM2JiM2NmNzkzYmJhN2NkNGE4YTU0NDg2YzA5ODM1Y2MwOTgzZDRkMTVlNWQ4MzI1MzYxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.1DIBL20HJnswDAfskK-1B6LtzOGW8Ak4DI5UBsDsZFg)

3. **Save Configuration**

- Click Save in the top-right corner to store your settings.

How It Works
------------

[](#how-it-works)

1. **User Initiates Checkout**

- AgeChecker triggers a popup based on the configured method.

2. **Verification Attempt**

- The user provides their birthdate.

[![img3](https://private-user-images.githubusercontent.com/101514766/438103650-cfc8b2aa-edb9-4d43-996b-e395f9223d11.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzNjUwLWNmYzhiMmFhLWVkYjktNGQ0My05OTZiLWUzOTVmOTIyM2QxMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZWUwOWNjMzBhMjQ1NTQzNzE2ZTA4YWRlMGM5MjQ4YzMzYmEyNTI4ODY3ZWQwN2Y3ZGNkNzM3ZDJjODM1OTc5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.bBXAy7SYPLlK1YIxFq_SSdSVGhjhZAu27cs05nhRRvg)](https://private-user-images.githubusercontent.com/101514766/438103650-cfc8b2aa-edb9-4d43-996b-e395f9223d11.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzNjUwLWNmYzhiMmFhLWVkYjktNGQ0My05OTZiLWUzOTVmOTIyM2QxMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZWUwOWNjMzBhMjQ1NTQzNzE2ZTA4YWRlMGM5MjQ4YzMzYmEyNTI4ODY3ZWQwN2Y3ZGNkNzM3ZDJjODM1OTc5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.bBXAy7SYPLlK1YIxFq_SSdSVGhjhZAu27cs05nhRRvg)

- If successful, checkout proceeds.

[![img4](https://private-user-images.githubusercontent.com/101514766/438103745-3f110c91-8364-4093-a441-deab0a3385d5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzNzQ1LTNmMTEwYzkxLTgzNjQtNDA5My1hNDQxLWRlYWIwYTMzODVkNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iNWE0ZWFkNTc3NGMzNWQzOWY1N2FjZDkwNWUxYWIwNDU3ZTMwMjllMDg1Y2NjMzZjYzBjM2Q3NTY0MmI1Y2RiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.wKIKbVZy7SJNvCN8KO637Ls11PLvQqI-HxcKwyfg4j4)](https://private-user-images.githubusercontent.com/101514766/438103745-3f110c91-8364-4093-a441-deab0a3385d5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzNzQ1LTNmMTEwYzkxLTgzNjQtNDA5My1hNDQxLWRlYWIwYTMzODVkNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iNWE0ZWFkNTc3NGMzNWQzOWY1N2FjZDkwNWUxYWIwNDU3ZTMwMjllMDg1Y2NjMzZjYzBjM2Q3NTY0MmI1Y2RiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.wKIKbVZy7SJNvCN8KO637Ls11PLvQqI-HxcKwyfg4j4)

- If unsuccessful:
    - The user can retry up to 3 times.
    - After 3 failed attempts, the user is temporarily denied access.

[![img5](https://private-user-images.githubusercontent.com/101514766/438103809-a43fda8d-86b8-40f8-9314-707e8c6b7c9c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzODA5LWE0M2ZkYThkLTg2YjgtNDBmOC05MzE0LTcwN2U4YzZiN2M5Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYTg3MzdjOWQ4N2M5MjBjN2E1ZjBiY2QzMDFjZTFmMWE1YzhhZjJmNDQ4YmJkMWM3YjBmMGYyMTA2OGU0NGI0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.bUUDs-rx12Ml3_5GTBvCKJAWXvt9fP1PnOYzmmoGINM)](https://private-user-images.githubusercontent.com/101514766/438103809-a43fda8d-86b8-40f8-9314-707e8c6b7c9c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODM0NTAyMDksIm5iZiI6MTc4MzQ0OTkwOSwicGF0aCI6Ii8xMDE1MTQ3NjYvNDM4MTAzODA5LWE0M2ZkYThkLTg2YjgtNDBmOC05MzE0LTcwN2U4YzZiN2M5Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwN1QxODQ1MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYTg3MzdjOWQ4N2M5MjBjN2E1ZjBiY2QzMDFjZTFmMWE1YzhhZjJmNDQ4YmJkMWM3YjBmMGYyMTA2OGU0NGI0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.bUUDs-rx12Ml3_5GTBvCKJAWXvt9fP1PnOYzmmoGINM)

3. **Temporary Denial Logic**

- Denied users are blocked for 24 hours before they can try again.

---

Age Checker Plugin - API Documentation
======================================

[](#age-checker-plugin---api-documentation)

This document describes the API endpoint for the Age Checker Plugin for Shopware 6. The plugin integrates with AgeChecker.net to verify a customer’s age and stores the result in the customer’s custom fields.

---

Update Customer Age Verification Status
---------------------------------------

[](#update-customer-age-verification-status)

**Endpoint**
`POST /age-checker-user-status`

### Description

[](#description)

Updates the `custom_age_confirmed_` custom field for a logged-in customer based on the age verification result received from the AgeChecker.net service.

### System Checks

[](#system-checks)

- Customer must be logged in.
- The `uuid` from AgeChecker.net must be provided.
- Calls the AgeChecker.net API to verify the result.
- Sets the customer’s custom field `custom_age_confirmed_` to `true` if the verification is successful (`status: accepted`).

### Request Headers

[](#request-headers)

```
sw-context-token:
Content-Type: application/json

```

> **Note**: The `sw-context-token` must be obtained via the Shopware Store API authentication process or created automatically in a Storefront session.

### Example Request Body

[](#example-request-body)

```
{
  "uuid": "8e7c35e2-3f48-4fc9-9283-fb0e198b0fd5"
}
```

### Successful Response

[](#successful-response)

```
{
  "message": "Customer age verification status updated"
}
```

### Example Error Response

[](#example-error-response)

```
{
  "message": "uuid is required"
}
```

---

Troubleshooting
---------------

[](#troubleshooting)

### Verify Functionality

[](#verify-functionality)

- Confirm popup appears on checkout.
- Test both verification methods.
- Simulate 3 failed attempts to confirm that the user is blocked afterward.

FAQ
---

[](#faq)

- **Is an API key required?**
    Yes. Without a valid API key, age verification will not function.
- **Can I limit it to certain sales channels?**
    Yes. You can enable or disable the plugin per sales channel.
- **Does this plugin block checkout?**
    Yes, until the user passes age verification.
- **What happens after 3 failed attempts?**
    The user is redirected to a temporary denial page and cannot retry until the timeout expires.

    ---

    [Wiki](https://github.com/solution25com/agechecker-shopware-6-solution25/wiki)
    ------------------------------------------------------------------------------

    [](#wiki)

###  Health Score

30

—

LowBetter than 61% of packages

Maintenance71

Regular maintenance activity

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

414d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2851766651e9958fdd1740394d7af4c76bb357dba37485ab7045c5372bd3ed88?d=identicon)[solution-25](/maintainers/solution-25)

---

Top Contributors

[![solution-25](https://avatars.githubusercontent.com/u/101514766?v=4)](https://github.com/solution-25 "solution-25 (22 commits)")

### Embed Badge

![Health badge](/badges/solution25-age-checker/health.svg)

```
[![Health](https://phpackages.com/badges/solution25-age-checker/health.svg)](https://phpackages.com/packages/solution25-age-checker)
```

###  Alternatives

[shopware/production

176216.5k](/packages/shopware-production)[adyen/adyen-shopware6

Official Shopware 6 Plugin to connect to Payment Service Provider Adyen

25119.6k](/packages/adyen-adyen-shopware6)[frosh/tools

Provides some basic things for managing the Shopware Installation

88858.1k3](/packages/frosh-tools)[kiener/mollie-payments-plugin

Mollie Payments

6767.7k](/packages/kiener-mollie-payments-plugin)[unzerdev/shopware6

Unzer payment integration for Shopware 6

1235.9k](/packages/unzerdev-shopware6)[werkstattl/openblogware

OpenBlogware: A Blog Module for Shopware 6.

438.7k](/packages/werkstattl-openblogware)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
