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.




