# WooCommerce

Tienda WooCommerce sobre tu WordPress: productos, pedidos, clientes, envíos, impuestos y reportes, también por MCP.

Fuente: https://ardumaker.com/docs/woocommerce/

- Categoría: Servidores e infraestructura
- Estado: Disponible
- Requisitos: Un sitio [WordPress](https://ardumaker.com/docs/wordpress) instalado como app; El plugin WooCommerce activo (se instala con `extras` o como plugin)
- Herramientas MCP (Solo leen): `ver_reportes_tienda_wordpress`, `listar_sitios_wordpress`
- Herramientas MCP (Escriben o modifican): `instalar_app`
- Herramientas MCP (Destructivas): `editar_tienda_wordpress`, `editar_integraciones_wordpress`, `controlar_extensiones_wordpress`

## ¿Qué permite hacer?

WooCommerce es una variante de un sitio WordPress: ArduMaker lo instala al crear el sitio y después permite operar la tienda entera con wp-cli (`wp wc`, el CLI de WooCommerce sobre su API REST), como el admin del sitio.

- Productos y variaciones, categorías, etiquetas, atributos y sus términos, e inventario.
- Pedidos, notas de pedido y reembolsos.
- Clientes y cupones.
- Zonas de envío con sus métodos y lugares, impuestos y clases de impuesto.
- Pasarelas de pago y ajustes `woocommerce_*`.
- Reportes de ventas y productos más vendidos.
- Webhooks de WooCommerce hacia otros sistemas.

## ¿Cuándo conviene usarlo?

- Una tienda propia en un servidor propio, sin comisiones de plataforma de tienda.
- Cargar o actualizar catálogo y stock desde un agente de IA.
- Consultar ventas del mes sin entrar al panel de WordPress.

## ¿Cómo funciona en ArduMaker?

Al crear el sitio con `config.extras` que incluye `woocommerce`, en el paso `configurar` se instala y activa el plugin `woocommerce` desde wordpress.org; si no se pidió Elementor también se activa el tema `storefront`, y se crean las páginas de tienda, carrito, finalizar compra y mi cuenta. Repetirlo no duplica nada. Un sitio traído desde un backup no recibe variantes: trae sus propios plugins.

Cada operación sobre la tienda es `wp wc` con un recurso y una acción (`listar`, `ver`, `crear`, `editar`, `eliminar`). `data.id` identifica el objeto, `data.parent` el objeto del que cuelga (producto de una variación, pedido de un reembolso o nota, zona de un método, atributo de un término) y `data.fields` los campos de la API de WooCommerce.

## ¿Qué cambia realmente?

Los cambios quedan en la base del sitio (`wp<id>`), igual que si se hicieran desde el panel de WooCommerce. El stock es un campo del producto (`stock_quantity`, `manage_stock`); el recurso `inventario` lo lista para todos.

> **PELIGRO:** Reembolsar y borrar piden `confirmed: true`: mueven dinero o no tienen vuelta atrás.

## Esquema

**Una operación de tienda**

```text
Agente o panel (`editar_tienda_wordpress`)
  ↓
Backend de ArduMaker (permisos y armado del comando)
  ↓
Agente del VPS (`wp wc …` como el usuario del sitio)
  ↓
WooCommerce (base `wp<id>`)
```

## Resultado esperado

Cada llamada devuelve lo que contestó WooCommerce (el producto, el pedido, la lista). `ver_reportes_tienda_wordpress` devuelve, para el período (por defecto el mes en curso, hasta 1000 pedidos), pedidos, ítems, ingresos, descuentos, envíos e impuestos de los pedidos pagados o en curso, o los productos más vendidos por cantidad.

## Errores y resolución

- `wordpress_comando_fallido` (422): `wp wc` respondió con error; el mensaje trae la salida recortada para corregir el pedido.
- El inventario usa el esquema viejo de `wp wc`: `in_stock`, no `stock_status`.
- Un ajuste tiene que llamarse `woocommerce_<nombre>`.
- Si la variante no se pudo instalar al crear el sitio, la operación falla `wordpress_variantes_no_instaladas` y se puede reintentar.

## Relación con MCP

La tienda se opera desde el dominio [/mcp/wordpress](https://ardumaker.com/mcp/wordpress) (referencia general en [/mcp/docs](https://ardumaker.com/mcp/docs)):

- Lectura: `ver_reportes_tienda_wordpress` (`sales` o `top_sellers`, con `period` o `date_min`/`date_max`).
- Escritura (marcada destructiva porque incluye reembolsos y borrados): `editar_tienda_wordpress` con `resource` y `action`.
- Webhooks: `editar_integraciones_wordpress` (`listar_webhooks`, `crear_webhook` con nombre, tema, URL de entrega y secreto, `eliminar_webhook`).
- Instalar la tienda: `instalar_app` con `app_type: wordpress` y `config.extras: ["woocommerce"]`, o `controlar_extensiones_wordpress` para agregar el plugin a un sitio existente.

Hace falta poder cambiar el sitio: un agente autorizado solo lectura no ve `editar_tienda_wordpress`.

## Funciones relacionadas

- [WordPress](https://ardumaker.com/docs/wordpress/)
- [Elementor](https://ardumaker.com/docs/elementor/)
- [MySQL](https://ardumaker.com/docs/mysql/)
- [Copias de seguridad](https://ardumaker.com/docs/backups/)
