Cómo usar la REST API de WooCommerce: Guía completa
La REST API de WooCommerce es una de las herramientas más potentes para integrar tiendas externas, crear automatizaciones, sincronizar inventarios, generar pedidos desde otros sistemas y más. En esta guía aprenderás qué es, cómo activarla desde el panel de WordPress, cuáles son sus endpoints principales y cómo utilizarlos. Además verás dos ejemplos avanzados en PHP y podrás descargar una colección completa de Postman para probar la API rápidamente.
¿Qué es la REST API de WooCommerce?
La REST API permite interactuar con WooCommerce desde sistemas externos mediante solicitudes HTTP (GET, POST, PUT, DELETE).
Todos los endpoints se encuentran bajo: /wp-json/wc/v3/
Cómo activar la REST API en WooCommerce
Ir al panel: WooCommerce → Ajustes → Avanzado → REST API → Crear

Una vez creado, debes copiar la clave de cliente y la clave secreta del cliente.

Autenticación
Desde PHP se suele usar Basic Auth: Authorization: Basic base64_encode(ck:cs)
Endpoints principales del REST API de WooCommerce
1. Productos
GET /wp-json/wc/v3/products
GET /wp-json/wc/v3/products/{id}
POST /wp-json/wc/v3/products
2. Ordenes
GET /wp-json/wc/v3/orders
GET /wp-json/wc/v3/orders/{id}
POST /wp-json/wc/v3/orders
3. Clientes
GET /wp-json/wc/v3/customers
GET /wp-json/wc/v3/customers/{id}
GET /wp-json/wc/v3/customers?email=correo@mail.com
4. Variaciones
GET /wp-json/wc/v3/products/{id}/variations
5. Cupones
GET /wp-json/wc/v3/coupons POST /wp-json/wc/v3/coupons
6. Categorías
GET /wp-json/wc/v3/products/categories
Colección Postman completa
Puedes explorar y ejecutar todos los endpoints con esta colección ya lista:
Solo debes agregar tus claves en la sección de variables.
Ejemplos prácticos en PHP
A continuación verás dos integraciones avanzadas muy comunes.
Ejemplo 1
Replicar automáticamente un pedido en otra tienda WooCommerce
Utilizamos el hook: woocommerce_checkout_order_processed
Este hook se ejecuta una sola vez cuando WooCommerce genera el pedido, ideal para sincronizaciones externas.
<?php
add_action( 'woocommerce_checkout_order_processed', function ( $orderId, $postedData, $order ) {
$orderData = [];
$orderItems = [];
$externalApi = 'https://externalstore.com/wp-json/wc/v3/orders';
$consumerKey = 'ck_xxxxxxxxx';
$consumerSecret = 'cs_xxxxxxxxx';
foreach ( $order->get_items() as $item ) {
$orderItems[] = [
'product_id' => $item->get_product_id(),
'quantity' => $item->get_quantity(),
'total' => $item->get_total()
];
}
$orderData = [
'payment_method' => $order->get_payment_method(),
'payment_method_title' => $order->get_payment_method_title(),
'set_paid' => $order->is_paid(),
'billing' => $order->get_address( 'billing' ),
'shipping' => $order->get_address( 'shipping' ),
'line_items' => $orderItems
];
$response = wp_remote_post( $externalApi, [
'headers' => [
'Authorization' => 'Basic ' . base64_encode( $consumerKey . ':' . $consumerSecret ),
'Content-Type' => 'application/json'
],
'body' => json_encode( $orderData ),
'timeout' => 20
] );
}, 10, 3 );
Ejemplo 2
Al crear un usuario, obtener sus pedidos desde otra tienda y guardarlos en usermeta.
Aquí buscamos al usuario en la tienda externa por su email:
GET /wp-json/wc/v3/orders?email=correo@mail.com
Luego guardamos los IDs en orders_from_other_store.
<?php
add_action( 'user_register', function ( $userId ) {
$userInfo = get_userdata( $userId );
$userEmail = $userInfo->user_email;
$externalApi = 'https://externalstore.com/wp-json/wc/v3/orders?email=' . urlencode( $userEmail );
$consumerKey = 'ck_xxxxxxxxx';
$consumerSecret = 'cs_xxxxxxxxx';
$response = wp_remote_get( $externalApi, [
'headers' => [
'Authorization' => 'Basic ' . base64_encode( $consumerKey . ':' . $consumerSecret )
],
'timeout' => 20
] );
if ( is_wp_error( $response ) ) {
return;
}
$data = json_decode( wp_remote_retrieve_body( $response ), true );
if ( ! is_array( $data ) ) {
return;
}
$orderIds = [];
foreach ( $data as $order ) {
if ( isset( $order['id'] ) ) {
$orderIds[] = $order['id'];
}
}
update_user_meta( $userId, 'orders_from_other_store', $orderIds );
} );
La REST API de WooCommerce es esencial para integraciones entre tiendas, aplicaciones móviles, ERPs y automatizaciones personalizadas.
Con solo activar la API, generar una clave y entender los endpoints principales, puedes crear interacciones avanzadas como sincronizar pedidos, usuarios, productos o inventarios entre tiendas.



