Export Bestellung nach Kauf

hallo zusammen, ich versuche grad ein Plugin zu schreiben, welches mir nach einem Bestellvorgang die aktuelle Bestellung in eine Datei schreibt. Das klappt auch ganz gut. Mein Ansatz: [code]<?php public function ShopwareModulesOrderSaveOrderFilterDetailsSQL(Enlight_Event_EventArgs $arguments){

	$return = $arguments->getReturn(); $sOrder = $arguments-\>getSubject(); $row = $arguments-\>getRow(); $user = $arguments-\>getUser(); $order = $arguments-\>getOrder(); $test\_array = array ( $order[number] =\> 'orderNumber', $row[articlename] =\> 'articlename', $row[articleID] =\> 'articleID', $row[ordernumber] =\> 'ordernumber' ); $xml = new SimpleXMLElement('<root></root>'); array\_walk\_recursive($test\_array, array ($xml, 'addChild')); $xmlAusgabe = $xml-\>asXML(); $fp = fopen("\_exportBestelltungenTest\_/export\_SaveOrder\_" . $order[number] . ".xml", "a+"); fwrite ($fp, $xmlAusgabe); } ?\> [/code] Die Ausgabe sieht wie folgt aus: [code]<?xml version="1.0"?><root><ordernumber>20113</ordernumber><articlename>Stichkerze</articlename>
<?xml version="1.0"?>

20113Mindermengenzuschlag
[/code]

Das Problem: ich habe also pro Bestellung, sondern pro bestellten Artikel ein Array.

Wie kann ich es schaffen, dass ich ein Array pro Bestellung erhalte und der Aufbau wie folgt aussieht:

[code]

<?xml version="1.0"?> 20113 Stichkerze Mindermengenzuschlag


[/code]

Du hast dich für ein event entschieden, das in einer Schleife (1x pro Artikel) gefeuert wird. Such dir ein event, welches die Bestellung behandelt - und nicht die Positionen. Außerdem: ich würde file_put_contents() empfehlen http://de2.php.net/manual/en/function.f … ntents.php Viele Grüße

Danke! Könntest du mir auch sagen, welches Event ich nutzen könnte?

Siehe: https://github.com/shopware/shopware/bl … r.php#L505 Such dir ein sinnvolles event aus. Viele Grüße

Eine Vielzahl an Erweiterungen benutzt den Hook auf die sSaveOrder. Hooks sind immer hart mit Vorsicht zu genießen, scheint aber beim speichern der Bestellungen wohl eine ok’e Wahl zu sein. Hook $this-\>subscribeEvent( 'sOrder::sSaveOrder::after', 'foo' ); Funktion public function foo(Enlight\_Hook\_HookArgs $args) { $orderNumber = $args-\>getReturn(); } Schöne Grüße, Niklas