Cosmetic Wholesale Sync ist unser offizielles WooCommerce-Plugin. Es importiert den Katalog, hält Bestand und Preis aktuell, sendet bezahlte Bestellungen an uns und schreibt Sendungsnummern zurück. Es ist kostenlos.
Voraussetzungen: WordPress 6.0+, WooCommerce 7.0+, PHP 7.4+.
1. Installation
Installieren Sie es entweder aus dem Plugin-Verzeichnis von WordPress.org (suchen Sie nach Cosmetic Wholesale Sync) oder laden Sie die ZIP-Datei unter Plugins → Add New → Upload hoch.

Aktivieren Sie zuerst WooCommerce — ohne WooCommerce tut das Plugin nichts.
2. Konfiguration
Öffnen Sie WooCommerce → Cosmetic Wholesale und tragen Sie ein:
| Einstellung | Wert |
|---|---|
| Catalog feed URL | Von Ihrer Kontoseite. Fügen Sie sie ohne das Token in der URL ein. |
| Token | Ihr Konto-Token, von derselben Seite. |
| Margin % | Ihr Verkaufsaufschlag, in Prozent. |
| Margin fixed | Ein fester Betrag, der zusätzlich aufgeschlagen wird, in Euro. |

Der Verkaufspreis berechnet sich wie folgt:
regular_price = round(cost × (1 + margin% / 100) + fixed, 2)
0 und 0 verkaufen zu unserem B2B-Einkaufspreis. Wenn Sie vom alten 360-Plugin migrieren, übernehmen Sie dieselben beiden Werte, damit Ihre Preise nicht springen.
Speichern Sie die Einstellungen.
3. Erster Import
Führen Sie First import aus. Dabei werden die noch nicht vorhandenen Produkte angelegt, wobei die EAN als SKU dient.

- Lassen Sie den Browser-Tab während des Durchlaufs geöffnet, oder starten Sie ihn über die Kommandozeile:
wp cw-sync import - Bei Pause oder Unterbrechung: Continue (oder
wp cw-sync importohne--fresh). Start over baut die Warteschlange aus dem Feed neu auf. - Beim ersten Import werden keine Bilder heruntergeladen (Katalog zu groß). Haken Sie „Also run images after first import finishes“ an oder nutzen Sie später Images /
wp cw-sync images. Nur Produkte ohne Beitragsbild erhalten die Feed-image_url. - Produkte ohne Einkaufspreis oder ohne Titel werden übersprungen und separat gezählt.
- Ein vollständiger Katalog mit ~68.000 Produkten braucht beim ersten Lauf oft mehrere Stunden. Spätere stündliche Updates sind deutlich schneller.
4. Bilder
Sobald der Katalog steht (oder über das Kontrollkästchen oben), starten Sie Images. Der Job schreibt Feed-image_url auf Produkte ohne Beitragsbild. Es werden keine SKUs angelegt.

Nutzen Sie die Schaltfläche auf dem Einstellungsbildschirm oder wp cw-sync images. Unterbrochene Läufe können wie beim ersten Import vom gespeicherten Offset aus Continue.
5. Stündliche Synchronisierung
Lassen Sie hourly sync aktiviert. Der stündliche Job aktualisiert Bestand und Preis für bereits vorhandene SKUs. Er legt niemals Produkte an und löscht Ihren Katalog nicht, wenn die Feed-Anfrage fehlschlägt.

Bevor Sie sich darauf verlassen, nutzen Sie Dry run, bis Sie updated > 0 sehen, und prüfen Sie stichprobenartig zehn EANs gegen Ihre bisherige Quelle.
Wenn Sie vom alten 360-Plugin wechseln: Betreiben Sie nicht beide für dieselben SKUs. Bringen Sie einen Dry Run auf grün, schalten Sie dann den 360-Cron ab. Falls etwas nicht stimmt, steht der alte Feed weiterhin als Rückfalloption bereit.
6. Bestellungen
Sobald eine WooCommerce-Bestellung den Status processing erreicht (der Kunde hat bezahlt), stellt das Plugin einen POST an Cosmetic Wholesale in die Warteschlange. Das geschieht im Hintergrund, nicht während des Checkouts.

Was Sie senden: die Lieferadresse sowie EAN und Menge jeder Position. Sonst nichts.
Wenn Ihr Wallet leer ist, wird die Bestellung von uns angenommen und zurückgehalten. Die WooCommerce-Bestellung bleibt auf processing, und das Plugin versucht es nach Ihrer Aufladung etwa alle zehn Minuten erneut. Die Bestellung des Kunden wird niemals storniert.
Sendungsnummern werden in die WooCommerce-Bestellung zurückgeschrieben, sobald das Paket versendet wurde, und Sie können die Bestellung anschließend abschließen.
Fehlerbehebung
Bezahlte Bestellungen kommen nie an. Der Bestellversand und die Wallet-Wiederholung laufen beide über WP-Cron. Wenn DISABLE_WP_CRON gesetzt ist und kein System-Cron wp-cron.php aufruft, bleiben Bestellungen unbemerkt in der Warteschlange liegen. Prüfen Sie Last order retry cron (UTC) im Einstellungsbildschirm — ist der Wert veraltet, liegt darin Ihr Problem.
Die Preise sehen nach dem Import falsch aus. Prüfen Sie Margin % und Margin fixed. Die Formel bezieht sich auf unseren Einkaufspreis, nicht auf Ihren bisherigen Verkaufspreis.
Einige Produkte wurden übersprungen. Die Zähler unterscheiden zwischen "kein Preis" und "kein Titel". Beides bedeutet, dass die Feed-Zeile für diese EAN unvollständig war; in der Regel handelt es sich um Artikel, die für Ihr Konto nicht verfügbar sind.
Muss ich irgendwo OMS- oder Lager-Passwörter hinterlegen? Nein. Das Plugin kommuniziert ausschließlich mit Cosmetic Wholesale.
Deinstallation
Das Entfernen des Plugins löscht Ihre importierten Produkte nicht. Ihr Katalog bleibt unverändert bestehen.