rikazarai/sylius-product-duplication-plugin

Sylius plugin to duplicate products in admin panel with bulk actions support

v1.0.4 2025-08-28 14:38 UTC

This package is auto-updated.

Last update: 2025-08-28 14:40:30 UTC


README

Packagist Version Total Downloads GitHub Stars Sylius Symfony PHP License

Plugin Sylius qui permet de dupliquer des produits individuellement ou en lot depuis le panel d'administration.

✨ Fonctionnalités

  • 🔄 Duplication individuelle avec bouton dédié sur chaque produit
  • 📦 Duplication en lot avec sélection multiple
  • 🔒 Sécurité CSRF et vérification des permissions
  • 🌐 Multi-langue (Français/Anglais)
  • Performance optimisée pour gros catalogues
  • Codes uniques générés automatiquement
  • 🎯 Interface native intégrée à l'admin Sylius

🚀 Installation

Avec Composer

composer require rikazarai/sylius-product-duplication-plugin

Configuration manuelle (si Flex non utilisé)

  1. Activer le bundle dans config/bundles.php :
RiKaZarai\SyliusProductDuplicationPlugin\RiKaZaraiSyliusProductDuplicationPlugin::class => ['all' => true],
  1. Importer les routes dans config/routes/rikazarai_product_duplication.yaml :
rikazarai_admin:
    resource: "@RiKaZaraiSyliusProductDuplicationPlugin/Resources/config/routing/admin.yaml"
    prefix: /%sylius_admin.path_name%  
  1. Importer la configuration dans config/packages/rikazarai_sylius_product_duplication.yaml :
# config/packages/rikazarai_sylius_product_duplication.yaml
imports:
- { resource: "@RiKaZaraiSyliusProductDuplicationPlugin/config/config.yaml" }
- { resource: "@RiKaZaraiSyliusProductDuplicationPlugin/config/sylius_twig_hooks.yaml"
  1. Vider le cache :
php bin/console cache:clear

🎯 Utilisation

Duplication individuelle

  1. Allez dans Catalogue > Produits
  2. Cliquez sur le bouton bleu "Dupliquer"
  3. Le produit dupliqué s'ouvre pour édition

Duplication en lot

  1. Sélectionnez les produits à dupliquer (cases à cocher)
  2. Cliquez sur "Dupliquer les produits sélectionnés"
  3. Confirmez l'action

⚙️ Configuration

# config/packages/rikazarai_sylius_product_duplication.yaml
rikazarai_sylius_product_duplication:
    enabled: true                    # Activer/désactiver
    copy_images: true               # Copier les images
    copy_associations: true         # Copier les associations
    duplicate_suffix: ' (Copie)'    # Suffixe des noms

🔧 Données dupliquées

✅ Complètement copiées

  • Informations de base (statut, catégories)
  • Traductions (noms, descriptions, SEO)
  • Variantes avec prix et options
  • Relations (canaux, taxons, attributs)
  • Associations et images

🔄 Générées automatiquement

  • Codes : PRODUIT-copy-1, PRODUIT-copy-2...
  • Slugs : slug-copy-1, slug-copy-2...
  • Noms : Nom original (Copie)

📋 Prérequis

  • PHP 8.3+
  • Symfony 7.3+
  • Sylius 2.1+

🧪 Tests

./vendor/bin/phpunit              # Tous les tests
./vendor/bin/phpunit tests/Unit   # Tests unitaires

👨‍💻 Auteur

RiKaZarai - @RiKaZarai

🤝 Contribution

  1. Fork le projet
  2. Créez votre branche (git checkout -b feature/ma-fonctionnalite)
  3. Commit (git commit -m 'Ajoute ma fonctionnalité')
  4. Push (git push origin feature/ma-fonctionnalite)
  5. Ouvrez une Pull Request

📄 Licence

MIT License - voir le fichier LICENSE

🙏 Support

Développé par RiKaZarai pour la communauté Sylius

Si ce plugin vous aide, donnez-lui une étoile !