PHPackages                             spryker-demo/merchant-onboarding-feature - 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. spryker-demo/merchant-onboarding-feature

ActiveLibrary

spryker-demo/merchant-onboarding-feature
========================================

Merchant Onboarding Feature

1.0.0(7mo ago)00proprietaryPHP &gt;=8.2CI passing

Since Sep 25Pushed 7mo agoCompare

[ Source](https://github.com/spryker-demo/merchant-onboarding-feature)[ Packagist](https://packagist.org/packages/spryker-demo/merchant-onboarding-feature)[ RSS](/packages/spryker-demo-merchant-onboarding-feature/feed)WikiDiscussions main Synced 1mo ago

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

Merchant Onboarding Feature Module.
===================================

[](#merchant-onboarding-feature-module)

[![Minimum PHP Version](https://camo.githubusercontent.com/ec21f169d70b69344c67d6f18fa1a24d20476d2f0cd680e8c4a1534c22f34e5f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230382e322d3838393242462e737667)](https://php.net/)

This feature handles merchant onboarding state machine process.

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

[](#installation)

```
composer require spryker-demo/merchant-onboarding-feature

```

### Add `SprykerDemo` namespace to configuration

[](#add-sprykerdemo-namespace-to-configuration)

```
$config[KernelConstants::CORE_NAMESPACES] = [
    'SprykerDemo',
    ...
];

```

### Add ACL configuration

[](#add-acl-configuration)

```
# src/Pyz/Zed/Acl/AclConfig.php

protected function addPyzMerchantPortalInstallerRules(array $installerRules): array
{
    $bundleNames = [
        ...
        'merchant-onboarding-merchant-portal-gui',
    ];
    ...
}

# src/Pyz/Zed/AclMerchantPortal/AclMerchantPortalDependencyProvider.php

use SprykerDemo\Zed\MerchantOnboardingMerchantPortalGui\Communication\Plugin\AclMerchantPortal\MerchantOnboardingMerchantPortalGuiMerchantAclRuleExpanderPlugin;

protected function getMerchantAclRuleExpanderPlugins(): array
{
    return [
        ...
        new MerchantOnboardingMerchantPortalGuiMerchantAclRuleExpanderPlugin(),
    ];
}
```

### Add navigation files

[](#add-navigation-files)

```
# config/Zed/navigation.xml

        Onboarding
        Onboarding
        merchant-onboarding-merchant-portal-gui
        onboarding
        index
        rocket

```

### Add state machine xml

[](#add-state-machine-xml)

```
# config/Zed/StateMachine/MerchantOnboarding/MerchantOnboardingStateMachine.xml

                registered
                detected
                initiate

                registered
                manual validation needed
                initiate

                manual validation needed
                approved
                approve

                manual validation needed
                denied
                deny

                detected
                approved
                approve

                approved
                In onboarding
                Start onboarding

                In onboarding
                Product or Offer created
                Merchant Profile Completion

                Product or Offer created
                Payment and Service Agreement Completed
                Payment and Service Agreement

                Payment and Service Agreement Completed
                Order Testing Completed
                Order Testing

                Order Testing Completed
                Onboarding completed
                Complete onboarding

```

### Add merchant onboarding state machine data (optionally)

[](#add-merchant-onboarding-state-machine-data-optionally)

```
composer require spryker-demo/merchant-onboarding-data-import

```

#### merchant-onboarding

[](#merchant-onboarding)

- File `data/import/common/common/marketplace/merchant_onboarding_state_machine.csv`
- File template: `vendor/spryker-demo/merchant-onboarding-data-import/data/import/common/common/marketplace/merchant_onboarding_state_machine.csv`
- Command: `vendor/bin/console data:import:merchant-onboarding`

### Wire merchant onboarding plugins

[](#wire-merchant-onboarding-plugins)

```
# src/Pyz/Zed/DataImport/DataImportDependencyProvider.php

use SprykerDemo\Zed\MerchantOnboardingDataImport\Communication\Plugin\DataImport\MerchantOnboardingDataImportPlugin;

protected function getDataImporterPlugins(): array
{
    return [
        ...
        new MerchantOnboardingDataImportPlugin(),
    ];
}
```

```
# src/Pyz/Zed/Merchant/MerchantDependencyProvider.php

use SprykerDemo\Zed\MerchantOnboarding\Communication\Plugin\Merchant\MerchantStateMachineExpanderPlugin;
use SprykerDemo\Zed\MerchantOnboarding\Communication\Plugin\Merchant\MerchantStateMachinePostCreatePlugin;

protected function getMerchantPostCreatePlugins(): array
{
    return [
        ...
        new MerchantStateMachinePostCreatePlugin(),
    ];
}

protected function getMerchantExpanderPlugins(): array
{
    return [
        ...
        new MerchantStateMachineExpanderPlugin(),
    ];
}
```

```
# src/Pyz/Zed/MerchantGui/MerchantGuiDependencyProvider.php

use SprykerDemo\Zed\MerchantOnboardingGui\Communication\Plugin\MerchantOnboardingMerchantTableDataExpanderPlugin;
use SprykerDemo\Zed\MerchantOnboardingGui\Communication\Plugin\MerchantOnboardingMerchantTableHeaderExpanderPlugin;

protected function getMerchantTableDataExpanderPlugins(): array
{
    return [
        new MerchantOnboardingMerchantTableDataExpanderPlugin(),
    ];
}

protected function getMerchantTableHeaderExpanderPlugins(): array
{
    return [
        new MerchantOnboardingMerchantTableHeaderExpanderPlugin(),
    ];
}
```

```
# src/Pyz/Zed/StateMachine/StateMachineDependencyProvider.php

use SprykerDemo\Zed\MerchantOnboarding\Communication\Plugin\MerchantOnboardingStateMachineHandlerPlugin;

protected function getStateMachineHandlers(): array
{
    return [
        ...
        new MerchantOnboardingStateMachineHandlerPlugin(),
    ];
}
```

### Apply Twig customization

[](#apply-twig-customization)

```
# src/Pyz/Zed/MerchantGui/Presentation/EditMerchant/index.twig

{% extends '@Gui/Layout/layout.twig' %}

{% set widget_title = 'Edit Merchant' | trans ~ ': ' ~ idMerchant %}

{% block head_title widget_title %}
{% block section_title widget_title %}

{% block action %}
    {{ backActionButton(url('/merchant-gui/list-merchant'), 'Back to Merchants' | trans) }}
    {{ render(controller('/merchant-onboarding-gui/render-view/onboarding', {
        'id-merchant': idMerchant
    })) }}
{% endblock %}

{% block content %}

    {% embed '@Gui/Partials/widget.twig' %}

        {% block widget_content %}

            {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}

            {{ tabs(merchantFormTabs, {'merchantForm': form}) }}

            {{ form_end(form) }}

        {% endblock %}

    {% endembed %}

{% endblock %}

```

### Apply Merchant portal customization

[](#apply-merchant-portal-customization)

```
# tsconfig.mp.json

"compilerOptions": {
    "paths": {
        ...
        "@mp/merchant-onboarding-merchant-portal-gui": [
            "./vendor/spryker/spryker-demo/Bundles/MerchantOnboardingMerchantPortalGui/mp.public-api.ts"
        ]
    }
}

```

```
# src/Pyz/Zed/ZedUi/Presentation/Components/app/app.module.ts

...
import { IconRocketModule } from '@mp/merchant-onboarding-merchant-portal-gui';

@NgModule({
    imports: [
        ...
        IconRocketModule,
    ],
})

```

### Build Propel classes

[](#build-propel-classes)

```
vendor/bin/console propel:install

```

### Generate Backoffice translations

[](#generate-backoffice-translations)

```
vendor/bin/console translator:generate-cache

```

### Build Merchant Portal frontend

[](#build-merchant-portal-frontend)

```
vendor/bin/console frontend:mp:build

```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance63

Regular maintenance activity

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.9% 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

229d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c6756c39a921146991fee6b4090f4130af143ee3aa7a776b688365c5f3d5b511?d=identicon)[spryker\_solution\_consulting\_demos](/maintainers/spryker_solution_consulting_demos)

---

Top Contributors

[![MaryamTarekOmar](https://avatars.githubusercontent.com/u/98816701?v=4)](https://github.com/MaryamTarekOmar "MaryamTarekOmar (8 commits)")[![asaulenko](https://avatars.githubusercontent.com/u/20285714?v=4)](https://github.com/asaulenko "asaulenko (1 commits)")

### Embed Badge

![Health badge](/badges/spryker-demo-merchant-onboarding-feature/health.svg)

```
[![Health](https://phpackages.com/badges/spryker-demo-merchant-onboarding-feature/health.svg)](https://phpackages.com/packages/spryker-demo-merchant-onboarding-feature)
```

PHPackages © 2026

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