WordPress Hosting

agentic commerce protocol wordpress woocommerce

Cómo vender directamente en ChatGPT y otras IAs desde tu tienda WordPress

Imagina esto:

  1. Un usuario le dice a ChatGPT:Necesito un regalo para mi hermana que le encanta la jardinería, presupuesto 50 euros
  2. 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!

Índice de contenidos

¿Qué es ese otro nuevo palabro,  el Agentic Commerce Protocol o ACP?

acp chatgpt openai stripe

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 euros
  • Busco un regalo para mi madre que le gusta la jardinería
  • Quiero 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!

agentic commerce ia

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

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?

agentic ecommerce protocol

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:

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:

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)

agentic commerce protocol checkout

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:

  1. WordPress MCP Adapter: Plugin que permite que WordPress hable el protocolo MCP
  2. WordPress Abilities API: Capa de interacción que expone capacidades de WordPress/WooCommerce
  3. 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.

  1. Descarga el plugin desde el repositorio oficial: https://github.com/WordPress/mcp-adapter
  2. Descarga el ZIP del repositorio (botón verde Code > Download ZIP)
  3. En tu WordPress, ve a Plugins > Añadir nuevo
  4. Pulsa «Subir plugin» y selecciona el archivo ZIP
  5. 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.

  1. Descarga el plugin desde: https://github.com/WordPress/abilities-api
  2. Descarga el ZIP del repositorio
  3. En tu WordPress, ve a Plugins > Añadir nuevo
  4. Pulsa «Subir plugin» y selecciona el archivo ZIP
  5. 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.

  1. Ve a tu panel de WordPress
  2. Navega a Plugins > Plugins instalados
  3. Busca WooCommerce
  4. Si hay actualización disponible, actualiza a la última versión
  5. 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:

  1. Ve a Ajustes > Enlaces permanentes
  2. Guarda los cambios (para recargar las reglas de reescritura)
  3. 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

agentic commerce protocol ai stripe

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

  1. Prioriza por columna de prioridad: Empieza por todas las marcadas como «Alta»
  2. Revisa sección por sección: No pases a la siguiente hasta completar la anterior
  3. Marca lo que ya tienes: Imprime o copiapega donde quieras esta lista y ve marcando lo completado
  4. Documenta problemas: Si algo falla, anota el error para resolverlo
  5. Prueba en staging primero: Nunca implementes en producción sin probar antes

Guía técnica de ACP para desarrolladores e implementadores

agentic commerce protocol spec openapi openapi delegate payment yaml at main · agentic commerce protocol agentic commerce protocol

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 pedido
  • order.updated: Cuando cambia el estado del pedido
  • order.completed: Cuando se completa un pedido
  • order.cancelled: Cuando se cancela un pedido
  • order.refunded: Cuando se reembolsa un pedido
  • shipment.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:

  1. Copia el código del plugin completo
  2. Guárdalo en un archivo llamado acp-woocommerce-link-integration.php
  3. Crea una carpeta llamada acp-woocommerce-link en /wp-content/plugins/
  4. Sube el archivo PHP a esa carpeta
  5. Ve a Plugins en tu WordPress y activa «Integración ACP para WooCommerce»
  6. Ve a WooCommerce > Ajustes ACP para configurar
  7. 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.

plugin woocommerce integracion acp

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

robot ia vendedor agentic commerce

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

  1. Un usuario pregunta: Necesito productos de limpieza ecológicos que no dañen el medio ambiente, presupuesto 50 euros.
  2. 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

  1. Usuario: Busco un portátil para diseño gráfico, menos de 1.500 euros, que tenga buena tarjeta gráfica.
  2. 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

  1. Usuario: Quiero un vestido para una boda en verano, estilo elegante pero cómodo, talla 42.
  2. 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

  1. Usuario: Necesito ingredientes para hacer paella valenciana para 6 personas, pero soy celíaco.Tu código aquí
  2. 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

  1. Usuario: Regalo para mi padre que le gusta pescar, presupuesto 60 euros.
  2. 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

  1. Implementa ACP cuanto antes: Los early adopters tendrán ventaja
  2. Optimiza para IAs: No solo para Google
  3. Mantén datos impecables: Las IAs priorizan información precisa
  4. Monitoriza el tráfico: Observa de dónde vienen tus clientes
  5. Experimenta: Prueba, mide, aprende y adapta
  6. Forma a tu equipo: El comercio agéntico requiere nuevas habilidades

Referencias y recursos oficiales

Documentación oficial de OpenAI

Recursos de Stripe

Sitio web oficial del protocolo

Recursos de WordPress/WooCommerce

Guías relacionadas en Ayuda 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

Comunidades y foros


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!

agentic commerce personal shopper ia

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

  1. Si aún no lo has hecho: Completa la guía de Product Discovery para que tus productos aparezcan en ChatGPT
  2. Actualiza tu WordPress y WooCommerce: Asegúrate de tener las versiones con soporte MCP/ACP
  3. Revisa tu pasarela de pago: Confirma si es compatible o cuándo lo será
  4. Monta un staging: Crea un entorno de pruebas para experimentar sin riesgo
  5. Instala los plugins beta: WordPress MCP Adapter y Abilities API
  6. Prueba la integración: Haz pedidos de prueba completos
  7. Monitoriza resultados: Configura tracking para medir el impacto
  8. 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.

Resume el artículo con tu IA favorita o compártelo en redes

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 9

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

Scroll al inicio