akeneo-labs / data-generator-bundle
Akeneo PIM Bundle to generate data in order to test high volume operations
Installs: 2 086
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 12
Forks: 3
Open Issues: 5
Type:symfony-bundle
Requires
- php: >=5.4.4
- akeneo/pim-community-dev: ~1.5.0
- box/spout: ^2.4
- doctrine/migrations: 1.0.*@dev
- fzaninotto/faker: 1.4.0
Requires (Dev)
- phpspec/phpspec: ~2.1
Suggests
- doctrine/mongodb-odm: 1.0.0-beta10@dev
- doctrine/mongodb-odm-bundle: v3.0.0-BETA6@dev
This package is not auto-updated.
Last update: 2024-12-16 07:08:52 UTC
README
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.
Compatibility
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.
Installation
$ 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:
- generating the catalog fixtures
- generating the product CSV import files
Usage: pim:generate:fixtures <configuration_file_path> pim:generate:products-file <configuration_file_path> Arguments: configuration-file YAML configuration file
Configuration file examples
Generating base fixtures:
data_generator: output_dir: /tmp/fixtures/ entities: attributes: count: 200 identifier_attribute: "sku" families: count: 30 attributes_count: 60 identifier_attribute: "sku" label_attribute: "label"
Generating products:
data_generator: output_dir: /tmp/ entities: products: 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.
Warning
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:
- generate the fixtures
- copy the minimal data set fixtures into a new fixtures set
- copy the generated fixtures into this new set
- install the new fixtures set by changing the
installer_data
configuration - 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.
Compatibility
This version is only compatible with Akeneo PIM with latest builds.
Credits
Thanks @fzaninotto for Faker ! (https://github.com/fzaninotto/Faker)