Eigene Attribute in s_order_detail

Hallo, ich bin neu in Shopware und versuche gerade eigene Attribute in die “s_order_detail” zu bekommen. Leider scheitert es beim speichern. Anhand dieses tollen gists habe ich schoneinmal rausgefunden wie ich Attribute registrieren kann und auch ein grobe Idee, wie ich diese später befüllen kann… aber eben nur ein grobe Idee :frowning: Die Registrierung der Attribute: $model = $this-\>getEntityManager(); // tabelle, devPrefix, name, sqlTyp, nullable, standardwert $model-\>addAttribute( 's\_order\_details\_attributes', 'pi', 'CustomWidth', 'VARCHAR(255)', true, NULL ); $model-\>addAttribute( 's\_order\_details\_attributes', 'pi', 'CustomHeight', 'VARCHAR(255)', true, NULL ); $metaDataCacheDoctrine = Shopware()-\>Models()-\>getConfiguration()-\>getMetadataCacheImpl(); $metaDataCacheDoctrine-\>deleteAll(); Shopware()-\>Models()-\>generateAttributeModels( array('s\_order\_details\_attributes') ); um zu speichern, nutze ich wie in dem gist, das “Sendmail_FilterVariables”- Event $this-\>subscribeEvent( 'Shopware\_Modules\_Order\_SendMail\_FilterVariables', 'onSaveOrder' ); in der saveOrder Methode hänge ich jetzt allerdings fest, ich kann hier mittels “Shopware()->Debuglogger()->note()” leider keinerlei ausgaben machen, da die funktion anscheinend vorher abbricht und mir sagt “die mail konnte nicht gesendet werden”. Ich habe meinen derzeitigen Ansatz mal einkopiert, da ich aber leider nur die Fehlermeldung kriege, weiß ich nicht ob mein weg hier so richtig ist. public function onSaveOrder( Enlight\_Event\_EventArgs $arguments ) { $orderAttributes = $arguments-\>getReturn(); $orderNumber = $orderAttributes['ordernumber']; $order = $this-\>getEntityManager()-\>getRepository( 'Shopware\Models\Order\Order')-\>findOneBy( array( 'number' =\> $orderNumber ) ); // ist das so richtig? $orderDetailModel = $this-\>getEntityManager()-\>getRepository( 'Shopware\Models\Attribute\OrderDetail')-\>findOneBy( array( 'orderId' =\> $order-\>getId() ) ); // der log geht nicht // \_log( $msg, $type ) = Shopware()-\>Debuglogger()-\>info( $msg, $type ); $this-\>\_log( 'orderDetail', $orderDetailModel ); /\* original des Gist´s ist das vorgehen dann genauso? $orderAttributeModel = $this-\>getEntityManager()-\>getRepository( 'Shopware\Models\Attribute\Order' )-\>findOneBy( array( 'orderId' =\> $order-\>getId() ) ); if( $orderAttributeModel instanceof \Shopware\Models\Attribute\Order) { $orderAttributeModel-\>setPiCustomWidth(rand(1,49)); $orderAttributeModel-\>setPiCustomHeight(rand(1,49)); $this-\>getEntityManager()-\>persist($orderAttributeModel); $this-\>getEntityManager()-\>flush(); } \*/ // $arguments-\>setReturn($orderAttributes); }

Werden denn ohne dein Plugin Mails verschickt? Was passiert wenn du in deine onSaveOrder einfach die(“Test”); schreibst?

[quote=“gezeichnet”]da ich aber leider nur die Fehlermeldung kriege[/quote] Die solltest du uns nicht verschweigen. Viele Grüße