Warum überhaupt synchronisieren?

Dein Lager weiß, was da ist.
Dein Shop weiß es oft nicht.

Du willst:

  • aktuelle Bestände im Shop
  • Preise nicht doppelt pflegen
  • neue Bestellungen automatisch in der WaWi

Geht. Mit Schnittstelle. Mit WordPress. Und mit PHP.

Datenquellen: Was Du brauchst

  • Zugriff auf die WaWi-Daten (z. B. per ODBC, REST oder Dateiimport)
  • ein Mapping zwischen Artikelnummern und WP-Produkten
  • ein Cronjob oder Trigger

Beispielsysteme: JTL, Sage 100, Büro+ oder ein selbstgebautes Access-System.
Am Ende brauchst Du strukturierte Daten. Woher ist fast egal.

Produktdaten importieren – per PHP

Beispiel: Du bekommst regelmäßig eine CSV mit Artikelnummer, Lagerbestand und Preis.

function ds_wawi_sync_laden($csv_path) {
    if (!file_exists($csv_path)) return;

    $handle = fopen($csv_path, 'r');
    if (!$handle) return;

    while (($row = fgetcsv($handle, 1000, ';')) !== false) {
        list($artikelnummer, $bestand, $preis) = $row;
        ds_wawi_sync_artikel(trim($artikelnummer), (int)$bestand, (float)$preis);
    }

    fclose($handle);
}

Produktdaten in WooCommerce aktualisieren

function ds_wawi_sync_artikel($artikelnummer, $bestand, $preis) {
    $args = [
        'post_type'  => 'product',
        'meta_query' => [
            [
                'key'   => '_sku',
                'value' => $artikelnummer
            ]
        ],
        'posts_per_page' => 1
    ];

    $produkte = get_posts($args);

    if (empty($produkte)) return;

    $product_id = $produkte[0]->ID;
    $product = wc_get_product($product_id);

    $product->set_stock_quantity($bestand);
    $product->set_price($preis);
    $product->set_regular_price($preis);

    $product->save();
}

Bestellungen an die WaWi übergeben

Neue WooCommerce-Bestellungen kannst Du per Hook abfangen.

add_action('woocommerce_thankyou', 'ds_bestellung_exportieren', 10, 1);

function ds_bestellung_exportieren($order_id) {
    $order = wc_get_order($order_id);
    $zeilen = [];

    foreach ($order->get_items() as $item) {
        $produkt = $item->get_product();
        $zeilen[] = [
            'artikelnummer' => $produkt->get_sku(),
            'menge'         => $item->get_quantity(),
            'einzelpreis'   => $produkt->get_price(),
        ];
    }

    // Export z. B. als JSON-Datei
    file_put_contents(WP_CONTENT_DIR . "/export/bestellung_{$order_id}.json", json_encode($zeilen));
}

Diese Datei kannst Du regelmäßig in Deine WaWi einlesen.
Oder gleich per REST oder ODBC weiterreichen.

Felder im Überblick

WP-FeldWaWi-Feld
_skuArtikelnummer
stock_quantityLagerbestand
regular_pricePreis netto oder brutto
BestellpostenPositionen
Billing/ShippingKundenadresse

Trigger: Automatisch synchron halten

AnlassAktion
neue CSV in Ordnerwp_cron + Verzeichnis prüfen
Bestellung abgeschlossenJSON exportieren
Preisänderung in WaWiREST-Call → WooCommerce

Du kannst das stündlich laufen lassen.
Oder bei Bedarf.

Mein Fazit

WaWi und WordPress verstehen sich – wenn Du sie richtig verkabelst.
Keine Doppeleingaben. Keine abweichenden Preise. Kein „Ups, war doch ausverkauft“.

Wenn Du’s sauber aufziehst, ist das wartungsarm und stabil.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

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