php Code Ausführen, vor Einlesen der Tabellen durch Shopware

Liebes Forum :slight_smile: :slight_smile: ich versuche mich gerade an einem Plugin für Variantenartikel (Konfigurator). Wenn man im Konfigurator eine Option auswählt müssen durch dieses Plugin als erstes Einträge in der Datenbank gemacht werden, auf jeden Fall bevor Shopware die Tabellen der Variante einliest. Ich habe das in einer Bootstrap.php geschrieben, aber festgestellt, dass die Bootstrap.php wohl erst nach dem Einlesen durch Shopware abgearbeitet wird. Wie macht man es, dass zuerst mein php-Code ausgeführt wird? Liebe Grüße Kerstin

Hi, im Standard wird ja nach der Auswahl der Variante auf der Detailseite die Seite neu geladen. D.h. du kannst dir einfach das Enlight_Controller_Action_PreDispatch_Frontend_Detail-Event registrieren und darin dann deine Abfrage machen. Welche Variante ausgewählt wurde, musst du über die POST-Daten ermitteln, da wird dir die gewählte Konfigurator-Gruppe und -Option übergeben. Besten Gruß, Daniel

1 „Gefällt mir“

Das verstehe ich nicht… Deine bootstrap wird geladen, sobald einer deiner event listener greift. Oder was meinst du mit “php code”?! Viele Grüße

Daaanke. Einfach aus Post ein Pre gemacht und er macht es. :slight_smile: :slight_smile: :slight_smile: [quote]Welche Variante ausgewählt wurde, musst du über die POST-Daten ermitteln, da wird dir die gewählte Konfigurator-Gruppe und -Option übergeben.[/quote] Wie geht das denn genau? Wie heißen die Felder darin? Das wär noch sehr hilfreich. Ist das irgendwo dokumentiert? Liebe Grüße Kerstin

Hallo nochmal, wenn man das mit PreDispatch macht, hat man die verschiedenen Variablen wie sArticle etc. nicht zur Verfügung. Deswegen nochmal, wie geht das mit den übergebenen POST Variablen? Liebe Grüße Kerstin

[quote=„Kerstin83“]Deswegen nochmal, wie geht das mit den übergebenen POST Variablen? [/quote] Was auch immer Du vorhast - poste doch bitte den Quellcode. Damit kann dir bestimmt schneller und einfacher geholfen werden. Gruß

Quellcode habe ich noch nicht richtig, nur kleine Tests. Ich will von den Optionen abhängig die Variante des Artikels abändern: und dazu brauche ich genau das was Daniel erwähnt hat, die durch das form in configurator_upprice.tpl übergebenen Werte für option_group und Options. Also sie werden gesendet, wie spreche ich sie an? Liebe Grüße Kerstin

Hallo nochmal, :slight_smile: Etwas konkreter. Im config_upprice.tpl ist ja ein Formular [code]

[/code] Mit diesem Formular werden ja Werte per Post gesendet. Zum Beispiel [code]

Hallo, Ich habe schon alles mögliche durchgeschaut und probiert, aber ich komme einfach nicht weiter. Daniel hat ja gepostet: [quote]…Welche Variante ausgewählt wurde, musst du über die POST-Daten ermitteln, da wird dir die gewählte Konfigurator-Gruppe und -Option übergeben.[/quote] Wie kann ich diese Post-Daten einlesen? Liebe Grüße Kerstin

Hallo, ich habe das mal ausprobiert. In der Ereignisbehandlungsprozedur des PreDispacher Ereignisses Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Detail stehen in \_POST die Optionen zur Verfügung. Allerdings nur, wenn man eine Option gewählt hat (also zum Beispiel nicht beim ersten Aufruf des Variantenartikels). Bei Artikeln ohne Varianten ist _POST leer. Allerdings bin ich mir nicht sicher, ob man auf $_POST direktzugreifen darf (sollte). Hoffe geholfen zu haben

Mit getParams() solltest du an die Daten kommen.

danke!!! :slight_smile: :slight_smile: Hat geklappt. War die ganze Zeit auf der falschen Fährte. Liebe Grüße Kerstin