PHPackages                             magebit/module-magento2-configurator - 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. magebit/module-magento2-configurator

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

magebit/module-magento2-configurator
====================================

Keep Magento persistently configured using version-controlled files.

2.0.6(3w ago)052.2k↓38.2%1MITPHPPHP &gt;=8.1 &lt;8.6

Since May 30Pushed 1mo agoCompare

[ Source](https://github.com/magebitcom/magento2-configurator)[ Packagist](https://packagist.org/packages/magebit/module-magento2-configurator)[ RSS](/packages/magebit-module-magento2-configurator/feed)WikiDiscussions magebit Synced 3w ago

READMEChangelog (10)Dependencies (10)Versions (46)Used By (0)

Magento 2 Configurator — Magebit v2
===================================

[](#magento-2-configurator--magebit-v2)

Keep Magento persistently configured from version-controlled files. Define your store configuration (websites, attributes, categories, CMS, tax, customers, …) as YAML/CSV, commit it, and apply it to any environment with a single command.

Originally created by [CTI Digital](http://www.ctidigital.com/); this is Magebit's **v2** line — a modernised, self-owned fork under the `Magebit\Configurator` namespace (`Magebit_Configurator`).

Why
---

[](#why)

- Stand up a store from scratch with its important DB-backed configuration ready.
- Share and version configuration alongside your code.
- Apply environment-specific configuration (local / stage / live).
- Re-run safely: components are idempotent and a `--dry-run` previews changes.

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

[](#requirements)

- **Magento Open Source / Adobe Commerce 2.4.7 – 2.4.9** (all currently non-EOL)
- **PHP 8.1 – 8.5** (the union supported across those Magento versions)
- Magento's bundled ImportExport modules (`Magento_ImportExport`, `Magento_CatalogImportExport`, `Magento_CustomerImportExport`, `Magento_AdvancedPricingImportExport`) — shipped with Magento Open Source, used by the product / customer / tiered-price import components

What's new in v2
----------------

[](#whats-new-in-v2)

- **`Magebit\Configurator` namespace** / `Magebit_Configurator` module.
- **Typed component contract** — `execute(ComponentContext): ComponentResult`(replacing the untyped `execute($data)`); `strict_types`, promoted `readonly`constructors throughout.
- **`--dry-run`** — preview what each component would create/update/skip without persisting anything (raw SQL, imports and saves are all guarded).
- **Meaningful exit codes** — `configurator:run` returns non-zero when any component reports an error, and prints a run summary (`created N, updated N, skipped N, removed N, errors N`). A single failing component no longer aborts the whole run.
- **Uniform reconciliation** — every component honors `create`/`maintain` mode and per-entity / per-component versioning through one shared gate (see below), so `create` mode is safe on production.
- **New capabilities** — MSI: `inventory_sources` (sources/stocks) + a `products` `msi_sources` column; widget layout placement via `page_groups`; optional Hyvä Commerce CMS components (`hyva_pages` / `hyva_blocks`); opt-in entity removal via `remove: true` across the entity components (CMS, config, widgets, rewrites, categories, attributes, tax rules, …) — see [`docs/schema/`](docs/schema/README.md#removing-entities-remove-true).
- **Documented config contract** — every component's source format is in [`docs/schema/`](docs/schema/README.md).

> **Upgrading from the CtiDigital v1 module?** See [`docs/UPGRADE.md`](docs/UPGRADE.md) — your config files keep working, but the package/module names, PHP/Magento support and reconciliation behaviour changed.

Getting started
---------------

[](#getting-started)

1. Install: `composer require magebit/module-magento2-configurator:^2.0`(from your configured composer repository).
2. Create `app/etc/master.yaml` (see [`Samples/master.yaml`](Samples/master.yaml)). Source paths are resolved relative to the Magento base dir, e.g. `app/etc/configurator/Attributes/attributes.yaml`.
3. Enable the module: `bin/magento module:enable Magebit_Configurator`then `bin/magento setup:upgrade`.
4. Apply: `bin/magento configurator:run --env=""`

### Usage

[](#usage)

```
bin/magento configurator:list                                   # list components
bin/magento configurator:run --env="local"                      # run all
bin/magento configurator:run --env="local" --component="config" # run one (repeatable)
bin/magento configurator:run --env="local" --dry-run            # preview, no writes
bin/magento configurator:run --env="local" -i                   # ignore missing source files
bin/magento configurator:run --env="local" -v                   # verbose logging
```

### Syncing from the database

[](#syncing-from-the-database)

The reverse of `configurator:run` — read the current DB state and write it back into the source files, so changes made in the admin can be captured into git. Components opt in by implementing `ExportableComponentInterface`.

**Supported:** `config`, `blocks`, `pages`, `widgets`, `websites`, `customergroups`, `adminroles`, `adminusers` (no passwords), `apiintegrations`(no tokens), `order_statuses`, `review_rating`, `taxrates`, `taxrules`, `catalog_price_rules`, `rewrites` (non-autogenerated only), `shippingtablerates`, `inventory_sources`, `hyva_pages`, `hyva_blocks`, `attributes` (incl. options &amp; swatches), `customer_attributes`, `attribute_sets` (groups + user-defined attributes), `categories` (full tree). **Not supported** (bulk/imperative — use Magento's own export for products/ customers): `products`, `customers`, `sql`, `sequence`, `media`.

```
# Refresh the values of the config paths you already track, in place:
bin/magento configurator:sync-from-db --component=config
bin/magento configurator:sync-from-db --component=config --dry-run   # preview

# Full export of everything in scope, optionally filtered and to a chosen file:
bin/magento configurator:sync-from-db --component=config --all --path="web/" --output="app/etc/configurator/Config/web.yaml"
```

- Default mode refreshes only the entries already present in the source files (low-noise); `--all` dumps everything in scope, `--path=` filters by prefix.
- For `pages`/`blocks` entries that reference an external `source:` file, the current DB content is written **into that file** (created if missing), not inlined into the YAML — so template-sourced content round-trips.
- Encrypted config values are never written out, so secrets stay out of git.
- Only values actually stored in `core_config_data` are pulled (defaults from `config.xml`/`env.php` are left as-is).
- A component that fails to export is logged and skipped; the rest still run and the command exits non-zero.

Reconciliation: modes &amp; versioning
--------------------------------------

[](#reconciliation-modes--versioning)

Every component now applies the **same** rule for how config reconciles against existing data, via a shared `ReconciliationGate`:

state`create` mode`maintain` modeentity does not existcreatecreateexists, matches configskipskipexists, differs, version bumpedupdateupdateexists, differs, no version bump**skip** (protected)updateSet the mode per environment in `master.yaml`:

```
config:
  enabled: 1
  sources: [ ../configurator/Config/config.yaml ]
  env:
    production: { mode: create }    # safe: only new entities + version bumps
    staging:    { mode: maintain }  # reconcile drift
```

When no `mode` is set the default is **`create`**.

**Versioning** forces an update even in create mode:

- **Per-entity** — add `version: ` to an entity in its source file (supported where the data shape has per-entity nodes: config values, blocks, pages, widgets, attributes, …). Bump it to push that one change to production.
- **Per-component** — add `version: ` at the component level in `master.yaml`to run the *whole* component once per version (ideal for `sql`, `sequence`, `media`, and bulk importers like `tiered_prices` / `shippingtablerates`).

> **⚠ Upgrade behavior change (v2 reconciliation):** components that previously overwrote existing entities on every run (widgets, attributes, websites, rewrites, product links, catalog price rules, admin roles, review ratings, …) now honor mode uniformly. In `create` mode they **protect existing entities**. If you relied on always-overwrite, set `mode: maintain` for those components. Bulk importers (`products`, `customers`, `taxrates`) skip rows whose key already exists in create mode; they do not diff individual attributes, so `maintain` re-imports every row.

Configuration reference
-----------------------

[](#configuration-reference)

See [`docs/schema/`](docs/schema/README.md) for the source format of every component (fields, behaviour, create/maintain semantics). This is the stable public contract for the v2 line.

Testing
-------

[](#testing)

- **Unit tests** (`phpunit.xml.dist`) — run from within a Magento install: ```
    ../../../vendor/bin/phpunit -c phpunit.xml.dist
    ```
- **Conformance harness** ([`Test/Conformance/`](Test/Conformance/README.md)) — runs every component through the shipped `Samples/` in `--dry-run` against a real Magento and fails on any component crash. This is the primary integration check.
- **Static analysis** — `phpcs` (Magento2 standard, see `phpcs.xml.dist`) + `phpmd`.

Components
----------

[](#components)

All 30 components are implemented and execute-verified on Magento 2.4.7. Each links to its schema page. **Every component honors `create`/`maintain` mode and the versioning levers** described above — the notes below only call out extras.

ComponentAliasNotesWebsites / Stores / Store Views`websites`Configuration`config`create/maintainSequence`sequence`Attributes`attributes`create/maintain, swatchesAttribute Sets`attribute_sets`Categories`categories`create/maintainProducts`products`native Magento ImportExport; create mode skips existing SKUs (configurable products need their simple products to exist)Blocks`blocks`create/maintain, phtml templates, versioningPages`pages`create/maintain, versioningAPI Integrations`apiintegrations`Tax Rates`taxrates`Tax Rules`taxrules`Widgets`widgets`layout placement via `page_groups`; block-identifier resolutionCustomer Groups`customergroups`Admin Roles / Users`adminroles` / `adminusers`Media`media`Rewrites`rewrites`Review Ratings`review_rating`Product Links`product_links`related / up-sell / cross-sellCustomer Attributes`customer_attributes`Customers`customers`native Magento ImportExport; create mode skips existing emailsSQL`sql`raw SQL filesCatalog Price Rules`catalog_price_rules`Shipping Table Rates`shippingtablerates`gate via component-level `version:` (no per-row reconcile)Order Statuses`order_statuses`Inventory Sources`inventory_sources`MSI sources/stocks/links + sales channels; run before `products`Hyvä CMS Pages`hyva_pages`optional — requires `Hyva_CmsMagento` (paid); no-ops without itHyvä CMS Blocks`hyva_blocks`optional — requires `Hyva_CmsMagento` (paid); can auto-create the CMS blockTiered Prices`tiered_prices`native Magento ImportExportBackground
----------

[](#background)

Lightning talk by [Raj Chevli](https://twitter.com/chevli) at Mage Titans Manchester on [YouTube](https://www.youtube.com/watch?v=iFkhAzJl2k0).

License
-------

[](#license)

MIT — see [`LICENSE`](LICENSE). Copyright © 2016 CTI Digital; portions copyright © 2026 Magebit, Ltd.

###  Health Score

59

—

FairBetter than 98% of packages

Maintenance93

Actively maintained with recent releases

Popularity30

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~3 days

Total

9

Last Release

25d ago

Major Versions

1.0.5 → v2.x-dev2026-06-08

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10514036?v=4)[magebit](/maintainers/magebit)[@Magebit](https://github.com/Magebit)

---

Top Contributors

[![chevli](https://avatars.githubusercontent.com/u/7550729?v=4)](https://github.com/chevli "chevli (333 commits)")[![paulpartington-cti](https://avatars.githubusercontent.com/u/6105453?v=4)](https://github.com/paulpartington-cti "paulpartington-cti (193 commits)")[![EmilsM](https://avatars.githubusercontent.com/u/1344881?v=4)](https://github.com/EmilsM "EmilsM (88 commits)")[![zxon](https://avatars.githubusercontent.com/u/914678?v=4)](https://github.com/zxon "zxon (32 commits)")[![chrisgan](https://avatars.githubusercontent.com/u/2246778?v=4)](https://github.com/chrisgan "chrisgan (25 commits)")[![furan917](https://avatars.githubusercontent.com/u/15950274?v=4)](https://github.com/furan917 "furan917 (24 commits)")[![aigarsbedeicis](https://avatars.githubusercontent.com/u/66061020?v=4)](https://github.com/aigarsbedeicis "aigarsbedeicis (20 commits)")[![rick-cti](https://avatars.githubusercontent.com/u/6051210?v=4)](https://github.com/rick-cti "rick-cti (7 commits)")[![bartoszherba](https://avatars.githubusercontent.com/u/16045377?v=4)](https://github.com/bartoszherba "bartoszherba (6 commits)")[![herveatcti](https://avatars.githubusercontent.com/u/143798395?v=4)](https://github.com/herveatcti "herveatcti (5 commits)")[![marcis-mb](https://avatars.githubusercontent.com/u/82810886?v=4)](https://github.com/marcis-mb "marcis-mb (4 commits)")[![matthewhaworth](https://avatars.githubusercontent.com/u/920191?v=4)](https://github.com/matthewhaworth "matthewhaworth (4 commits)")[![suresh-cti](https://avatars.githubusercontent.com/u/81560393?v=4)](https://github.com/suresh-cti "suresh-cti (3 commits)")[![SergejsMkrvs](https://avatars.githubusercontent.com/u/178777210?v=4)](https://github.com/SergejsMkrvs "SergejsMkrvs (3 commits)")[![NathanDayFE](https://avatars.githubusercontent.com/u/68845089?v=4)](https://github.com/NathanDayFE "NathanDayFE (3 commits)")[![informaniac](https://avatars.githubusercontent.com/u/9445834?v=4)](https://github.com/informaniac "informaniac (3 commits)")[![Scarraban](https://avatars.githubusercontent.com/u/3777938?v=4)](https://github.com/Scarraban "Scarraban (3 commits)")[![r-stanley](https://avatars.githubusercontent.com/u/7629178?v=4)](https://github.com/r-stanley "r-stanley (3 commits)")[![julienanquetil](https://avatars.githubusercontent.com/u/1108170?v=4)](https://github.com/julienanquetil "julienanquetil (2 commits)")[![franckcharpentier](https://avatars.githubusercontent.com/u/11445024?v=4)](https://github.com/franckcharpentier "franckcharpentier (2 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/magebit-module-magento2-configurator/health.svg)

```
[![Health](https://phpackages.com/badges/magebit-module-magento2-configurator/health.svg)](https://phpackages.com/packages/magebit-module-magento2-configurator)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k57](/packages/friendsoftypo3-content-blocks)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[blackfire/player

A powerful web crawler and web scraper with Blackfire support

49617.1k](/packages/blackfire-player)[altis/local-server

Local Server module for Altis

18221.6k4](/packages/altis-local-server)

PHPackages © 2026

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