Anleitung · ShopSync für WooCommerce
ShopSync mit WooCommerce einrichten
Diese Anleitung zeigt, was Sie in WordPress und WooCommerce vorbereiten, wie Sie Ihren Shop mit ShopSync verbinden und wie Sie das Plugin „ShopSync Bestand“ installieren. Ich richte ShopSync mit jedem Händler persönlich ein – Sie gehen diese Schritte also nicht allein durch.
- Voraussetzungen prüfen (siehe unten).
- Sie bekommen von mir einen Zugang zu ShopSync und stimmen den Bedingungen zu.
- Sie verbinden WooCommerce über die Freigabe in Ihrem Shop.
- Sie installieren das Plugin „ShopSync Bestand“ (empfohlen).
- Sie verbinden Etsy mit Ihrer Freigabe.
- ShopSync läuft ein bis zwei Wochen im Nur-Lesen-Modus und zeigt nur, was es tun würde.
- Passt alles, schalte ich den Abgleich ein. Dafür verbinden Sie WooCommerce einmal neu mit der Berechtigung „Lesen/Schreiben“.
Voraussetzungen
- WordPress ab Version 6.4 und WooCommerce ab Version 8.0. Geprüft mit WordPress 6.4 und 7.1 sowie WooCommerce 8.0 und 11.2, auf Servern mit Apache (z. B. ALL-INKL) und mit nginx und PHP-FPM.
- Ihr Shop ist über HTTPS erreichbar. Über HTTP verbindet ShopSync nicht.
- Die REST-API von WordPress ist erreichbar (
https://ihr-shop.de/wp-json/). Das ist sie mit den üblichen Permalinks (Einstellungen → Permalinks, z. B. „Beitragsname“); mit „Einfach“ fehlt sie bei manchen Servern. - Jeder Artikel, den ShopSync abgleichen soll, hat eine Artikelnummer (SKU) – dieselbe wie auf Etsy – und bei ihm ist „Lagerbestand verwalten“ eingeschaltet (beim Produkt oder bei der Variante). Artikel ohne Bestandsführung zeigt ShopSync als Hinweis und fasst sie nicht an.
Was ShopSync in Ihrem Shop liest und ändert
- Liest: Produkte und Varianten mit Artikelnummer, Status und Bestand; Bestellungen nur mit Nummer, Zeit, Status, Beträgen, Steuer, Versand, Erstattungen und den Positionen (Artikelnummer, Titel, Menge). Adressen, E-Mail-Adressen, Telefonnummern, Kundennummern, Zahlungsdaten und Notizen fordert ShopSync nicht an.
- Ändert: nur den Lagerbestand – wenn ein Artikel auf Etsy verkauft wurde (abziehen) und wenn Sie in ShopSync nachfüllen. Die Etsy-Mengen richten sich nach dem Bestand in WooCommerce. Produkte, Preise, Bestellungen und Kunden ändert ShopSync nicht.
- Legt an: drei Webhooks, damit Verkäufe und Bestandsänderungen gleich bei ShopSync ankommen (siehe unten).
- Als Verkauf zählen Bestellungen mit dem Status „In Bearbeitung“, „In Wartestellung“, „Abgeschlossen“ sowie erstattete Bestellungen; „Storniert“ gilt als storniert. „Zahlung ausstehend“, „Fehlgeschlagen“ und Entwürfe zählen nicht.
WooCommerce verbinden
Es gibt zwei Wege. Beide legen in WooCommerce einen REST-Schlüssel an, der an einen WordPress-Nutzer gebunden ist. ShopSync speichert ihn verschlüsselt und zeigt ihn nie wieder an.
Über die Freigabe (empfohlen)
- In ShopSync unter Konto → WooCommerce die Adresse Ihres Shops eintragen und „Mit WooCommerce verbinden“ wählen (nur als Inhaber).
- Ihr Shop öffnet sich: in WordPress anmelden – mit einem Nutzer, der Produkte bearbeiten darf (Administrator oder Shop-Manager) – und zustimmen.
- WooCommerce legt den Schlüssel an, schickt ihn direkt an ShopSync und führt Sie zurück zu ShopSync.
Im Nur-Lesen-Modus fragt die Freigabe nur die Berechtigung „Lesen“ an. Für den Abgleich braucht ShopSync später „Lesen/Schreiben“ – dann verbinden Sie im Konto einmal neu.
Mit einem Schlüssel von Hand
In WordPress unter WooCommerce → Einstellungen → Erweitert → REST-API → Schlüssel hinzufügen: Beschreibung „ShopSync“, Benutzer (Administrator oder Shop-Manager), Berechtigung Lesen/Schreiben (für den Nur-Lesen-Modus genügt „Lesen“). WooCommerce zeigt Consumer Key (ck_…) und Consumer Secret (cs_…) nur dieses eine Mal: beide in ShopSync unter Konto → WooCommerce → Schlüssel von Hand eintragen einfügen.
Das Plugin „ShopSync Bestand“
WooCommerce kann den Lagerbestand über seine Schnittstelle nur auf einen Wert setzen. Ohne Plugin liest ShopSync darum unmittelbar vor jedem Abzug den Bestand noch einmal und setzt dann „gelesener Bestand minus verkaufte Menge“. Mit dem kleinen Plugin „ShopSync Bestand“ ändert ShopSync den Bestand stattdessen um eine Menge: WooCommerce rechnet selbst, in einem Schritt, und jeder Abzug wirkt genau einmal – auch wenn ShopSync ihn nach einem Verbindungsabbruch wiederholt.
Lizenz: GPLv2 oder später · Prüfsumme (SHA-256): bf4f3e265a2d675d927e93fa14711e2c5688ed739eb55a5210c5fe234e9a6e34
Installieren
- In WordPress unter Plugins → Installieren → Plugin hochladen die heruntergeladene Zip-Datei wählen (nicht entpacken).
- Jetzt installieren, dann Aktivieren. Einstellungen gibt es keine.
- ShopSync erkennt das Plugin von selbst, spätestens nach einer halben Stunde.
Was es tut – und was nicht
- Es stellt zwei Adressen in der REST-API von WordPress bereit (
/wp-json/shopsync-bestand/v1/…): eine nennt die Version, die andere ändert den Bestand eines Produkts um eine Menge. Beide nur mit einem gültigen REST-Schlüssel Ihres Shops, ändern nur mit Schreibrecht und nur über HTTPS. - Es merkt sich jede Änderung 30 Tage in einer eigenen Tabelle, damit derselbe Abzug nie zweimal wirkt.
- Es baut keine Verbindung nach außen auf, speichert keine Kundendaten, zeigt keine Hinweise im WordPress-Backend und ändert keine Produkte, Preise oder Bestellungen.
- Entfernen: deaktivieren und löschen. Beim Löschen entfernt es seine Tabelle und seine Einstellung; der Lagerbestand bleibt, wie er ist. ShopSync arbeitet danach wieder ohne Plugin.
Ohne Plugin bleibt ein kurzes Zeitfenster: Verkauft Ihr Shop einen Artikel genau zwischen dem letzten Lesen und dem Schreiben, wird dieser Verkauf überschrieben – der Bestand stünde dann um diese Menge zu hoch. Mit dem Plugin gibt es dieses Fenster nicht. Wenn Sie bewusst ohne Plugin arbeiten möchten, sagen Sie es mir.
Varianten mit gemeinsamem Bestand
Ein variables Produkt kann den Bestand für alle Varianten gemeinsam führen („Lagerbestand verwalten“ beim Produkt, nicht bei der Variante). Dann teilen sich die Varianten eine Menge: ShopSync überträgt sie auf jede zugehörige Etsy-Variante und zieht Etsy-Verkäufe aller Varianten vom gemeinsamen Bestand ab. Soll jede Variante eine eigene Menge haben, schalten Sie „Lagerbestand verwalten“ bei der Variante ein. Jede Variante, die abgeglichen werden soll, braucht ihre eigene Artikelnummer – ohne eigene SKU meldet WooCommerce die des Produkts, und ShopSync behandelt das wie eine doppelte SKU.
Webhooks
ShopSync legt drei Webhooks an: „Produkt aktualisiert“ (Bestandsänderungen), „Bestellung erstellt“ und „Bestellung aktualisiert“ (Verkäufe, Status, Erstattungen). Sie stehen in WordPress unter WooCommerce → Einstellungen → Erweitert → Webhooks („ShopSync product.updated“ usw.) und sollten dort nicht gelöscht oder geändert werden. Schaltet WooCommerce einen Webhook nach mehreren gescheiterten Zustellungen ab, bemerkt ShopSync das und fragt Bestellungen bis zur Wiedereinrichtung jede Minute ab. Andere Webhooks in Ihrem Shop bleiben unberührt.
Verbindung trennen
In ShopSync unter Konto → WooCommerce → Verbindung trennen (nur als Inhaber, mit Bestätigung). ShopSync löscht dann den Schlüssel und das Webhook-Geheimnis und entfernt auf Wunsch seine eigenen Webhooks in Ihrem Shop. Zusätzlich können Sie den Schlüssel in WooCommerce unter Einstellungen → Erweitert → REST-API widerrufen – danach kann ShopSync in Ihrem Shop weder lesen noch schreiben.
Wenn die Verbindung nicht klappt
- „Consumer Key oder Secret stimmen nicht“: Der Schlüssel wurde falsch übernommen oder widerrufen – neu verbinden.
- „WooCommerce lehnt das Schreiben ab“: Der Schlüssel hat nur „Lesen“, oder der Nutzer darf keine Produkte bearbeiten – mit „Lesen/Schreiben“ neu verbinden.
- „Adresse nicht gefunden (404)“: Die REST-API ist unter
/wp-json/nicht erreichbar – Shop-Adresse prüfen und unter Einstellungen → Permalinks eine andere Einstellung als „Einfach“ wählen. - „Der Schlüssel kam offenbar nicht an“: Manche Server (PHP über CGI oder FastCGI) reichen die Kopfzeile
Authorizationnicht an WordPress weiter. Üblich ist dann eine dieser Zeilen in der.htaccessim WordPress-Ordner:
CGIPassAuth On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Die zweite Zeile steht in der .htaccess, die WordPress selbst schreibt, meist schon im Block „BEGIN WordPress“. Bei nginx mit PHP-FPM kommt die Kopfzeile in der üblichen Einrichtung an; fehlt sie trotzdem, gehört fastcgi_param HTTP_AUTHORIZATION $http_authorization; in die Konfiguration. Im Zweifel fragen Sie Ihren Hoster – oder mich.
Kontakt
Fragen zur Einrichtung beantworte ich gern. Noch nicht angemeldet? Hier unverbindlich für den Testbetrieb anmelden.
Maximilian Grätz · Quellcode & SöhneBarbarastraße 52, 58638 Iserlohn
kontakt@quellcode-und-soehne.de