Basket Event?

Hi, irgendwie steh ich aufn Kabel :wink: Ich möchte bei checkout finish eine Funktion ausführen was mir meine Tabelle aktuallisiert. Die Funktion soll meine Einträge in meiner Tabelle die jeweils eine zugeordnete basketID hat aktualisieren mit der orderID. So das ich dann die Einträge der Bestellung zuordnen kann. Kann mir da jemand helfen?

Hi, mach es doch bei diesem Event: $event = $this-\>createEvent( 'Shopware\_Modules\_Order\_SaveOrder\_ProcessDetails', 'onOrder\_SaveOrderProcessDetails' ); $this-\>subscribeEvent($event); public static function onOrder\_SaveOrderProcessDetails(Enlight\_Event\_EventArgs $args) { $basketContent = $args-\>getDetails(); $order = $args-\>getSubject(); $orderNumber = $order-\>sOrderNumber; //Tabellen Update }

1 „Gefällt mir“

Hi, danke das event hatte ich auch schonmal wo gelesen. Aber wo genau greift das? Also beim Absenden von Warenkorb bei final oder wo? Wenn ich das so einbaue erhalte ich keine reaktion.

Das Event greift beim Speichern der Bestellung. Bzw. beim Speichern der einzelnen Positionen in die s_order_details

Ok cool. Nun stellt sich mir die Frage wie ich an folgende Informationen komme. basketIDs (alle PositionsIDs im Warenkorb bzw. diese die dort waren ;)) orderIDs (alle PositionsIDs der Bestellung) Nur nochma so zum Verständnis. Ich bilde im Warenkorb eine Zuordnung über die basketID an meine eigene Tabelle(Einträge). Diese Einträge möchte ich beim Abschicken des Warenkorbs aktualisieren mit den IDs der generierten Bestellung(Positionen). Danke :slight_smile:

Also der komplette Warenkorb wird so abgefragt. Hier sollte zumindest alle basketIDs vorhanden sein. $basketContent = $args->getDetails();

Also so ganz ehrlich ich würde am liebsten beim Insert in s_order_details die einzelnen basketIDs übergeben. Dazu müsste ich aber eine Shopware Engine funktion überschreiben was sicher nich so tolle ist :wink: HELP@ :shopware: darf ich :stuck_out_tongue:

Hi, so ich habs jetzt gelöst. meine orderIDs erhalte ich über die odernumber und meine function $orderNumber = $view-\>sOrderNumber; $orderIDs=$plugin-\>getOrderIDs($orderNumber); public function getOrderIDs($orderNumber) { $orderDetailsIDs = Shopware()-\>Db()-\>fetchAll(" SELECT id FROM s\_order\_details WHERE ordernumber = ".$orderNumber." "); return $orderDetailsIDs; } und die basketIDs über folgendes $view = $args-\>getSubject()-\>View(); foreach ($view-\>sBasket["content"] as &$basketItem) { $baskedIDs=$basketItem['id']; } Danke für die Unterstützung *closed*