The CanItBuy Matrix

Twelve reference stores. Each has one obstacle we find in real stores. Every week we check which AI models get through the purchase and which read the price, sizes, delivery and returns correctly.

reference stores
12
AI models
5
test modes
4
last run
20 Oct 2026

The CanItBuy agent opens the store in a real browser, picks a product and a size, adds it to the cart and goes to checkout. It stops before payment.

Reference storeGPT-6 LunaClaude Haiku 5.5Gemini 3.8 FlashGemini 2.5 FlashGPT-4.1 mini
S01Control storeEverything done properly: sizes as labelled buttons, plain links to products, product data in the code and guest checkout.Open the store––––Home pagedid not reach a productrecording
S02Cookie wallThe consent banner covers the whole page. The first screen only offers “Accept all” and “Settings”.Open the store––––Home pagedid not reach a productrecording
S03Discount pop-upAfter a moment a discount window opens on every page. Only an unnamed “×” icon closes it.Open the store–––––
S04Tiles without linksProducts in listings are JavaScript blocks, not links. The page code has no product addresses.Open the store–––––
S05Sizes as imagesSizes are images of a number, with no text and no name in the code.Open the store–––––
S06JavaScript dropdownThe size is picked from a decorative JavaScript list. The real select field is hidden and the list items are not buttons.Open the store–––––
S07Unavailable by colour onlyUnavailable sizes are only greyed out. Neither the text nor the code says so, and trying to buy one ends in an error.Open the store–––––
S08Colour first, then sizeSizes appear only after a colour is chosen. The page code sent by the server does not contain them.Open the store–––––
S09Terms consent in the cartThe “Proceed to checkout” button only works after ticking the terms consent in the cart.Open the store–––––
S10Account requiredCheckout requires logging in or creating an account. There is no guest checkout.Open the store–––––
S11JavaScript-only contentThe store builds its pages in the browser. The HTML sent by the server is empty.Open the store–––––
S12No product data in the codeThe page looks normal but has no structured product data (JSON-LD).Open the store–––––
Checkout: 0 of 2

The gates are the purchase stages: product, variant, cart and checkout. A red gate marks where the agent stopped.

How to fix each obstacle

  1. S02

    Cookie wall

    Offer “Only necessary” on the first screen and do not lock the page behind the banner.

  2. S03

    Discount pop-up

    Name the close button (aria-label “Close”) and keep the window off product and cart pages.

  3. S04

    Tiles without links

    Wrap every product tile in a plain <a href> link to the product page.

  4. S05

    Sizes as images

    Give every size text or an aria-label such as “Size 42”, and mark unavailable ones as disabled.

  5. S06

    JavaScript dropdown

    Keep a visible native <select>, or give the list ARIA roles (listbox and option).

  6. S07

    Unavailable by colour only

    Mark unavailable sizes as disabled and in text, e.g. “44 – out of stock”.

  7. S08

    Colour first, then size

    Show sizes straight away and preselect a default colour.

  8. S09

    Terms consent in the cart

    Move terms acceptance to the last checkout step, next to the order button.

  9. S10

    Account required

    Enable guest checkout.

  10. S11

    JavaScript-only content

    Render store pages on the server (SSR) or generate them statically.

  11. S12

    No product data in the code

    Add Product JSON-LD with price, availability, variants, delivery and returns.

How we test

  • The reference stores are one store, NORDLYS, in twelve copies. Copy s01 is done properly, and every other copy adds exactly one obstacle, so a difference in the result shows the effect of that one obstacle.
  • These are our own test stores, not specific themes or platforms. We do not test other people’s stores without the owner’s consent.
  • The browser agent has at most 16 steps and 150 seconds. We count the product and cart stages only when the page confirms them, and checkout is detected by code, not by the AI model.
  • The CanItBuy agent picks elements from a list read from the page code and also sees a screenshot. It does not click arbitrary points of the image, so it cannot use controls that are not buttons or links in the code. Agents that click screen coordinates may manage them, and the manual tests show that.
  • In the reading modes we compare the answer with the truth about the store. “Not found” means the model admitted the information was missing. “Wrong” means it gave an incorrect value.
  • The agent never places an order and never types personal or payment data. The reference stores sell nothing and store nothing that is typed in.
  • We repeat the tests every week. The table shows the latest result for each pair. A result describes the named model in our test; other agents may behave differently.

Citation and data

The CanItBuy Matrix, canitbuy.com/matrix, as of 20 Oct 2026.

We publish the results under CC BY 4.0: you may download, analyse and publish them with attribution.

Download the data (JSON)

The same purchase path, the same agent, your store.

Check your store