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.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x