Hallo Community,
ich hänge gerade bei meinem Plugin an dem Punkt, dass ich mittels Plugin im Warenkorb Kundenspezifisch zu jedem Artikel einen individuellen Kommentar anzeigen lassen will.
In der Basket Core, habe ich bereits ein entsprechendes Event gefunden:
$insertId = $this->db->lastInsertId();
$this->db->insert(
's_order_basket_attributes',
[
'basketID' => $insertId,
'attribute1' => '',
]
);
$this->eventManager->notify('Shopware_Modules_Basket_AddArticle_Added', ['id' => $insertId]);
Es handelt sich aber um ein notify Event. Wie kann ich den Datenbankeintrag hier beeinflussen?
Grüße
Schlueter550v
rengro
10. Juli 2018 um 09:46
2
**public static function** getSubscribedEvents() { **return** ['Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Checkout' =\> 'onPostDispatchCheckout']; }
Damit kannst du dich an das entsprechende Event hängen.
public function onPostDispatchCheckout(\Enlight_Event_EventArgs $arguments) {
$controller = $arguments->getSubject();
$view = $controller->View();
$view->assign(‚variableName‘, $variable);
}
Wenn du beim speichern irgendetwas machen willst:
**public static function** getSubscribedEvents() { **return** ['Shopware\_Modules\_Order\_SaveOrder\_ProcessDetails' =\> 'SaveOrderProcess',]; }
**private function** SaveOrderProcess($ordernumber, $var){ $sql="SELECT ID FROM s\_order WHERE ordernumber=?"; $orderID=Shopware()-\>Db()-\>fetchOne($sql,[$ordernumber]); $sql="UPDATE s\_order\_attributes SET var=? WHERE orderID=?"; Shopware()-\>Db()-\>query($sql,[$var,$orderID]); **return true** ; }
Ich hoffe das hilft