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:

  1. Postman: Ideal para pruebas rápidas y detalladas, permite construir solicitudes HTTP fácilmente con interfaces amigables.
  2. cURL: Una herramienta de línea de comandos muy popular para consumir APIs REST.
  3. Insomnia: Similar a Postman, pero con una interfaz más minimalista, útil para desarrolladores que prefieren configuraciones más ligeras.
  4. 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.

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