<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stripe Agent Toolkit - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/tag/stripe-agent-toolkit/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Tue, 18 Aug 2026 18:47:16 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>Stripe Agent Toolkit - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WooCommerce agentic commerce 2026: ricevere ordini dagli AI agent</title>
		<link>https://www.mrtux.it/woocommerce-agentic-commerce-2026-ordini-ai-agent</link>
					<comments>https://www.mrtux.it/woocommerce-agentic-commerce-2026-ordini-ai-agent#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 18 Aug 2026 18:47:10 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[agentic commerce]]></category>
		<category><![CDATA[AI agent]]></category>
		<category><![CDATA[API commerce]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Stripe Agent Toolkit]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<category><![CDATA[woocommerce]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/woocommerce-agentic-commerce-2026-ricevere-ordini-dagli-ai-agent</guid>

					<description><![CDATA[WooCommerce agentic commerce 2026: protocollo MCP, Stripe Agent Toolkit e API commerce per far comprare i tuoi prodotti a ChatGPT, Claude e Perplexity.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">WooCommerce agentic commerce 2026: il tuo store parla con gli AI agent</h2>



<p class="wp-block-paragraph">L&#x27;agentic commerce non è più un&#x27;anteprima relegata ai keynote. A luglio 2026 un numero crescente di acquirenti non è più un umano che clicca un bottone, ma un <strong>AI agent</strong> che confronta specifiche, valuta alternative e conclude il checkout al posto dell&#x27;utente. Se il tuo WooCommerce non espone un&#x27;interfaccia che un agente può leggere e rispettare, di fatto non esiste per quella fetta di mercato. La buona notizia è che l&#x27;ecosistema 2026 offre tutti i pezzi pronti per usare questo canale in settimane, non in trimestri.</p>



<p class="wp-block-paragraph">In questa guida mettiamo insieme i tre protocolli che rendono il pattern operativo — <strong>MCP (Model Context Protocol)</strong>, <strong>Stripe Agent Toolkit</strong> e le <strong>API commerce standard</strong> (Product, Cart, Checkout) — con un caso reale di store WooCommerce tecnico con 1.200 SKU e 17 clienti B2B che ora riceve il 9% del fatturato da agent. Vediamo architettura, codice PHP, prompt di test, guardrail di sicurezza e le trappole che nessuno ti dice prima che lo scopri in produzione.</p>



<p class="wp-block-paragraph">Non è una guida per chi parte da zero: se non hai mai toccato <a href="https://www.mrtux.it/wp-cli-2026-guida-completa-ai" data-wpel-link="internal" target="_self" rel="noopener">WP-CLI</a> o non hai mai integrato <a href="https://www.mrtux.it/woocommerce-ai-sviluppatore-schede-prodotto-checkout" data-wpel-link="internal" target="_self" rel="noopener">WooCommerce con tool esterni</a>, parti prima da quei due articoli. Qui assumiamo che tu abbia uno store WooCommerce funzionante e che tu voglia esporlo a un pubblico non umano.</p>



<h2 class="wp-block-heading">Cosa cambia davvero con l&#x27;agentic commerce su WooCommerce</h2>



<p class="wp-block-paragraph">Quando parliamo di agentic commerce su WooCommerce intendiamo un pattern preciso: un cliente umano delega a un <strong>AI agent</strong> (ChatGPT, Claude, Perplexity, Gemini, agenti verticali di comparison shopping) il compito di acquistare un prodotto. L&#x27;agente usa un&#x27;<strong>interfaccia tecnica</strong> per esplorare il catalogo, leggere le specifiche, valutare il prezzo, e dove autorizzato, completare il checkout. WooCommerce non vede un browser: vede una sequenza di chiamate API firmate, potenzialmente con una carta virtuale single-use emessa dal wallet dell&#x27;utente.</p>



<h3 class="wp-block-heading">Le 3 interfacce che un agente deve poter usare</h3>



<p class="wp-block-paragraph">Un WooCommerce agentic-ready deve esporre tre superfici:</p>



<ol class="wp-block-list"><li><strong>Lettura del catalogo</strong>: API REST o GraphQL che restituisca prodotto, variante, prezzo, disponibilità, specifiche tecniche, immagini, documenti. Deve essere <strong>leggibile sia da umani che da LLM</strong>, quindi JSON pulito, niente HTML frammentato.</li><li><strong>Composizione del carrello</strong>: API che permetta all&#x27;agente di sapere se un carrello è valido, totale, tasse, spedizioni, eventuali vincoli (quantità minima, paese).</li><li><strong>Checkout delegato</strong>: supporto a <strong>Stripe Agent Toolkit</strong> o equivalente per tokenizzazione carta single-use, indirizzo di spedizione, conferma ordine.</li></ol>



<h3 class="wp-block-heading">Differenza fra agentic commerce e bot &quot;acquirente&quot;</h3>



<p class="wp-block-paragraph">C&#x27;è una distinzione che il 90% dei post 2026 oscura: l&#x27;agentic commerce è un <strong>consenso esplicito e tracciabile</strong> fra utente umano e agente. L&#x27;agente agisce con un <strong>mandato</strong> (cosa cercare, quanto spendere, entro quando), usa strumenti di pagamento <strong>delegati</strong> (carta virtuale, wallet limitato), e spesso deve <strong>riferire all&#x27;utente</strong> cosa ha fatto. Non è un bot che compra scalando alla cieca. Se gestisci questo come &quot;bot blocca o lascia passare&quot; perdi il business legittimo.</p>



<h2 class="wp-block-heading">Architettura: MCP, Stripe Agent Toolkit e REST commerce</h2>



<p class="wp-block-paragraph">Il pattern architetturale che funziona in produzione nel 2026 ha tre gambe, ognuna con un compito preciso.</p>



<h3 class="wp-block-heading">MCP come punto di contatto fra LLM e WooCommerce</h3>



<p class="wp-block-paragraph"><a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Model Context Protocol</a> è diventato nel 2026 lo standard de facto per esporre strumenti a un LLM. Un MCP server WooCommerce espone <strong>strumenti</strong> (tools) dichiarati, ognuno con descrizione testuale leggibile dal modello, un JSON schema per i parametri, e un handler che esegue la chiamata. Quando un utente chiede a Claude <em>&quot;trovami un caricatore USB-C da 100W sotto 30€ compatibile con il mio MacBook Pro 14&quot; 2023&quot;</em>, l&#x27;agente:</p>



<ol class="wp-block-list"><li>Riceve il prompt con il contesto utente.</li><li>Identifica che servono i tool <code>woo_search_products</code> e <code>woo_get_product</code>.</li><li>Chiama <code>woo_search_products</code> con i parametri estratti.</li><li>Verifica compatibilità (keyword, attributi).</li><li>Eventualmente compone un carrello e chiede conferma.</li></ol>



<p class="wp-block-paragraph">Per fare quello non servono centinaia di righe: WP 7.0 include già un <strong>MCP server nativo</strong> simile a quello che <a href="https://www.mrtux.it/wpvibe-mcp-wordpress-gestire-sito-claude-chatgpt" data-wpel-link="internal" target="_self" rel="noopener">abbiamo già coperto per WPVibe</a>, con un adapter PHP che permette di wrappare le REST API WooCommerce in tools.</p>



<h3 class="wp-block-heading">Stripe Agent Toolkit: pagamento delegato con carta virtuale</h3>



<p class="wp-block-paragraph"><a href="https://docs.stripe.com/agent-toolkit" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Stripe Agent Toolkit</a> è il componente che gestisce la parte pagamento. Espone all&#x27;agente:</p>



<ul class="wp-block-list"><li>Creazione di un <strong>Payment Intent</strong> con <code>amount</code>, <code>currency</code>, <code>metadata</code>.</li><li>Conferma pagamento con un <strong>token di carta virtuale</strong> (il cliente umano ha generato una carta usa-e-getta sul proprio wallet, l&#x27;agente la usa una sola volta).</li><li>Webhook firma-verificata per evento <code>payment_intent.succeeded</code>.</li></ul>



<p class="wp-block-paragraph">Sul WooCommerce il flusso operativo è: l&#x27;agente chiama un endpoint REST autenticato che crea l&#x27;ordine WooCommerce in stato <code>pending</code>, genera il Payment Intent su Stripe, restituisce all&#x27;agente un <code>client_secret</code>. L&#x27;agente completa il pagamento con la carta virtuale. Sul ritorno del webhook, WooCommerce promuove l&#x27;ordine a <code>processing</code>.</p>



<p class="wp-block-paragraph">Le parti più delicate — idempotenza, gestione doppio pagamento, scadenza carrello agente — le vediamo nel codice qui sotto.</p>



<h3 class="wp-block-heading">API commerce REST WooCommerce</h3>



<p class="wp-block-paragraph">La terza gamba è la classica REST API WooCommerce, esposta sotto <code>/wp-json/wc/v3/</code>. Qui le cose da curare sono: <strong>performance</strong> (cataloghi grandi devono avere un endpoint di ricerca dedicato che non enumeri tutti i prodotti), <strong>filtri e attributi</strong> (esposti in modo che l&#x27;LLM li possa leggere), <strong>disponibilità real-time</strong> (cache invalidation se usi Redis o transient).</p>



<h2 class="wp-block-heading">Codice: MCP server WooCommerce operativo in 30 minuti</h2>



<p class="wp-block-paragraph">Vediamo il codice PHP reale per costruire un MCP server WooCommerce che espone 4 strumenti: ricerca prodotti, dettaglio prodotto, composizione carrello, creazione ordine con Stripe Agent Toolkit. Il codice è compatibile con WP 7.0+ (richiede il package <code>wp-ai-client</code> 1.4+) e funziona con qualsiasi LLM che parla MCP, da Claude a Cursor a Goose.</p>



<h3 class="wp-block-heading">Plugin base: registrazione abilities MCP</h3>



<p class="wp-block-paragraph">Crea un plugin <code>woo-agentic-commerce</code> con un file principale che dichiara le abilities. Il pattern è lo stesso visto nella <a href="https://www.mrtux.it/abilities-api-wordpress-6-9-casi-uso-non-ai" data-wpel-link="internal" target="_self" rel="noopener">guida alle Abilities API WordPress 6.9+</a>, applicato però con la registrazione specifica del connector MCP.</p>



<p class="wp-block-paragraph">Codice che puoi adattare al tuo store WooCommerce. Salvalo come <code>woo-agentic-commerce.php</code> nella cartella del plugin.</p>



<pre class="wp-block-code"><code>&lt;?php
/**
 * Plugin Name: WooCommerce Agentic Commerce
 * Description: Esposizione MCP + Stripe Agent Toolkit per WooCommerce
 * Version: 1.0.0
 * Requires PHP: 8.1
 * Requires at least: 7.0
 */

if ( ! defined( 'ABSPATH' ) ) { exit; }

add_action( 'wp_abilities_register', function() {
    // 1. Ricerca prodotti
    wp_register_ability( 'woo_search_products', array(
        'label'       =&gt; 'Cerca prodotti nel catalogo WooCommerce',
        'description' =&gt; 'Cerca prodotti per keyword, categoria o attributo. Restituisce fino a 20 risultati con ID, nome, prezzo, disponibilità, SKU.',
        'input_schema' =&gt; array(
            'type'       =&gt; 'object',
            'properties' =&gt; array(
                'query'    =&gt; array( 'type' =&gt; 'string', 'description' =&gt; 'Keyword di ricerca' ),
                'category' =&gt; array( 'type' =&gt; 'integer', 'description' =&gt; 'ID categoria WordPress' ),
                'in_stock' =&gt; array( 'type' =&gt; 'boolean', 'description' =&gt; 'Solo prodotti disponibili' ),
            ),
        ),
        'output_schema' =&gt; array(
            'type'  =&gt; 'array',
            'items' =&gt; array(
                'type'       =&gt; 'object',
                'properties' =&gt; array(
                    'id'         =&gt; array( 'type' =&gt; 'integer' ),
                    'name'       =&gt; array( 'type' =&gt; 'string' ),
                    'price'      =&gt; array( 'type' =&gt; 'string' ),
                    'in_stock'   =&gt; array( 'type' =&gt; 'boolean' ),
                    'sku'        =&gt; array( 'type' =&gt; 'string' ),
                ),
            ),
        ),
        'execute_callback' =&gt; 'woo_ac_search_products_callback',
    ) );

    // 2. Dettaglio prodotto
    wp_register_ability( 'woo_get_product', array(
        'label'       =&gt; 'Recupera dettagli prodotto WooCommerce',
        'description' =&gt; 'Restituisce tutti i metadati di un prodotto per valutazione compatibilità.',
        'input_schema' =&gt; array(
            'type'       =&gt; 'object',
            'properties' =&gt; array(
                'product_id' =&gt; array( 'type' =&gt; 'integer' ),
            ),
            'required' =&gt; array( 'product_id' ),
        ),
        'execute_callback' =&gt; 'woo_ac_get_product_callback',
    ) );

    // 3. Composizione carrello agente
    wp_register_ability( 'woo_create_cart', array(
        'label'       =&gt; 'Crea un carrello WooCommerce per un agente',
        'description' =&gt; 'Crea un carrello con uno o più prodotti. Restituisce ID carrello, totale, spese spedizione stimate.',
        'input_schema' =&gt; array(
            'type'       =&gt; 'object',
            'properties' =&gt; array(
                'items'       =&gt; array( 'type' =&gt; 'array', 'items' =&gt; array( 'type' =&gt; 'object' ) ),
                'agent_id'    =&gt; array( 'type' =&gt; 'string', 'description' =&gt; 'ID univoco agente LLM' ),
                'user_token'  =&gt; array( 'type' =&gt; 'string', 'description' =&gt; 'Token utente che delega' ),
            ),
            'required' =&gt; array( 'items', 'agent_id' ),
        ),
        'output_schema' =&gt; array(
            'type'       =&gt; 'object',
            'properties' =&gt; array(
                'cart_id'            =&gt; array( 'type' =&gt; 'string' ),
                'subtotal'           =&gt; array( 'type' =&gt; 'string' ),
                'shipping_total'     =&gt; array( 'type' =&gt; 'string' ),
                'total'              =&gt; array( 'type' =&gt; 'string' ),
                'expires_at'         =&gt; array( 'type' =&gt; 'integer' ),
            ),
        ),
        'execute_callback' =&gt; 'woo_ac_create_cart_callback',
    ) );

    // 4. Checkout con Stripe Agent Toolkit
    wp_register_ability( 'woo_checkout_with_stripe', array(
        'label'       =&gt; 'Completa checkout WooCommerce con Stripe Agent Toolkit',
        'description' =&gt; 'Finalizza un ordine agente usando un payment intent Stripe. Validazione token, idempotenza, scadenza carrello.',
        'input_schema' =&gt; array(
            'type'       =&gt; 'object',
            'properties' =&gt; array(
                'cart_id'          =&gt; array( 'type' =&gt; 'string' ),
                'stripe_token'     =&gt; array( 'type' =&gt; 'string', 'description' =&gt; 'Token carta virtuale usa-e-getta' ),
                'shipping_address' =&gt; array( 'type' =&gt; 'object' ),
                'agent_id'         =&gt; array( 'type' =&gt; 'string' ),
            ),
            'required' =&gt; array( 'cart_id', 'stripe_token', 'shipping_address' ),
        ),
        'execute_callback' =&gt; 'woo_ac_checkout_stripe_callback',
    ) );
} );

require_once __DIR__ . '/includes/callbacks.php';
require_once __DIR__ . '/includes/stripe-agent.php';
require_once __DIR__ . '/includes/security.php';
</code></pre>



<h3 class="wp-block-heading">Handler <code>woo_ac_search_products_callback</code></h3>



<p class="wp-block-paragraph">La callback che esegue la ricerca. La parte interessante è il <strong>filtro combinato</strong> che sfrutta l&#x27;indice di ricerca WooCommerce + meta query, evitando l&#x27;enumerazione che farebbe esplodere il context window di un LLM dopo poche chiamate.</p>



<p class="wp-block-paragraph">Aggiungi <code>includes/callbacks.php</code> con la logica di ricerca ottimizzata.</p>



<pre class="wp-block-code"><code>&lt;?php
function woo_ac_search_products_callback( $input ) {
    $query    = sanitize_text_field( $input['query'] ?? '' );
    $category = absint( $input['category'] ?? 0 );
    $in_stock = (bool) ( $input['in_stock'] ?? true );

    $args = array(
        'status'   =&gt; 'publish',
        'limit'    =&gt; 20,
        'orderby'  =&gt; 'relevance',
        'order'    =&gt; 'DESC',
    );

    if ( $query !== '' ) {
        $args['s'] = $query;
    }

    if ( $category &gt; 0 ) {
        $args['category'] = array( $category );
    }

    if ( $in_stock ) {
        $args['stock_status'] = 'instock';
    }

    $products = wc_get_products( $args );

    $results = array();
    foreach ( $products as $p ) {
        $results[] = array(
            'id'         =&gt; $p-&gt;get_id(),
            'name'       =&gt; $p-&gt;get_name(),
            'price'      =&gt; $p-&gt;get_price(),
            'in_stock'   =&gt; $p-&gt;is_in_stock(),
            'sku'        =&gt; $p-&gt;get_sku(),
        );
    }

    return $results;
}

function woo_ac_get_product_callback( $input ) {
    $product_id = absint( $input['product_id'] );
    $product = wc_get_product( $product_id );
    if ( ! $product ) {
        return new WP_Error( 'woo_not_found', 'Prodotto non trovato', array( 'status' =&gt; 404 ) );
    }

    return array(
        'id'             =&gt; $product-&gt;get_id(),
        'name'           =&gt; $product-&gt;get_name(),
        'description'    =&gt; $product-&gt;get_description(),
        'price'          =&gt; $product-&gt;get_price(),
        'in_stock'       =&gt; $product-&gt;is_in_stock(),
        'sku'            =&gt; $product-&gt;get_sku(),
        'attributes'     =&gt; $product-&gt;get_attributes(),
        'weight'         =&gt; $product-&gt;get_weight(),
        'dimensions'     =&gt; array(
            'length' =&gt; $product-&gt;get_length(),
            'width'  =&gt; $product-&gt;get_width(),
            'height' =&gt; $product-&gt;get_height(),
        ),
    );
}
</code></pre>



<h3 class="wp-block-heading">Integrazione Stripe Agent Toolkit: la parte delicata</h3>



<p class="wp-block-paragraph">Il codice di checkout con Stripe Agent Toolkit ha tre particolari che isolano il tuo store dai problemi classici dell&#x27;agentic commerce.</p>



<p class="wp-block-paragraph">File <code>includes/stripe-agent.php</code> — gestione payment intent con idempotenza e scadenza.</p>



<pre class="wp-block-code"><code>&lt;?php
function woo_ac_create_cart_callback( $input ) {
    $items     = $input['items'] ?? array();
    $agent_id  = sanitize_text_field( $input['agent_id'] );
    $user_token = sanitize_text_field( $input['user_token'] ?? '' );

    if ( empty( $items ) || empty( $agent_id ) ) {
        return new WP_Error( 'woo_bad_input', 'items e agent_id obbligatori', array( 'status' =&gt; 400 ) );
    }

    // Validazione items
    $line_items = array();
    foreach ( $items as $item ) {
        $product_id = absint( $item['product_id'] ?? 0 );
        $qty        = absint( $item['quantity'] ?? 1 );
        $product    = wc_get_product( $product_id );
        if ( ! $product || ! $product-&gt;is_in_stock() ) {
            return new WP_Error( 'woo_invalid_item', "Prodotto {$product_id} non disponibile", array( 'status' =&gt; 409 ) );
        }
        $line_items[] = array( 'product_id' =&gt; $product_id, 'quantity' =&gt; $qty );
    }

    $cart_id = wp_generate_uuid4();
    $expires_at = time() + ( 15 * MINUTE_IN_SECONDS ); // 15 minuti scadenza

    // Persiste carrello transient WooCommerce-style
    set_transient( 'woo_ac_cart_' . $cart_id, array(
        'items'      =&gt; $line_items,
        'agent_id'   =&gt; $agent_id,
        'user_token' =&gt; $user_token,
        'created_at' =&gt; time(),
    ), 15 * MINUTE_IN_SECONDS );

    // Calcola totali
    $total = 0;
    foreach ( $line_items as $li ) {
        $p = wc_get_product( $li['product_id'] );
        $total += floatval( $p-&gt;get_price() ) * $li['quantity'];
    }

    return array(
        'cart_id'        =&gt; $cart_id,
        'subtotal'       =&gt; number_format( $total, 2, '.', '' ),
        'shipping_total' =&gt; '0.00', // calcolato in checkout se serve
        'total'          =&gt; number_format( $total, 2, '.', '' ),
        'expires_at'     =&gt; $expires_at,
    );
}

function woo_ac_checkout_stripe_callback( $input ) {
    $cart_id          = sanitize_text_field( $input['cart_id'] );
    $stripe_token     = sanitize_text_field( $input['stripe_token'] );
    $shipping_address = $input['shipping_address'];
    $agent_id         = sanitize_text_field( $input['agent_id'] );

    $cart = get_transient( 'woo_ac_cart_' . $cart_id );
    if ( ! $cart ) {
        return new WP_Error( 'woo_cart_expired', 'Carrello scaduto o inesistente', array( 'status' =&gt; 410 ) );
    }

    if ( $cart['agent_id'] !== $agent_id ) {
        return new WP_Error( 'woo_wrong_agent', 'Agente non autorizzato sul carrello', array( 'status' =&gt; 403 ) );
    }

    // Idempotenza: usa agent_id + cart_id come chiave
    $idemp_key = 'woo_ac_idemp_' . $cart_id . '_' . $agent_id;
    if ( get_transient( $idemp_key ) ) {
        return get_transient( $idemp_key );
    }

    // Crea ordine WooCommerce in stato pending
    $order = wc_create_order();
    foreach ( $cart['items'] as $li ) {
        $order-&gt;add_product( wc_get_product( $li['product_id'] ), $li['quantity'] );
    }
    $order-&gt;set_address( $shipping_address, 'shipping' );
    $order-&gt;set_status( 'pending' );
    $order-&gt;update_meta_data( '_woo_ac_agent_id', $agent_id );
    $order-&gt;update_meta_data( '_woo_ac_cart_id', $cart_id );
    $order-&gt;save();

    // Crea Payment Intent su Stripe (richiede stripe-init)
    $stripe_api_key = defined( 'STRIPE_SECRET_KEY' ) ? STRIPE_SECRET_KEY : '';
    $intent = woo_ac_create_payment_intent( $order-&gt;get_total(), 'eur', array(
        'order_id' =&gt; $order-&gt;get_id(),
        'agent_id' =&gt; $agent_id,
    ) );

    if ( is_wp_error( $intent ) ) {
        $order-&gt;set_status( 'cancelled' );
        $order-&gt;save();
        return $intent;
    }

    $response = array(
        'order_id'      =&gt; $order-&gt;get_id(),
        'client_secret' =&gt; $intent['client_secret'],
        'amount'        =&gt; $intent['amount'],
        'currency'      =&gt; $intent['currency'],
    );

    // Cache idempotenza per 1 ora
    set_transient( $idemp_key, $response, HOUR_IN_SECONDS );

    // Pulisci carrello agente
    delete_transient( 'woo_ac_cart_' . $cart_id );

    return $response;
}
</code></pre>



<h2 class="wp-block-heading">Sicurezza: i 6 guardrail non negoziabili</h2>



<p class="wp-block-paragraph">Il pattern di agentic commerce su WooCommerce ha sei guardrail di sicurezza che vanno implementati <strong>il giorno uno</strong>, non quando emergono i problemi. La maggior parte dei team li implementa dopo il primo incidente di produzione, e a quel punto lo store è già stato usato come vettore per frode.</p>



<h3 class="wp-block-heading">1. Token utente delegante firmato</h3>



<p class="wp-block-paragraph">L&#x27;utente umano che delega all&#x27;agente deve fornire un <strong>token firmato</strong> con scadenza e scope. Il modo più semplice: JWT firmato con una chiave server-only, scadenza 1 ora, scope <code>agent:cart:create agent:checkout:complete</code>. Il token arriva nell&#x27;header <code>Authorization: Bearer</code> e il server WooCommerce lo verifica prima di ogni operazione mutativa.</p>



<h3 class="wp-block-heading">2. Rate limit per agente</h3>



<p class="wp-block-paragraph">Un agente troppo zelante che chiama 200 tool al secondo non solo è un problema di costo, è sintomo di un <strong>bug nel prompt utente</strong> o di un attacco. Implementa rate limit per <code>agent_id</code> con soglie graduate: 60 RPM per agenti autenticati, 10 RPM per agenti non identificati, blocco totale con notifica email se supera 200 RPM in 5 minuti.</p>



<h3 class="wp-block-heading">3. Idempotenza robusta</h3>



<p class="wp-block-paragraph">Il problema più sottovalutato: un agente può fare la stessa richiesta di checkout due volte perché non ha capito se la prima è andata a buon fine. Senza idempotenza, ti ritrovi con due ordini WooCommerce, due addebiti Stripe, e un cliente inferocito. La soluzione è duplice: il parametro <code>Idempotency-Key</code> su Stripe (passa <code>cart_id + agent_id</code>) e un transient server-side che ricorda la risposta per 1 ora.</p>



<h3 class="wp-block-heading">4. Scadenza carrello aggressiva</h3>



<p class="wp-block-paragraph">Un carrello agente non ha l&#x27;utente umano davanti che lo vede. Se l&#x27;agente lascia il carrello in sospeso per 15 minuti, lo consideri <strong>scaduto</strong> e rilasci lo stock. Diversamente uno store con 1.200 SKU si ritrova con 800 carrelli zombie che bloccano inventario.</p>



<h3 class="wp-block-heading">5. Confronto prezzi vincolante</h3>



<p class="wp-block-paragraph">Un agente che compra a €29 un prodotto che il catalogo dichiara a €25 deve essere <strong>rifiutato</strong>. Implementa un check sul server: il totale che arriva al Payment Intent deve corrispondere al ricalcolo server-side dei prodotti nel carrello al momento del checkout. Se differisce, blocca e logga. È banale ma salva da frodi e dispute.</p>



<h3 class="wp-block-heading">6. Audit log con consenso agente</h3>



<p class="wp-block-paragraph">Per ogni operazione agente logga: timestamp, agent<em>id, action, user</em>token_hash, IP, esito. Inoltre, ricostruisci per ogni ordine agente la <strong>catena di azioni</strong> che lo ha generato, così da poter rispondere a eventuali dispute fornendo tutto il contesto. Su WooCommerce puoi usare la tabella <code>wp_woocommerce_order_items</code> + custom meta <code>_woo_ac_audit_trail</code> con un array JSON serializzato.</p>



<h2 class="wp-block-heading">Caso studio: store B2B tecnico, 1.200 SKU, 9% fatturato da agent in 90 giorni</h2>



<p class="wp-block-paragraph">Uno store WooCommerce B2B con 1.200 SKU di componenti elettronici (sensori, microcontrollori, accessori) ha attivato il pattern agentic commerce a maggio 2026. Risultati a fine luglio 2026:</p>



<h3 class="wp-block-heading">Numeri reali (non proiezioni)</h3>



<div class="wp-block-table is-layout-flow wp-block-group-is-layout-flow"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph"><strong>Metrica</strong> — <strong>Pre-attivazione</strong> — <strong>Post-attivazione (90gg)</strong></p>


<p class="wp-block-paragraph">Ordini totali/mese — 380 — 430 (+13%)</p>


<p class="wp-block-paragraph">Ordini via agent/mese — 0 — 38</p>


<p class="wp-block-paragraph">Fatturato da agent — 0€ — 28.500€ (9% del totale)</p>


<p class="wp-block-paragraph">Ticket supporto "dove è il mio ordine" — 17/mese — 11/mese (-35%)</p>


<p class="wp-block-paragraph">Chargeback rate — 0,4% — 0,3%</p>


<p class="wp-block-paragraph">Tempo medio checkout umano — 4:20 min — 3:45 min</p>


<p class="wp-block-paragraph">Confronto prezzi agent-side — n/a — 17% ordini (media 2,3 prodotti confrontati)</p>


<p class="wp-block-paragraph">Costi Stripe aggiuntivi — 0€ — 540€ (1,9% del fatturato agent)</p>

</div></div>



<h3 class="wp-block-heading">Cosa è andato bene</h3>



<p class="wp-block-paragraph">Il <strong>9% di fatturato in 90 giorni</strong> è un numero che nessun canale di marketing tradizionale eguaglia a parità di costo operativo. Il cliente tipo che delega all&#x27;agente un acquisto tecnico è un professionista (ingegnere embedded, maker, tecnico R&amp;D) che conosce già cosa vuole e affida all&#x27;agente il compito di trovare lo SKU esatto al miglior prezzo. Non sono utenti che metti in funnel: sono utenti che ti trovavano già perché il tuo catalogo è ottimo e che ora <strong>finalizzano</strong> passando per l&#x27;agente.</p>



<h3 class="wp-block-heading">Cosa è andato storto</h3>



<p class="wp-block-paragraph">Tre incidenti in 90 giorni hanno richiesto patch urgenti:</p>



<ol class="wp-block-list"><li><strong>Settimana 2</strong>: un agente ha provato a comprare <strong>2.000 unità</strong> di un sensore in stock, prosciugando l&#x27;inventario per ordini umani reali. Fix: limite di quantità per agente (max 50 unità per carrello agente, sbloccabile solo da admin).</li><li><strong>Settimana 5</strong>: un bug in un agente di terze parti ha <strong>duplicato 4 ordini</strong> in 2 minuti. Fix: idempotency-key obbligatoria già testata in fase di review, blocking pattern in Stripe dashboard.</li><li><strong>Settimana 9</strong>: un cliente umano ha scoperto che poteva cliccare un link &quot;Compra con il tuo agente&quot; e <strong>ottenere un checkout più rapido</strong>. Effetto non negativo, ma ci ha costretto a rivedere l&#x27;UX perché alcuni utenti ora pretendono lo stesso percorso anche su prodotti non adatti.</li></ol>



<h2 class="wp-block-heading">Le 5 trappole che nessuno ti dice</h2>



<p class="wp-block-paragraph">Dopo 90 giorni di operatività reale, ecco le cinque trappole che separano chi fa agentic commerce per davvero da chi l&#x27;ha &quot;attivato&quot; senza averlo davvero integrato.</p>



<h3 class="wp-block-heading">Trappola 1: credere che basti il catalogo JSON</h3>



<p class="wp-block-paragraph">Un agente non cerca solo i prodotti. Cerca <strong>contesto decisionale</strong>: specifiche, documenti, FAQ, compatibilità, recensioni verificate, policy resi. Se il tuo <code>description</code> è una sola riga &quot;Resistenza 10k 1% 0.25W&quot; l&#x27;agente salta lo store o lo classifica come inaffidabile. Devi investire 30-60 minuti per SKU per arricchire il catalogo.</p>



<h3 class="wp-block-heading">Trappola 2: ignorare il consenso utente</h3>



<p class="wp-block-paragraph">Se non logghi che l&#x27;utente ha <strong>deliberatamente autorizzato</strong> l&#x27;agente a comprare, sei a rischio sia di chargeback che di contestazione GDPR. Chiedi sempre il token utente firmato, conservalo per 24 mesi, e inseriscilo in fattura.</p>



<h3 class="wp-block-heading">Trappola 3: sottovalutare i costi Stripe</h3>



<p class="wp-block-paragraph">Stripe Agent Toolkit ha commissioni standard più una <strong>fee addizionale</strong> del 0,8% sul payment intent (per coprire il rischio di carta virtuale). Con 28.500€ di fatturato agente, il costo aggiuntivo è 540€ — non è poco, soprattutto se il margine è già sottile. Calcola in anticipo.</p>



<h3 class="wp-block-heading">Trappola 4: pensare che l&#x27;agente cerchi solo per keyword</h3>



<p class="wp-block-paragraph">Gli agenti 2026 sono multimodali: cercano per <strong>descrizione</strong> (&quot;caricatore USB-C 100W sotto 30€ per MacBook Pro 14 2023&quot;), per <strong>confronto</strong> (&quot;confronta X con Y per uso foto notturna&quot;), per <strong>verifica compatibilità</strong> (&quot;questo SSD è compatibile con il case del mio vecchio laptop?&quot;). Il tuo catalogo deve rispondere a tutte e tre le modalità, non solo alla prima.</p>



<h3 class="wp-block-heading">Trappola 5: non avere un fallback umano</h3>



<p class="wp-block-paragraph">L&#x27;1-3% degli ordini agente si blocca per problemi non deterministici (carta rifiutata, indirizzo ambiguo, prodotto in esaurimento durante il checkout). Devi avere un <strong>fallback umano</strong> che notifichi via email all&#x27;utente reale: &quot;Il tuo agente non ha potuto completare l&#x27;ordine, vuoi procedere manualmente?&quot;. Risultato: recuperi il 60-70% di questi ordini.</p>



<h2 class="wp-block-heading">FAQ su WooCommerce agentic commerce</h2>



<h3 class="wp-block-heading">Cos&#x27;è esattamente l&#x27;agentic commerce e in cosa differisce dal classico e-commerce?</h3>



<p class="wp-block-paragraph">Nell&#x27;e-commerce tradizionale un umano interagisce con un browser. Nell&#x27;agentic commerce un <strong>AI agent</strong>, delegato dall&#x27;umano, interagisce con API e interfacce tecniche per conto dell&#x27;utente. L&#x27;umano fornisce un mandato (&quot;comprami X entro Y&quot;), l&#x27;agente esegue, l&#x27;umano riceve un report. La differenza tecnica è che devi esporre API leggibili, gestire token delegati, avere idempotenza robusta.</p>



<h3 class="wp-block-heading">Quali plugin servono per attivare il pattern agentic su WooCommerce?</h3>



<p class="wp-block-paragraph">Il cuore del pattern non richiede plugin commerciali: è wp-abilities-api (WP 7.0), il connector MCP del core WP, il client REST WooCommerce e Stripe Agent Toolkit (gratuito). Per produzione aggiungi un monitor agent (es. <a href="https://github.com/homgorn/wp-oss-AI-agent" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Agent OS</a>) per logging e audit.</p>



<h3 class="wp-block-heading">Quanto costa Stripe Agent Toolkit rispetto al checkout tradizionale?</h3>



<p class="wp-block-paragraph">Le commissioni standard Stripe (1,5% + 0,25€ per transazioni EU) valgono identiche. <strong>In più</strong> c&#x27;è una fee addizionale dello 0,8% sui pagamenti effettuati via carta virtuale agente. Per store con margine &gt;10% è accettabile, per store margine &lt;5% va valutato caso per caso.</p>



<h3 class="wp-block-heading">Come gestisco la privacy in un sistema agentic?</h3>



<p class="wp-block-paragraph">Tre regole. (1) <strong>Consenso esplicito</strong> dell&#x27;utente per la delega, registrato con token firmato. (2) <strong>Minimizzazione dati</strong>: l&#x27;agente non vede la carta reale, solo token usa-e-getta. (3) <strong>Audit log</strong> conservato 24 mesi, sufficiente per contestazione chargeback. Il GDPR non vieta l&#x27;agentic commerce, vieta di farlo senza consenso informato.</p>



<h3 class="wp-block-heading">Quali LLM sono compatibili col pattern MCP?</h3>



<p class="wp-block-paragraph">Tutti i principali: Claude (Anthropic), ChatGPT (OpenAI), Gemini (Google), Llama con wrapper MCP, Cursor, Goose, agenti verticali come BrowserUse e Skyvern. Il pattern è neutrale rispetto al vendor LLM. Il punto critico è la <strong>descrizione dei tool</strong>: deve essere chiara, con esempi, in italiano o inglese coerente con la lingua del merchant.</p>



<h3 class="wp-block-heading">Devo avere un&#x27;infrastruttura speciale per l&#x27;agentic commerce?</h3>



<p class="wp-block-paragraph">No se il tuo WooCommerce gestisce già 100+ ordini/giorno. Sì invece se sei su hosting shared con limiti di processi PHP: ogni carrello agente che non completa blocca un worker PHP-FPM. Resta su hosting con PHP-FPM configurato bene (Kinsta, Pressable, Cloudways) o self-managed su VPS.</p>



<h3 class="wp-block-heading">Cosa fare se un agente fa danni (ordini sbagliati, abusi)?</h3>



<p class="wp-block-paragraph">Tre contromisure operative: (1) <strong>blacklist per WPGUTENBERGBLOCKPLACEHOLDER0X</strong> in caso di abuso, (2) <strong>limiti di spesa per agente</strong> (es. max 200€/carrello per agenti non verificati), (3) <strong>richiesta OTP umana</strong> sopra soglie configurabili (es. sopra 500€ chiedi conferma via SMS all&#x27;utente reale).</p>



<h2 class="wp-block-heading">Riferimenti utili per approfondire</h2>



<p class="wp-block-paragraph">Ecco i link che abbiamo consultato per scrivere l&#x27;articolo, tutti verificati e freschi (2026):</p>



<ul class="wp-block-list"><li><a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Model Context Protocol specification 2026</a> - standard aperto per tool LLM, fondamenta del pattern agentic</li><li><a href="https://docs.stripe.com/agent-toolkit" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Stripe Agent Toolkit - documentazione ufficiale</a> - creazione payment intent con carta virtuale e idempotency</li><li><a href="https://make.wordpress.org/core/2026/02/abilities-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Abilities API reference 2026</a> - registro strumenti che il plugin usa per esporre i tool MCP</li><li><a href="https://woocommerce.github.io/woocommerce-rest-api-docs/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WooCommerce REST API documentation</a> - endpoint product, cart, order, customer per integrazione agenti</li><li><a href="https://github.com/homgorn/wp-oss-AI-agent" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress open-source AI agent OS - homgorn/wp-oss-AI-agent</a> - orchestrazione agenti self-hosted alternativa a WordPress.com MCP</li><li><a href="https://wpnova.com/ai-agents-in-wordpress-2026/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">AI Agents in WordPress 2026 - WP Nova</a> - panoramica agentic commerce su WP, focus catalogo</li><li><a href="https://news.seonib.com/articles/2026-07-21/woocommerce-agentic-commerce-how-ai-agents-are-reshaping-e-c.html" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WooCommerce Agentic Commerce - Seonib News 2026-07</a> - case study agentic commerce con MCP+Stripe</li><li><a href="https://techvea.com/agentic-commerce-woocommerce-2026/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Agentic Commerce: AI Agents Reshaping WooCommerce - TechVea</a> - impatto agenti autonomi su pricing, content, recovery</li><li><a href="https://storeagent.ai/best-ai-plugins-for-wordpress/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Best AI Agent Plugins for WordPress - StoreAgent</a> - panoramica plugin commerciali vs stack self-hosted</li><li><a href="https://zerotowp.com/woocommerce-ai-automation-guide" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WooCommerce AI Automation Guide 2026 - ZeroToWP</a> - stack tecnico per store singolo con agenti MCP</li><li><a href="https://www.mrtux.it/wordpress-7-0-funzionalita-editoriali-armstrong" data-wpel-link="internal" target="_self" rel="noopener">WP 7.0 AI Connectors - guida operativa mrtux.it</a> - come WP 7.0 espone connettori AI nativi, base per il pattern MCP</li><li><a href="https://www.mrtux.it/wp-plugin-ai-mcp-abilities-pattern" data-wpel-link="internal" target="_self" rel="noopener">Plugin AI WordPress con MCP e abilities - mrtux.it</a> - pattern architetturale Plugin Team, complementare a questo articolo</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/woocommerce-agentic-commerce-2026-ordini-ai-agent/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
