Pluginkonfiguration: sw-entity-multi-id-select unbenutzbar bei vielen Objekten

Wir haben ein Plugin mit einer eher größeren Konfigurationsmaske. Unter Anderem haben wir da zehn „entity-multi-id-select“-Felder, die bis zu 40 Artikel aufnehmen sollen. Die Usability ist eine Katastrophe:

  1. Es ist fast unmöglich diese Pluginkonfiguration mit vollständig geladener Maske zu öffnen. Es fehlen fast immer konfigurierte Artikel oder Felder bleiben gänzlich leer. Es sind nie dieselben Felder und es fehlt nie gleich viele konfigurierte Produkte. Vielleicht ein Reload aus 30 liefert eine vollständig geladene Konfiguration.
  2. Befüllen klappt auch nicht richtig. In unserem Fall wollen wir pro Feld Varianten eines bestimmten Artikels eintragen. Dieser Artikel hat z.B. 30 Varianten und heißt z.B. „Schraube Edelstahl“. Wenn ich im Feld „Schraube Edelstahl“ eingebe dann kommen zunächst Vorschläge, die genau passen und mit fetter blauer Schrift markiert werden (das ist super). Danach kommen irgendwelche Vorschläge, die mit „Schraube Edelstahl“ sehr wenig zutun haben. Das Problem ist, es sind NIE alle Varianten von „Schraube Edelstahl“. Es fehlen immer mindesten fünf. Wenn man speichert, ein Reload macht und erneut im ausgefülltem Feld „Schraube Edelstahl“ eingibt, dann kommen alle bereits ausgewählten (das ist auch gut so) und eins zwei, die beim ersten Versuch nicht angezeigt wurden, aber eben wieder nicht alle. Und so braucht man auch hier ca. 20 Versuche, bis wirklich alle Varianten angeboten werden.
  3. Jetzt kann man im Feld ja auch die Produktnummer eintragen (das ist sehr gut). Und so könnte man die fehlenden Varianten einfach über die Produktnummer eintragen, aber es gibt gar keine Möglichkeit festzustellen welche Varianten man bereits einkonfiguriert hat. Man sieht nur ein Stück vom Artikelnamen und sonst nichts.

Das Feld ist in unserem Fall absolut unbenutzbar und ich bin komplett dazu übergegangen die Konfiguration direkt in der Tabelle „system_config“ zu machen.

Grüße, Nikolaj

Die Plugin-Konfiguration ist nicht für solch umfangreiche Einstellungen gedacht. In der Administration wird viel mit LIMIT gearbeitet, so dass sich das Verhalten schnell erklären lässt.

Erstellt ein Modul und/oder Komponente, dort könnt ihr die die Suche, die Auswahl, das Limit, etc. alles individualisieren.

Schau dir bei der Administration von Produkten mal den Reiter „Cross Selling“ an. Schalte den „Typ“ auf „Manuelle Zuweisung“ und wähle dann ein paar Produkte aus. Shopware zeigt dir hier, wie man sinnvoll eine Mehrfach-Auswahl von Produkten realisiert.

Viele Grüße

Hallo Eike,

und das geht auch in der Pluginkonfiguration?

Grüße

Danke für die Antwort, aber ich verstehe ehrlich gesagt nicht dein Einwand. Das Element „sw-entity-multi-id-select“ mit entity=product ist doch dazu gedacht mehrere Produkte zu konfigurieren, oder etwa nicht?

Grüße

Ja, aber es ist nicht dafür gedacht „zahlreiche“ Elemente zu selektieren. Wobei das „gedacht“ meine Interpretation ist, aufgrund der Implementierung.

Shopware arbeitet überall mit LIMIT Queries im SQL, damit die Datenbank nur minimal belastet wird und die Administration schnell lädt. Die Limits sind so ausgewählt, dass es für den „Standard“ Shop ausreicht.

Deswegen habe ich pauschal und Eike konkret auf mögliche Implementierungen hingewiesen, wie das „Problem“ zu umgehen ist.

Zu deiner vorherigen Frage. Ich gehe nicht davon, dass dies in der Plugin-Konfiguration möglich ist. Deswegen habe viele komplexere Plugins einen eigenen Menüpunkt für deren Konfiguration, siehe bspw. PayPal-Plugin.

Entweder findest du dich mit der „komplizierten“ Handhabung ab (indirekt deine Worte), du überschreibst die Shopware Administration (vermutlich genügt es das LIMIT anzupassen) oder du erweiterst dein Plugin so, dass es eine eigenständige flexible Konfiguration hat.

Andere Möglichkeiten sind mir nicht bekannt.

Wenn du in der Plugin Konfiguration zehn multi-selects auf Produkte hast, dann klingt mir das eher nach einem fehlerhaften Konzept. Solltest du das -wirklich- so brauchen, dann solltest (oder musst) du dir eher ein eigenes Modul mit eigener Oberfläche bauen und die Auswahl der Produkte nach dem Vorbild aus dem Cross Selling Reiter übernehmen.

Viele Grüße