atlas-services / sylius-akeneo-plugin
Lightweight Sylius ↔ Akeneo PIM connector (REST Connection, NDJSON dump, incremental sync).
Package info
github.com/atlas-services/sylius-akeneo-plugin
Type:sylius-plugin
pkg:composer/atlas-services/sylius-akeneo-plugin
Requires
- php: ^8.2
- sylius/sylius: ^2.2
- symfony/console: ^6.4 || ^7.4 || ^8.0
- symfony/filesystem: ^6.4 || ^7.4 || ^8.0
- symfony/http-client: ^6.4 || ^7.4 || ^8.0
- symfony/process: ^6.4 || ^7.4 || ^8.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Import catalog data from Akeneo PIM into a Sylius store.
This plugin stays intentionally small: connection, dump, sync, and a basic product import. Project-specific mapping (attributes, prices, variants) belongs in your application — catalogs differ too much for one generic mapper to cover every case.
What it does
- OAuth connection to Akeneo (REST API)
- Full or incremental catalog fetch (NDJSON under
var/akeneo/) - Import of simple products, categories, localized name/description, and asset images
- Fixture suite
akeneofor an empty shop ready for PIM data - Console commands for bootstrap, fetch, and import
What it does not do (yet)
- Product models / configurable products
- Automatic Akeneo price → Sylius channel pricing
- Admin UI or attribute mapping screens
Requirements
- PHP 8.2+
- Sylius 2.2+
Installation
composer require atlas-services/sylius-akeneo-plugin php vendor/bin/apply-recipe-akeneo
apply-recipe-akeneo registers the bundle in config/bundles.php and appends the AKENEO_* defaults to .env.
(It will no longer be needed once a Flex recipe is published.)
With Docker:
docker compose exec php composer require atlas-services/sylius-akeneo-plugin docker compose exec php php vendor/bin/apply-recipe-akeneo
Put credentials in .env.local:
AKENEO_PIM_URL=https://your-pim.cloud.akeneo.com AKENEO_CLIENT_ID= AKENEO_CLIENT_SECRET= AKENEO_USERNAME= AKENEO_PASSWORD= # Optional. Leave empty to use the only Sylius channel and its locales. AKENEO_SYLIUS_CHANNEL= AKENEO_LOCALES=
Usage
New shop (empty catalog, then admin user):
bin/console atlas:akeneo:init bin/console sylius:admin-user:create bin/console atlas:akeneo:import-catalog --fetch
With Docker Compose:
docker compose exec php bin/console atlas:akeneo:init docker compose exec php bin/console sylius:admin-user:create docker compose exec php bin/console atlas:akeneo:import-catalog --fetch
Existing shop: install the plugin, set AKENEO_*, then run the import.
Do not use atlas:akeneo:init --drop on a database you care about.
Useful options:
bin/console atlas:akeneo:init --drop bin/console atlas:akeneo:fetch-catalog bin/console atlas:akeneo:import-catalog --fetch bin/console atlas:akeneo:import-catalog --incremental --no-images bin/console atlas:akeneo:import-catalog --images-only --replace-images
The akeneo fixture suite creates locales (fr_FR, en_US), EUR, a category menu taxon, and a channel (WEB or AKENEO_SYLIUS_CHANNEL). No products.
License
MIT. See LICENSE.
Developed by Atlas Services.