WPAllExport: Export von Bestellungen als XML

Problem

Bestellungen ein anderes System zu übergeben ist natürlich an sich kein Problem. Allerdings muss man zwei Schleifen aufbauen. Denn die erste Schleife ist die Bestellung ansich. Mit Kunden-Daten, Lieferanschrift, Rechnungsanschrift, Bezahl- und Versandweg. Aber die zweite Schleife ist dann die Bestellung selbst, also die Bestell-Positionen.

//Schleife 1
<bestellung>
<kundendaten />
<vorname />
<nachname />
<bestellpositionen>
//Schleife 2
<position>
<artikelnr />
<preis />
<menge />
</position>
//Ende Schleife 2
</bestellung>
//Ende Schleife 1

Lösung

Über die Möglichkeit eigene Funktionen im Function Editor einzubinden, fügt man folgenden Code ein:

<?php

function positionen( $orderlineid = '', $productid = '', $sku = '', $productname = '', $anzahl = '', $kosten = '' ) {
	
    // Declare our variable to store the new XML.
    $xml = '';
	
    // Ensure $skus isn't empty and that it's an array.
    if ( !empty( $skus ) && is_array( $skus ) ) {

        // Process each SKU in the array.
        foreach ( $skus as $key => $value ) {

            // Add the opening item tag.
            $xml .= "**LT**position**GT**";

            // Add the Product ID tags and value.
            $xml .= "**LT**positionsnr**GT**" . ( empty( $orderlineid[ $key ] ) ? '' : $orderlineid[ $key ] ) . "**LT**/positionsnr**GT**";

            // Add the Product ID tags and value.
            $xml .= "**LT**artid**GT**" . ( empty( $productid[ $key ] ) ? '' : $productid[ $key ] ) . "**LT**/artid**GT**";            

            // Add the Product ID tags and value.
            $xml .= "**LT**ProductID**GT**" . ( empty( $sku[ $key ] ) ? '' : $sku[ $key ] ) . "**LT**/ProductID**GT**";

            // Add the SKU tags and value.
            $xml .= "**LT**SKU**GT**" . ( empty( $value ) ? '' : $value ) . "**LT**/SKU**GT**";

            // Add the Quantity tags and value.
            $xml .= "**LT**artikeltext1**GT**" . ( empty( $productname[ $key ] ) ? '' : $productname[ $key ] ) . "**LT**/artikeltext1**GT**";

            // Add the ItemCost tags and value.
            $xml .= "**LT**bestellmenge**GT**" . ( empty( $anzahl[ $key ] ) ? '' : $anzahl[ $key ] ) . "**LT**/bestellmenge**GT**";

            // Add the ItemCost tags and value.
            $xml .= "**LT**basispreis**GT**" . ( empty( $kosten[ $key ] ) ? '' : $kosten[ $key ] ) . "**LT**/basispreis**GT**";            

            // Add the closing item tag.
            $xml .= "**LT**/position**GT**";
        }

    // If $skus isn't an array handle it here.
    } else {

        // Add the opening item tag.
        $xml .= "**LT**position**GT**";

        // Add the Product ID tags and value.
        $xml .= "**LT**positionsnr**GT**" . ( empty( $orderlineid[ $key ] ) ? '' : $orderlineid[ $key ] ) . "**LT**/positionsnr**GT**";

        // Add the ProductID tags and value.		
        $xml .= "**LT**artid**GT**" . ( empty( $productid ) ? '' : $productid ) . "**LT**/artid**GT**";   

        // Add the SKU tags and value.
        $xml .= "**LT**SKU**GT**" . ( empty( $skus ) ? '' : $skus ) . "**LT**/SKU**GT**";
        // Add the ProductID tags and value.    

        $xml .= "**LT**artikeltext1**GT**" . ( empty( $productname ) ? '' : $productname ) . "**LT**/artikeltext1**GT**";      

        // Add the Quantity tags and value.
        $xml .= "**LT**bestellmenge**GT**" . ( empty( $anzahl ) ? '' : $anzahl ) . "**LT**/bestellmenge**GT**";

        // Add the ItemCost tags and value.
        $xml .= "**LT**basispreis**GT**" . ( empty( $kosten ) ? '' : $kosten ) . "**LT**/basispreis**GT**";

        // Add the closing item tag.
        $xml .= "**LT**/position**GT**";
    }

    return $xml;

}

Und ersetzt innerhalb der ersten Schleife die Zeile der Positionen

//Schleife 1
<bestellung>
<kundendaten />
<vorname />
<nachname />
<bestellpositionen>
//Schleife 2
<position>
[positionen({Order Line ID},{Produkt ID},{SKU},{Produkt Name},{Anzahl},{Artikel Kosten})]
</position>
//Ende Schleife 2
</bestellung>
//Ende Schleife 1

Zutaten

  • WordPress
  • Woocommerce
  • WPAllExport

Quelle

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Scroll to Top