Send woocommerce order data to and external url of Drupal
Check WooCommerce Webhook Setup
Go to WooCommerce → Settings → Advanced → Webhooks.
Make sure:
Status = Active
Topic = e.g.,
Order created/Order updated/Order paid(whichever you want).Delivery URL =
https://examplewebsite/customurlSecret = You can leave blank unless you want HMAC verification.
You can test webhook delivery by creating a new order and checking WooCommerce → Status → Logs under Webhook delivery logs.
Check Your Drupal Endpoint
WooCommerce sends a POST request with JSON body.
You need to make sure Drupal is accepting POST JSON.
A minimal Drupal controller example:
namespace Drupal\mymodule\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
class WebhookController {
public function receive(Request $request) {
// Get raw body
$data = json_decode($request->getContent(), TRUE);
if (empty($data)) {
return new JsonResponse(['status' => 'error', 'message' => 'No data received'], 400);
}
// Log or process order data
\Drupal::logger('mymodule')->notice('@data', ['@data' => print_r($data, TRUE)]);
return new JsonResponse(['status' => 'success', 'message' => 'Data received']);
}
}