Can an AI Agent Actually Buy From You
I run the backend for a physical product that ships worldwide, in four languages, with real payments going through Stripe. So one afternoon I did something obvious and slightly uncomfortable. I pointed an agent at my own checkout and told it to buy the thing.
It did not get there. What surprised me was where it stopped.
Where it actually broke
Not the payment. Not the card form. It stopped at the shipping step, because the country list was a custom dropdown built out of styled divs. To a person it looks like a select. To software it is decoration with a click handler attached. The agent could see the words on screen and could not tell they were choices.
Second thing it could not do: work out the total. Shipping was calculated after the address, by a request that returned a number the page then wrote into a span. Nothing on the page said what the rule was. A person accepts that and moves on. An agent buying on someone's behalf has been asked to not spend more than a certain amount, and it has no way to know whether it is about to.
Both of those are things I built. Both looked completely fine in every test I had.
This is not a checkout problem
I want to be careful here, because "make your checkout agent friendly" sounds like a plugin you install. It is not that.
An agent buying something is doing the same job a careful assistant would do. It needs to know what the thing is, what it costs in total, whether it ships to the address, what happens if it is wrong, and how to undo it. Every one of those is information most stores present visually and never state.
The price is in a large font. The shipping rule is implied by a table. The return policy is a link in the footer written by a lawyer. A human assembles all of that from context and habit. Software cannot, and it does not guess, it stops.
What I changed
Less than I expected, and none of it was exciting.
The country dropdown became a real select element. That one change took ten minutes and fixed more than everything else combined.
The shipping rule went into text. Not a tooltip, not a modal, a sentence on the page that says what it costs to ship where, before you are asked for an address. My own customers liked this more than the agents did, which is a pattern I keep running into.
Every price got machine readable markup, so the total is stated once in a way that is unambiguous rather than inferred from layout.
And I wrote down, in plain sentences, what happens after you order. When it ships. What the tracking looks like. What to do if it is wrong. That page existed before as a support article nobody linked to.
Why I bothered
Honestly, not because agents are buying things at volume today. They are not, at least not in my numbers.
I bothered because every fix on that list made the store better for the people already using it. The country select works better on a phone. The shipping sentence stopped a category of support email. The order page answered the question people were emailing me to ask.
That is the actual argument, and it is the only one I trust. If preparing for agents required me to make the product worse for humans I would not do it, and I would be suspicious of anyone telling me to. It does not require that. It mostly requires saying out loud the things your design was communicating by implication.
The test you can run today
Open your own product. Turn off JavaScript, or just read the page as raw text. Then ask yourself whether someone reading only that text could complete a purchase without guessing.
If the answer is no, you have found the gap, and you did not need a single agent to find it. This is why I keep saying this work is not new. It is accessibility, taken seriously, plus the discipline of writing down what you already know.
Common questions
Do I need a special API for agents?
No. If you have one, good. If you do not, the priority is making the site you already have legible. An API nobody can discover is not more useful than a clear page.
Will agents skip my brand if I do nothing?
Sometimes, and quietly. An agent that cannot complete a task on your site will complete it somewhere else and will not tell the user why. You do not get a bounce you can see. You get an absence.
Is this a security risk?
Making your prices and shipping rules readable is not a risk. Letting software take irreversible actions without a confirmation is. Those are different problems and the second one is worth real thought.
How long does it take?
The version I described took me a weekend, and most of that was writing sentences rather than code.