/ COMPUTER SCIENCE~ WOOCOMMERCE / 3 mins read

¿Cómo hacer una request básica con la REST API de WooCommerce?

De acuerdo a la documentación de la REST API de WooCommerce, prácticamente lo que se necesita para empezar es lo siguiente:

  • WooCommerce 2.6+.
  • WordPress 4.4+ (memory limit de 128 MB o más).
  • PHP versión 7/superior y MySQL 5.6/superior o MariaDB 10.0/superior

PHP 5.2.4+ y MySQL 5.0+ llegaron a su fin y ya no se mantienen y, como tales, pueden exponer el sitio a vulnerabilidades de seguridad.

  • Soporte HTTP o HTTPS.
  • Activar los permalinks en WordPress: Settings > Permalinks. Con los permalinks de default no funcionará.
  • Activar la opción REST API en WooCommerce > Settings > Advanced > Legacy API.
  • Generar API Keys en WooCommerce > Settings > Advanced > REST API.
  • Elegir el scope para cada llave (lectura y/o escritura) y asignar a un usuario.

Listo, con estas Keys (Consumer Key y Consumer Secret) es posible realizar la siguiente prueba.

Testing API - Una request básica

En un ambiente local tengo un solo producto. La API de productos permite crear, ver, actualizar y eliminar productos individuales o por lotes.

HTTP Request GET: Listar todos los productos

/wp-json/wc/v2/products

Para esta prueba se utilizó Postman, pero antes es necesario configurar la pestaña de Authorization.

  • Elegir basic auth
  • Agregar nuestro consumer key y secret key en los campos de username y password.

Postman

Una vez hecho lo anterior, ya es posible hacer la petición y ver que se obtiene un estado HTTP 200 OK (successful). Y finalmente, se realizó una pequeña prueba con la API de WooCommerce.

[
    {
        "id": 19,
        "name": "Producto de prueba",
        "slug": "producto-de-prueba",
        "permalink": "http://woocommerce.local/product/producto-de-prueba/",
        "date_created": "2018-08-03T17:00:43",
        "date_created_gmt": "2018-08-03T17:00:43",
        "date_modified": "2018-08-03T17:00:43",
        "date_modified_gmt": "2018-08-03T17:00:43",
        "type": "simple",
        "status": "publish",
        "featured": false,
        "catalog_visibility": "visible",
        "description": "<p>Testing API</p>\n",

        ...
    }
]

Recursos de utilidad

Librerías y herramientas

Si utilizas Laravel, te recomiendo el paquete pixelpeter/laravel5-woocommerce-api-client que puede ser instalado vía composer. Es un wrapper para la API y con los datos obtenidos anteriormente se agregan al archivo .env.

WOOCOMMERCE_STORE_URL=http://example.org
WOOCOMMERCE_CONSUMER_KEY=ck_your-consumer-key
WOOCOMMERCE_CONSUMER_SECRET=cs_your-consumer-secret
WOOCOMMERCE_VERIFY_SSL=false
WOOCOMMERCE_VERSION=v2
WOOCOMMERCE_WP_API=true
WOOCOMMERCE_WP_QUERY_STRING_AUTH=false
WOOCOMMERCE_WP_TIMEOUT=15

Por ejemplo, para ver el Index con la información de todos los endpoints disponibles:

use Woocommerce;

return Woocommerce::get('');

Es todo.