WooCommerce Bestellungen als XRechnung
Automatisch konforme XRechnung E-Rechnungen für abgeschlossene WooCommerce-Bestellungen generieren und per Email an Kunden senden.
So funktioniert der Workflow

- 1
Triggert bei jeder abgeschlossenen WooCommerce-Bestellung
- 2
Mappt Bestelldaten (Artikel, Rechnungsadresse, Summen) auf das E-Rechnungs-Format
- 3
Generiert eine konforme XRechnung (EN 16931) über die API
- 4
Versendet die XRechnung als XML-Anhang per Email an den Kunden
- 5
Aktualisiert die WooCommerce-Bestellung mit einer Bestätigungsnotiz
Warum das wichtig ist
Ab 2025 müssen deutsche Unternehmen E-Rechnungen empfangen und verarbeiten können. B2B-Kunden erwarten zunehmend XRechnung oder ZUGFeRD. Manuelle Rechnungserstellung skaliert nicht mit dem Bestellvolumen.
Google Sheets Struktur
| WooCommerce | Invoice |
|---|---|
order.id | Rechnungsnummer (WOO-{id}) |
billing.first_name + last_name | Käufername |
billing.company | Käufername (Fallback) |
billing.address_1 + city + postcode | Käuferadresse |
line_items[].name + quantity + price | Rechnungspositionen |
total + total_tax | Rechnungsbetrag + USt |
meta_data[vat_id] | USt-ID Käufer (optional) |
Setup-Schritte
- 1
Community Node n8n-nodes-invoice-api-xhub installieren
- 2
API Key auf invoice-api.xhub.io erstellen
- 3
WooCommerce API-Schlüssel erstellen: WooCommerce > Einstellungen > Erweitert > REST API > Schlüssel hinzufügen (Read/Write)
- 4
Gmail OAuth2 Credential in n8n einrichten
- 5
invoice-api.xhub Credential mit API Key konfigurieren
- 6
Verkäufer-Daten im 'Map Order to Invoice' Code Node aktualisieren
- 7
Workflow aktivieren
Vorschau (gekürzt)
1{2 "name": "WooCommerce Order to XRechnung Email",3 "nodes": [4 {5 "id": "woo-trigger",6 "name": "WooCommerce Trigger",7 "type": "n8n-nodes-base.wooCommerceTrigger",8 "typeVersion": 1,9 "position": [400, 600],10 "parameters": {11 "event": "order.created"12 },13 "credentials": {14 "wooCommerceApi": {15 "id": "",16 "name": "WooCommerce account"17 }18 }19 },20 {21 "id": "map-order-to-invoice",22 "name": "Map Order to Invoice",23 "type": "n8n-nodes-base.code",24 "typeVersion": 2,25 "position": [640, 600],26 "parameters": {27 "mode": "runOnceForEachItem",28 "jsCode": "const order = $json;\n\n// Map WooCommerce line items\nconst lineItems = (order.line_items || []).map(item => ({\n description: item.name || '',\n quantity: item.quantity || 1,\n unitPrice: parseFloat(item.price || 0),\n vatRate: 19, // Adjust based on your tax setup\n unit: 'EA'\n}));\n\nconst subtotal = parseFloat(order.total || 0) - parseFloat(order.total_tax || 0);\nconst totalVat = parseFloat(order.total_tax || 0);\nconst total = parseFloat(order.total || 0);\n\nconst invoice = {\n invoiceNumber: `WOO-${order.id || order.number || Date.now()}`,\n invoiceDate: new Date().toISOString().split('T')[0],\n dueDate: '',\n currency: order.currency || 'EUR',\n seller: {\n name: 'Your Company Name',\n vatId: 'DE000000000',\n email: 'invoices@yourcompany.de',\n address: {\n street: 'Your Street 1',\n city: 'Your City',\n postalCode: '10115',\n country: 'DE'\n }\n },\n buyer: {\n name: `${order.billing?.first_name || ''} ${order.billing?.last_name || ''}`.trim() || order.billing?.company || '',\n vatId: order.meta_data?.find(m => m.key === 'vat_id')?.value || '',\n email: order.billing?.email || '',\n address: {\n street: `${order.billing?.address_1 || ''} ${order.billing?.address_2 || ''}`.trim(),\n city: order.billing?.city || '',\n postalCode: order.billing?.postcode || '',\n country: order.billing?.country || 'DE'\n }\n },\n lineItems,\n subtotal,\n totalVat,\n total\n};\n\nreturn {\n json: {\n orderId: order.id || order.number,\n buyerEmail: order.billing?.email || '',\n invoiceNumber: invoice.invoiceNumber,\n invoiceData: JSON.stringify(invoice)\n }\n};"29 }30 },31 // ... (truncated)Anwendungsfälle
Deutscher E-Commerce
E-Rechnungs-Pflicht 2025 einhalten
B2B-Shops
Automatisch XRechnung an Geschäftskunden liefern
Öffentliche Aufträge
B2G-konforme Rechnungen generieren
EU Cross-Border
Wechsel zu UBL oder Factur-X für andere EU-Länder