This plugin allow you to import data from Akeneo PIM.
- Configure your Akeneo Account - Documentation
- Configure which data should be imported and how it will be imported. - Documentation
- Customize imports according to your business needs. - Documentation
- Launch imports through Cli or Back-Office - Documentation
Version | |
---|---|
PHP | ^8.0 |
Sylius | ^1.10 |
Akeneo PIM | >=v6.0 |
-
Add the bundle and dependencies in your composer.json :
composer require synolia/sylius-akeneo-plugin --no-scripts
-
Enable the plugin in your
config/bundles.php
file by addSynolia\SyliusAkeneoPlugin\SynoliaSyliusAkeneoPlugin::class => ['all' => true],
-
Import required config in your
config/packages/_sylius.yaml
file:imports: - { resource: "@SynoliaSyliusAkeneoPlugin/Resources/config/config.yaml" }
-
Import routing in your
config/routes.yaml
file:synolia_akeneo: resource: "@SynoliaSyliusAkeneoPlugin/Resources/config/routes.yaml" prefix: '/%sylius_admin.path_name%'
-
Add Asset trait to Product.php and ProductVariant.php entities and add TaxonAttributes trait to Taxon entity
<?php declare(strict_types=1); namespace App\Entity\Product; use App\Entity\Product\ProductTranslation; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\Product as BaseProduct; use Sylius\Component\Product\Model\ProductTranslationInterface; use Synolia\SyliusAkeneoPlugin\Entity\ProductAssetTrait; /** * @ORM\Entity * @ORM\Table(name="sylius_product") */ #[ORM\Entity] #[ORM\Table(name: 'sylius_product')] class Product extends BaseProduct { use ProductAssetTrait { __construct as private initializeAssetsCollection; } public function __construct() { parent::__construct(); $this->initializeAssetsCollection(); } protected function createTranslation(): ProductTranslationInterface { return new ProductTranslation(); } }
<?php declare(strict_types=1); namespace App\Entity\Product; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\ProductVariant as BaseProductVariant; use Sylius\Component\Product\Model\ProductVariantTranslationInterface; use Synolia\SyliusAkeneoPlugin\Entity\ProductVariantAssetTrait; /** * @ORM\Entity * @ORM\Table(name="sylius_product_variant") */ #[ORM\Entity] #[ORM\Table(name: 'sylius_product_variant')] class ProductVariant extends BaseProductVariant { use ProductVariantAssetTrait { ProductVariantAssetTrait::__construct as private initializeAssetsCollection; } public function __construct() { parent::__construct(); $this->initializeAssetsCollection(); } protected function createTranslation(): ProductVariantTranslationInterface { return new ProductVariantTranslation(); } }
<?php declare(strict_types=1); namespace App\Entity\Taxonomy; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\Taxon as BaseTaxon; use Sylius\Component\Taxonomy\Model\TaxonTranslationInterface; use Synolia\SyliusAkeneoPlugin\Component\TaxonAttribute\Model\TaxonAttributeSubjectInterface; use Synolia\SyliusAkeneoPlugin\Entity\TaxonAttributesTrait; /** * @ORM\Entity * @ORM\Table(name="sylius_taxon") */ #[ORM\Entity] #[ORM\Table(name: 'sylius_taxon')] class Taxon extends BaseTaxon implements TaxonAttributeSubjectInterface { use TaxonAttributesTrait { __construct as private initializeTaxonAttributes; } public function __construct() { parent::__construct(); $this->createTranslation(); $this->initializeTaxonAttributes(); } protected function createTranslation(): TaxonTranslationInterface { return new TaxonTranslation(); } }
-
Apply plugin migrations to your database:
bin/console doctrine:migrations:migrate
-
Clear cache
bin/console cache:clear
- Everything you need to know about Reference Entity in Sylius
- Everything you need to know about Asset in Sylius
This library is under the EUPL-1.2 license.
Developed by Synolia.