# How to Customize the Installation¶

The Akeneo PIM allows to prepare a custom data set to use during the installation.

The idea is to allow you to setup your own catalog structure or your own demo data.

You can configure the data set in the app/config/parameters.yml file:

  1 2 3 4 5 6 7 8 9 10 11 12 13 # /app/config/parameters.yml parameters: database_driver: pdo_mysql database_host: localhost database_port: ~ database_name: akeneo_pim database_user: akeneo_pim database_password: akeneo_pim locale: en secret: ThisTokenIsNotSoSecretChangeIt installer_data: PimInstallerBundle:icecat_demo_dev # use PimInstallerBundle:minimal for minimal data set 

The following steps allow you to easily define your own basic entities when you install the PIM.

## Create a Bundle¶

Create a new bundle:

  1 2 3 4 5 6 7 8 9 10 # /src/Acme/Bundle/InstallerBundle/AcmeInstallerBundle.php

Register it in AppKernel.php:

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class AppKernel extends Kernel { /** * {@inheritdoc} */ public function registerBundles() { $bundles = [ new Acme\Bundle\InstallerBundle\AcmeInstallerBundle(), ]; ... return$bundles; } } 

Create the directory Resources/fixtures/mydataset in your bundle.

Copy all *.yml and *.csv files from Installer bundle into the mydataset directory of your bundle.

Note

Since 1.4, we aim to use only csv format in the installer in order to make it easier to export data from the PIM and to put it back into the installer fixtures to be able to deploy on other environments.

Then, edit the files, for example, to declare your own channels:

 1 2 3 4 5 6 7 8 9 # /src/Acme/Bundle/InstallerBundle/Resources/fixtures/mydataset/channels.yml channels: default: label: Default locales: - en_US currencies: - USD tree: default 

Tip

You can take a look at Pim/Bundle/InstallerBundle/Resources/fixtures/minimal to see what the expected format is and which fixtures are absolutely needed, then you can draw heavily on Pim/Bundle/InstallerBundle/Resources/fixtures/icecat_demo_dev to add optional objects.

## Install the DB¶

Update app/config/parameters.yml to use your data set:

  1 2 3 4 5 6 7 8 9 10 11 # /app/config/parameters.yml parameters: database_driver: pdo_mysql database_host: localhost database_port: null database_name: akeneo_pim database_user: root database_password: root locale: en secret: ThisTokenIsNotSoSecretChangeIt installer_data: 'AcmeInstallerBundle:mydataset' 

You can now (re)install your database by running:

> php app/console pim:installer:db --env=dev
`