Imagina esto:
- Un usuario le dice a ChatGPT:
Necesito un regalo para mi hermana que le encanta la jardinería, presupuesto 50 euros - ChatGPT le muestra tu producto, el usuario pulsa «
Comprar», confirma los datos de envío y pago, y listo. Pedido realizado. Sin salir del chat. Sin visitar tu web.
Esto ya no es ciencia ficción. Es una realidad que está funcionando ahora mismo en Estados Unidos con tiendas de Etsy y Shopify, y que llegará pronto a España y al resto del mundo.
Se llama comercio agéntico (agentic commerce), y está impulsado por el Agentic Commerce Protocol (ACP), un protocolo abierto desarrollado por OpenAI y Stripe que permite que las inteligencias artificiales actúen como agentes de compra para sus usuarios, completando transacciones directamente desde el chat.
En esta guía te voy a explicar qué es el ACP, cómo funciona, qué necesitas preparar en tu tienda WooCommerce para que esté lista cuando se lance oficialmente, y cómo puedes empezar a probarlo YA en versión beta.
Lo que vas a leer a continuación no es cualquier cosa, lo recordarás toda tu vida profesional, pues vas a conocer en qué se está convirtiendo ya el comercio, y no solo el online, la venta en general.
¡Empezamos!
¿Qué es ese otro nuevo palabro, el Agentic Commerce Protocol o ACP?

El Agentic Commerce Protocol (ACP) es un estándar abierto que permite la comunicación entre compradores, sus agentes de IA y las tiendas online para completar una compra de forma programática.
Fue co-desarrollado por OpenAI y Stripe, pero es de código abierto (licencia Apache 2.0), lo que significa que cualquier IA puede implementarlo, no solo ChatGPT.
Para empezar ¿te importaría decirme qué significa «agéntico»?
El término agéntico viene de «agente». En este contexto, la IA actúa como un agente de compras para el usuario, similar a un asistente personal que puede:
- Buscar productos según las necesidades del usuario
- Comparar opciones de diferentes tiendas
- Iniciar el proceso de compra
- Gestionar el pago de forma segura
- Confirmar el pedido con el comerciante
Características principales del ACP
- Protocolo abierto: Cualquier IA o plataforma puede implementarlo
- Compatible con cualquier backend: Funciona con WooCommerce, Shopify, Magento, o sistemas personalizados
- Agnóstico de pasarelas de pago: Puedes usar Stripe, PayPal, Redsys, o cualquier procesador compatible
- El comerciante mantiene el control: Eres el vendedor real, controlas qué se vende, cómo se procesa y cómo se cumple
- Seguro: Cumple con PCI DSS y estándares de seguridad en pagos
Cómo funciona el comercio agéntico
El proceso completo de una compra con ACP implica cuatro actores:
El comprador
El usuario interactúa con ChatGPT (u otra IA compatible) de forma natural:
Necesito zapatillas de running para asfalto, talla 42, presupuesto 100 eurosBusco un regalo para mi madre que le gusta la jardineríaQuiero hacer un viaje a Japón, organízamelo todo
La IA le muestra productos relevantes. Si el usuario quiere comprar uno que tiene Instant Checkout habilitado, puede hacerlo directamente desde el chat.
El agente de IA
ChatGPT (o la IA que sea) actúa como intermediario inteligente:
- Busca productos relevantes en tiendas con ACP habilitado
- Muestra opciones al usuario
- Recoge los detalles de pago de forma segura
- Envía la solicitud de pedido a la tienda
- Mantiene al usuario informado del estado
La tienda (tu negocio)
Tu sistema WooCommerce recibe la solicitud de pedido a través de ACP:
- Valida que el producto está disponible
- Verifica el pago con señales de fraude
- Acepta o rechaza el pedido
- Procesa el pago con tu pasarela habitual
- Gestiona el cumplimiento del pedido como siempre
- Envía actualizaciones de estado a ChatGPT
Importante: Tú mantienes el control total. Eres el vendedor real, procesas el pago con tu sistema, gestionas el inventario, los envíos y las devoluciones exactamente como lo haces ahora.
El proveedor de pagos
La pasarela de pago (Stripe, Redsys, etc.) gestiona la parte financiera:
- Recibe los datos de pago del usuario de forma segura
- Genera un token de pago delegado (SPT en el caso de Stripe)
- Permite que tu tienda cobre al usuario
- El token está limitado al comerciante y al importe específico
Dos tipos de integración
Actualmente ya existen dos formas de integración con ACP:
Integración directa (pago en ChatGPT)
El usuario completa TODO el pago dentro de ChatGPT:
- Añade su tarjeta directamente en ChatGPT (los usuarios premium pueden tenerla guardada)
- La pasarela de pago cumple estrictamente con PCI DSS
- Stripe tiene integración completa para esto
- La experiencia es 100% sin atascos ni distracciones
Integración por enlace
ChatGPT genera el pedido en tu tienda y proporciona un enlace de pago:
- El agente recopila la información del pedido
- Crea el pedido en tu WooCommerce con todos los datos
- Genera un enlace directo a tu checkout
- El usuario completa el pago en tu sitio
- Todo está pre-completado, solo confirmar
Esta segunda opción es la que ya está disponible en la versión beta de WooCommerce y es perfecta para empezar.
Diferencias entre aparecer en las IAs y ¡VENDER EN LAS IAs!

Es importante entender que hay dos niveles diferentes de integración con las IAs:
Nivel 1: Product Discovery (aparecer)
Esto es lo que cubrimos en la guía anterior sobre cómo hacer que ChatGPT recomiende tus productos. En este nivel:
- Tu tienda aparece en las recomendaciones de productos de ChatGPT
- Los usuarios pueden ver tus productos, precios y valoraciones
- ChatGPT proporciona enlaces a tu web
- El usuario debe salir del chat para completar la compra en tu tienda
Nivel 2: Instant Checkout con ACP (vender)
Este es el siguiente paso, y de lo que trata esta guía. Aquí:
- Tus productos aparecen en las recomendaciones (como en el nivel 1)
- ADEMÁS, el usuario puede completar la compra SIN salir del chat
- ChatGPT actúa como intermediario seguro entre el usuario y tu tienda
- El pedido se procesa en tu sistema existente
- Pagas una pequeña comisión solo por ventas completadas
Dato importante: Para poder vender con ACP, primero necesitas estar en Product Discovery. Son dos pasos complementarios, no alternativos.
Por qué tu tienda necesita implementar el Agentic Commerce Protocol

La ventaja competitiva es brutal
Piensa en este escenario real:
Un usuario pregunta a ChatGPT:
Busco auriculares inalámbricos con cancelación de ruido, menos de 150 euros
ChatGPT le muestra 5 tiendas que venden productos similares:
- 4 tiendas solo tienen Product Discovery: El usuario ve el producto y un enlace a la web
- 1 tienda (la tuya) tiene ACP habilitado: El usuario ve «Comprar ahora» directamente en el chat
¿Cuál crees que tendrá más conversiones?
La respuesta es obvia. Cuantos menos pasos tenga que dar el usuario, más probabilidades de que complete la compra. Es la misma lógica que ha hecho triunfar el «Pago en 1 clic» de Amazon.
El tráfico desde IAs está creciendo exponencialmente
Ya se está viendo tráfico significativo desde ChatGPT en todas las webs, y esto apenas acaba de empezar.
Según los datos:
- Más de 700 millones de personas usan ChatGPT cada semana
- El uso de IAs para búsquedas está creciendo mientras el de Google se mantiene o decrece
- Las nuevas generaciones prefieren preguntar a una IA que buscar en Google
La tienda no desaparece, se potencia
Es importante aclarar este punto porque hay confusión: tu tienda web NO va a desaparecer.
El comercio agéntico se BASA en que exista tu tienda. El agente de IA:
- Descubre productos en tu catálogo
- Genera pedidos en tu sistema
- Procesa pagos con tus pasarelas
- Depende de tu gestión de inventario y envíos
Lo que cambia es el PUNTO DE ENTRADA. Antes los usuarios llegaban por Google, ahora también llegarán por ChatGPT u otras IAs. Pero siguen necesitando que tu tienda funcione perfectamente.
Ventajas adicionales
- Nuevo canal de ventas: Acceso a millones de usuarios de IAs
- Menos complicaciones: Conversiones más altas por facilidad de compra
- Comisión solo por venta: Pagas solo cuando vendes, y es reembolsable si hay devolución
- Control total: Mantienes la relación con el cliente y todos tus procesos
- No requiere grandes cambios: Se integra con tu infraestructura existente
¿Qué necesitas preparar YA MISMO tu tienda para el Agentic Commerce?

Aunque ACP está en fase beta y la integración completa aún no está disponible para todos, hay cosas que puedes (y debes) hacer ya para estar preparado.
Requisitos previos imprescindibles
Existir en Product Discovery
Como dije antes, para vender primero tienes que aparecer. Si aún no lo has hecho, sigue esta guía completa sobre cómo preparar tu tienda para que ChatGPT recomiende tus productos.
Los puntos esenciales son:
- Permitir el acceso al bot OAI-SearchBot
- Tener datos estructurados Schema.org correctos
- Crear un feed de productos
- Optimizar contenido para búsquedas conversacionales
WordPress y WooCommerce actualizados
Para usar ACP necesitas:
- WordPress 6.4 o superior (siempre mejor tener la última versión estable)
- WooCommerce 10.3 o superior (la versión a partir de la que se incluye MCP/ACP)
- PHP 7.4 o superior (recomendado PHP 8.0+)
- Certificado SSL activo (HTTPS obligatorio)
Hosting adecuado
El comercio agéntico puede generar peticiones API frecuentes, así que necesitas:
- Hosting con buen rendimiento y recursos suficientes
- Soporte para REST API de WordPress
- Capacidad para manejar webhooks
- Preferiblemente hosting optimizado para WooCommerce
Pasarela de pago compatible
Este es un punto crítico. No todas las pasarelas están preparadas para ACP todavía. Más adelante veremos cuáles son compatibles y cuáles están trabajando ya en ello.
Preparación de datos
Catálogo de productos optimizado
Para que el agente de IA pueda recomendar y vender tus productos correctamente, necesitas:
- Títulos descriptivos y específicos
- Descripciones claras y completas
- Imágenes de alta calidad con texto ALT
- Precios actualizados
- Inventario sincronizado en tiempo real
- Categorías y etiquetas bien estructuradas
- Atributos completos (tallas, colores, etc.)
Información de envío y devoluciones
Los agentes necesitan poder informar al usuario sobre:
- Métodos de envío disponibles
- Costes de envío por zona
- Tiempos de entrega estimados
- Política de devoluciones
- Información de seguimiento
Asegúrate de tener todo esto configurado correctamente en WooCommerce.
Datos fiscales configurados
Tu tienda debe poder calcular y aplicar impuestos correctamente según la ubicación del comprador. Configura:
- Zonas fiscales
- Tipos impositivos por zona
- Clases de impuestos si vendes productos con IVA diferente
Aspectos legales
Asegúrate de tener actualizadas y accesibles:
- Política de privacidad (incluyendo mención al uso de IAs)
- Términos y condiciones de venta
- Política de cookies
- Política de devoluciones
- Información legal de la empresa
Cómo activar ACP en WooCommerce (de momento en beta)

Gracias a la información compartida por José Conti, sabemos que ya es posible probar la implementación de ACP en WooCommerce. Está en versión beta, pero funciona.
Importante: Al ser beta, no lo recomiendo para tiendas en producción críticas sin hacer pruebas exhaustivas antes. Ideal para tiendas de desarrollo o en pruebas.
Los componentes necesarios
Para habilitar MCP (Model Context Protocol) y ACP en tu WooCommerce necesitas tres elementos:
- WordPress MCP Adapter: Plugin que permite que WordPress hable el protocolo MCP
- WordPress Abilities API: Capa de interacción que expone capacidades de WordPress/WooCommerce
- WooCommerce 10.3+: Incluye soporte beta para MCP/ACP en el core
Paso 1: Instalar WordPress MCP Adapter
Este plugin es el puente entre WordPress y los agentes de IA que usan MCP.
- Descarga el plugin desde el repositorio oficial: https://github.com/WordPress/mcp-adapter
- Descarga el ZIP del repositorio (botón verde Code > Download ZIP)
- En tu WordPress, ve a Plugins > Añadir nuevo
- Pulsa «Subir plugin» y selecciona el archivo ZIP
- Instala y activa el plugin
Nota: Al ser un plugin en desarrollo activo, revisa el README del repositorio por si hay instrucciones específicas de instalación.
Paso 2: Instalar WordPress Abilities API
Este plugin proporciona la API fundamental que permite a las IAs interactuar con WordPress.
- Descarga el plugin desde: https://github.com/WordPress/abilities-api
- Descarga el ZIP del repositorio
- En tu WordPress, ve a Plugins > Añadir nuevo
- Pulsa «Subir plugin» y selecciona el archivo ZIP
- Instala y activa el plugin
Paso 3: Actualizar WooCommerce a la versión con soporte MCP/ACP
Necesitas WooCommerce 10.3 o superior, que incluye en beta MCP y ACP en el core.
- Ve a tu panel de WordPress
- Navega a Plugins > Plugins instalados
- Busca WooCommerce
- Si hay actualización disponible, actualiza a la última versión
- Si ya tienes 10.3 o superior, estás listo
Puedes verificar tu versión en WooCommerce > Estado > Sistema.
Paso 4: Verificar la instalación
Una vez instalados los tres componentes, deberías tener:
- Nuevas opciones de configuración relacionadas con MCP en WordPress
- Endpoints API nuevos activos
- Capacidad para que agentes de IA interactúen con tu tienda
Para verificar que todo está funcionando:
- Ve a Ajustes > Enlaces permanentes
- Guarda los cambios (para recargar las reglas de reescritura)
- Comprueba que no hay errores en la consola de WordPress
Paso 5: Configurar tu pasarela de pago para ACP
Este es el paso más importante y el que determinará cómo funciona la integración. Lo veremos en detalle en la siguiente sección.
Limitaciones actuales de la beta
Ten en cuenta que al estar en beta:
- Puede haber fallos o comportamientos inesperados
- La documentación oficial aún está en desarrollo
- No todos los métodos de pago son compatibles todavía
- La integración es principalmente por enlace, no pago directo en IA
- Puede requerir configuración técnica adicional según tu configuración
Recomendación: Prueba todo en un entorno de staging antes de activarlo en producción.
Pasarelas de pago compatibles con ACP

Este es uno de los puntos más críticos. No basta con tener MCP y ACP habilitado en WooCommerce: tu pasarela de pago también debe ser compatible.
Estado actual de las pasarelas
Stripe
- Estado: Totalmente compatible
Stripe es el socio principal en el desarrollo de ACP y tiene integración completa:
- Soporte para Shared Payment Token (SPT)
- Pago directo dentro de ChatGPT
- Integración con una sola línea de código si ya usas Stripe
- Compatible con Stripe Checkout y Payment Intents
Si usas Stripe, estás de suerte. Es la opción más sencilla para empezar.
Redsys (Tarjeta de crédito TPV español)
- Estado: En desarrollo beta
José Conti, desarrollador del popular plugin de Redsys para WooCommerce, está trabajando activamente en la integración MCP/ACP.
En la próxima versión de su plugin incluirá soporte beta para:
- Integración por enlace
- Generación de pedidos desde el agente
- Enlace directo al checkout con datos pre-rellenados
Si usas Redsys (lo más común en España), estate atento a las actualizaciones de este plugin.
PayPal
- Estado: No confirmado oficialmente
PayPal aún no ha anunciado soporte oficial para ACP, pero dado que es una pasarela ampliamente usada, es probable que trabajen en ello.
Mientras tanto, es posible que funcione con integración por enlace si tu plugin de PayPal soporta la REST API de WooCommerce correctamente.
Otras pasarelas
Para otras pasarelas de pago populares en España aún no hay información oficial sobre soporte ACP. La integración dependerá de que los desarrolladores de los plugins actualicen sus extensiones.
¿Qué significa que una pasarela sea compatible?
Para que una pasarela funcione con ACP debe cumplir con el Delegated Payment Spec, que establece cómo:
- Se transmiten credenciales de pago de forma segura
- Se generan tokens de pago delegados
- Se procesan cargos autorizados por el agente
- Se manejan reembolsos y disputas
En el caso de integración por enlace (la que funciona en beta ahora), los requisitos son menores:
- La pasarela debe poder procesar pedidos generados por API
- Debe soportar enlaces de pago con datos pre-rellenados
- Debe poder reportar el estado del pago de vuelta al sistema
Recomendación según tu situación
- Si estás empezando o puedes elegir pasarela: Usa Stripe. Es la más integrada y la que funcionará desde el día 1.
- Si ya usas Redsys: Mantente informado de las actualizaciones del plugin de José Conti y prepara tu tienda para actualizar cuando esté disponible.
- Si usas otra pasarela: Contacta con el desarrollador del plugin y pregunta por planes de soporte ACP. También puedes plantearte añadir Stripe solo para pagos agénticos.
Lista de verificación completa de cómo prepararte para ACP
Aquí tienes una tabla completa con todo lo que necesitas revisar, preparar y configurar para que tu tienda esté lista para el comercio agéntico.
| Área | Elemento | Estado | Prioridad |
|---|---|---|---|
| REQUISITOS TÉCNICOS BÁSICOS | |||
| Software | WordPress 6.4 o superior instalado | ☐ | Alta |
| Software | WooCommerce 10.3 o superior instalado | ☐ | Alta |
| Software | PHP 7.4 o superior (recomendado 8.0 o superior) | ☐ | Alta |
| Seguridad | Certificado SSL activo (HTTPS) | ☐ | Alta |
| Hosting | Recursos suficientes para APIs | ☐ | Media |
| API | REST API de WordPress habilitada | ☐ | Alta |
| PRODUCT DISCOVERY (REQUISITO) | |||
| SEO/IA | OAI-SearchBot permitido en robots.txt | ☐ | Alta |
| SEO/IA | Datos estructurados Schema.org implementados | ☐ | Alta |
| SEO/IA | Feed de productos JSON creado y público | ☐ | Alta |
| SEO/IA | Registrado en formulario de OpenAI para merchants | ☐ | Alta |
| SEO/IA | Títulos de productos optimizados para búsqueda conversacional | ☐ | Media |
| SEO/IA | Tracking UTM configurado (utm_source=chatgpt.com) | ☐ | Media |
| IMPLEMENTACIÓN MCP/ACP (BETA) | |||
| Plugins | WordPress MCP Adapter instalado y activado | ☐ | Alta |
| Plugins | WordPress Abilities API instalado y activado | ☐ | Alta |
| Configuración | Enlaces permanentes actualizados tras instalación | ☐ | Alta |
| Configuración | Endpoints API funcionando correctamente | ☐ | Alta |
| Configuración | Webhooks configurados para eventos de pedidos | ☐ | Alta |
| PASARELAS DE PAGO | |||
| Pagos | Pasarela principal compatible con ACP identificada | ☐ | Alta |
| Pagos | Stripe configurado (si es tu opción) | ☐ | Alta |
| Pagos | Plugin Redsys actualizado a versión con ACP (cuando esté disponible) | ☐ | Alta |
| Pagos | Modo de prueba configurado para testing | ☐ | Media |
| Pagos | Webhooks de pasarela de pago configurados | ☐ | Media |
| CATÁLOGO DE PRODUCTOS | |||
| Productos | Títulos descriptivos y específicos en todos los productos | ☐ | Alta |
| Productos | Descripciones completas y en lenguaje natural | ☐ | Alta |
| Productos | Imágenes de alta calidad con texto ALT descriptivo | ☐ | Alta |
| Productos | Precios actualizados y correctos | ☐ | Alta |
| Productos | Inventario sincronizado en tiempo real | ☐ | Alta |
| Productos | SKUs únicos para cada producto/variación | ☐ | Media |
| Productos | Marcas asignadas correctamente | ☐ | Media |
| Productos | Categorías y etiquetas bien estructuradas | ☐ | Media |
| Productos | Atributos completos (tallas, colores, etc.) | ☐ | Media |
| Productos | GTIN/EAN añadidos si están disponibles | ☐ | Baja |
| CONFIGURACIÓN DE ENVÍOS | |||
| Envíos | Zonas de envío configuradas correctamente | ☐ | Alta |
| Envíos | Métodos de envío por zona definidos | ☐ | Alta |
| Envíos | Costes de envío actualizados | ☐ | Alta |
| Envíos | Tiempos de entrega estimados configurados | ☐ | Media |
| Envíos | Seguimiento de envíos habilitado | ☐ | Media |
| Envíos | Clases de envío configuradas si aplica | ☐ | Baja |
| CONFIGURACIÓN FISCAL | |||
| Impuestos | Zonas fiscales configuradas | ☐ | Alta |
| Impuestos | Tipos impositivos correctos por zona | ☐ | Alta |
| Impuestos | Clases de impuestos si vendes productos con IVA diferente | ☐ | Media |
| Impuestos | Cálculo automático de impuestos funcionando | ☐ | Alta |
| ASPECTOS LEGALES | |||
| Legal | Política de privacidad actualizada (mencionar uso de IAs) | ☐ | Alta |
| Legal | Términos y condiciones de venta actualizados | ☐ | Alta |
| Legal | Política de cookies implementada | ☐ | Alta |
| Legal | Política de devoluciones clara y accesible | ☐ | Alta |
| Legal | Información legal de la empresa completa | ☐ | Alta |
| Legal | Aviso legal actualizado | ☐ | Media |
| MONITORIZACIÓN Y ANÁLISIS | |||
| Analytics | Google Analytics 4 configurado | ☐ | Alta |
| Analytics | Eventos de ecommerce configurados | ☐ | Media |
| Analytics | Seguimiento de fuente utm_source=chatgpt.com | ☐ | Alta |
| Analytics | Google Search Console activo | ☐ | Media |
| Analytics | Sistema de logs para debugging de API | ☐ | Media |
| PRUEBAS Y OPTIMIZACIÓN | |||
| Testing | Entorno de staging configurado para pruebas | ☐ | Alta |
| Testing | Pruebas de pedidos completas realizadas | ☐ | Alta |
| Testing | Verificación de enlaces de pago | ☐ | Alta |
| Testing | Pruebas de webhooks funcionando | ☐ | Media |
| Testing | Velocidad de carga optimizada (menos de 3 segundos) | ☐ | Media |
| Testing | Respuestas API bajo 500ms | ☐ | Media |
| REGISTRO OFICIAL | |||
| OpenAI | Aplicación enviada para Instant Checkout | ☐ | Alta |
| OpenAI | Documentación técnica revisada | ☐ | Media |
| OpenAI | Certificación completada (cuando esté disponible) | ☐ | Alta |
Cómo usar esta lista
- Prioriza por columna de prioridad: Empieza por todas las marcadas como «Alta»
- Revisa sección por sección: No pases a la siguiente hasta completar la anterior
- Marca lo que ya tienes: Imprime o copiapega donde quieras esta lista y ve marcando lo completado
- Documenta problemas: Si algo falla, anota el error para resolverlo
- Prueba en staging primero: Nunca implementes en producción sin probar antes
Guía técnica de ACP para desarrolladores e implementadores

Esta sección está dirigida a desarrolladores y profesionales que implementan soluciones en tiendas de clientes.
Arquitectura técnica de ACP
El Agentic Commerce Protocol se basa en tres componentes principales:
Product Feed Spec
El feed de productos proporciona información actualizada sobre tu catálogo a los agentes de IA. Debe incluir:
- Información básica del producto (id, nombre, descripción, precio)
- Disponibilidad y stock
- Imágenes y medios
- Atributos y variaciones
- Información de envío
Formato JSON esperado según la especificación oficial:
{
"products": [
{
"id": "prod_123",
"name": "Producto ejemplo",
"description": "Descripción detallada",
"url": "https://tutienda.com/producto/ejemplo",
"image_url": "https://tutienda.com/images/producto.jpg",
"price": {
"amount": 29.99,
"currency": "EUR"
},
"availability": "in_stock",
"brand": "Marca de ejemplo",
"category": "Categoría > Subcategoría"
}
]
}
Agentic Checkout API
Es el conjunto de endpoints REST que permiten a los agentes de IA:
- Iniciar un checkout
- Obtener información del checkout
- Actualizar datos del checkout
- Confirmar el pedido
- Recibir actualizaciones de estado
Endpoints principales que debes implementar:
POST /wp-json/acp/v1/checkout/initiate
GET /wp-json/acp/v1/checkout/{checkout_id}
PUT /wp-json/acp/v1/checkout/{checkout_id}
POST /wp-json/acp/v1/checkout/{checkout_id}/confirm
POST /wp-json/acp/v1/webhooks/order-status
Delegated Payment Spec
Define cómo se manejan los pagos de forma segura:
- Generación de tokens de pago delegados
- Transmisión segura de credenciales
- Procesamiento de cargos autorizados
- Manejo de reembolsos y disputas
Para Stripe, esto se implementa mediante Shared Payment Tokens (SPT).
Implementación con los plugins oficiales
WordPress MCP Adapter
Este plugin proporciona la capa de adaptación entre el protocolo MCP y WordPress.
Funcionalidades clave:
- Expone capacidades de WordPress a clientes MCP
- Maneja la autenticación y autorización
- Proporciona un servidor MCP compatible
Configuración básica:
// El plugin se auto-configura tras la instalación
// Puedes personalizar comportamientos con filtros
add_filter('mcp_adapter_capabilities', function($capabilities) {
// Añadir o modificar capacidades expuestas
return $capabilities;
});
WordPress Abilities API
Define las «habilidades» o acciones que los agentes pueden realizar.
Habilidades relacionadas con WooCommerce:
- Buscar productos
- Obtener detalles de producto
- Crear pedidos
- Actualizar pedidos
- Consultar estado de pedidos
Ejemplo de uso programático:
// Registrar una nueva habilidad personalizada
add_action('abilities_api_register', function($registry) {
$registry->register_ability([
'name' => 'get_custom_product_data',
'description' => 'Obtiene datos personalizados del producto',
'callback' => 'ayudawp_get_custom_product_data',
'args' => [
'product_id' => [
'required' => true,
'type' => 'integer'
]
]
]);
});
function ayudawp_get_custom_product_data($product_id) {
$product = wc_get_product($product_id);
if (!$product) {
return new WP_Error('product_not_found', 'Producto no encontrado');
}
return [
'id' => $product->get_id(),
'custom_field' => get_post_meta($product_id, '_custom_field', true),
// Añadir más datos personalizados
];
}
Webhooks necesarios
Los webhooks permiten que tu tienda notifique a los agentes sobre cambios de estado.
Eventos importantes a implementar:
order.created: Cuando se crea un pedidoorder.updated: Cuando cambia el estado del pedidoorder.completed: Cuando se completa un pedidoorder.cancelled: Cuando se cancela un pedidoorder.refunded: Cuando se reembolsa un pedidoshipment.tracking: Información de seguimiento
Ejemplo de implementación de webhook:
// Enviar notificación cuando cambia el estado del pedido
add_action('woocommerce_order_status_changed', 'ayudawp_notify_order_status_change', 10, 4);
function ayudawp_notify_order_status_change($order_id, $old_status, $new_status, $order) {
// Verificar si el pedido viene de un agente de IA
$agent_checkout_id = get_post_meta($order_id, '_acp_checkout_id', true);
if (!$agent_checkout_id) {
return; // No es un pedido de agente
}
// Preparar payload
$webhook_url = get_post_meta($order_id, '_acp_webhook_url', true);
if (!$webhook_url) {
return;
}
$payload = [
'event' => 'order.updated',
'checkout_id' => $agent_checkout_id,
'order_id' => $order_id,
'old_status' => $old_status,
'new_status' => $new_status,
'timestamp' => current_time('mysql')
];
// Enviar webhook
wp_remote_post($webhook_url, [
'body' => json_encode($payload),
'headers' => [
'Content-Type' => 'application/json',
'X-ACP-Signature' => ayudawp_generate_webhook_signature($payload)
],
'timeout' => 10
]);
}
function ayudawp_generate_webhook_signature($payload) {
$secret = get_option('acp_webhook_secret');
return hash_hmac('sha256', json_encode($payload), $secret);
}
Integración con Stripe para pago directo
Si quieres implementar pago directo en ChatGPT usando Stripe:
// Habilitar Shared Payment Tokens en tu cuenta Stripe
// Esto se hace desde el dashboard de Stripe en la sección de configuración
// En tu código, procesar el SPT
add_action('acp_process_payment', 'ayudawp_process_stripe_spt', 10, 2);
function ayudawp_process_stripe_spt($checkout_id, $payment_data) {
if ($payment_data['provider'] !== 'stripe') {
return;
}
$spt_token = $payment_data['spt_token'];
$amount = $payment_data['amount'];
// Procesar con Stripe API
require_once('stripe-php/init.php');
\Stripe\Stripe::setApiKey(get_option('stripe_secret_key'));
try {
$charge = \Stripe\Charge::create([
'amount' => $amount * 100, // Stripe usa centavos
'currency' => 'eur',
'source' => $spt_token,
'description' => 'Pedido desde agente IA'
]);
return [
'success' => true,
'transaction_id' => $charge->id
];
} catch (\Stripe\Exception\CardException $e) {
return [
'success' => false,
'error' => $e->getMessage()
];
}
}
Adaptar pasarelas existentes para integración por enlace
Si tu pasarela no soporta pago directo, puedes implementar integración por enlace:
add_filter('acp_checkout_response', 'ayudawp_add_payment_link', 10, 2);
function ayudawp_add_payment_link($response, $order_id) {
// Generar enlace de pago único
$payment_token = wp_generate_password(32, false);
update_post_meta($order_id, '_payment_token', $payment_token);
// Crear URL de pago
$payment_url = add_query_arg([
'order_id' => $order_id,
'token' => $payment_token,
'source' => 'acp'
], wc_get_checkout_url());
// Añadir al response
$response['payment_url'] = $payment_url;
$response['payment_method'] = 'redirect';
return $response;
}
Plugin de ejemplo completo
He creado un plugin de ejemplo que implementa las funcionalidades básicas de ACP para WooCommerce con integración por enlace.
Nota importante: Este es un ejemplo educativo. Para producción, necesitarás añadir validación robusta, manejo de errores, seguridad adicional y pruebas exhaustivas.
El plugin incluye:
- Endpoints API para checkout agéntico
- Generación de enlaces de pago
- Webhooks para notificaciones
- Integración con el sistema de pedidos de WooCommerce
- Panel de administración para configuración
Descargar el plugin de ejemplo
Aquí tienes el código completo de un plugin que te puede ahorrar unos pocos pasos para la implementación en tu propia web o en tiendas de clientes:
<?php
/**
* Plugin Name: Integración ACP para WooCommerce
* Description: Implementa integración del Agentic Commerce Protocol mediante enlaces de pago para WooCommerce
* Version: 1.0.0
* Author: Fernando Tellado
* Author URI: https://ayudawp.com/
* Plugin URI: https://servicios.ayudawp.com/
* Requires at least: 6.4
* Requires PHP: 7.4
* WC requires at least: 10.3
* WC tested up to: 10.5
* License: GPLv2 or later
*/
if (!defined('ABSPATH')) {
exit; // Salir si se accede directamente
}
// Verificar si WooCommerce está activo
if (!in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
return;
}
class AyudaWP_ACP_Link_Integration {
private $version = '1.0.0';
public function __construct() {
// Inicializar plugin
add_action('init', array($this, 'ayudawp_init'));
add_action('rest_api_init', array($this, 'ayudawp_register_rest_routes'));
// Hooks de administración
add_action('admin_menu', array($this, 'ayudawp_add_admin_menu'));
add_action('admin_init', array($this, 'ayudawp_register_settings'));
// Hooks de pedidos para webhooks
add_action('woocommerce_order_status_changed', array($this, 'ayudawp_notify_order_status'), 10, 4);
add_action('woocommerce_new_order', array($this, 'ayudawp_notify_order_created'), 10, 1);
// Declarar compatibilidad con HPOS
add_action('before_woocommerce_init', array($this, 'ayudawp_declare_hpos_compatibility'));
// Activación/Desactivación
register_activation_hook(__FILE__, array($this, 'ayudawp_activate'));
register_deactivation_hook(__FILE__, array($this, 'ayudawp_deactivate'));
}
/**
* Declarar compatibilidad con HPOS (High-Performance Order Storage)
*/
public function ayudawp_declare_hpos_compatibility() {
if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) {
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility('custom_order_tables', __FILE__, true);
}
}
/**
* Activación del plugin
*/
public function ayudawp_activate() {
// Generar secreto de webhook en la activación
if (!get_option('ayudawp_acp_webhook_secret')) {
update_option('ayudawp_acp_webhook_secret', wp_generate_password(64, false));
}
flush_rewrite_rules();
}
/**
* Desactivación del plugin
*/
public function ayudawp_deactivate() {
flush_rewrite_rules();
}
/**
* Inicializar plugin
*/
public function ayudawp_init() {
// Punto de entrada principal
}
/**
* Registrar rutas de la API REST
*/
public function ayudawp_register_rest_routes() {
// Endpoint para iniciar checkout
register_rest_route('acp/v1', '/checkout/initiate', array(
'methods' => 'POST',
'callback' => array($this, 'ayudawp_initiate_checkout'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
// Endpoint para obtener estado del checkout
register_rest_route('acp/v1', '/checkout/(?P<checkout_id>[a-zA-Z0-9_-]+)', array(
'methods' => 'GET',
'callback' => array($this, 'ayudawp_get_checkout_status'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
// Endpoint para actualizar checkout
register_rest_route('acp/v1', '/checkout/(?P<checkout_id>[a-zA-Z0-9_-]+)', array(
'methods' => 'PUT',
'callback' => array($this, 'ayudawp_update_checkout'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
// Endpoint para confirmar checkout
register_rest_route('acp/v1', '/checkout/(?P<checkout_id>[a-zA-Z0-9_-]+)/confirm', array(
'methods' => 'POST',
'callback' => array($this, 'ayudawp_confirm_checkout'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
}
/**
* Verificar petición del agente (implementación básica)
* En producción, implementar autenticación robusta: API keys, OAuth, etc.
*/
public function ayudawp_verify_agent_request($request) {
$api_key = $request->get_header('X-ACP-API-Key');
$stored_key = get_option('ayudawp_acp_api_key');
if (empty($stored_key)) {
// Si no hay API key configurada, permitir para configuración inicial
return true;
}
return $api_key === $stored_key;
}
/**
* Iniciar checkout - Crea un pedido preliminar y genera enlace de pago
*/
public function ayudawp_initiate_checkout($request) {
$params = $request->get_json_params();
// Validar parámetros requeridos
if (!isset($params['product_id']) || !isset($params['quantity'])) {
return new WP_Error('missing_params', 'Se requiere ID de producto y cantidad', array('status' => 400));
}
$product_id = intval($params['product_id']);
$quantity = intval($params['quantity']);
$variation_id = isset($params['variation_id']) ? intval($params['variation_id']) : 0;
// Verificar que el producto existe y está disponible
$product = wc_get_product($variation_id ? $variation_id : $product_id);
if (!$product || !$product->is_in_stock() || !$product->is_purchasable()) {
return new WP_Error('product_unavailable', 'El producto no está disponible', array('status' => 400));
}
// Crear pedido
$order = wc_create_order();
if (is_wp_error($order)) {
return new WP_Error('order_creation_failed', 'Error al crear el pedido', array('status' => 500));
}
// Añadir producto al pedido
$order->add_product($product, $quantity);
// Configurar datos del cliente si se proporcionan
if (isset($params['customer'])) {
$customer = $params['customer'];
$order->set_billing_first_name($customer['first_name'] ?? '');
$order->set_billing_last_name($customer['last_name'] ?? '');
$order->set_billing_email($customer['email'] ?? '');
$order->set_billing_phone($customer['phone'] ?? '');
if (isset($customer['address'])) {
$address = $customer['address'];
$order->set_billing_address_1($address['line1'] ?? '');
$order->set_billing_address_2($address['line2'] ?? '');
$order->set_billing_city($address['city'] ?? '');
$order->set_billing_state($address['state'] ?? '');
$order->set_billing_postcode($address['postal_code'] ?? '');
$order->set_billing_country($address['country'] ?? '');
}
}
// Calcular totales
$order->calculate_totals();
// Generar ID de checkout único
$checkout_id = 'acp_' . wp_generate_password(32, false);
update_post_meta($order->get_id(), '_acp_checkout_id', $checkout_id);
update_post_meta($order->get_id(), '_acp_agent_source', $params['agent_id'] ?? 'unknown');
update_post_meta($order->get_id(), '_acp_webhook_url', $params['webhook_url'] ?? '');
// Establecer estado del pedido como pendiente
$order->set_status('pending', 'Pedido creado vía ACP');
$order->save();
// Generar enlace de pago seguro
$payment_token = wp_generate_password(32, false);
update_post_meta($order->get_id(), '_acp_payment_token', $payment_token);
$payment_url = add_query_arg(array(
'order_id' => $order->get_id(),
'token' => $payment_token,
'source' => 'acp',
'utm_source' => 'chatgpt.com'
), wc_get_checkout_url());
// Preparar respuesta
$response = array(
'checkout_id' => $checkout_id,
'order_id' => $order->get_id(),
'status' => 'initiated',
'payment_method' => 'redirect',
'payment_url' => $payment_url,
'expires_at' => date('c', strtotime('+1 hour')),
'order_total' => array(
'amount' => floatval($order->get_total()),
'currency' => get_woocommerce_currency()
),
'items' => array(
array(
'product_id' => $product_id,
'variation_id' => $variation_id,
'name' => $product->get_name(),
'quantity' => $quantity,
'price' => floatval($product->get_price()),
'total' => floatval($product->get_price() * $quantity)
)
)
);
return rest_ensure_response($response);
}
/**
* Obtener estado del checkout
*/
public function ayudawp_get_checkout_status($request) {
$checkout_id = $request->get_param('checkout_id');
// Buscar pedido por ID de checkout
$orders = wc_get_orders(array(
'meta_key' => '_acp_checkout_id',
'meta_value' => $checkout_id,
'limit' => 1
));
if (empty($orders)) {
return new WP_Error('checkout_not_found', 'Checkout no encontrado', array('status' => 404));
}
$order = $orders[0];
$response = array(
'checkout_id' => $checkout_id,
'order_id' => $order->get_id(),
'status' => $this->ayudawp_map_order_status($order->get_status()),
'order_total' => array(
'amount' => floatval($order->get_total()),
'currency' => get_woocommerce_currency()
),
'customer' => array(
'email' => $order->get_billing_email(),
'name' => $order->get_billing_first_name() . ' ' . $order->get_billing_last_name()
)
);
// Añadir información de seguimiento si está disponible
$tracking = $order->get_meta('_tracking_number');
if ($tracking) {
$response['tracking'] = array(
'number' => $tracking,
'url' => $order->get_meta('_tracking_url')
);
}
return rest_ensure_response($response);
}
/**
* Actualizar checkout - Permite modificar datos del cliente o pedido
*/
public function ayudawp_update_checkout($request) {
$checkout_id = $request->get_param('checkout_id');
$params = $request->get_json_params();
// Buscar pedido
$orders = wc_get_orders(array(
'meta_key' => '_acp_checkout_id',
'meta_value' => $checkout_id,
'limit' => 1
));
if (empty($orders)) {
return new WP_Error('checkout_not_found', 'Checkout no encontrado', array('status' => 404));
}
$order = $orders[0];
// Actualizar datos del cliente si se proporcionan
if (isset($params['customer'])) {
$customer = $params['customer'];
if (isset($customer['email'])) $order->set_billing_email($customer['email']);
if (isset($customer['phone'])) $order->set_billing_phone($customer['phone']);
if (isset($customer['address'])) {
$address = $customer['address'];
if (isset($address['line1'])) $order->set_billing_address_1($address['line1']);
if (isset($address['city'])) $order->set_billing_city($address['city']);
if (isset($address['postal_code'])) $order->set_billing_postcode($address['postal_code']);
}
}
$order->calculate_totals();
$order->save();
return $this->ayudawp_get_checkout_status($request);
}
/**
* Confirmar checkout - Marca el pedido como confirmado
*/
public function ayudawp_confirm_checkout($request) {
$checkout_id = $request->get_param('checkout_id');
// Buscar pedido
$orders = wc_get_orders(array(
'meta_key' => '_acp_checkout_id',
'meta_value' => $checkout_id,
'limit' => 1
));
if (empty($orders)) {
return new WP_Error('checkout_not_found', 'Checkout no encontrado', array('status' => 404));
}
$order = $orders[0];
// Actualizar estado del pedido a procesando
$order->set_status('processing', 'Pedido confirmado vía ACP');
$order->save();
return rest_ensure_response(array(
'checkout_id' => $checkout_id,
'order_id' => $order->get_id(),
'status' => 'confirmed',
'message' => 'Pedido confirmado correctamente'
));
}
/**
* Mapear estado de pedido WooCommerce a estado ACP
*/
private function ayudawp_map_order_status($wc_status) {
$status_map = array(
'pending' => 'pending_payment',
'processing' => 'processing',
'on-hold' => 'on_hold',
'completed' => 'completed',
'cancelled' => 'cancelled',
'refunded' => 'refunded',
'failed' => 'failed'
);
return $status_map[$wc_status] ?? 'unknown';
}
/**
* Notificar al agente sobre cambio de estado del pedido
*/
public function ayudawp_notify_order_status($order_id, $old_status, $new_status, $order) {
$checkout_id = get_post_meta($order_id, '_acp_checkout_id', true);
if (!$checkout_id) {
return; // No es un pedido ACP
}
$webhook_url = get_post_meta($order_id, '_acp_webhook_url', true);
if (!$webhook_url) {
return; // No hay webhook configurado
}
$this->ayudawp_send_webhook($webhook_url, array(
'event' => 'order.status_changed',
'checkout_id' => $checkout_id,
'order_id' => $order_id,
'old_status' => $this->ayudawp_map_order_status($old_status),
'new_status' => $this->ayudawp_map_order_status($new_status),
'timestamp' => current_time('c')
));
}
/**
* Notificar al agente sobre nuevo pedido
*/
public function ayudawp_notify_order_created($order_id) {
$order = wc_get_order($order_id);
$checkout_id = get_post_meta($order_id, '_acp_checkout_id', true);
if (!$checkout_id) {
return;
}
$webhook_url = get_post_meta($order_id, '_acp_webhook_url', true);
if (!$webhook_url) {
return;
}
$this->ayudawp_send_webhook($webhook_url, array(
'event' => 'order.created',
'checkout_id' => $checkout_id,
'order_id' => $order_id,
'status' => $this->ayudawp_map_order_status($order->get_status()),
'timestamp' => current_time('c')
));
}
/**
* Enviar notificación webhook
*/
private function ayudawp_send_webhook($url, $payload) {
$secret = get_option('ayudawp_acp_webhook_secret');
$signature = hash_hmac('sha256', json_encode($payload), $secret);
wp_remote_post($url, array(
'body' => json_encode($payload),
'headers' => array(
'Content-Type' => 'application/json',
'X-ACP-Signature' => $signature
),
'timeout' => 10,
'blocking' => false // No esperar respuesta
));
}
/**
* Añadir menú de administración
*/
public function ayudawp_add_admin_menu() {
add_submenu_page(
'woocommerce',
'Integración ACP',
'Ajustes ACP',
'manage_woocommerce',
'acp-settings',
array($this, 'ayudawp_settings_page')
);
}
/**
* Registrar ajustes
*/
public function ayudawp_register_settings() {
register_setting('ayudawp_acp_settings', 'ayudawp_acp_api_key');
register_setting('ayudawp_acp_settings', 'ayudawp_acp_webhook_secret');
register_setting('ayudawp_acp_settings', 'ayudawp_acp_enabled');
}
/**
* Página de ajustes
*/
public function ayudawp_settings_page() {
?>
<div class="wrap">
<h1>Ajustes de integración ACP</h1>
<p>Configura la integración del Agentic Commerce Protocol para checkout mediante enlaces.</p>
<form method="post" action="options.php">
<?php settings_fields('ayudawp_acp_settings'); ?>
<?php do_settings_sections('ayudawp_acp_settings'); ?>
<table class="form-table">
<tr>
<th scope="row">
<label for="ayudawp_acp_enabled">Activar ACP</label>
</th>
<td>
<input type="checkbox" id="ayudawp_acp_enabled" name="ayudawp_acp_enabled" value="1" <?php checked(get_option('ayudawp_acp_enabled'), '1'); ?> />
<p class="description">Activar la integración del Agentic Commerce Protocol</p>
</td>
</tr>
<tr>
<th scope="row">
<label for="ayudawp_acp_api_key">Clave API</label>
</th>
<td>
<input type="text" id="ayudawp_acp_api_key" name="ayudawp_acp_api_key" value="<?php echo esc_attr(get_option('ayudawp_acp_api_key')); ?>" class="regular-text" />
<p class="description">Clave API para autenticar peticiones de agentes. Genera una cadena aleatoria segura.</p>
<button type="button" class="button" onclick="document.getElementById('ayudawp_acp_api_key').value = Math.random().toString(36).substring(2) + Math.random().toString(36).substring(2);">Generar clave</button>
</td>
</tr>
<tr>
<th scope="row">
<label for="ayudawp_acp_webhook_secret">Secreto de webhook</label>
</th>
<td>
<input type="text" id="ayudawp_acp_webhook_secret" name="ayudawp_acp_webhook_secret" value="<?php echo esc_attr(get_option('ayudawp_acp_webhook_secret')); ?>" class="regular-text" readonly />
<p class="description">Clave secreta para firmar notificaciones webhook. Se genera automáticamente al activar el plugin.</p>
</td>
</tr>
</table>
<h2>Endpoints de la API</h2>
<p>Comparte estos endpoints con los agentes de IA para habilitar el checkout:</p>
<ul>
<li><strong>Iniciar checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/initiate')); ?></code></li>
<li><strong>Obtener checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/{checkout_id}')); ?></code></li>
<li><strong>Actualizar checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/{checkout_id}')); ?></code></li>
<li><strong>Confirmar checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/{checkout_id}/confirm')); ?></code></li>
</ul>
<?php submit_button('Guardar cambios'); ?>
</form>
</div>
<?php
}
}
// Inicializar plugin
new AyudaWP_ACP_Link_Integration();
<?php
/**
* Plugin Name: Integración ACP para WooCommerce
* Description: Implementa integración del Agentic Commerce Protocol mediante enlaces de pago para WooCommerce
* Version: 1.0.0
* Author: Fernando Tellado
* Author URI: https://ayudawp.com/
* Plugin URI: https://servicios.ayudawp.com/
* Requires at least: 6.4
* Requires PHP: 7.4
* WC requires at least: 10.3
* WC tested up to: 10.5
* License: GPLv2 or later
*/
if (!defined('ABSPATH')) {
exit; // Salir si se accede directamente
}
// Verificar si WooCommerce está activo
if (!in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
return;
}
class AyudaWP_ACP_Link_Integration {
private $version = '1.0.0';
public function __construct() {
// Inicializar plugin
add_action('init', array($this, 'ayudawp_init'));
add_action('rest_api_init', array($this, 'ayudawp_register_rest_routes'));
// Hooks de administración
add_action('admin_menu', array($this, 'ayudawp_add_admin_menu'));
add_action('admin_init', array($this, 'ayudawp_register_settings'));
// Hooks de pedidos para webhooks
add_action('woocommerce_order_status_changed', array($this, 'ayudawp_notify_order_status'), 10, 4);
add_action('woocommerce_new_order', array($this, 'ayudawp_notify_order_created'), 10, 1);
// Declarar compatibilidad con HPOS
add_action('before_woocommerce_init', array($this, 'ayudawp_declare_hpos_compatibility'));
// Activación/Desactivación
register_activation_hook(__FILE__, array($this, 'ayudawp_activate'));
register_deactivation_hook(__FILE__, array($this, 'ayudawp_deactivate'));
}
/**
* Declarar compatibilidad con HPOS (High-Performance Order Storage)
*/
public function ayudawp_declare_hpos_compatibility() {
if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) {
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility('custom_order_tables', __FILE__, true);
}
}
/**
* Activación del plugin
*/
public function ayudawp_activate() {
// Generar secreto de webhook en la activación
if (!get_option('ayudawp_acp_webhook_secret')) {
update_option('ayudawp_acp_webhook_secret', wp_generate_password(64, false));
}
flush_rewrite_rules();
}
/**
* Desactivación del plugin
*/
public function ayudawp_deactivate() {
flush_rewrite_rules();
}
/**
* Inicializar plugin
*/
public function ayudawp_init() {
// Punto de entrada principal
}
/**
* Registrar rutas de la API REST
*/
public function ayudawp_register_rest_routes() {
// Endpoint para iniciar checkout
register_rest_route('acp/v1', '/checkout/initiate', array(
'methods' => 'POST',
'callback' => array($this, 'ayudawp_initiate_checkout'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
// Endpoint para obtener estado del checkout
register_rest_route('acp/v1', '/checkout/(?P<checkout_id>[a-zA-Z0-9_-]+)', array(
'methods' => 'GET',
'callback' => array($this, 'ayudawp_get_checkout_status'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
// Endpoint para actualizar checkout
register_rest_route('acp/v1', '/checkout/(?P<checkout_id>[a-zA-Z0-9_-]+)', array(
'methods' => 'PUT',
'callback' => array($this, 'ayudawp_update_checkout'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
// Endpoint para confirmar checkout
register_rest_route('acp/v1', '/checkout/(?P<checkout_id>[a-zA-Z0-9_-]+)/confirm', array(
'methods' => 'POST',
'callback' => array($this, 'ayudawp_confirm_checkout'),
'permission_callback' => array($this, 'ayudawp_verify_agent_request'),
));
}
/**
* Verificar petición del agente (implementación básica)
* En producción, implementar autenticación robusta: API keys, OAuth, etc.
*/
public function ayudawp_verify_agent_request($request) {
$api_key = $request->get_header('X-ACP-API-Key');
$stored_key = get_option('ayudawp_acp_api_key');
if (empty($stored_key)) {
// Si no hay API key configurada, permitir para configuración inicial
return true;
}
return $api_key === $stored_key;
}
/**
* Iniciar checkout - Crea un pedido preliminar y genera enlace de pago
*/
public function ayudawp_initiate_checkout($request) {
$params = $request->get_json_params();
// Validar parámetros requeridos
if (!isset($params['product_id']) || !isset($params['quantity'])) {
return new WP_Error('missing_params', 'Se requiere ID de producto y cantidad', array('status' => 400));
}
$product_id = intval($params['product_id']);
$quantity = intval($params['quantity']);
$variation_id = isset($params['variation_id']) ? intval($params['variation_id']) : 0;
// Verificar que el producto existe y está disponible
$product = wc_get_product($variation_id ? $variation_id : $product_id);
if (!$product || !$product->is_in_stock() || !$product->is_purchasable()) {
return new WP_Error('product_unavailable', 'El producto no está disponible', array('status' => 400));
}
// Crear pedido
$order = wc_create_order();
if (is_wp_error($order)) {
return new WP_Error('order_creation_failed', 'Error al crear el pedido', array('status' => 500));
}
// Añadir producto al pedido
$order->add_product($product, $quantity);
// Configurar datos del cliente si se proporcionan
if (isset($params['customer'])) {
$customer = $params['customer'];
$order->set_billing_first_name($customer['first_name'] ?? '');
$order->set_billing_last_name($customer['last_name'] ?? '');
$order->set_billing_email($customer['email'] ?? '');
$order->set_billing_phone($customer['phone'] ?? '');
if (isset($customer['address'])) {
$address = $customer['address'];
$order->set_billing_address_1($address['line1'] ?? '');
$order->set_billing_address_2($address['line2'] ?? '');
$order->set_billing_city($address['city'] ?? '');
$order->set_billing_state($address['state'] ?? '');
$order->set_billing_postcode($address['postal_code'] ?? '');
$order->set_billing_country($address['country'] ?? '');
}
}
// Calcular totales
$order->calculate_totals();
// Generar ID de checkout único
$checkout_id = 'acp_' . wp_generate_password(32, false);
update_post_meta($order->get_id(), '_acp_checkout_id', $checkout_id);
update_post_meta($order->get_id(), '_acp_agent_source', $params['agent_id'] ?? 'unknown');
update_post_meta($order->get_id(), '_acp_webhook_url', $params['webhook_url'] ?? '');
// Establecer estado del pedido como pendiente
$order->set_status('pending', 'Pedido creado vía ACP');
$order->save();
// Generar enlace de pago seguro
$payment_token = wp_generate_password(32, false);
update_post_meta($order->get_id(), '_acp_payment_token', $payment_token);
$payment_url = add_query_arg(array(
'order_id' => $order->get_id(),
'token' => $payment_token,
'source' => 'acp',
'utm_source' => 'chatgpt.com'
), wc_get_checkout_url());
// Preparar respuesta
$response = array(
'checkout_id' => $checkout_id,
'order_id' => $order->get_id(),
'status' => 'initiated',
'payment_method' => 'redirect',
'payment_url' => $payment_url,
'expires_at' => date('c', strtotime('+1 hour')),
'order_total' => array(
'amount' => floatval($order->get_total()),
'currency' => get_woocommerce_currency()
),
'items' => array(
array(
'product_id' => $product_id,
'variation_id' => $variation_id,
'name' => $product->get_name(),
'quantity' => $quantity,
'price' => floatval($product->get_price()),
'total' => floatval($product->get_price() * $quantity)
)
)
);
return rest_ensure_response($response);
}
/**
* Obtener estado del checkout
*/
public function ayudawp_get_checkout_status($request) {
$checkout_id = $request->get_param('checkout_id');
// Buscar pedido por ID de checkout
$orders = wc_get_orders(array(
'meta_key' => '_acp_checkout_id',
'meta_value' => $checkout_id,
'limit' => 1
));
if (empty($orders)) {
return new WP_Error('checkout_not_found', 'Checkout no encontrado', array('status' => 404));
}
$order = $orders[0];
$response = array(
'checkout_id' => $checkout_id,
'order_id' => $order->get_id(),
'status' => $this->ayudawp_map_order_status($order->get_status()),
'order_total' => array(
'amount' => floatval($order->get_total()),
'currency' => get_woocommerce_currency()
),
'customer' => array(
'email' => $order->get_billing_email(),
'name' => $order->get_billing_first_name() . ' ' . $order->get_billing_last_name()
)
);
// Añadir información de seguimiento si está disponible
$tracking = $order->get_meta('_tracking_number');
if ($tracking) {
$response['tracking'] = array(
'number' => $tracking,
'url' => $order->get_meta('_tracking_url')
);
}
return rest_ensure_response($response);
}
/**
* Actualizar checkout - Permite modificar datos del cliente o pedido
*/
public function ayudawp_update_checkout($request) {
$checkout_id = $request->get_param('checkout_id');
$params = $request->get_json_params();
// Buscar pedido
$orders = wc_get_orders(array(
'meta_key' => '_acp_checkout_id',
'meta_value' => $checkout_id,
'limit' => 1
));
if (empty($orders)) {
return new WP_Error('checkout_not_found', 'Checkout no encontrado', array('status' => 404));
}
$order = $orders[0];
// Actualizar datos del cliente si se proporcionan
if (isset($params['customer'])) {
$customer = $params['customer'];
if (isset($customer['email'])) $order->set_billing_email($customer['email']);
if (isset($customer['phone'])) $order->set_billing_phone($customer['phone']);
if (isset($customer['address'])) {
$address = $customer['address'];
if (isset($address['line1'])) $order->set_billing_address_1($address['line1']);
if (isset($address['city'])) $order->set_billing_city($address['city']);
if (isset($address['postal_code'])) $order->set_billing_postcode($address['postal_code']);
}
}
$order->calculate_totals();
$order->save();
return $this->ayudawp_get_checkout_status($request);
}
/**
* Confirmar checkout - Marca el pedido como confirmado
*/
public function ayudawp_confirm_checkout($request) {
$checkout_id = $request->get_param('checkout_id');
// Buscar pedido
$orders = wc_get_orders(array(
'meta_key' => '_acp_checkout_id',
'meta_value' => $checkout_id,
'limit' => 1
));
if (empty($orders)) {
return new WP_Error('checkout_not_found', 'Checkout no encontrado', array('status' => 404));
}
$order = $orders[0];
// Actualizar estado del pedido a procesando
$order->set_status('processing', 'Pedido confirmado vía ACP');
$order->save();
return rest_ensure_response(array(
'checkout_id' => $checkout_id,
'order_id' => $order->get_id(),
'status' => 'confirmed',
'message' => 'Pedido confirmado correctamente'
));
}
/**
* Mapear estado de pedido WooCommerce a estado ACP
*/
private function ayudawp_map_order_status($wc_status) {
$status_map = array(
'pending' => 'pending_payment',
'processing' => 'processing',
'on-hold' => 'on_hold',
'completed' => 'completed',
'cancelled' => 'cancelled',
'refunded' => 'refunded',
'failed' => 'failed'
);
return $status_map[$wc_status] ?? 'unknown';
}
/**
* Notificar al agente sobre cambio de estado del pedido
*/
public function ayudawp_notify_order_status($order_id, $old_status, $new_status, $order) {
$checkout_id = get_post_meta($order_id, '_acp_checkout_id', true);
if (!$checkout_id) {
return; // No es un pedido ACP
}
$webhook_url = get_post_meta($order_id, '_acp_webhook_url', true);
if (!$webhook_url) {
return; // No hay webhook configurado
}
$this->ayudawp_send_webhook($webhook_url, array(
'event' => 'order.status_changed',
'checkout_id' => $checkout_id,
'order_id' => $order_id,
'old_status' => $this->ayudawp_map_order_status($old_status),
'new_status' => $this->ayudawp_map_order_status($new_status),
'timestamp' => current_time('c')
));
}
/**
* Notificar al agente sobre nuevo pedido
*/
public function ayudawp_notify_order_created($order_id) {
$order = wc_get_order($order_id);
$checkout_id = get_post_meta($order_id, '_acp_checkout_id', true);
if (!$checkout_id) {
return;
}
$webhook_url = get_post_meta($order_id, '_acp_webhook_url', true);
if (!$webhook_url) {
return;
}
$this->ayudawp_send_webhook($webhook_url, array(
'event' => 'order.created',
'checkout_id' => $checkout_id,
'order_id' => $order_id,
'status' => $this->ayudawp_map_order_status($order->get_status()),
'timestamp' => current_time('c')
));
}
/**
* Enviar notificación webhook
*/
private function ayudawp_send_webhook($url, $payload) {
$secret = get_option('ayudawp_acp_webhook_secret');
$signature = hash_hmac('sha256', json_encode($payload), $secret);
wp_remote_post($url, array(
'body' => json_encode($payload),
'headers' => array(
'Content-Type' => 'application/json',
'X-ACP-Signature' => $signature
),
'timeout' => 10,
'blocking' => false // No esperar respuesta
));
}
/**
* Añadir menú de administración
*/
public function ayudawp_add_admin_menu() {
add_submenu_page(
'woocommerce',
'Integración ACP',
'Ajustes ACP',
'manage_woocommerce',
'acp-settings',
array($this, 'ayudawp_settings_page')
);
}
/**
* Registrar ajustes
*/
public function ayudawp_register_settings() {
register_setting('ayudawp_acp_settings', 'ayudawp_acp_api_key');
register_setting('ayudawp_acp_settings', 'ayudawp_acp_webhook_secret');
register_setting('ayudawp_acp_settings', 'ayudawp_acp_enabled');
}
/**
* Página de ajustes
*/
public function ayudawp_settings_page() {
?>
<div class="wrap">
<h1>Ajustes de integración ACP</h1>
<p>Configura la integración del Agentic Commerce Protocol para checkout mediante enlaces.</p>
<form method="post" action="options.php">
<?php settings_fields('ayudawp_acp_settings'); ?>
<?php do_settings_sections('ayudawp_acp_settings'); ?>
<table class="form-table">
<tr>
<th scope="row">
<label for="ayudawp_acp_enabled">Activar ACP</label>
</th>
<td>
<input type="checkbox" id="ayudawp_acp_enabled" name="ayudawp_acp_enabled" value="1" <?php checked(get_option('ayudawp_acp_enabled'), '1'); ?> />
<p class="description">Activar la integración del Agentic Commerce Protocol</p>
</td>
</tr>
<tr>
<th scope="row">
<label for="ayudawp_acp_api_key">Clave API</label>
</th>
<td>
<input type="text" id="ayudawp_acp_api_key" name="ayudawp_acp_api_key" value="<?php echo esc_attr(get_option('ayudawp_acp_api_key')); ?>" class="regular-text" />
<p class="description">Clave API para autenticar peticiones de agentes. Genera una cadena aleatoria segura.</p>
<button type="button" class="button" onclick="document.getElementById('ayudawp_acp_api_key').value = Math.random().toString(36).substring(2) + Math.random().toString(36).substring(2);">Generar clave</button>
</td>
</tr>
<tr>
<th scope="row">
<label for="ayudawp_acp_webhook_secret">Secreto de webhook</label>
</th>
<td>
<input type="text" id="ayudawp_acp_webhook_secret" name="ayudawp_acp_webhook_secret" value="<?php echo esc_attr(get_option('ayudawp_acp_webhook_secret')); ?>" class="regular-text" readonly />
<p class="description">Clave secreta para firmar notificaciones webhook. Se genera automáticamente al activar el plugin.</p>
</td>
</tr>
</table>
<h2>Endpoints de la API</h2>
<p>Comparte estos endpoints con los agentes de IA para habilitar el checkout:</p>
<ul>
<li><strong>Iniciar checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/initiate')); ?></code></li>
<li><strong>Obtener checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/{checkout_id}')); ?></code></li>
<li><strong>Actualizar checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/{checkout_id}')); ?></code></li>
<li><strong>Confirmar checkout:</strong> <code><?php echo esc_url(rest_url('acp/v1/checkout/{checkout_id}/confirm')); ?></code></li>
</ul>
<?php submit_button('Guardar cambios'); ?>
</form>
</div>
<?php
}
}
// Inicializar plugin
new AyudaWP_ACP_Link_Integration();
Características del plugin:
- ¡Funciona!
- Endpoints REST API completos para checkout agéntico
- Generación automática de enlaces de pago seguros
- Sistema de webhooks para notificaciones de estado
- Panel de ajustes en WooCommerce para configuración
- Autenticación mediante clave API
- Integración completa con el sistema de pedidos de WooCommerce
- Compatibilidad con el sistema de almacenamiento HPOS
Cómo instalarlo:
- Copia el código del plugin completo
- Guárdalo en un archivo llamado
acp-woocommerce-link-integration.php - Crea una carpeta llamada
acp-woocommerce-linken/wp-content/plugins/ - Sube el archivo PHP a esa carpeta
- Ve a Plugins en tu WordPress y activa «Integración ACP para WooCommerce»
- Ve a WooCommerce > Ajustes ACP para configurar
- Genera una clave API desde el panel de ajustes
El plugin está listo para usar una vez activado. Los endpoints API estarán disponibles inmediatamente.
Buenas prácticas para desarrolladores
Seguridad
- Valida SIEMPRE los tokens de autenticación
- Verifica firmas de webhooks
- Usa nonces para peticiones sensibles
- Limita rate de API endpoints
- Registra intentos fallidos
- Nunca expongas claves de API en el código
Rendimiento
- Cachea respuestas cuando sea posible
- Usa transients para datos temporales
- Optimiza queries de base de datos
- Implementa límites de timeout razonables
- Considera usar cola de trabajos para tareas pesadas
Compatibilidad
- Sigue los estándares de WordPress y WooCommerce
- Usa hooks y filtros para extensibilidad
- Documenta tu código
- Prepara para internacionalización
- Prueba con diferentes configuraciones de servidor
Monitorización
- Activa un registro de errores lo más detallado posible
- Registra todas las transacciones ACP
- Monitoriza tasas de error
- Alerta en caso de fallos críticos
- Mantén métricas de rendimiento
El futuro del comercio agéntico

Estamos solo al principio de una transformación profunda en cómo las personas compran online.
Más allá de ChatGPT
Aunque ChatGPT es el primero en lanzar Instant Checkout, el protocolo ACP es abierto y otras IAs lo implementarán:
- Claude (Anthropic): Podría integrar commerce en su interfaz
- Gemini (Google): Google tiene su propio protocolo (AP2) pero podría adoptar ACP
- Perplexity: Ya tiene funciones de shopping, podría mejorarlas con ACP
- Microsoft Copilot: Tiene su programa de merchants, compatible con ACP
Nuevas experiencias de compra
Compras multimodales
Los usuarios podrán:
- Mostrar una foto y pedir «
busca algo parecido» - Usar voz para hacer pedidos
- Compartir pantalla para obtener recomendaciones
Agentes proactivos
Las IAs podrán:
- Recordar preferencias y alergias
- Hacer pedidos recurrentes automáticamente
- Avisar de ofertas relevantes
- Comparar precios entre tiendas en tiempo real
Carritos multi-tienda
Un usuario podrá decir:
Organiza mi viaje a Japón: vuelos, hoteles, visitas guiadas y compra un adaptador de corriente
Y el agente comprará de múltiples comercios en una sola transacción.
Impacto en el sector
Para pequeñas tiendas
El comercio agéntico puede nivelar el campo de juego:
- Acceso a millones de usuarios sin pagar por anuncios
- Competir con grandes marketplaces
- Visibilidad basada en relevancia, no en presupuesto
Para marketplaces
Amazon, eBay y similares deberán adaptarse:
- Los usuarios pueden preferir preguntar a una IA (supuestamente) neutral
- La experiencia de compra se fragmenta fuera de su plataforma
- Necesitarán implementar sus propios agentes
Para Google y el SEO tradicional
El cambio más disruptivo:
- Menos búsquedas tradicionales en Google
- El tráfico orgánico puede disminuir
- Surge un nuevo SEO: la optimización para IAs (AEO)
- Los anuncios de Google Shopping pueden perder relevancia
Ejemplos (posibles) de uso reales
Aunque aún no hay muchos casos públicos debido a que está en fase inicial, estos son algunos escenarios donde ACP puede generar gran impacto:
Tienda de productos orgánicos
- Un usuario pregunta:
Necesito productos de limpieza ecológicos que no dañen el medio ambiente, presupuesto 50 euros. - ChatGPT muestra productos de tu tienda especializada en productos ecológicos. Con ACP, el usuario compra en un solo clic sin tener que navegar por tu web, comparar productos, o rellenar formularios.
Ventaja: Acceso a clientes muy cualificados que buscan exactamente lo que vendes.
Tienda de electrónica
- Usuario:
Busco un portátil para diseño gráfico, menos de 1.500 euros, que tenga buena tarjeta gráfica. - ChatGPT analiza tu catálogo, entiende las especificaciones técnicas, y recomienda los modelos que mejor se ajustan. Con ACP, cierra la venta directamente.
Ventaja: Los usuarios que buscan productos técnicos valoran la capacidad de la IA para entender especificaciones complejas.
Tienda de moda
- Usuario:
Quiero un vestido para una boda en verano, estilo elegante pero cómodo, talla 42. - La IA puede entender conceptos subjetivos como «elegante pero cómodo» y mostrar productos de tu catálogo que encajen. Con ACP, la compra es inmediata.
Ventaja: Búsqueda conversacional más natural que los filtros tradicionales.
Tienda de alimentación especializada
- Usuario:
Necesito ingredientes para hacer paella valenciana para 6 personas, pero soy celíaco.Tu código aquí - ChatGPT puede crear una lista completa de productos de tu tienda, asegurándose de que sean aptos para celíacos, y permitir la compra de todo el carrito de una vez.
Ventaja: Ventas de múltiples productos en una sola transacción.
Tienda de regalos personalizados
- Usuario:
Regalo para mi padre que le gusta pescar, presupuesto 60 euros. - La IA puede buscar en tu catálogo productos relacionados con pesca, considerar el presupuesto, y hacer recomendaciones personalizadas. Con ACP, el proceso de compra es inmediato.
Ventaja: Capturas clientes en el momento de máxima intención de compra.
Predicciones – mías pero totalmente acertadas – para los próximos años
2025:
- Expansión de Instant Checkout a más países y comercios
- Más pasarelas de pago empiezan a adoptar ACP
- Otras IAs comienzan a implementar soluciones Ecommerce
2026:
- 10-20% de las compras online empiezan en una IA
- Carritos multi-tienda se vuelven comunes
- Agentes proactivos comienzan a hacer compras autónomas
2027-2028:
- El comercio agéntico representa 30-40% del ecommerce
- Google lanza su propia respuesta integrada
- Aparecen agentes de IA especializados en shopping
Cómo prepararte para lo que viene
- Implementa ACP cuanto antes: Los early adopters tendrán ventaja
- Optimiza para IAs: No solo para Google
- Mantén datos impecables: Las IAs priorizan información precisa
- Monitoriza el tráfico: Observa de dónde vienen tus clientes
- Experimenta: Prueba, mide, aprende y adapta
- Forma a tu equipo: El comercio agéntico requiere nuevas habilidades
Referencias y recursos oficiales
Documentación oficial de OpenAI
- Página principal de ACP: https://developers.openai.com/commerce
- Guía de inicio: https://developers.openai.com/commerce/guides/get-started
- Conceptos clave: https://developers.openai.com/commerce/guides/key-concepts
- Producción: https://developers.openai.com/commerce/guides/production
- Product Feed Spec: https://developers.openai.com/commerce/specs/feed
- Anuncio oficial Instant Checkout: https://openai.com/index/buy-it-in-chatgpt/
- Formulario para vendedores: https://chatgpt.com/merchants
Recursos de Stripe
- Blog sobre ACP: https://stripe.com/blog/developing-an-open-standard-for-agentic-commerce
- Documentación técnica: https://docs.stripe.com/agentic-commerce
Sitio web oficial del protocolo
- Agentic Commerce Protocol: https://www.agenticcommerce.dev/
- Repositorio GitHub: https://github.com/agentic-commerce-protocol
Recursos de WordPress/WooCommerce
- Artículo oficial WooCommerce sobre AI y ACP: https://developer.woocommerce.com/2025/10/03/ai-agentic-commerce-in-woocommerce/
- WordPress MCP Adapter: https://github.com/WordPress/mcp-adapter
- WordPress Abilities API: https://github.com/WordPress/abilities-api
- AI Building Blocks WordPress: https://make.wordpress.org/ai/
- WooCommerce Community Slack: https://woocommerce.com/community-slack/ (canal #ai-and-mcp)
Guías relacionadas en Ayuda WordPress
- Cómo hacer que ChatGPT recomiende tus productos
- MCP (Model Context Protocol) aplicado a WordPress y ¡por qué debes ponerte las pilas YA MISMO con ello!
- AI Building Blocks: WordPress + IA es el futuro
- Tutoriales de IA y WordPress
Expertos y desarrolladores a seguir
- José Conti: Desarrollador especializado en WooCommerce y pasarelas de pago.
- Develop with Woo: Cuenta en Twitter para desarrolladores de WooCommerce.
- James Kemp: Jefe de producto de WooCommerce.
- Canal oficial de OpenAI: @OpenAI en redes sociales
Herramientas útiles
- JSON Validator: https://jsonlint.com/
- Schema.org Validator: https://validator.schema.org/
- Google Rich Results Test: https://search.google.com/test/rich-results
- Postman: Para probar endpoints API: https://www.postman.com/
Comunidades y foros
- OpenAI Developer Community: https://community.openai.com/
- WooCommerce Developers: https://woocommerce.com/developers/
- WordPress España: Grupos en redes sociales, WordCamps y meetups locales
Preguntas frecuentes (sí, he preparado unas FAQ sobre ACP)
Lo sé, te lo has estudiado todo y, por supuesto, tienes un lío en la cabeza de la hostia, así que aquí tienes a tu amigo Fernando que te hace un resumen de las dudas que a todos nos asaltan…
¿Cuánto cuesta implementar el Agentic Commerce Protocol?
La implementación técnica es gratuita (los plugins son de código abierto), pero pagarás:
- Una pequeña comisión por cada venta completada a través de ChatGPT
- Las comisiones habituales de tu pasarela de pago
- La comisión es reembolsable si hay devolución
OpenAI no ha publicado la tasa exacta de comisión, pero se espera que sea competitiva con otras plataformas.
¿Funciona ACP solo con ChatGPT?
No. ACP es un protocolo abierto que cualquier IA puede implementar. ChatGPT es el primero, pero se espera que otras plataformas lo adopten.
¿Necesito cambiar de pasarela de pago?
Depende… Si usas Stripe, ya estás preparado. Si usas Redsys, espera la actualización del plugin compatible con ACP. Para otras pasarelas, consulta con el desarrollador del plugin.
También puedes usar Stripe exclusivamente para pagos agénticos mientras mantienes tu pasarela actual para el resto.
¿Mi tienda desaparecerá si uso ACP?
No, al contrario. Tu tienda sigue siendo el centro de todo. Los pedidos se procesan en tu sistema, gestionas el inventario, los envíos y la atención al cliente. ACP es solo un nuevo canal de entrada.
¿Puedo usar ACP si mi tienda no está en Estados Unidos?
Actualmente Instant Checkout solo funciona en Estados Unidos, pero la expansión internacional está planificada. Puedes preparar tu tienda ahora para estar listo cuando llegue a tu país.
¿Necesito ser desarrollador para implementar ACP?
Para la versión beta actual, sí necesitas conocimientos técnicos o contratar a un desarrollador. A medida que la tecnología madure, aparecerán plugins más accesibles que simplifiquen el proceso.
¿ACP es seguro?
Sí. El protocolo cumple con estándares de seguridad en pagos (PCI DSS) y usa tokens de pago delegados que limitan el acceso y el uso de las credenciales del usuario.
¿Qué pasa si rechazo un pedido?
Tú decides si aceptar o rechazar cada pedido basándote en señales de fraude, disponibilidad de inventario, o cualquier otro criterio. Si rechazas un pedido, el usuario recibe una notificación y no se procesa el pago.
¿Cómo afecta ACP al SEO tradicional?
El SEO tradicional sigue siendo importante para tráfico directo desde buscadores. ACP es un canal adicional, complementario. Lo ideal es estar optimizado para ambos: motores de búsqueda tradicionales e IAs.
¿Puedo medir el ROI del tráfico de ChatGPT?
Sí. Todos los pedidos desde ChatGPT incluyen el parámetro UTM utm_source=chatgpt.com, lo que te permite rastrear ventas, conversiones y ROI en Google Analytics.
¿Hay límite de productos que puedo incluir en el feed?
No hay un límite oficial publicado, pero se recomienda usar paginación en el feed si tienes más de 10.000 productos para optimizar el rendimiento.
¿ChatGPT cobra por mostrar mis productos?
No. La aparición de productos en las recomendaciones es orgánica y gratuita. Solo pagas una comisión cuando se completa una venta a través de Instant Checkout.
¿Puedo elegir qué productos aparecen en ChatGPT?
Sí, controlas qué productos incluyes en tu feed. Puedes excluir productos específicos, categorías completas, o productos sin existencias.
¿Qué pasa con las devoluciones?
Las devoluciones se gestionan igual que siempre: según tu política de devoluciones. La comisión que pagaste por esa venta es reembolsable.
¿Necesito WooCommerce específicamente o funciona con otros sistemas?
ACP es agnóstico de plataforma. Funciona con WooCommerce, Shopify, Magento, o cualquier sistema que implemente el protocolo. Esta guía se centra en WooCommerce por ser el más usado en WordPress, y porque a mi me da la real gana, pero tú decides, claro.
Errores comunes y cómo evitarlos
Implementar ACP sin tener Product Discovery
- Problema: Intentas vender sin que tus productos aparezcan en las recomendaciones.
- Solución: Primero asegúrate de estar en Product Discovery. Lee la guía sobre cómo aparecer en Product Discovery de las IAs y complétala como si fuese la oposición más importante de tu vida antes de implementar ACP.
No actualizar el inventario en tiempo real
- Problema: El agente intenta vender productos agotados, generando frustración y pedidos cancelados.
- Solución: Sincroniza el inventario en tiempo real y actualiza el feed regularmente. Rechaza pedidos de productos sin existencias.
Descripciones pobres o incompletas
- Problema: La IA no puede recomendar correctamente tus productos porque la información es insuficiente.
- Solución: Invierte tiempo en crear descripciones detalladas y completas. Piensa en todas las preguntas que un cliente podría hacer.
No probar en staging primero
- Problema: Implementas en producción sin probar, causando errores en pedidos reales.
- Solución: Siempre prueba en un entorno de staging primero. Haz pedidos de prueba completos antes de activar en producción.
Ignorar los webhooks
- Problema: Los agentes no reciben actualizaciones de estado, generando confusión sobre el estado del pedido.
- Solución: Implementa webhooks correctamente para notificar cambios de estado en tiempo real.
No monitorizar errores
- Problema: No te enteras de que hay problemas hasta que los clientes se quejan.
- Solución: Implementa logging detallado y alertas automáticas para errores críticos.
Precios o información fiscal incorrecta
- Problema: El precio final no coincide con lo mostrado, generando disputas.
- Solución: Asegúrate de que los cálculos de impuestos y envío son correctos para todas las zonas. Prueba con diferentes ubicaciones.
No adaptar la política de privacidad
- Problema: No informas a los usuarios sobre el uso de IAs en el proceso de compra.
- Solución: Actualiza tu política de privacidad mencionando que los pedidos pueden iniciarse a través de agentes de IA.
Conclusión: ¡O vendes también en las IAs o estás fuera!

El comercio agéntico no es el futuro lejano: es el presente que está desplegándose ahora mismo. Con Instant Checkout funcionando ya en Estados Unidos y la expansión internacional en marcha, las tiendas que se preparen ahora tendrán una ventaja competitiva significativa.
Puntos clave para recordar
- ACP es un protocolo abierto: No es exclusivo de ChatGPT, cualquier IA puede implementarlo
- Dos niveles de integración: Primero aparecer (Product Discovery), luego vender (ACP)
- Tu tienda sigue siendo el centro: Mantienes control total sobre productos, precios, pagos y cumplimiento
- Ya puedes empezar a probar: La versión beta está disponible con los plugins de WordPress
- Las pasarelas se están adaptando: Stripe ya está listo, Redsys viene pronto
- La ventaja competitiva es real: Si 5 tiendas venden lo mismo y solo tú tienes ACP, tú ganarás
Próximos pasos recomendados
- Si aún no lo has hecho: Completa la guía de Product Discovery para que tus productos aparezcan en ChatGPT
- Actualiza tu WordPress y WooCommerce: Asegúrate de tener las versiones con soporte MCP/ACP
- Revisa tu pasarela de pago: Confirma si es compatible o cuándo lo será
- Monta un staging: Crea un entorno de pruebas para experimentar sin riesgo
- Instala los plugins beta: WordPress MCP Adapter y Abilities API
- Prueba la integración: Haz pedidos de prueba completos
- Monitoriza resultados: Configura tracking para medir el impacto
- Mantente informado: Sigue las actualizaciones oficiales y comunidades
El cambio ya está aquí
Cada vez más personas recurren a ChatGPT y otras IAs para buscar productos, comparar opciones y tomar decisiones de compra, y sí, ya hay datos que lo confirman, no es hablar por hablar: el tráfico desde IAs está creciendo exponencialmente mientras el de Google se mantiene o decrece.
Las tiendas que ignoren esta tendencia corren el riesgo de volverse invisibles para una generación completa de compradores que prefiere conversar con una IA antes que usar un buscador tradicional.
Pero las que se adapten a tiempo no solo sobrevivirán al cambio: prosperarán en él, accediendo a millones de clientes potenciales con alta intención de compra que buscan exactamente lo que venden.
¿Necesitas ayuda?
Si después de leer esta guía necesitas ayuda profesional para implementar ACP en tu tienda, o quieres que revise tu configuración antes de lanzarte, puedes contratar mis servicios de consultoría en directo o mantenimiento profesional WordPress.
También puedes seguir mis actualizaciones en Ayuda WordPress, donde publico regularmente guías, tutoriales y análisis sobre WordPress, WooCommerce e inteligencia artificial.
El comercio agéntico está transformando el ecommerce. La pregunta no es si participarás en este cambio, sino cuándo. Y los que lleguen primero tendrán la mayor ventaja.
¡Nos vemos en el futuro del comercio!
Última actualización: Octubre 2025
Nota: Esta guía se actualizará regularmente conforme evolucione la tecnología ACP y se lancen nuevas funcionalidades. Guarda este enlace en favoritos para consultar las últimas novedades.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!







