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