Skip to content
Akeneo PIM Bundle to generate data in order to test high volume operations
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Command Correct reviews Apr 16, 2016
DependencyInjection TIP-603: extract attribute keys generation business Nov 8, 2016
Resources TIP-603: logic of getting all attributes keys in the key provider Nov 9, 2016
Writer PIM-5689: Change CSV Writer inheritance Mar 30, 2016
spec/Pim/Bundle/DataGeneratorBundle TIP-603: logic of getting all attributes keys in the key provider Nov 9, 2016
.gitignore External tools configuration Apr 16, 2016
.php_cs-fixers.php Add PHP CS fixer Feb 12, 2016
.php_cs.php External tools configuration Apr 16, 2016
.scrutinizer.yml External tools configuration Apr 16, 2016
.travis.yml Remove travis check for php 5.4 and 5.5, since pim-community-dev requ… Jul 15, 2016
AttributeKeyProvider.php TIP-603: logic of getting all attributes keys in the key provider Nov 9, 2016 Add Apr 10, 2015 PIM-5737: Add XLSX import/export asset, asset category, asset variation May 6, 2016
PimDataGeneratorBundle.php Correct reviews Apr 16, 2016
VariantGroupDataProvider.php Migrate to PIM 1.5 Mar 16, 2016
composer.json Fixed travis issues May 31, 2016


Build Status

This bundle generates file data in the native Akeneo CSV format.

It's able to generate products and attributes information (including families and attributes options).

So you need a PIM system with channels, locales and currency already setup.

From that, this bundle will generate valid product and attribute data.


This bundle is compatible with Akeneo PIM 1.3, 1.4, 1.5 & 1.6.

As Akeneo PIM 1.7 exposes a Web API, this Web API can be used to inject data without having to install a bundle in it.

Here is an example of a simple command line tool which generates & injects data through the Web API.


 $ composer.phar require akeneo-labs/data-generator-bundle ~0.3

and update your app/AppKernel.php as follow:

    $bundles[] = new Pim\Bundle\DataGeneratorBundle\PimDataGeneratorBundle();

How to use it

The catalog generation is done in two phases:

  1. generating the catalog fixtures
  2. generating the product CSV import files
 pim:generate:fixtures <configuration_file_path>
 pim:generate:products-file <configuration_file_path>

 configuration-file    YAML configuration file

Configuration file examples

Generating base fixtures:

    output_dir: /tmp/fixtures/
            count: 200
            identifier_attribute: "sku"
            count: 30
            attributes_count: 60
            identifier_attribute: "sku"
            label_attribute: "label"

Generating products:

    output_dir: /tmp/
            count: 1000
            filled_attributes_count: 50
            filled_attributes_standard_deviation: 10
            mandatory_attributes: [sku, name] # properties that will always be filled in with a random value
            delimiter: ,
            force_values: { manufacturer: 'FactoryInc', brand: 'SuperProd' } # properties that if they are filled in, will be filled in the given value
            start_index: 0
            categories_count: 10

More configuration examples are available in the Resources\examples directory.


Products data cannot be generated at the same time as the base fixtures (families, categories, attributes, etc...). Indeed, to generate products data, we use the objects available in the PIM (families, attributes, etc).

So if you need to generate a full catalog, you need to:

  1. generate the fixtures
  2. copy the minimal data set fixtures into a new fixtures set
  3. copy the generated fixtures into this new set
  4. install the new fixtures set by changing the installer_data configuration
  5. generate the products data

How to use the generated attributes and families data

The generated files are meant to be used in the fixtures. Only the generated products CSV file must be imported by the import profiles.


This version is only compatible with Akeneo PIM with latest builds.


Thanks @fzaninotto for Faker ! (

You can’t perform that action at this time.