E-Commerce (WooCommerce und Magento)
Synchronisieren Sie Kunden und Bestellungen aus Ihren WooCommerce- oder Magento-Shops mit dem CRM über Ihren eigenen Shop (BYO-Modell).
Neben Shopify synchronisiert das CRM auch WooCommerce- und Magento-Shops (BYO-Modell: Sie bringen Ihren eigenen Shop mit). Jeder Kunde wird zu einem Kontakt und jede Bestellung zu einem Verkaufsauftrag. Es entstehen keine Kosten, keine Marge und keine Vermittlung auf unserer Seite: Die Daten kommen direkt aus Ihrem Shop. Die Integration startet inaktiv: Es passiert nichts, bis Sie die Felder ausfüllen und aktivieren. Die Geheimnisse werden verschlüsselt im CRM gespeichert und nie wieder angezeigt.
Voraussetzungen
- WooCommerce: ein WordPress-/WooCommerce-Shop mit Administratorzugriff (um Webhooks unter WooCommerce → Settings → Advanced → Webhooks zu erstellen).
- Magento (Adobe Commerce): Zugriff, um ein Modul, eine Integration oder einen Observer zu installieren/konfigurieren, das/der für jeden Kunden/jede Bestellung JSON per POST sendet (Magento verfügt nicht über standardisierte native Webhooks).
- In Sellio: Administratorzugriff, um die Zugangsdaten zu speichern und die Integration unter Einstellungen → Integrationen zu aktivieren.
WooCommerce
WooCommerce sendet native Webhooks. Sie erstellen die Webhooks in Ihrem Shop mit Verweis auf die CRM-URL und definieren ein "Secret"; WooCommerce signiert jeden Aufruf mit diesem Secret (HMAC-SHA256, Header X-WC-Webhook-Signature), und das CRM prüft die Signatur, bevor synchronisiert wird.
- Öffnen Sie im CRM Einstellungen → Integrationen und suchen Sie die Karte "E-Commerce (WooCommerce)".
- Füllen Sie die Shop-URL (optional, nur zur Referenz) und ein Webhook-Secret (eine von Ihnen gewählte Zeichenfolge) aus und klicken Sie auf "Zugangsdaten speichern".
- Kopieren Sie die angezeigte "Webhook-URL (WooCommerce)".
- Gehen Sie in Ihrem Shop zu WooCommerce → Settings → Advanced → Webhooks und erstellen Sie einen Webhook für JEDES Thema: Customer created, Customer updated, Order created, Order updated. Fügen Sie bei jedem die CRM-URL als Delivery URL ein und verwenden Sie dasselbe Secret, das Sie im CRM gespeichert haben.
- Kehren Sie zum CRM zurück und klicken Sie auf "Aktivieren".
Magento (Adobe Commerce)
Magento verfügt nicht über standardisierte native Webhooks. Sie konfigurieren ein Modul/eine Integration (oder einen Observer), das/der für jeden Kunden oder jede Bestellung einen JSON-POST an die CRM-URL sendet. Der POST wird über ein Secret authentifiziert, auf zwei mögliche Arten (verwenden Sie die, die Ihr Modul unterstützt): eine HMAC-SHA256-Signatur des Bodys in Base64 im Header X-Magento-Signature, oder das Secret selbst im Klartext im Header X-Magento-Secret.
- Öffnen Sie im CRM Einstellungen → Integrationen und suchen Sie die Karte "E-Commerce (Magento)".
- Füllen Sie die Shop-URL (optional) und ein Authentifizierungs-Secret (eine von Ihnen gewählte Zeichenfolge) aus und klicken Sie auf "Zugangsdaten speichern".
- Kopieren Sie die angezeigte "Webhook-URL (Magento)".
- Konfigurieren Sie Ihr Magento-Modul/Ihre Magento-Integration so, dass es für jeden Kunden und jede Bestellung einen POST (JSON) an diese URL sendet und dabei das Secret im Header X-Magento-Signature (HMAC-Signatur) oder X-Magento-Secret (Klartextwert) mitsendet.
- Kehren Sie zum CRM zurück und klicken Sie auf "Aktivieren".
Von Magento erwartetes JSON-Format. Für Kunden: { "type": "customer", "id", "email", "firstname", "lastname", "telephone", "street", "city", "region", "country_id" }. Für Bestellungen: { "type": "order", "increment_id" (oder "entity_id"), "grand_total", "order_currency_code", "status", "customer_email", "customer_id", "customer_firstname", "customer_lastname" }. Das Feld "type" (customer oder order) bestimmt das Mapping; fehlende Felder werden leer.
Was bei jedem Ereignis passiert
- Kunde (customer.created/updated in Woo; type "customer" in Magento): Der Kunde wird als Kontakt erstellt oder aktualisiert, abgeglichen per E-Mail. Das CRM speichert die Shop-Kunden-ID (woo_customer_id / magento_customer_id), um Duplikate bei erneuter Zustellung zu vermeiden.
- Bestellung (order.created/updated in Woo; type "order" in Magento): Die Bestellung wird als Verkaufsauftrag erstellt oder aktualisiert (Nummer, Betrag, Währung und Status), verknüpft mit dem entsprechenden Kontakt, sofern dieser existiert. In Woo wird "completed" zu "fakturiert" und "cancelled/refunded/failed" zu "storniert"; in Magento wird "complete/closed/invoiced" zu "fakturiert" und "canceled/holded" zu "storniert"; der Rest wird "bestätigt".
Behandeln Sie die Webhook-URLs und die Secrets als geheim. Aufrufe mit ungültiger Signatur/ungültigem Secret werden abgelehnt. Wenn Sie versuchen zu aktivieren, ohne das Secret auszufüllen, bleibt die Integration inaktiv, und es wird nichts synchronisiert, bis alles vorhanden ist.
So testen Sie
- WooCommerce: Bearbeiten Sie unter WooCommerce → Settings → Advanced → Webhooks einen Webhook und prüfen Sie die "Webhook logs", nachdem Sie einen Testkunden/eine Testbestellung erstellt haben; prüfen Sie im CRM Kontakte/Verkaufsaufträge.
- Magento: Lösen Sie Ihren Observer/Ihre Integration für einen Testkunden und eine Testbestellung aus (JSON-POST mit dem Feld "type") und prüfen Sie die Datensätze im CRM.
- Senden Sie dasselbe Ereignis erneut und bestätigen Sie, dass das CRM aktualisiert (nicht dupliziert), da der Schlüssel die externe ID ist.
Fehlerbehebung
- WooCommerce: ungültige Signatur: Das "Secret" des Webhooks im Shop muss GLEICH dem im CRM gespeicherten Webhook-Secret sein (HMAC-SHA256, Header X-WC-Webhook-Signature). Geben Sie auf beiden Seiten denselben Wert erneut ein.
- Magento: Aufruf abgelehnt: Senden Sie das Secret korrekt, entweder den HMAC-SHA256 des Bodys in Base64 im Header X-Magento-Signature ODER das Klartext-Secret im Header X-Magento-Secret (verwenden Sie, was Ihr Modul unterstützt).
- Es wird nicht synchronisiert: Prüfen Sie, ob die Webhooks/POSTs Kunde UND Bestellung (erstellt/aktualisiert) abdecken und auf die richtige "Webhook-URL" verweisen; prüfen Sie, ob die Integration aktiviert ist.
- Magento: leere Felder im CRM: Prüfen Sie das erwartete JSON (Kunde: id/email/firstname/lastname...; Bestellung: increment_id/grand_total/order_currency_code/status/customer_email...). Das Feld "type" (customer/order) bestimmt das Mapping.
- 404 bei der URL: Integration deaktiviert oder Token geändert. Reaktivieren Sie sie und kopieren Sie die URL erneut.