Cosmetic Wholesale Sync is onze officiële WooCommerce-plugin. De plugin importeert de catalogus, houdt voorraad en prijs actueel, stuurt betaalde bestellingen naar ons en schrijft track & trace-nummers terug. De plugin is gratis.
Vereisten: WordPress 6.0+, WooCommerce 7.0+, PHP 7.4+.
1. Installeren
Installeer de plugin via de WordPress.org plugin-directory (zoek op Cosmetic Wholesale Sync), of upload het zip-bestand via Plugins → Add New → Upload.

Activeer eerst WooCommerce — zonder WooCommerce doet de plugin niets.
2. Configureren
Open WooCommerce → Cosmetic Wholesale en vul in:
| Instelling | Waarde |
|---|---|
| Catalogus-feed-URL | Van uw accountpagina. Plak deze zonder het token in de URL. |
| Token | Uw accounttoken, van dezelfde pagina. |
| Margin % | Uw verkoopmarge, in procenten. |
| Margin fixed | Een vast bedrag dat er bovenop komt, in euro. |

De verkoopprijs wordt als volgt berekend:
regular_price = round(cost × (1 + margin% / 100) + fixed, 2)
0 en 0 betekent verkopen tegen onze B2B-inkoopprijs. Migreert u vanaf de oude 360-plugin, neem dan dezelfde twee getallen over zodat uw prijzen niet verspringen.
Sla de instellingen op.
3. Eerste import
Voer First import uit. Daarmee worden de producten aangemaakt die nog niet bestaan, met de EAN als SKU.

- Houd het browsertabblad open terwijl de import loopt, of start hem vanaf de commandoregel:
wp cw-sync import - Bij pauze of onderbreking: Continue (of
wp cw-sync importzonder--fresh). Start over bouwt de wachtrij opnieuw vanuit de feed. - Tijdens de eerste import worden geen afbeeldingen gedownload (catalogus te groot). Vink “Also run images after first import finishes” aan, of gebruik later Images /
wp cw-sync images. Alleen producten zonder uitgelichte afbeelding krijgen de feedimage_url. - Producten zonder inkoopprijs of zonder titel worden overgeslagen en apart geteld.
- Een volledige catalogus van ~68.000 producten duurt bij de eerste run vaak enkele uren. Latere uurlijkse updates zijn veel sneller.
4. Afbeeldingen
Zodra de catalogus staat (of via het selectievakje hierboven), start Images. Het schrijft feed image_url op producten zonder uitgelichte afbeelding. Er worden geen SKU's aangemaakt.

Gebruik de knop op het instellingenscherm, of wp cw-sync images. Onderbroken runs kunnen vanaf de opgeslagen offset Continue, net als de eerste import.
5. Synchronisatie per uur
Laat de synchronisatie per uur ingeschakeld staan. De uurtaak werkt voorraad en prijs bij van SKU's die al bestaan. De taak maakt nooit producten aan en verwijdert nooit uw catalogus als de feed-aanvraag mislukt.

Gebruik Dry run tot u updated > 0 ziet voordat u erop vertrouwt, en controleer steekproefsgewijs tien EAN's tegen uw vorige bron.
Stapt u over van de oude 360-plugin: draai ze niet allebei op dezelfde SKU's. Zorg eerst dat één dry run groen is en zet daarna de 360-cron uit. Klopt er iets niet, dan kunt u nog altijd terugvallen op de oude feed.
6. Bestellingen
Zodra een WooCommerce-bestelling de status processing bereikt (de klant heeft betaald), zet de plugin een POST naar Cosmetic Wholesale in de wachtrij. Dit gebeurt op de achtergrond, niet tijdens het afrekenen.

Wat u verstuurt: het verzendadres, en de EAN plus het aantal van elke regel. Verder niets.
Als uw wallet leeg is, wordt de bestelling door ons geaccepteerd en vastgehouden. De WooCommerce-bestelling blijft op processing staan en de plugin probeert het na het opwaarderen ongeveer elke tien minuten opnieuw. De bestelling van de klant wordt nooit geannuleerd.
Track & trace-nummers worden naar de WooCommerce-bestelling teruggeschreven zodra het pakket is verzonden; daarna kunt u de bestelling afronden.
Problemen oplossen
Betaalde bestellingen komen nooit aan. Zowel het versturen van bestellingen als de wallet-herhaalpoging draait op WP-Cron. Als DISABLE_WP_CRON is ingesteld en geen enkele systeemcron wp-cron.php aanroept, blijven bestellingen ongemerkt in de wachtrij staan. Controleer Last order retry cron (UTC) op het instellingenscherm — is die verouderd, dan is dat uw probleem.
De prijzen kloppen niet na de import. Controleer Margin % en Margin fixed. De formule wordt toegepast op onze inkoopprijs, niet op uw vorige verkoopprijs.
Sommige producten zijn overgeslagen. De tellers maken onderscheid tussen "geen inkoopprijs" en "geen titel". Beide betekenen dat de feedregel voor die EAN onvolledig was; meestal gaat het om artikelen die niet beschikbaar zijn voor uw account.
Moet ik ergens OMS- of magazijnwachtwoorden invullen? Nee. De plugin communiceert uitsluitend met Cosmetic Wholesale.
Verwijderen
Het verwijderen van de plugin verwijdert niet uw geïmporteerde producten. Uw catalogus blijft zoals hij is.