Stuur WhatsApp-updates over bestellingen vanuit WooCommerce
Maak in WooCommerce een webhook voor bestelgebeurtenissen die naar een ontvanger wijst, zoals een n8n-workflow of een kleine PHP-route. De ontvanger controleert de handtekening van WooCommerce, checkt of de klant akkoord is gegaan met WhatsApp-berichten en verstuurt via de Cloud API een goedgekeurd template, met de ID van het telefoonnummer en het token van het verbonden nummer.
WooCommerce schakelt een webhook uit na meer dan vijf opeenvolgende mislukte leveringen.
Header met een base64-gecodeerde HMAC-SHA256 van de payload, gemaakt met de geheime sleutel van de webhook.
Buiten een servicevenster voor klanten kunnen alleen vooraf goedgekeurde templates worden verstuurd.
Hoe zorgt een WooCommerce-bestelling voor een WhatsApp-bericht?
Via een WooCommerce-webhook en een ontvanger. Ga in WooCommerce naar Instellingen, Geavanceerd, Webhooks en voeg een webhook toe met een bestelonderwerp, zoals bestelling aangemaakt of bestelling bijgewerkt, een bezorg-URL en een geheime sleutel. WooCommerce post de bestelling dan als JSON naar die URL zodra de gebeurtenis plaatsvindt.
De payload ligt vast, dus je kunt hem niet rechtstreeks op de Cloud API richten. Daartussen zit een ontvanger: een n8n Webhook-node, een route in de eigen PHP van de winkel of een andere kleine service. Die leest de bestelling, pakt het telefoonnummer van de klant en de gegevens die het bericht nodig heeft, en doet één HTTPS-verzoek naar het messages-endpoint van de Cloud API voor het verbonden nummer, met het toegangstoken van het nummer als bearer-token.
Het onderwerp order.updated is niet aan één status gekoppeld, dus de ontvanger moet het veld status van de bestelling lezen en één keer versturen per overgang waar je om geeft. WooCommerce levert standaard op de achtergrond via wp-cron, dus een bericht kan met een korte vertraging op de bestelling volgen.
Hoe weet de ontvanger dat het verzoek van de winkel komt?
Aan de handtekening van WooCommerce. Elke levering bevat een X-WC-Webhook-Signature-header: een base64-gecodeerde HMAC-SHA256 van de ruwe payload, berekend met de geheime sleutel die je bij de webhook hebt ingesteld. De ontvanger berekent dezelfde hash over de body die hij ontving, vergelijkt en weigert alles wat niet overeenkomt.
Dit is de eigen sleutel van de winkel, dus anders dan bij de handtekening van Meta op binnenkomende WhatsApp-berichten kun je hem wel valideren. Vergelijk in constante tijd en hash de ruwe body voordat een framework hem parset, want opnieuw gecodeerde JSON geeft een andere hash.
Antwoord snel met een 2xx. WooCommerce telt elk antwoord dat geen 2xx, 301 of 302 is als mislukt, en na meer dan vijf mislukkingen op rij schakelt het de webhook uit. Een ontvanger die offline is door een deploy, of traag omdat hij op Meta wacht voordat hij antwoordt, kan de berichten van de winkel uitzetten zonder dat iemand het merkt.
Wat kan de winkel versturen, en wanneer?
Een goedgekeurd template, telkens wanneer de winkel als eerste schrijft. Het servicevenster van 24 uur van Meta gaat alleen open als de klant het nummer een bericht stuurt. Een bestelbevestiging of verzendupdate is dus door het bedrijf geïnitieerd en vrije tekst wordt geweigerd. Maak voor elke update een utility-template, wacht op goedkeuring en verstuur het op naam en taal, met het bestelnummer en andere gegevens als parameters.
Meta eist ook opt-in: de klant heeft zijn nummer gegeven en ermee ingestemd om via WhatsApp van dit bedrijf te horen. Een selectievakje bij het afrekenen, opgeslagen bij de bestelling, is de eenvoudigste registratie, en de ontvanger moet dat controleren voordat hij verstuurt.
Zodra de klant antwoordt, is het gesprek gewoon Coexistence. Het antwoord verschijnt in de WhatsApp Business app op de telefoon van de winkel, het venster staat open voor vrije tekst en het team antwoordt vanuit de app zoals altijd.
Veelgemaakte fouten
- De Cloud API-aanroep doen voordat je WooCommerce antwoord geeft. Een trage of mislukte verzending telt mee voor de webhook, die na meer dan vijf mislukkingen wordt uitgeschakeld.
- Geparste JSON hashen in plaats van de ruwe body. De handtekening komt nooit overeen en elke echte levering wordt geweigerd.
- Versturen bij elke order.updated-levering. Het onderwerp is niet aan één status gekoppeld, dus zonder bij te houden welke overgang al is gemeld, krijgen klanten dubbele berichten.
Verbind het nummer van de winkel via easycoexistence.com en geef de ontvanger de ID van het telefoonnummer en het token uit het dashboard. Vanaf US$ 9 per nummer per maand, aflopend naar US$ 1 naarmate er nummers bijkomen, met de eerste 3 dagen gratis.
Veelgestelde vragen
Heb ik hiervoor een WordPress-plugin nodig?
Nee. De ingebouwde webhooks van WooCommerce en een ontvanger zijn genoeg, en de ontvanger kan een route in dezelfde PHP-applicatie zijn.
Wie betaalt voor de berichten over bestellingen?
Meta rekent berichten rechtstreeks af met het bedrijf, op diens eigen WhatsApp Business Account, en EasyCoexistence rekent er nooit een opslag op.
Kan het team de telefoon nog gebruiken?
Ja. Coexistence houdt de WhatsApp Business app op het nummer van de winkel werkend, en het template dat de winkel verstuurde staat in het gesprek.
Wat als een webhook is uitgeschakeld?
Los de ontvanger op en zet de status van de webhook in WooCommerce terug op actief. Bestellingen die zijn aangemaakt terwijl hij uit stond, hebben geen bericht veroorzaakt.
Lees verder
Klaar om te beginnen?
Stel WhatsApp Coexistence in enkele minuten in, niet maanden. De app blijft op je telefoon werken.
Start je gratis proefperiodeGeverifieerd op