Warenkorbpositionen aus Shopware auslesen
Hallo zusammen,
ich habe eine Frage zu Shopware.
Und zwar: Ich entwickle im Moment ein kleines Plugin für Shopware, was mir nach Bestellabschluss alle Relevanten Bestelldaten in eine XML zusammenfasst und diese auf dem Server abspeichert.
Einiges klappt schon ohne Probleme:
Ich kann die jeweiligen Kundendaten auslesen und in eine XML schreiben. Ordernummer, sowie Betrag etc. funktionieren auch.
Leider komme ich irgendwie nicht an die einzelnen Warenkorbpositionen dran. Das heißt an die einzelnen Artikelnummern, Preise usw. der bestellten Artikel.
Hier ein ausschnitt meines bisherigen Ansatzes:
Würde mich riesig über eure Hilfe freuen !
Grüße,
chrisen
ich habe eine Frage zu Shopware.
Und zwar: Ich entwickle im Moment ein kleines Plugin für Shopware, was mir nach Bestellabschluss alle Relevanten Bestelldaten in eine XML zusammenfasst und diese auf dem Server abspeichert.
Einiges klappt schon ohne Probleme:
Ich kann die jeweiligen Kundendaten auslesen und in eine XML schreiben. Ordernummer, sowie Betrag etc. funktionieren auch.
Leider komme ich irgendwie nicht an die einzelnen Warenkorbpositionen dran. Das heißt an die einzelnen Artikelnummern, Preise usw. der bestellten Artikel.
Hier ein ausschnitt meines bisherigen Ansatzes:
public function blabla (Enlight_Event_EventArgs $arguments)
{
$xml = new SimpleXMLElement();
$order = $arguments->getSubject();
$orderDetails = $arguments->getDetails();
$UserData = $order->sUserData;
$orderNumber = $order->sOrderNumber;
$data = $xml->addChild('data');
$data->addChild('OrderNumber', $orderNumber);
$data->addChild('priceWithTax', $preis);
$data->addChild('shipping_title', $UserData ["shippingaddress"] ["title"] );
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xmlAusgabe = $xml->asXML());
$dom->save('files/test/Export' . $orderNumber . '.xml');
}
Würde mich riesig über eure Hilfe freuen !
Grüße,
chrisen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 315949
Url: https://administrator.de/forum/warenkorbpositionen-aus-shopware-auslesen-315949.html
Ausgedruckt am: 09.01.2025 um 15:01 Uhr
4 Kommentare
Neuester Kommentar
Hallo chrisen,
ich kenne Shopware jetzt überhaupt nicht, aber laut Doku solltest du mit
an die Artikel einer Bestellung kommen.
https://developers.shopware.com/developers-guide/event-guide/
Welche Version ihr von Shopware nutzt können wir hier leider nur raten.
Vermutlich sind dann als Ergebnis die Artikel als assoziatives Array enthalten. Lass dir die Variable einfach mit
Es könnte auch sein das in $orderDetails
die Artikel schon als Array enthalten sind. Lass dir die Inhalte einfach per debugging ausgeben dann findest du sie schon . Oder sich per get_object_vars() die Klassenmember oder get_class_methods() die Methoden der Argument-Variablen auflisten lassen.
Grüße Uwe
ich kenne Shopware jetzt überhaupt nicht, aber laut Doku solltest du mit
$products = $arguments->get('products');
https://developers.shopware.com/developers-guide/event-guide/
Welche Version ihr von Shopware nutzt können wir hier leider nur raten.
Vermutlich sind dann als Ergebnis die Artikel als assoziatives Array enthalten. Lass dir die Variable einfach mit
print_r($products);
ausgeben.Es könnte auch sein das in $orderDetails
$orderDetails = $arguments->getDetails();
Grüße Uwe
Zitat von @chrisen:
Ich habe noch eine kurze Frage: Und zwar möchte ich gerne die Position (also da wo "0" drinnen steht) hochzuholen. Also auf "0" mehrere Inhalte ausgeben, Position auf "1" und wieder Inhalte ausgeben und so weiter... bis zum Beispiel in ["ordernumber"] nichts mehr drinnen steht. Geht das?
Du meinst eine einfache ForEach-Schleife über alle Elemente eines Arrays (Artikel) ? Sicher:Ich habe noch eine kurze Frage: Und zwar möchte ich gerne die Position (also da wo "0" drinnen steht) hochzuholen. Also auf "0" mehrere Inhalte ausgeben, Position auf "1" und wieder Inhalte ausgeben und so weiter... bis zum Beispiel in ["ordernumber"] nichts mehr drinnen steht. Geht das?
foreach($sBasketData["content"] as $item){
echo $item["ordernumber"] . "<br />";
}