Markus Michalski FAQ

Marketplace Redirect: Installation

Installation des Sylius-Plugins Marketplace Redirect: Composer über Packeton, Bundle, Admin-Routen, Setup-Befehl, Update und Deinstallation.

English Version

Zurück zur Übersicht

Marketplace Redirect: Installation

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

Composer

Private Repositories werden über Packeton verwaltet (https://packeton.markus-michalski.net). Die Zugangsdaten bekommst du nach dem Lizenzkauf.

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

Nach dem composer require:

  1. Bundle in config/bundles.php registrieren:

    Mmd\SyliusMarketplaceRedirectPlugin\MmdSyliusMarketplaceRedirectPlugin::class => ['all' => true],
    
  2. Admin-Routen importieren, zum Beispiel in config/routes/mmd_marketplace_redirect.yaml. Ohne den Import fehlen der Menüpunkt „Marketplace redirect“ und sein Bildschirm, alles andere funktioniert weiter:

    mmd_sylius_marketplace_redirect_admin:
        resource: "@MmdSyliusMarketplaceRedirectPlugin/config/routes/admin.yaml"
    
  3. Setup-Befehl ausführen:

    bin/console mmd:marketplace-redirect:setup
    

    Der Befehl führt nur die noch offenen Migrationen dieses Plugins aus, nie die der App oder anderer Plugins. Dabei entstehen zwei Tabellen, mmd_sylius_marketplace_redirect_link und mmd_sylius_marketplace_redirect_channel_settings. Er ist idempotent: Ohne neue Migration meldet er „Migrations are already up to date.“ und tut nichts, du kannst ihn also nach jedem composer update laufen lassen. Zusätzlich prüft er, ob die Routen aus Schritt 2 importiert sind, und gibt andernfalls den Snippet aus, ohne je in config/ zu schreiben. Sind Migrationen von Sylius selbst noch offen, bricht er ab und bittet dich, zuerst bin/console doctrine:migrations:migrate auszuführen. In Skripten und Deployments gibst du --no-interaction an, sonst fragt Doctrine vor der Ausführung nach einer Bestätigung.

Die Twig-Hooks, das Doctrine-Mapping, das Grid und die API-Ressource registriert das Bundle selbst. Du musst nichts nach config/packages/ legen: Das Plugin hat keine Bundle-Konfiguration, die Einstellungen liegen in der Datenbank und werden im Admin gepflegt (siehe Konfiguration). Ein assets:install ist nicht nötig, das Shopware-Logo ist als Data-URI im Template eingebettet.

Führe den Setup-Befehl aus, bevor jemand die Karte „Externer Kauf“ im Admin benutzt. Bis dahin zeigen Produktseiten zwar den normalen Button, aber die Karte kann nichts speichern: Bei einem bestehenden Produkt wird die Eingabe ohne Meldung verworfen, und ein neues Produkt mit gewähltem Marktplatz lässt sich nicht anlegen.

Update

composer update mmd/sylius-marketplace-redirect-plugin
bin/console mmd:marketplace-redirect:setup
bin/console cache:clear

Deinstallation

  1. Gespeicherte Links und Channel-Einstellungen sind in den beiden Tabellen abgelegt. Möchtest du sie behalten, sichere die Tabellen vorher.
  2. Migrationen zurückrollen, solange das Bundle noch registriert ist, pro Version einzeln, die neueste zuerst:
    bin/console doctrine:migrations:execute --down "Mmd\SyliusMarketplaceRedirectPlugin\Migrations\Version20261002140000"
    bin/console doctrine:migrations:execute --down "Mmd\SyliusMarketplaceRedirectPlugin\Migrations\Version20261002120000"
    
  3. Den Route-Import (config/routes/mmd_marketplace_redirect.yaml) und den Bundle-Eintrag in config/bundles.php entfernen.
  4. Paket entfernen:
    composer remove mmd/sylius-marketplace-redirect-plugin