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-Feld | WaWi-Feld |
---|---|
_sku | Artikelnummer |
stock_quantity | Lagerbestand |
regular_price | Preis netto oder brutto |
Bestellposten | Positionen |
Billing/Shipping | Kundenadresse |
Trigger: Automatisch synchron halten
Anlass | Aktion |
---|---|
neue CSV in Ordner | wp_cron + Verzeichnis prüfen |
Bestellung abgeschlossen | JSON exportieren |
Preisänderung in WaWi | REST-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.
No responses yet