PHPackages                             actualize/act-b2b-registration - 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. actualize/act-b2b-registration

ActiveShopware-platform-plugin

actualize/act-b2b-registration
==============================

Trims the storefront registration form to B2B: forces company account and removes the guest/account choice, configurable per sales channel.

1.0.1(1mo ago)00MITPHPPHP &gt;=8.4

Since Jul 11Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/actualizer/ActB2bRegistration)[ Packagist](https://packagist.org/packages/actualize/act-b2b-registration)[ RSS](/packages/actualize-act-b2b-registration/feed)WikiDiscussions main Synced 1mo ago

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

ActB2bRegistration - Shopware Plugin
====================================

[](#actb2bregistration---shopware-plugin)

A Shopware 6 plugin that trims the storefront registration form to B2B: it forces the "company" account type and removes the guest/account choice, so shops that only sell to businesses get a clean, unambiguous sign-up. Every feature is toggleable per sales channel, and enforcement is applied both visually (Twig) and server-side (route decorator), so a manipulated or bot-submitted form cannot bypass it.

Features
--------

[](#features)

- **Force company account type**: hides the private/company selector, always registers as "company", and shows the company fields (company name, department, VAT ID) as required
- **Remove the guest/account choice**: hides the "create customer account" checkbox in checkout and enforces the outcome — either always create a real account or always order as guest
- Two independent toggles, fully separate — enable one, both, or neither
- **Server-side enforcement** via a `RegisterRoute` decorator: `accountType` and the guest flag are corrected in the request data before registration, independent of what the form submits
- Applies to both `/account/register` and `/checkout/register` (shared registration component)
- Multi-language support (German &amp; English)
- Per-sales-channel configuration
- Compatible with Shopware 6.7.x

Requirements
------------

[](#requirements)

- Shopware 6.7.x
- PHP 8.4 or higher

Installation
------------

[](#installation)

### Via Composer (recommended)

[](#via-composer-recommended)

```
composer require actualize/act-b2b-registration
bin/console plugin:refresh
bin/console plugin:install --activate ActB2bRegistration
bin/console cache:clear
```

### Manual

[](#manual)

1. Download or clone this plugin into your `custom/plugins/` directory
2. Install and activate the plugin via CLI: ```
    bin/console plugin:refresh
    bin/console plugin:install --activate ActB2bRegistration
    bin/console cache:clear
    ```

Configuration
-------------

[](#configuration)

1. Go to Admin Panel → Settings → System → Plugins
2. Find "Actualize: B2B Registration" and click on the three dots
3. Click "Config" to access plugin settings (settings are saved per sales channel)

### Available Settings

[](#available-settings)

SettingDescriptionDefaultForce company account typeHide the private/company selector, always set "company", show the company fieldsDisabledGuest/account choice`Default` (show choice) · `Hide choice – always create account` · `Hide choice – always guest`DefaultHow it works
------------

[](#how-it-works)

1. **Visual layer (Twig)**: `sw_extends` overrides of the registration component hide the account-type selector (using Shopware's native `onlyCompanyRegistration` path) and, in checkout, remove the "create customer account" checkbox. When "always create account" is active the password fields stay visible and required; when "always guest" is active they are removed.
2. **Server layer (route decorator)**: a decorator on `AbstractRegisterRoute` reads the plugin config for the current sales channel and corrects the submitted data before registration:
    - Force company → `accountType = business`
    - Always account → `guest = false` (a real account is created)
    - Always guest → `guest = true`Because the storefront controller derives the guest flag from `createCustomerAccount` *before* the route runs, the decorator's override is authoritative — a tampered POST (e.g. `guest=1` or `accountType=private`) is still corrected.
3. **Registration itself** is handled by Shopware's standard `RegisterRoute` and validation, so the customer is created exactly as it would be natively — only the incoming data has been normalized.

Technical Details
-----------------

[](#technical-details)

### Configuration keys

[](#configuration-keys)

- `ActB2bRegistration.config.forceBusinessAccount` (bool)
- `ActB2bRegistration.config.accountChoiceMode` (`off` | `forceAccount` | `forceGuest`)

### Service

[](#service)

- `Storefront\Route\B2bRegisterRoute` — decorates `Shopware\Core\Checkout\Customer\SalesChannel\RegisterRoute`; corrects `accountType`/`guest` in the `RequestDataBag` per sales-channel config, then delegates to the inner route

### Template Extensions

[](#template-extensions)

- `component/account/register.html.twig` — forces the company account type and renders the company fields (blocks `component_account_register_personal_address_fields`, `component_account_register_company_fields`)
- `page/checkout/address/register.html.twig` — removes the guest/account checkbox and, in guest mode, the password fields (blocks `page_checkout_register_personal_guest`, `component_account_register_personal_password`, `component_account_register_personal_password_confirmation`)

Behavior Notes
--------------

[](#behavior-notes)

- **"Always guest" and the standalone `/account/register` page**: the guest flag is enforced server-side on every registration route, but the password-field hiding only applies in the checkout flow. On the dedicated `/account/register` page the password fields stay visible in "always guest" mode (guest behaviour is still enforced). This mode is intended for the checkout; shops that force guest and also expose `/account/register` should be aware of this. See the config help text.
- **Whether the account-creation box is checked by default** is a separate Shopware core setting (`core.loginRegistration.createCustomerAccountDefault`) and is intentionally not managed by this plugin.

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

[](#compatibility)

- **Shopware Version**: 6.7.x
- **PHP Version**: 8.4+
- **Template Compatibility**: Uses Shopware 6.7+ template structure

Support
-------

[](#support)

For issues and feature requests, please use the GitHub issue tracker.

License
-------

[](#license)

This plugin is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

Credits
-------

[](#credits)

Developed by Actualize

---

Made with ❤️ for the Shopware Community

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 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

Every ~0 days

Total

2

Last Release

50d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c4299bac39069091458750da888ec6ed88b1898143fc8d95f468a05d19a6c57e?d=identicon)[actualizer](/maintainers/actualizer)

---

Top Contributors

[![actualizer](https://avatars.githubusercontent.com/u/17499933?v=4)](https://github.com/actualizer "actualizer (3 commits)")

---

Tags

shopwareshopware6shopware6-pluginshopware6-pluginssw6sw6-plugin

### Embed Badge

![Health badge](/badges/actualize-act-b2b-registration/health.svg)

```
[![Health](https://phpackages.com/badges/actualize-act-b2b-registration/health.svg)](https://phpackages.com/packages/actualize-act-b2b-registration)
```

###  Alternatives

[shopware/production

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

Official Shopware 6 Plugin to connect to Payment Service Provider Adyen

23121.1k](/packages/adyen-adyen-shopware6)[unzerdev/shopware6

Unzer payment integration for Shopware 6

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

Mollie Payments

6770.3k](/packages/kiener-mollie-payments-plugin)[shopware/storefront

Storefront for Shopware

684.9M304](/packages/shopware-storefront)[payone-gmbh/shopware-6

PAYONE Payment Plugin

2187.3k](/packages/payone-gmbh-shopware-6)

PHPackages © 2026

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