Matryca CanItBuy
Dwanaście sklepów wzorcowych. Każdy ma jedną przeszkodę, którą spotykamy w prawdziwych sklepach. Co tydzień sprawdzamy, które modele AI przejdą przez nie zakup i które poprawnie odczytają cenę, rozmiary, dostawę i zwroty.
- sklepów wzorcowych
- 12
- modele AI
- 5
- tryby testu
- 4
- ostatni pomiar
- 20 paź 2026
Agent CanItBuy otwiera sklep w prawdziwej przeglądarce, wybiera produkt i rozmiar, dodaje go do koszyka i idzie do kasy. Zatrzymuje się przed płatnością.
| Sklep wzorcowy | GPT-6 Luna | Claude Haiku 5.5 | Gemini 3.8 Flash | Gemini 2.5 Flash | GPT-4.1 mini |
|---|---|---|---|---|---|
| S01Sklep kontrolnyWszystko zrobione porządnie: rozmiary jako opisane przyciski, zwykłe linki do produktów, dane produktu w kodzie i zakup jako gość.Otwórz sklep | – | – | – | – | Strona głównanie dotarł do produktu |
| S02Ściana cookiesBaner zgód zasłania całą stronę. Na pierwszym ekranie są tylko „Akceptuję wszystkie” i „Ustawienia”.Otwórz sklep | – | – | – | – | Strona głównanie dotarł do produktu |
| S03Pop-up z rabatemPo chwili na każdej stronie wyskakuje okno z kodem rabatowym. Zamyka je tylko ikona „×” bez nazwy.Otwórz sklep | – | – | – | – | – |
| S04Kafelki bez linkówProdukty na listach to bloki obsługiwane JavaScriptem, a nie linki. W kodzie strony nie ma adresów produktów.Otwórz sklep | – | – | – | – | – |
| S05Rozmiary jako obrazkiRozmiary to obrazki z cyfrą: bez tekstu i bez nazwy w kodzie.Otwórz sklep | – | – | – | – | – |
| S06Lista rozwijana z JavaScriptuRozmiar wybiera się z ozdobnej listy zbudowanej w JavaScripcie. Prawdziwe pole wyboru jest ukryte, a pozycje listy nie są przyciskami.Otwórz sklep | – | – | – | – | – |
| S07Niedostępne tylko koloremNiedostępne rozmiary są tylko wyszarzone. Ani tekst, ani kod tego nie mówią, a próba zakupu kończy się błędem.Otwórz sklep | – | – | – | – | – |
| S08Najpierw kolor, potem rozmiarRozmiary pojawiają się dopiero po wybraniu koloru. Kod strony wysłany z serwera ich nie zawiera.Otwórz sklep | – | – | – | – | – |
| S09Zgoda na regulamin w koszykuPrzycisk „Przejdź do kasy” działa dopiero po zaznaczeniu zgody na regulamin w koszyku.Otwórz sklep | – | – | – | – | – |
| S10Zakup tylko z kontemKasa wymaga zalogowania albo założenia konta. Nie ma zakupu jako gość.Otwórz sklep | – | – | – | – | – |
| S11Treść tylko z JavaScriptuSklep buduje strony dopiero w przeglądarce. Kod HTML wysłany z serwera jest pusty.Otwórz sklep | – | – | – | – | – |
| S12Bez danych produktu w kodzieStrona wygląda normalnie, ale nie ma danych strukturalnych produktu (JSON-LD).Otwórz sklep | – | – | – | – | – |
| Kasa: 0 z 2 |
Bramki pokazują etapy zakupu: produkt, wariant, koszyk i kasa. Czerwona bramka to miejsce, w którym agent się zatrzymał.
Jak asystent AI z przeglądaniem: pobiera strony jako zwykły HTML, bez uruchamiania JavaScriptu, i przechodzi tylko po linkach. Może przeczytać najwyżej 4 strony.
Pytanie w trybach czytania: „Czy buty do biegania Aero Run 2 są dostępne w rozmiarze 42 i w rozmiarze 44? Ile kosztują, ile kosztuje dostawa i ile dni mam na zwrot?” Poprawna odpowiedź: 549 zł, rozmiar 42 dostępny, rozmiar 44 niedostępny, dostawa 14,99 zł, 30 dni na zwrot.
| Sklep wzorcowy | GPT-6 Luna | Claude Haiku 5.5 | Gemini 3.8 Flash | Gemini 2.5 Flash | GPT-4.1 mini |
|---|---|---|---|---|---|
| S01Sklep kontrolnyWszystko zrobione porządnie: rozmiary jako opisane przyciski, zwykłe linki do produktów, dane produktu w kodzie i zakup jako gość.Otwórz sklep | – | – | – | 0/5cena: nie znalazł, rozmiar 42: nie znalazł, rozmiar 44: nie znalazł, dostawa: nie znalazł, zwroty: nie znalazł | 0/5cena: nie znalazł, rozmiar 42: nie znalazł, rozmiar 44: nie znalazł, dostawa: nie znalazł, zwroty: nie znalazł |
| S02Ściana cookiesBaner zgód zasłania całą stronę. Na pierwszym ekranie są tylko „Akceptuję wszystkie” i „Ustawienia”.Otwórz sklep | – | – | – | – | 0/5cena: nie znalazł, rozmiar 42: nie znalazł, rozmiar 44: nie znalazł, dostawa: nie znalazł, zwroty: nie znalazł |
| S03Pop-up z rabatemPo chwili na każdej stronie wyskakuje okno z kodem rabatowym. Zamyka je tylko ikona „×” bez nazwy.Otwórz sklep | – | – | – | – | – |
| S04Kafelki bez linkówProdukty na listach to bloki obsługiwane JavaScriptem, a nie linki. W kodzie strony nie ma adresów produktów.Otwórz sklep | – | – | – | – | – |
| S05Rozmiary jako obrazkiRozmiary to obrazki z cyfrą: bez tekstu i bez nazwy w kodzie.Otwórz sklep | – | – | – | – | – |
| S06Lista rozwijana z JavaScriptuRozmiar wybiera się z ozdobnej listy zbudowanej w JavaScripcie. Prawdziwe pole wyboru jest ukryte, a pozycje listy nie są przyciskami.Otwórz sklep | – | – | – | – | – |
| S07Niedostępne tylko koloremNiedostępne rozmiary są tylko wyszarzone. Ani tekst, ani kod tego nie mówią, a próba zakupu kończy się błędem.Otwórz sklep | – | – | – | – | – |
| S08Najpierw kolor, potem rozmiarRozmiary pojawiają się dopiero po wybraniu koloru. Kod strony wysłany z serwera ich nie zawiera.Otwórz sklep | – | – | – | – | – |
| S09Zgoda na regulamin w koszykuPrzycisk „Przejdź do kasy” działa dopiero po zaznaczeniu zgody na regulamin w koszyku.Otwórz sklep | – | – | – | – | – |
| S10Zakup tylko z kontemKasa wymaga zalogowania albo założenia konta. Nie ma zakupu jako gość.Otwórz sklep | – | – | – | – | – |
| S11Treść tylko z JavaScriptuSklep buduje strony dopiero w przeglądarce. Kod HTML wysłany z serwera jest pusty.Otwórz sklep | – | – | – | – | – |
| S12Bez danych produktu w kodzieStrona wygląda normalnie, ale nie ma danych strukturalnych produktu (JSON-LD).Otwórz sklep | – | – | – | – | – |
| Średnio 0 z 5 | Średnio 0 z 5 |
Kropki to pięć informacji: cena, rozmiar 42, rozmiar 44, dostawa i zwroty. Pełna kropka: poprawnie. Pusta: model przyznał, że nie znalazł. Czerwona: podał złą wartość.
Program bez przeglądarki: widzi tylko robots.txt, mapę strony, llms.txt i dane strukturalne (JSON-LD). Nie widzi tekstu strony.
Pytanie w trybach czytania: „Czy buty do biegania Aero Run 2 są dostępne w rozmiarze 42 i w rozmiarze 44? Ile kosztują, ile kosztuje dostawa i ile dni mam na zwrot?” Poprawna odpowiedź: 549 zł, rozmiar 42 dostępny, rozmiar 44 niedostępny, dostawa 14,99 zł, 30 dni na zwrot.
| Sklep wzorcowy | GPT-6 Luna | Claude Haiku 5.5 | Gemini 3.8 Flash | Gemini 2.5 Flash | GPT-4.1 mini |
|---|---|---|---|---|---|
| S01Sklep kontrolnyWszystko zrobione porządnie: rozmiary jako opisane przyciski, zwykłe linki do produktów, dane produktu w kodzie i zakup jako gość.Otwórz sklep | – | – | – | 4/5cena: poprawnie, rozmiar 42: poprawnie, rozmiar 44: nie znalazł, dostawa: poprawnie, zwroty: poprawnie | 4/5cena: poprawnie, rozmiar 42: poprawnie, rozmiar 44: błędnie, dostawa: poprawnie, zwroty: poprawnie |
| S02Ściana cookiesBaner zgód zasłania całą stronę. Na pierwszym ekranie są tylko „Akceptuję wszystkie” i „Ustawienia”.Otwórz sklep | – | – | – | – | 4/5cena: poprawnie, rozmiar 42: poprawnie, rozmiar 44: błędnie, dostawa: poprawnie, zwroty: poprawnie |
| S03Pop-up z rabatemPo chwili na każdej stronie wyskakuje okno z kodem rabatowym. Zamyka je tylko ikona „×” bez nazwy.Otwórz sklep | – | – | – | – | – |
| S04Kafelki bez linkówProdukty na listach to bloki obsługiwane JavaScriptem, a nie linki. W kodzie strony nie ma adresów produktów.Otwórz sklep | – | – | – | – | – |
| S05Rozmiary jako obrazkiRozmiary to obrazki z cyfrą: bez tekstu i bez nazwy w kodzie.Otwórz sklep | – | – | – | – | – |
| S06Lista rozwijana z JavaScriptuRozmiar wybiera się z ozdobnej listy zbudowanej w JavaScripcie. Prawdziwe pole wyboru jest ukryte, a pozycje listy nie są przyciskami.Otwórz sklep | – | – | – | – | – |
| S07Niedostępne tylko koloremNiedostępne rozmiary są tylko wyszarzone. Ani tekst, ani kod tego nie mówią, a próba zakupu kończy się błędem.Otwórz sklep | – | – | – | – | – |
| S08Najpierw kolor, potem rozmiarRozmiary pojawiają się dopiero po wybraniu koloru. Kod strony wysłany z serwera ich nie zawiera.Otwórz sklep | – | – | – | – | – |
| S09Zgoda na regulamin w koszykuPrzycisk „Przejdź do kasy” działa dopiero po zaznaczeniu zgody na regulamin w koszyku.Otwórz sklep | – | – | – | – | – |
| S10Zakup tylko z kontemKasa wymaga zalogowania albo założenia konta. Nie ma zakupu jako gość.Otwórz sklep | – | – | – | – | – |
| S11Treść tylko z JavaScriptuSklep buduje strony dopiero w przeglądarce. Kod HTML wysłany z serwera jest pusty.Otwórz sklep | – | – | – | – | – |
| S12Bez danych produktu w kodzieStrona wygląda normalnie, ale nie ma danych strukturalnych produktu (JSON-LD).Otwórz sklep | – | – | – | – | – |
| Średnio 4 z 5 | Średnio 4 z 5 |
Kropki to pięć informacji: cena, rozmiar 42, rozmiar 44, dostawa i zwroty. Pełna kropka: poprawnie. Pusta: model przyznał, że nie znalazł. Czerwona: podał złą wartość.
Symulacja asystenta głosowego: to samo czytanie HTML, ale najwyżej 2 strony i odpowiedź w dwóch zdaniach. Nie testujemy prawdziwych głośników ani aplikacji.
Pytanie w trybach czytania: „Czy buty do biegania Aero Run 2 są dostępne w rozmiarze 42 i w rozmiarze 44? Ile kosztują, ile kosztuje dostawa i ile dni mam na zwrot?” Poprawna odpowiedź: 549 zł, rozmiar 42 dostępny, rozmiar 44 niedostępny, dostawa 14,99 zł, 30 dni na zwrot.
| Sklep wzorcowy | GPT-6 Luna | Claude Haiku 5.5 | Gemini 3.8 Flash | Gemini 2.5 Flash | GPT-4.1 mini |
|---|---|---|---|---|---|
| S01Sklep kontrolnyWszystko zrobione porządnie: rozmiary jako opisane przyciski, zwykłe linki do produktów, dane produktu w kodzie i zakup jako gość.Otwórz sklep | – | – | – | 0/5cena: nie znalazł, rozmiar 42: nie znalazł, rozmiar 44: nie znalazł, dostawa: nie znalazł, zwroty: nie znalazłOdpowiedźPrzepraszam, ale nie mogę znaleźć tych informacji. Strona, którą otworzyłem, jest pusta. | 0/5cena: nie znalazł, rozmiar 42: nie znalazł, rozmiar 44: nie znalazł, dostawa: nie znalazł, zwroty: nie znalazłOdpowiedźNie mogę znaleźć informacji o dostępności butów Aero Run 2, ich cenie, kosztach dostawy ani czasie na zwrot na stronie sklepu. |
| S02Ściana cookiesBaner zgód zasłania całą stronę. Na pierwszym ekranie są tylko „Akceptuję wszystkie” i „Ustawienia”.Otwórz sklep | – | – | – | – | 0/5cena: nie znalazł, rozmiar 42: nie znalazł, rozmiar 44: nie znalazł, dostawa: nie znalazł, zwroty: nie znalazłOdpowiedźNie mogę znaleźć informacji o dostępności, cenie, kosztach dostawy ani czasie na zwrot butów Aero Run 2. |
| S03Pop-up z rabatemPo chwili na każdej stronie wyskakuje okno z kodem rabatowym. Zamyka je tylko ikona „×” bez nazwy.Otwórz sklep | – | – | – | – | – |
| S04Kafelki bez linkówProdukty na listach to bloki obsługiwane JavaScriptem, a nie linki. W kodzie strony nie ma adresów produktów.Otwórz sklep | – | – | – | – | – |
| S05Rozmiary jako obrazkiRozmiary to obrazki z cyfrą: bez tekstu i bez nazwy w kodzie.Otwórz sklep | – | – | – | – | – |
| S06Lista rozwijana z JavaScriptuRozmiar wybiera się z ozdobnej listy zbudowanej w JavaScripcie. Prawdziwe pole wyboru jest ukryte, a pozycje listy nie są przyciskami.Otwórz sklep | – | – | – | – | – |
| S07Niedostępne tylko koloremNiedostępne rozmiary są tylko wyszarzone. Ani tekst, ani kod tego nie mówią, a próba zakupu kończy się błędem.Otwórz sklep | – | – | – | – | – |
| S08Najpierw kolor, potem rozmiarRozmiary pojawiają się dopiero po wybraniu koloru. Kod strony wysłany z serwera ich nie zawiera.Otwórz sklep | – | – | – | – | – |
| S09Zgoda na regulamin w koszykuPrzycisk „Przejdź do kasy” działa dopiero po zaznaczeniu zgody na regulamin w koszyku.Otwórz sklep | – | – | – | – | – |
| S10Zakup tylko z kontemKasa wymaga zalogowania albo założenia konta. Nie ma zakupu jako gość.Otwórz sklep | – | – | – | – | – |
| S11Treść tylko z JavaScriptuSklep buduje strony dopiero w przeglądarce. Kod HTML wysłany z serwera jest pusty.Otwórz sklep | – | – | – | – | – |
| S12Bez danych produktu w kodzieStrona wygląda normalnie, ale nie ma danych strukturalnych produktu (JSON-LD).Otwórz sklep | – | – | – | – | – |
| Średnio 0 z 5 | Średnio 0 z 5 |
Kropki to pięć informacji: cena, rozmiar 42, rozmiar 44, dostawa i zwroty. Pełna kropka: poprawnie. Pusta: model przyznał, że nie znalazł. Czerwona: podał złą wartość.
Agenci dla klientów, np. ChatGPT agent czy Comet, sprawdzani ręcznie na tych samych sklepach. Każdy wynik ma nagranie wideo.
Pierwsze ręczne testy prawdziwych agentów opublikujemy wkrótce. Każdy będzie miał nagranie wideo.
Bramki pokazują etapy zakupu: produkt, wariant, koszyk i kasa. Czerwona bramka to miejsce, w którym agent się zatrzymał.
Jak naprawić każdą przeszkodę
- S02
Ściana cookies
Dodaj „Tylko niezbędne” na pierwszym ekranie banera i nie blokuj strony pod nim.
- S03
Pop-up z rabatem
Nazwij przycisk zamykania (aria-label „Zamknij”) i nie pokazuj okna na stronie produktu ani w koszyku.
- S04
Kafelki bez linków
Owiń każdy kafelek produktu zwykłym linkiem <a href> do strony produktu.
- S05
Rozmiary jako obrazki
Dodaj każdemu rozmiarowi tekst albo aria-label, np. „Rozmiar 42”, a niedostępne oznacz atrybutem disabled.
- S06
Lista rozwijana z JavaScriptu
Zostaw widoczny zwykły <select> albo nadaj liście role ARIA (listbox i option).
- S07
Niedostępne tylko kolorem
Oznacz niedostępne rozmiary atrybutem disabled i tekstem, np. „44 – brak”.
- S08
Najpierw kolor, potem rozmiar
Pokaż rozmiary od razu i zaznacz domyślny kolor.
- S09
Zgoda na regulamin w koszyku
Przenieś akceptację regulaminu do ostatniego kroku kasy, obok przycisku zamówienia.
- S10
Zakup tylko z kontem
Włącz zakup bez rejestracji.
- S11
Treść tylko z JavaScriptu
Renderuj strony sklepu po stronie serwera (SSR) albo generuj je statycznie.
- S12
Bez danych produktu w kodzie
Dodaj JSON-LD Product z ceną, dostępnością, wariantami, dostawą i zwrotami.
Jak testujemy
- Sklepy wzorcowe to jeden sklep NORDLYS w dwunastu kopiach. Kopia s01 jest zrobiona porządnie, każda następna dodaje dokładnie jedną przeszkodę. Dzięki temu różnica w wyniku pokazuje wpływ tej jednej przeszkody.
- To nasze własne sklepy testowe, a nie konkretne motywy ani platformy. Cudzych sklepów nie testujemy bez zgody właściciela.
- Agent w przeglądarce ma najwyżej 16 kroków i 150 sekund. Etap produktu i koszyka liczymy tylko wtedy, gdy potwierdza go strona, a kasę rozpoznaje program, a nie model AI.
- Agent CanItBuy wybiera elementy z listy odczytanej z kodu strony i widzi zrzut ekranu. Nie klika w dowolne punkty obrazu, więc elementów, których nie ma w kodzie jako przycisków lub linków, nie użyje. Agenci klikający w punkty ekranu mogą sobie z nimi poradzić i to pokazują testy ręczne.
- W trybach czytania porównujemy odpowiedź z prawdą o sklepie. „Nie znalazł” znaczy, że model przyznał, że informacji brak. „Błędnie” znaczy, że podał złą wartość.
- Agent nigdy nie składa zamówienia i nie wpisuje danych osobowych ani płatniczych. Sklepy wzorcowe niczego nie sprzedają i nie zapisują wpisanych danych.
- Testy powtarzamy co tydzień. Tabela pokazuje najnowszy wynik każdej pary. Wynik dotyczy podanego modelu w naszym teście; inne agenty mogą zachowywać się inaczej.
Cytowanie i dane
Matryca CanItBuy, canitbuy.com/matryca, stan na 20 paź 2026.
Wyniki udostępniamy na licencji CC BY 4.0: możesz je pobrać, analizować i publikować z podaniem źródła.