# ctidigital/magento2-configurator

> Keep magento persistently configured using files

`composer require ctidigital/magento2-configurator`

Canonical URL: https://packagento.com/ctidigital/magento2-configurator

## At a glance

- **Vendor**: ctidigital (https://packagento.com/ctidigital.md)
- **Latest version**: 4.0.0 — released 2025-10-15
- **Pricing**: Free
- **Package type**: Magento 2 module
- **Status**: active, accepting new buyers

## Installation

Packagento is licence-gated, so even free packages need a licence on a project before Composer can resolve them.

1. **Sign in or create an account** at https://packagento.com/customer/account/.

2. **Add the package to your account.** Open https://packagento.com/ctidigital/magento2-configurator and complete the free checkout. A licence is minted automatically.

3. **Create or pick a project, then activate the licence on it.**
   - Projects represent the Magento installs you deploy to. Manage them at https://packagento.com/projects/.
   - Activate the new licence on the project you'll deploy this package to. Activation is what generates the Composer credentials scoped to that project.

4. **Add the project credentials to your Magento codebase.**

   Grab the project's public + private key from https://packagento.com/projects/ (open the project, then its Credentials tab), and add them to `auth.json`:

   ```json
   {
     "http-basic": {
       "packagento.com": {
         "username": "ppk_live_...",
         "password": "psk_live_..."
       }
     }
   }
   ```

   Add the Packagento Composer repository to `composer.json`:

   ```json
   {
     "repositories": [
       { "type": "composer", "url": "https://packagento.com" }
     ]
   }
   ```

5. **Install and apply.**

   ```bash
   composer require ctidigital/magento2-configurator:*
   bin/magento setup:upgrade
   bin/magento setup:di:compile
   bin/magento cache:flush
   ```

## What it does

Keep magento persistently configured using files

## README

[![Build Status](https://travis-ci.org/ctidigital/magento2-configurator.svg?branch=develop)](https://travis-ci.org/ctidigital/magento2-configurator)


A Magento module initially created by [CTI Digital] to create and maintain database variables using files. This module aims to bring the following benefits to a Magento developer's work flow:

  - Install Magento from scratch with important database based configuration ready.
  - Share and collaborate configuration with other colleagues using your own versioning system.
  - Keep versions of your configurations using your own versioning system.
  - Split your configuration based on the environment you're developing on.

If you're interested to find out more about the background of the configurator, watch this lightning talk by [Raj Chevli] at Mage Titans in Manchester on [YouTube].

This is a work in progress and by no means for use with production environments (and probably not even development environments either just yet).

### Testing Locally For Development
If you are contributing the module, please run the following commands to stand the best chance with Travis CI liking your code.
These test include PHP Code Sniffer, PHP Mess Detector, PHP Copy and Paste Detector, PHP Unit
```
php vendor/bin/phpcs --standard=vendor/magento/magento-coding-standard/Magento2/ruleset.xml vendor/ctidigital/magento2-configurator/Model/ vendor/ctidigital/magento2-configurator/Console/ vendor/ctidigital/magento2-configurator/Test/ vendor/ctidigital/magento2-configurator/Api/ vendor/ctidigital/magento2-configurator/Component/ vendor/ctidigital/magento2-configurator/Exception/
php vendor/bin/phpmd vendor/ctidigital/magento2-configurator/Model/,vendor/ctidigital/magento2-configurator/Console/,vendor/ctidigital/magento2-configurator/Test/,vendor/ctidigital/magento2-configurator/Api/,vendor/ctidigital/magento2-configurator/Component/,vendor/ctidigital/magento2-configurator/Exception/ text cleancode,codesize,controversial,design,naming,unusedcode
php vendor/bin/phpcpd vendor/ctidigital/magento2-configurator/Model/ vendor/ctidigital/magento2-configurator/Console vendor/ctidigital/magento2-configurator/Test/ vendor/ctidigital/magento2-configurator/Api/ vendor/ctidigital/magento2-configurator/Component/ vendor/ctidigital/magento2-configurator/Exception/
php vendor/bin/phpunit vendor/ctidigital/magento2-configurator/Test/Unit/
```

### Integration tests
- Configure your [Magento integration test environment](http://devdocs.magento.com/guides/v2.0/test/integration/integration_test_setup.html).
- Add the XML below to dev/tests/integration/phpunit.xml.dist

````
<testsuite name="magento2-configurator">
    <directory>../../../vendor/ctidigital/magento2-configurator/Test/Integration</directory>
</testsuite>
 ````
 
- You can run the tests from the correct place on the command line

````
/dev/tests/integration$ ../../../vendor/bin/phpunit --testsuite "magento2-configurator"
````

- You can also add the magento PHP developer tools to your path, so that you do not have to specify location of phpunit
````
export PATH=$PATH:/var/www/magento2/vendor/bin
````
### Unit tests 
If you're developing a new component, please ensure you have your corresponding unit test which extends `ComponentAbstractTestCase` as that will test that your component has the required functions.
Do also include sample files with your component that works 

### Travis
We also use Travis CI to automate part of the testing process (we are still looking to add more to this!).
It tests the following:
* CodeSniffer
* MessDetector
* Copy & Paste Detection
* Unit Tests
* Run Configurator (we aim to run it on these versions)
    1) Latest 3 minor versions
    2) Latest release candidate (allowed to fail)

### Getting Started
1. Create a `master.yaml` file in `<mage_root>/app/etc/`. (see `Samples/master.yaml`)
2. Enable Modules `CtiDigital_Configurator`,`FireGento_FastSimpleImport`.
3. Run `bin/magento configurator:run --env="<environment>"`

#### Usage

* Listing available components `bin/magento configurator:list`
* Running individual components `bin/magento configurator:run --env="<environment>" --component="config"`
* Extra logs `bin/magento configurator:run --env="<environment>" -v`

### Roadmap for components to do

_(README truncated for .md surface. Full README on https://packagento.com/ctidigital/magento2-configurator.)_

## Recent Versions

| Version | Released |
|---|---|
| 4.0.0 | 2025-10-15 |
| 4.0.1 | 2025-10-15 |
| 3.2.1 | 2023-08-25 |
| 3.2.0 | 2023-07-28 |
| 3.1.4 | 2022-05-30 |
| 3.1.3 | 2021-01-14 |
| 3.1.2 | 2020-10-21 |
| 3.1.1 | 2020-05-05 |
| 3.1.0 | 2020-03-02 |
| 3.0.1 | 2020-02-07 |

Showing 10 of 69 versions. Full release history on https://packagento.com/ctidigital/magento2-configurator.

## Dependencies

### Require

| Package | Constraint |
|---|---|
| ext-exif | * |
| firegento/fastsimpleimport | 2.0.1 |
| symfony/yaml | >=4.0 |

### Require (dev)

| Package | Constraint |
|---|---|
| magento/magento-coding-standard | * |
| phpmd/phpmd | ^2.12.0 |
| phpunit/phpunit | ~9.5.20 |
| sebastian/phpcpd | ^6.0.3 |
| squizlabs/php_codesniffer | ~3.6.0 |

## Licence and pricing

Free. A licence is still minted on checkout and bound to your project for Composer access — no payment step.

Refundable within 14 days of first purchase via https://packagento.com/account/refunds/.

## Install via Claude Code or any MCP client

The Packagento MCP server can run the licence + project + Composer steps above in one tool call:

```
purchase_and_install_packages(
  composer_names=["ctidigital/magento2-configurator"],
  project_id="proj_xxx"
)
```

This handles cart, checkout, licence minting, project activation, and writes auth.json credentials. Connect a client with `claude mcp add packagento https://mcp.packagento.com`. Full setup at https://packagento.com/docs/mcp-setup.

## Vendor

ctidigital is a Magento 2 vendor on Packagento. See https://packagento.com/ctidigital.md for their full catalogue.

