Plugin: Artikel so laden, dass Produkt-Kacheln genutzt werden können

Hallo,

ich möchte gerne ein Plugin schreiben das nach bestimmten Kriterien Artikel läd und diese dann an die View übergibt.

Zur Ausgabe der Produkte möchte ich die bestehenden Produkt-Kacheln aus dem Standard-Theme nutzen. Hierzu müssen ja bestimmte Werte zu den Artikeln verfügbar sein z.B.
Bild, Name, Preis (wie er im Context benötigt wird), etc.

Wie kann ich die Artikel in meinem Plugin so laden, dass all diese Werte vorhanden sind?
Wie kann ich also alles so laden, dass meine Artikel die gleichen Werte besitzen wie es immer bei $sArticles z.B. auf der Kategorie-Seite ist?

Ich dachte erst über die Ressource:
$productResource = \Shopware\Components\Api\Manager::getResource(‚Article‘);
$product = $productResource->getOne(8);

Da sind aber nicht alle Werte vorhanden. Hat jemand ein wenig Code oder eine Idee für mich?

Welche Sortierung/Schema willst du machen?

Hallo @brettvormkopp ,

ich weiß nicht was du mit „Sotierung/Schema“ meinst.
Folgendes: Ich möchte auf der Hersteller-Seite, alle Kategorien laden, zu den dieser Hersteller Artikel besitzt. Dann möchte ich alle Artikel der jeweiligen Kategorien laden um im Frontend zu jeder Kategorie, alle Produkte ausgeben zu können.

Ich möchte dafür die Standard Box aus dem Bare Theme verwenden: „frontend/listing/box_article.tpl“.
Die Daten müssen dann so strukturiert sein, dass diese Box und ihre includes z.B. „frontend/listing/product-box/box-minimal.tpl“ alle Daten haben um diese Box darzustellen.

Wie kann ich sicher stellen dass ich alle Daten lade, die gebraucht werden? Ich kann mir nicht vorstellen dass ich das ganze selbst zusammenpuzzeln muss oder?

Über eine Antwort würde ich mich sehr freuen!

Ok,
ich kann dir zwar keine Endlösung bieten, aber vll hilft dir ein Denkansatz:

Letztendlich ist das eine Suche, mit Filter Hersteller:
search?p=1&q=star%20wars&o=7&n=25&s=112&cf=79

  • p = Seite (page)
  • q = Suchphrase (query)
  • o = Sortierung (order)
  • n = Anzahl Ergebnisse pro Seite (n/Anzahl)
  • s = ID des Hersteller (supplier)
  • cf = ID der Kategory (category filter)

2.) im Theme deiner Herstellerseite die ID abfragen und dann mit smarty functions und SQL dir das Ergebnis zusammenbasteln.

1 „Gefällt mir“

Hallo @brettvormkopp,

danke für deine Tipps. Ich konnte mein Problem lösen.

Ich habe mir die Produkt-Daten per SearchService geholt und dann mit dem dem LegacyStructConverter in das richtige Format gebracht:

$product = $legacyStructConverter->convertListProductStruct($productStruct);

Nur ein Hinweis: Bei dieser Methode werden nie Varianten erfasst, immer nur die Haupt- bzw. Stammarktikel. Falls das mal eine Rolle spielen sollte.

Danke für den Hinweis, hat für mich derzeit keine Relevanz. Trotzdem gut zu wissen :slight_smile: