Cómo generar un pedido en WooCommerce usando su API REST
WooCommerce ofrece una API REST poderosa que permite interactuar programáticamente con la tienda. En este artículo, aprenderás a crear un pedido en WooCommerce usando la API REST, cómo añadir valores meta personalizados, entender la respuesta completa del pedido, y qué permisos necesitas.
Crear un pedido: ejemplo de payload
Envía un POST
al endpoint /wp-json/wc/v3/orders
con un payload similar a este:
{ "payment_method": "bacs", "payment_method_title": "Direct Bank Transfer", "set_paid": false, "billing": { "first_name": "John", "last_name": "Doe", "address_1": "123 Main Street", "city": "New York", "postcode": "10001", "country": "US", "email": "john.doe@example.com", "phone": "123456789" }, "shipping": { "first_name": "John", "last_name": "Doe", "address_1": "123 Main Street", "city": "New York", "postcode": "10001", "country": "US" }, "line_items": [ { "product_id": 123, "quantity": 2 } ], "meta_data": [ { "key": "order_source", "value": "API" } ] }
Herramientas para consumir la API
Antes de mostrar el ejemplo con cURL
, es importante mencionar que hay múltiples herramientas que puedes usar para interactuar con la API REST de WooCommerce:
- Postman: Ideal para pruebas rápidas y detalladas, permite construir solicitudes HTTP fácilmente con interfaces amigables.
- cURL: Una herramienta de línea de comandos muy popular para consumir APIs REST.
- Insomnia: Similar a Postman, pero con una interfaz más minimalista, útil para desarrolladores que prefieren configuraciones más ligeras.
- Bibliotecas HTTP en Lenguajes de Programación:
- Axios o Fetch para JavaScript.
- Requests para Python.
- Guzzle para PHP.
Estas herramientas te permiten consumir APIs REST de manera eficiente, según tus preferencias y necesidades.
Ejemplo práctico: crear un pedido con cURL
Si prefieres usar la terminal, este ejemplo muestra cómo crear un pedido utilizando cURL
:
curl -X POST https://example.com/wp-json/wc/v3/orders \ -u ck_consumer_key:cs_consumer_secret \ -H "Content-Type: application/json" \ -d '{ "payment_method": "bacs", "payment_method_title": "Direct Bank Transfer", "set_paid": false, "billing": { "first_name": "John", "last_name": "Doe", "address_1": "123 Main Street", "city": "New York", "postcode": "10001", "country": "US", "email": "john.doe@example.com", "phone": "123456789" }, "shipping": { "first_name": "John", "last_name": "Doe", "address_1": "123 Main Street", "city": "New York", "postcode": "10001", "country": "US" }, "line_items": [ { "product_id": 123, "quantity": 2 } ], "meta_data": [ { "key": "order_source", "value": "API" } ] }'
Respuesta del pedido
WooCommerce devuelve un JSON con información detallada del pedido. Ejemplo:
{ "id": 789, "customer_id": 567, "status": "pending", "order_key": "wc_order_abcdef123456", "date_created": "2024-11-29T14:00:00", "date_created_gmt": "2024-11-29T14:00:00", "currency": "USD", "payment_url": "https://example.com/checkout/order-pay/789/?key=wc_order_abcdef123456", "needs_processing": true, "needs_payment": true, "billing": { "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com" }, "line_items": [ { "id": 1, "name": "Sample Product", "quantity": 2, "total": "39.98" } ], "meta_data": [ { "id": 1, "key": "order_source", "value": "API" } ] }
Archivo JSON para Postman
Descarga el archivo JSON para importarlo en Postman y realizar pruebas rápidamente:
Descargar archivo JSON para Postman
Ya sea que prefieras herramientas gráficas como Postman o Insomnia, o utilices comandos directos con cURL, la API REST de WooCommerce es flexible y poderosa. Aprovecha las herramientas que mejor se adapten a tu flujo de trabajo para integrar y automatizar tu tienda.