PrestaShop vers Sylius 2 : automatisez votre migration

Plugin Open Source ACSEO : automatisez votre migration PrestaShop vers Sylius 2

La migration de PrestaShop vers Sylius représente un défi technique majeur, notamment pour le transfert des données. Pour répondre à cette problématique, ACSEO a développé et publié un plugin open source spécialement conçu pour Sylius 2, qui facilite l'automatisation complète de votre migration.

Sommaire

Une idée, un projet ?

Nous sommes à votre disposition pour discuter.

Contactez-nous

Sommaire

Pourquoi un nouveau plugin ?

Lorsque qu'on a commencé à accompagner nos clients dans leurs migrations vers Sylius 2, on a rapidement constaté que les outils existants présentaient des limitations importantes :

  • Incompatibilité avec Sylius 2.x : les plugins existants ciblent Sylius 1.10
  • Absence de support Symfony 7 : les signatures de méthodes ne respectent pas les nouvelles exigences
  • Manque de fonctionnalités avancées : pas de dry-run, pas de détection de doublons, pas de validation avant import

Fort de notre expertise en migration e-commerce, on a décidé de créer un fork maintenu entièrement compatible avec :

  • Sylius 2.0+ (testé jusqu'à 2.2)
  • Symfony 7.x
  • PHP 8.3
  • Doctrine ORM 3.x

Présentation du plugin ACSEO Sylius PrestaShop migration

Caractéristiques principales

Le plugin acseo/sylius2-prestashop-migration-plugin offre une solution complète pour migrer l'ensemble de vos données PrestaShop :

Entité PrestaShopSupportCommande
Langues (Locales)prestashop:migration:locale
Devisesprestashop:migration:currency
Paysprestashop:migration:country
Catégoriesprestashop:migration:category
Taxesprestashop:migration:tax
Produits simplesprestashop:migration:product
Produits avec variantesprestashop:migration:product
Attributs produitsIntégré
Images produitsIntégré
Clientsprestashop:migration:customer
Commandesprestashop:migration:order

Fonctionnalités avancées

Au-delà de la simple migration, le plugin ACSEO intègre des fonctionnalités essentielles pour un projet professionnel :

1. Mode Dry-Run (simulation)

Testez votre migration sans modifier la base de données :

php bin/console prestashop:migration:product --dry-run

Cette option vous permet de :

  • Vérifier que les données sont correctement récupérées
  • Identifier les erreurs de validation avant l'import réel
  • Estimer le temps de migration
  • Détecter les conflits potentiels

2. Détection automatique des doublons

Le plugin vérifie et évite l'import de doublons pour :

  • Locales : par code (fr_FR, en_US)
  • Devises : par code ISO (EUR, USD)
  • Pays : par code ISO (FR, GB)
[INFO] Locale 'fr_FR' already exists. Skipping.
[OK] Imported locales (duplicates skipped)

3. Commande de vérification pré-migration

Avant de lancer une migration, vérifiez l'état de votre base de données :

php bin/console prestashop:migration:check

Exemple de sortie :

PrestaShop → Sylius Migration Status
=====================================

Entity          PrestaShop    Sylius    Status    Command
-----------------------------------------------------------------
Locales         5             2         ⚠️  3     prestashop:migration:locale
Currencies      3             1         ⚠️  2     prestashop:migration:currency
Countries       25            10        ⚠️  15    prestashop:migration:country
Categories      47            0         ❌  47    prestashop:migration:category
Products        XXX           0         ❌  XXX   prestashop:migration:product
Customers       XXX           0         ❌  XXX   prestashop:migration:customer
Orders          XXX           0         ❌  XXX   prestashop:migration:order

Legend:
✅ Migrated  ⚠️  Partially migrated  ❌ Not migrated

4. Traçabilité complète

Chaque entité Sylius importée conserve une référence à son ID PrestaShop d'origine grâce au PrestashopTrait :

// Récupérer le produit Sylius depuis un ID PrestaShop
$product = $productRepository->findOneBy([
    'prestashopId' => 1234
]);

echo $product->getPrestashopId(); // 1234
echo $product->getPrestashopCreatedAt(); // 2024-01-15 10:00:00

Cette traçabilité est essentielle pour :

  • Synchroniser les données post-migration
  • Gérer les redirections 301 (SEO)
  • Déboguer les problèmes de migration
  • Maintenir un mapping entre les deux systèmes

5. Support complet des traductions

Le plugin migre automatiquement toutes les traductions multilingues :

// PrestaShop : ps_product_lang
[
    'id_lang' => 1, // Français
    'name' => 'T-shirt imprimé colibri',
    'description' => '<p>Description en français...</p>',
]

// ⬇️ Migration automatique ⬇️

// Sylius : sylius_product_translation
[
    'locale' => 'fr_FR',
    'name' => 'T-shirt imprimé colibri',
    'description' => '<p>Description en français...</p>',
]

6. Tests automatisés inclus

Le plugin est livré avec une suite de tests automatisés couvrant :

  • Les providers (collecte de données)
  • Les validators (validation des données)
  • Les persisters (enregistrement en base)
  • Les transformers (conversion PrestaShop → Sylius)
vendor/bin/phpunit

Cette couverture de tests vous assure la fiabilité du plugin sur vos données spécifiques.

Installation pas à pas

Prérequis

Avant d'installer le plugin, vérifiez votre environnement :

  • Sylius 2.0 ou supérieur installé et fonctionnel
  • PHP 8.0 minimum (8.3 recommandé)
  • Composer installé
  • Accès à la base de données PrestaShop
  • Backup complet de PrestaShop et Sylius

Étape 1 : Installation via Composer

Installez le plugin dans votre projet Sylius :

composer require acseo/sylius2-prestashop-migration-plugin

Note : Le plugin est disponible sur Packagist et suit les conventions de versioning Semantic Versioning (SemVer).

Étape 2 : Activation du bundle

Ajoutez le bundle dans votre fichier config/bundles.php :

<?php

return [
    // ... autres bundles Sylius
    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
    Sylius\Bundle\CoreBundle\SyliusCoreBundle::class => ['all' => true],

    // Plugin de migration ACSEO
    ACSEO\PrestashopMigrationPlugin\PrestashopMigrationPlugin::class => ['all' => true],
];

Étape 3 : Configuration de la connexion PrestaShop

Le plugin utilise Doctrine DBAL pour se connecter à votre base de données PrestaShop.

Dans .env.local :

# Connexion Sylius (existante)
DATABASE_URL="mysql://sylius_user:password@127.0.0.1:3306/sylius_db?serverVersion=8&charset=utf8mb4"

# Connexion PrestaShop (à ajouter)
PRESTASHOP_DATABASE_URL="mysql://ps_user:password@127.0.0.1:3306/prestashop?serverVersion=8&charset=utf8mb4"

Paramètres de connexion :

  • ps_user : utilisateur MySQL avec accès en lecture à PrestaShop
  • password : mot de passe MySQL
  • 127.0.0.1:3306 : hôte et port (peut être distant)
  • prestashop : nom de votre base de données PrestaShop
  • serverVersion=8 : version de MySQL/MariaDB

Sécurité : Le plugin ne nécessite que des droits de lecture (SELECT) sur la base PrestaShop. Aucune modification n'est apportée à PrestaShop.

Étape 4 : Configuration Doctrine DBAL

Déclarez une connexion nommée prestashop dans config/packages/doctrine.yaml :

# config/packages/doctrine.yaml
doctrine:
    dbal:
        default_connection: default
        connections:
            # Connexion Sylius (par défaut)
            default:
                url: '%env(resolve:DATABASE_URL)%'
                driver: 'pdo_mysql'
                charset: utf8mb4

            # Connexion PrestaShop (lecture seule)
            prestashop:
                url: '%env(resolve:PRESTASHOP_DATABASE_URL)%'
                driver: 'pdo_mysql'
                charset: utf8mb4

Étape 5 : Configuration du plugin

Créez le fichier de configuration config/packages/prestashop_migration.yaml :

# config/packages/prestashop_migration.yaml
prestashop_migration:
    # Connexion Doctrine à utiliser
    connection: 'prestashop'

    # Répertoire public Sylius pour les images
    public_directory: '%kernel.project_dir%/public'

    # URL du répertoire images PrestaShop
    # Peut être une URL locale (développement) ou distante (production)
    product_image_url: 'https://ancien-site.com/img/p/'

    # Configuration des ressources (optionnel)
    resources: ~

Étape 6 : Ajout du trait PrestaShop aux entités

Pour bénéficier de la traçabilité, ajoutez le PrestashopTrait à vos entités Sylius.

Entité Product :

<?php

declare(strict_types=1);

namespace App\Entity\Product;

use ACSEO\PrestashopMigrationPlugin\Entity\PrestashopTrait;
use Doctrine\ORM\Mapping as ORM;
use Sylius\Component\Core\Model\Product as BaseProduct;

#[ORM\Entity]
#[ORM\Table(name: 'sylius_product')]
class Product extends BaseProduct
{
    use PrestashopTrait; // Ajoute prestashop_id, prestashop_created_at, prestashop_updated_at
}

Autres entités supportées :

  • App\Entity\Customer\Customer
  • App\Entity\Channel\Channel
  • App\Entity\Locale\Locale
  • App\Entity\Currency\Currency
  • App\Entity\Addressing\Country
  • App\Entity\Taxonomy\Taxon
  • App\Entity\Order\Order

Étape 7 : Génération des migrations Doctrine

Après avoir ajouté le trait, générez les migrations pour ajouter les colonnes :

php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate

Cela créera les colonnes suivantes dans vos tables :

  • prestashop_id (int)
  • prestashop_created_at (datetime)
  • prestashop_updated_at (datetime)

Étape 8 : Vérification de l'installation

Testez que le plugin est correctement installé :

php bin/console | grep prestashop

# Résultat attendu :
prestashop:migration:category
prestashop:migration:check
prestashop:migration:country
prestashop:migration:currency
prestashop:migration:customer
prestashop:migration:locale
prestashop:migration:order
prestashop:migration:product
prestashop:migration:tax

Vérifiez la connexion à PrestaShop :

php bin/console prestashop:migration:check

# Si la connexion fonctionne, vous verrez les statistiques

Utilisation : Migrer vos données

Workflow recommandé

ACSEO recommande de suivre cet ordre de migration pour respecter les dépendances entre entités :

1. Locales (langues)           ⬇️
2. Devises                      ⬇️
3. Pays                         ⬇️
4. Taxes                        ⬇️
5. Catégories                   ⬇️
6. Produits (avec images)       ⬇️
7. Clients                      ⬇️
8. Commandes

Phase 1 : Configuration de base (Locales, Devises, Pays)

Ces entités sont les fondations de votre boutique Sylius.

Migrer les langues (Locales)

# Simulation (recommandé)
php bin/console prestashop:migration:locale --dry-run

# Migration réelle
php bin/console prestashop:migration:locale

# Résultat :
# [OK] Successfully imported 3 locales from PrestaShop
# [INFO] Locale 'fr_FR' already exists. Skipping.

Correspondance PrestaShop → Sylius :

PrestaShopSyliusActif
id_lang: 1 (Français)fr_FR
id_lang: 2 (English)en_US
id_lang: 3 (Español)es_ES

Migrer les devises

php bin/console prestashop:migration:currency --dry-run
php bin/console prestashop:migration:currency

# Résultat exemple :
# [OK] Successfully imported currencies from PrestaShop

Migrer les pays

php bin/console prestashop:migration:country --dry-run
php bin/console prestashop:migration:country

# Résultat exemple :
# [OK] Successfully imported countries from PrestaShop

Phase 2 : Taxes et Catégories

Migrer les taxes

php bin/console prestashop:migration:tax

# Migre les taux de TVA et règles fiscales de PrestaShop

Migrer les catégories

# Simulation recommandée pour vérifier la hiérarchie
php bin/console prestashop:migration:category --dry-run

# Migration avec préservation de l'arborescence
php bin/console prestashop:migration:category

# Résultat exemple :
# [OK] Successfully imported categories from PrestaShop
# [INFO] Category tree structure preserved

Le plugin préserve l'arborescence complète des catégories :

Accueil (id: 1)
├── Vêtements (id: 4)
│   ├── Hommes (id: 5)
│   │   ├── T-shirts (id: 8)
│   │   └── Pulls (id: 9)
│   └── Femmes (id: 6)
└── Accessoires (id: 7)

Phase 3 : Produits (le cœur de la migration)

La migration des produits est l'étape la plus critique. Le plugin gère :

  • Produits simples
  • Produits avec variantes (combinaisons)
  • Attributs (taille, couleur, etc.)
  • Images multiples
  • Prix avec taxes
  • Stock
  • SEO (meta descriptions, URLs)

Migrer les produits

# TOUJOURS commencer par une simulation
php bin/console prestashop:migration:product --dry-run

# Vérifiez les logs pour détecter d'éventuels problèmes
tail -f var/log/dev.log

# Migration complète
php bin/console prestashop:migration:product

# Résultat :
# [INFO] Processing product: T-shirt imprimé colibri
# [INFO] Product has 6 variants (combinations)
# [INFO] Downloading 4 images...
# [OK] Successfully imported products from PrestaShop

Structure d'un produit migré

PrestaShop :

Product: T-shirt (id: 1)
├── Attributs:
│   ├── Taille: S, M, L
│   └── Couleur: Blanc, Noir
├── Combinaisons (6):
│   ├── S-Blanc (prix: 23.90€, stock: 10)
│   ├── S-Noir (prix: 23.90€, stock: 5)
│   ├── M-Blanc (prix: 23.90€, stock: 15)
│   └── ...
└── Images (4)

Sylius après migration :

Product: T-shirt (code: demo_1)
├── Options:
│   ├── Taille: S, M, L
│   └── Couleur: Blanc, Noir
├── Variants (6):
│   ├── demo_1-s-blanc (prix: 2390 centimes, stock: 10)
│   ├── demo_1-s-noir (prix: 2390 centimes, stock: 5)
│   └── ...
└── Images (4)
└── prestashop_id: 1 ✅

Gestion des images

Le plugin télécharge automatiquement les images produits depuis PrestaShop :

# config/packages/prestashop_migration.yaml
prestashop_migration:
    product_image_url: 'https://ancien-site.com/img/p/'

Images migrées :

  • Images principales
  • Images des variantes
  • Galerie d'images
  • Miniatures

Stockage Sylius :

public/media/image/
├── 01/
│   └── hash-image-product-1.jpg
├── 02/
│   └── hash-image-product-2.jpg

Phase 4 : Clients et Commandes

Migrer les clients

php bin/console prestashop:migration:customer --dry-run
php bin/console prestashop:migration:customer

# Résultat exemple :
# [OK] Successfully imported customers from PrestaShop
# [INFO] Customer passwords migrated (bcrypt hashes preserved)

Données migrées :

  • Informations personnelles (nom, prénom, email)
  • Mots de passe (hash bcrypt préservé)
  • Adresses de facturation et livraison
  • Groupes clients → Customer Groups Sylius
  • Dates de création

Migrer les commandes

# ⚠️ Migrer les clients AVANT les commandes
php bin/console prestashop:migration:order --dry-run
php bin/console prestashop:migration:order

# Résultat exemple :
# [OK] Successfully imported orders from PrestaShop

Données migrées :

  • Numéro de commande (préservé)
  • Statut de commande
  • Lignes de commande (produits, quantités, prix)
  • Adresses de facturation/livraison
  • Mode de paiement
  • Transporteur
  • Totaux (HT, TTC, remises, frais de port)
  • Historique des états

Cas d'usage réels : Retours d'expérience ACSEO

Cas 1 : E-commerce B2C (catalogue important)

Contexte :

  • Boutique mode en ligne avec un large catalogue de produits
  • Support multilingue
  • Historique de commandes à préserver
  • PrestaShop 1.7.8 → Sylius 2.0

Défis :

  • Volume important de données
  • Préservation de l'historique complet
  • Zéro perte de données SEO

Solution ACSEO :

# Environnement de staging avec copie PrestaShop
php bin/console prestashop:migration:check

# Migration séquentielle
php bin/console prestashop:migration:locale
php bin/console prestashop:migration:currency
php bin/console prestashop:migration:country
php bin/console prestashop:migration:category
php bin/console prestashop:migration:product
php bin/console prestashop:migration:customer
php bin/console prestashop:migration:order

Résultats :

  • Produits migrés avec toutes leurs variantes
  • Images transférées
  • Traçabilité complète (prestashop_id)
  • 0 downtime (migration en staging puis bascule)

Cas 2 : Marketplace B2B (3 boutiques multilingues)

Contexte :

  • 3 boutiques PrestaShop distinctes
  • Fusion vers un Sylius multi-channel
  • Gestion de catalogues différents par canal

Solution ACSEO :

Utilisation du plugin pour chaque boutique avec préfixe :

// Configuration par canal
$channels = [
    'france' => 'PRESTASHOP_FR_DATABASE_URL',
    'belgique' => 'PRESTASHOP_BE_DATABASE_URL',
    'suisse' => 'PRESTASHOP_CH_DATABASE_URL',
];

// Migration séquentielle avec mapping par canal
foreach ($channels as $channel => $dbUrl) {
    echo "Migrating {$channel}...\n";
    // Migration vers le bon channel Sylius
}

Résultats :

  • 3 catalogues fusionnés dans Sylius
  • Gestion multi-canal native
  • Réduction de 60% des coûts d'infrastructure

Cas 3 : migration partielle (clients + commandes uniquement)

Contexte :

  • Nouveau catalogue produits créé manuellement dans Sylius
  • Besoin de récupérer uniquement clients et historique commandes

Solution :

# Migration sélective
php bin/console prestashop:migration:locale
php bin/console prestashop:migration:currency
php bin/console prestashop:migration:country
php bin/console prestashop:migration:customer
php bin/console prestashop:migration:order

# Les produits sont créés manuellement dans Sylius
# Le mapping prestashop_id permet de lier les anciennes commandes

Avantages du plugin ACSEO vs autres solutions

Comparatif avec les alternatives

CritèrePlugin ACSEOJgrasp (original)BitBagMigration manuelle
Compatibilité Sylius 2❌ 1.10 seulement✅ Payant
Compatibilité Symfony 7
Open Source✅ MIT✅ MIT❌ Propriétaire
Dry-run mode⚠️ Manuel
Détection doublons⚠️ Partiel⚠️ À coder
Traçabilité (prestashop_id)⚠️ Partiel⚠️ À coder
Tests unitaires✅ 51 testsN/A
Support communautaire✅ GitHub⚠️ LimitéN/A
CoûtGratuitGratuitÀ partir de 5K€Temps dev
Maintenance✅ ACSEO⚠️ Limitée✅ BitBagVous

Points forts du plugin ACSEO

1. Moderne et à jour

Le plugin suit les dernières versions de Sylius, Symfony et PHP :

  • Support de PHP 8.0
  • Utilisation des attributs PHP 8 (#[ORM\Entity])
  • Compatibilité Doctrine 3.x
  • Types de retour stricts

2. Testé en production

Le plugin est le fruit de plusieurs projets de migration réalisés par ACSEO. Chaque fonctionnalité a été éprouvée sur des cas réels.

3. Documentation complète

  • README détaillé sur GitHub
  • Exemples de configuration
  • Guide d'utilisation pas à pas
  • Fixtures de test pour vos propres données

4. Extensible

Le plugin utilise une architecture décorateurs permettant de personnaliser chaque étape :

// Exemple : Décorer le ProductProvider pour filtrer les produits
namespace App\Decorator;

use ACSEO\PrestashopMigrationPlugin\Provider\Product\ProductResourceProviderInterface;

class CustomProductProvider implements ProductResourceProviderInterface
{
    public function __construct(
        private ProductResourceProviderInterface $decorated
    ) {}

    public function provide(int $limit, int $offset): array
    {
        $products = $this->decorated->provide($limit, $offset);

        // Filtrer uniquement les produits actifs
        return array_filter($products, fn($p) => $p['active'] === 1);
    }
}

5. Supporté par ACSEO

En cas de besoin, ACSEO propose :

  • Audit gratuit de votre migration
  • Support prioritaire pour les utilisateurs du plugin
  • Accompagnement migration complète
  • Développements spécifiques si nécessaire

Bonnes pratiques de migration

Avant la migration

  1. Faites un audit complet de PrestaShop
    php bin/console prestashop:migration:check > audit-$(date +%Y%m%d).txt
  2. Testez sur un environnement de staging
    • Ne jamais migrer directement en production
    • Utilisez une copie de PrestaShop et Sylius
  3. Vérifiez vos données PrestaShop
    • Corrigez les données incohérentes (produits sans catégorie, etc.)
    • Nettoyez les données obsolètes
    • Vérifiez les images manquantes
  4. Sauvegardez tout
    mysqldump prestashop > backup-prestashop-$(date +%Y%m%d).sql tar -czf backup-prestashop-img.tar.gz /path/to/prestashop/img/ # Backup Sylius mysqldump sylius > backup-sylius-$(date +%Y%m%d).sql

Pendant la migration

  1. Suivez l'ordre des migrations
    • Respectez les dépendances entre entités
    • Locales → Devises → Pays → Taxes → Catégories → Produits → Clients → Commandes
  2. Utilisez toujours --dry-run d'abord
    php bin/console prestashop:migration:product --dry-run | tee dry-run.log
  3. Surveillez les logs pendant la migration
    tail -f var/log/dev.log var/log/prod.log

Après la migration

  1. Vérifiez les compteurs
    php bin/console prestashop:migration:check # Les nombres doivent correspondre
  2. Testez un échantillon de données
    • Vérifiez manuellement quelques produits
    • Testez les traductions
    • Vérifiez les images
    • Contrôlez les prix et le stock
  3. Validez les liens (SEO)
    -- Vérifier que tous les produits ont un prestashop_id SELECT COUNT(*) FROM sylius_product WHERE prestashop_id IS NULL; -- Résultat attendu : 0
  4. Mettez en place les redirections 301

Dépannage : Problèmes courants

Erreur : "Connection refused" à PrestaShop

Symptôme :

SQLSTATE[HY000] [2002] Connection refused

Causes possibles :

  • Mauvais hôte/port dans PRESTASHOP_DATABASE_URL
  • Firewall bloquant la connexion
  • MySQL non démarré

Solution :

# Tester la connexion manuellement
mysql -h 127.0.0.1 -u ps_user -p prestashop

# Vérifier la configuration
php bin/console debug:config doctrine dbal

Erreur : "Column not found: prestashop_id"

Symptôme :

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'prestashop_id'

Cause : Migrations Doctrine non exécutées

Solution :

php bin/console doctrine:migrations:migrate

Erreur : "Memory limit exhausted"

Symptôme :

Fatal error: Allowed memory size of 134217728 bytes exhausted

Cause : Import de nombreux produits avec un volume important d'images

Solution :

# Augmenter la mémoire PHP
php -d memory_limit=512M bin/console prestashop:migration:product

# Si le problème persiste, augmenter davantage
php -d memory_limit=1G bin/console prestashop:migration:product

Erreur : Images non téléchargées

Symptôme :

[ERROR] Failed to download image from https://ancien-site.com/img/p/1.jpg

Causes possibles :

  • URL incorrecte dans la configuration
  • Images supprimées de PrestaShop
  • Problème de permissions sur public/media/

Solution :

# Vérifier l'URL
curl -I https://ancien-site.com/img/p/1/2/3/123.jpg

# Vérifier les permissions
chmod -R 775 public/media/

Contribuer au plugin

Le plugin est open source (licence MIT) et ACSEO encourage les contributions :

Comment contribuer ?

  1. Forkez le projet sur GitHub
  2. Créez une branche pour votre fonctionnalité
    git checkout -b feature/ma-nouvelle-fonctionnalite
  3. Codez avec les standards
    • PSR-12 pour le code PHP
    • PHPStan niveau 6 minimum
    • Tests unitaires pour les nouvelles fonctionnalités
  4. Lancez les tests
    vendor/bin/phpunit vendor/bin/phpstan analyse
  5. Soumettez une Pull Request

Idées de contributions

  • Support d'entités supplémentaires (CMS pages, blogs, etc.)
  • Amélioration des performances pour très gros catalogues
  • Nouveaux validators
  • Documentation en anglais
  • Exemples de décorateurs

Ressources et support

Documentation

Obtenir de l'aide

Communauté Sylius France

Conclusion : Pourquoi choisir le plugin ACSEO ?

La migration de PrestaShop vers Sylius 2 n'a jamais été aussi simple grâce au plugin ACSEO :

  • Compatible Sylius 2 et Symfony 7 : profitez des dernières versions
  • Open source et gratuit : licence MIT, utilisable en production
  • Testé en production : éprouvé sur de nombreux projets réels
  • Fonctionnalités avancées : dry-run, détection doublons, traçabilité
  • Tests automatisés : fiabilité assurée
  • Supporté par ACSEO : expertise e-commerce depuis 2009

Que vous migriez 200 produits ou 20 000, le plugin ACSEO vous fait gagner des semaines de développement tout en garantissant la qualité et la sécurité de vos données.


Prêt à migrer vers Sylius 2 ?

ACSEO vous propose un audit gratuit de votre migration PrestaShop vers Sylius

ACSEO analyse votre boutique PrestaShop et vous propose un plan de migration détaillé :

  • Évaluation de la complexité de votre migration
  • Estimation du temps et du budget
  • Identification des points de vigilance
  • Recommandations personnalisées

Demander mon audit gratuit →


Pour aller plus loin


ACSEO est partenaire premium certifié Sylius et accompagne les e-commerçants dans leur transition vers Sylius depuis 2009. Nous avons réalisé de nombreuses migrations de PrestaShop vers Sylius et contribuons activement à l'écosystème Symfony et Sylius.

Publié le 24/03/2026 à 20:23
Pour continuer votre lecture
Pour continuer votre lecture
Une idée, un projet ? Nous sommes à votre disposition pour discuter. Contactez-nous