Si vendes en múltiples canales o conectas tu tienda con ERP o almacenes externos, necesitas mantener sincronizado el stock. En este artículo aprenderás a crear un webhook personalizado en WooCommerce para enviar cambios de inventario en tiempo real.
Índice
- ¿Qué es un webhook y por qué usarlo?
- Crear un webhook en WooCommerce (interfaz)
- Webhook personalizado desde funciones.php
- Formato de datos enviado
- Seguridad y validación del webhook
¿Qué es un webhook?
Es una llamada automática a una URL externa que se dispara al producirse un evento. En WooCommerce, puedes usarlo para notificar a otro sistema cuando cambia el stock de un producto.
Crear un webhook desde el admin
- Ir a WooCommerce → Ajustes → Avanzado → Webhooks
- Crear webhook nuevo
- Evento:
product.updated
- URL:
https://mi-servidor.com/api/stock-receiver
Webhook desde código personalizado
Si quieres controlar exactamente qué datos se envían y cuándo:
add_action('woocommerce_update_product', 'notificar_stock_personalizado', 10, 1); function notificar_stock_personalizado($product_id) { $product = wc_get_product($product_id); $data = [ 'sku' => $product->get_sku(), 'stock' => $product->get_stock_quantity(), 'id' => $product_id ]; wp_remote_post('https://midominio.com/api/stock', [ 'method' => 'POST', 'body' => json_encode($data), 'headers' => ['Content-Type' => 'application/json'] ]); }
Ventajas del webhook personalizado:
- Envías solo los datos necesarios
- Mayor control y trazabilidad
- Puedes usar condiciones (sólo si cambia stock)
Ejemplo de datos enviados
{ "sku": "ABC123", "stock": 12, "id": 305 }
Tu receptor (ERP, API externa, etc.) puede usar este JSON para actualizar su inventario.
Consejos de seguridad
- Validar origen por IP o token
- Guardar logs de envíos y errores
- Usar HTTPS siempre
- Reintentar si hay fallo de conexión
Conclusión
Un webhook bien configurado te permite mantener el inventario sincronizado en tiempo real con tu logística, almacén o software externo. Es rápido, flexible y 100% automatizable.
¿Quieres que implementemos este sistema en tu WooCommerce? Contáctanos.