Markus Michalski FAQ

Product Custom Inputs: Installation

Installation des Sylius-Plugins Product Custom Inputs über Composer und Packeton: Bundle, Routen, Setup-Command, Update und Deinstallation in der richtigen Reihenfolge.

English Version

Zurück zur Übersicht

Product Custom Inputs: Installation

Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.

Voraussetzungen

Eine laufende Sylius-2.2-Anwendung (oder neuer) mit PHP 8.3 und Symfony 7.4. Das Plugin bringt eigene Tabellen mit, die Datenbank muss also schreibbar sein.

Installation

Composer (Packeton)

Private Repositories werden über Packeton verwaltet (https://packeton.markus-michalski.net). Zugangsdaten gibt es nach Lizenzkauf oder Freigabe.

Repository in der composer.json der Shop-Anwendung eintragen:

{ "repositories": [{ "type": "composer", "url": "https://packeton.markus-michalski.net" }] }
composer require mmd/sylius-product-custom-inputs-plugin

Danach in dieser Reihenfolge:

  1. Bundle in config/bundles.php registrieren:

    Mmd\SyliusProductCustomInputsPlugin\MmdSyliusProductCustomInputsPlugin::class => ['all' => true],
    
  2. Admin-Routen in config/routes.yaml importieren:

    mmd_sylius_product_custom_inputs_plugin_admin:
        resource: "@MmdSyliusProductCustomInputsPlugin/config/routes/admin.yaml"
    
  3. Setup-Command ausführen:

    php bin/console mmd:product-custom-inputs:setup
    

Der Routen-Import ist Pflicht. Symfony entdeckt Routen eines Bundles nicht automatisch. Ohne diesen Schritt fehlt der Menüpunkt "Produkt-Zusatzfelder" im Admin, und die Felder lassen sich nicht verwalten.

Admin-Grid und das Auswahlfeld im Produktformular registriert das Plugin selbst, dafür ist keine Konfiguration nötig. Das Plugin hat keine eigenen Config-Keys unter config/packages/. Mitgeliefert sind die Übersetzungen de_DE und en_US.

Setup-Command

mmd:product-custom-inputs:setup führt nur die noch offenen Migrationen dieses Plugins aus, nichts von der Anwendung oder von anderen Plugins. Das globale doctrine:migrations:migrate bleibt als Alternative nutzbar.

Update

composer update mmd/sylius-product-custom-inputs-plugin
php bin/console mmd:product-custom-inputs:setup
php bin/console cache:clear

Deinstallation

Reihenfolge einhalten, damit das Bundle beim Zurückrollen noch registriert ist:

  1. Eigene Template-Overrides des Plugins entfernen.

  2. Migrationen zurückrollen, pro Version einzeln, neueste zuerst:

    php bin/console doctrine:migrations:execute --down 'Mmd\SyliusProductCustomInputsPlugin\Migrations\Version20260917150000'
    php bin/console doctrine:migrations:execute --down 'Mmd\SyliusProductCustomInputsPlugin\Migrations\Version20260917120000'
    php bin/console doctrine:migrations:execute --down 'Mmd\SyliusProductCustomInputsPlugin\Migrations\Version20260915165859'
    
  3. Routen-Import und Bundle-Eintrag entfernen.

  4. composer remove mmd/sylius-product-custom-inputs-plugin

Das Zurückrollen ist teilweise verlustbehaftet: Die neueste Migration behält bei einem Feld mit mehreren Produkten nur die Zuordnung zur kleinsten Produkt-ID, die älteste löscht die Tabellen samt aller Kundeneingaben.