Gdy spada sprzedaż na Allegro, zacznij od rozbicia spadku na produkty i porównania z innymi kanałami. Jeśli spadł jeden produkt, i to wszędzie, przyczyna jest w tym produkcie (stan, cena, oferta), a nie w algorytmie Allegro. W danych z BaseLinkera (Base) sprawdzisz to kilkoma metodami API tylko do odczytu, które Claude Code wywoła sam.

Sprawdziliśmy to na Ochrze, sklepie z ceramiką, który sprzedaje na Allegro, w sklepie internetowym i na Erli. W tygodniu 19–25 października zamówień z Allegro było o 43% mniej niż tydzień wcześniej. Prawie cały spadek dał jeden wyprzedany kubek.

Co widać w danychCo to zwykle znaczyCo sprawdzić dalej
Spadł jeden produkt, we wszystkich kanałachBrak towaru albo zmiana cenyStan i dostawy w katalogu, historia ceny w zamówieniach
Spadł jeden produkt, tylko na AllegroProblem z ofertą: zakończona, gorsza cena niż u konkurencji, inne przypisanie do produktuOferta w Sales Center, ceny konkurencji
Spadło całe Allegro, inne kanały stojąWidoczność, oceny, zmiany na AllegroStatystyki i jakość sprzedaży w Sales Center
Spadły wszystkie kanałySezon, rynek, problem w sklepie lub magazynieTen sam tydzień rok wcześniej, czas wysyłki
Mniej zamówień, podobna wartośćInny koszyk, np. mniej tanich produktówWartość sprzedaży i średnie zamówienie

Pytanie, które zadaliśmy

Pytanie brzmiało tak, jak zadałby je właściciel sklepu w poniedziałek rano:

Sprzedaż na Allegro w zeszłym tygodniu wyraźnie siadła. Sprawdź w Base,
o ile spadła, czy dotyczy to też sklepu i Erli, i co jest przyczyną.
Porównaj tydzień 19–25.10.2026 z czterema poprzednimi tygodniami.
Anulowane zamówienia pomiń. Danych kupujących nie cytuj.

Dwie rzeczy w tym poleceniu robią różnicę. Daty: bez nich model sam wybiera okres i trudno porównać wynik z panelem. I prośba o porównanie z innymi kanałami, bo bez niej dostaniesz opis Allegro w oderwaniu od reszty sklepu.

Claude Code uruchomiliśmy w folderze z plikiem CLAUDE.md. Opisaliśmy w nim sklep i trzy zasady liczenia: datę zamówienia bierzemy z pola date_add, anulowane zamówienia pomijamy, a koszt zakupu jest w polu average_cost. Claude czyta ten plik na starcie każdej sesji, więc zasad nie trzeba powtarzać w każdym pytaniu.

Skąd Claude bierze dane z Base

Są dwie drogi i obie prowadzą do tych samych metod API.

MCP Base. Base udostępnia serwer MCP pod adresem https://mcp.base.com/mcp, z logowaniem kontem Base (OAuth). W Claude.ai i Claude Desktop dodajesz go jako custom connector, w innych klientach MCP podajesz ten sam adres. Źródło: pomoc Base, MCP w Base.com W Claude Code to jedno polecenie, a logowanie kończysz w przeglądarce po wpisaniu /mcp w sesji. Źródło: dokumentacja Claude Code, MCP

claude mcp add --transport http base https://mcp.base.com/mcp

Pomoc Base opisuje jedno narzędzie, ask_sidebar, czyli asystenta z panelu, który odpowiada tekstem. W naszym teście połączenia z 22 października 2026 r. Claude widział trzy narzędzia: ask_agent, run_api_call_readonly (każda metoda get) i run_api_call_all (także zapisy, z potwierdzeniem przed zmianą). Więcej o różnicach piszemy w artykule BaseLinker (Base) MCP w Claude i ChatGPT.

Tabela z pomocy Base opisująca narzędzie Ask Sidebar: nazwa techniczna ask_sidebar, odpowiedź tekstowa asystenta, brak zmian w istniejących danych i logowanie OAuth 2.0 kontem Base.

Opis narzędzia w pomocy Base. 1 Nazwa narzędzia, które opisuje pomoc. 2 Odpowiedź tekstowa zamiast danych. 3 Brak zmian w danych konta. 4 Logowanie kontem Base. W naszym teście z 22 października lista narzędzi była dłuższa niż w tej tabeli.

Lista narzędzi serwera MCP base w Claude Code po poleceniu /mcp: Ask agent i Run API call (read-only) oznaczone jako read-only oraz Run API call (all methods) oznaczone jako destructive.

Serwer base w Claude Code, polecenie /mcp. 1 Serwer i trzy narzędzia. 2 Run API call (read-only), czyli run_api_call_readonly: tylko metody get. Tego narzędzia użyliśmy w tym przykładzie. 3 Run API call (all methods), czyli run_api_call_all, oznaczone jako destructive, bo może zmieniać dane.

API z tokenem. Te same metody get wywołasz bez MCP, przez REST API Base z tokenem tylko do odczytu. W tym przykładzie Claude Code korzystał z MCP Base i narzędzia run_api_call_readonly, a tokenem sprawdziliśmy liczby drugi raz, osobnym skryptem. Token generujesz w ustawieniach konta, w sekcji API; limit to 100 zapytań na minutę. Źródło: dokumentacja API BaseLinker

Krok 1: z jakiego okresu są zamówienia

Claude zaczął od instrukcji API, którą udostępnia serwer MCP Base, i od list statusów (getOrderStatusList) i kanałów (getOrderSources), żeby wiedzieć, który status oznacza anulowanie i który kanał to Allegro. Potem pobrał zamówienia metodą getOrders, od poniedziałku 21 września:

{ "date_from": 1789941600, "get_unconfirmed_orders": false }

getOrders zwraca najwyżej 100 zamówień na wywołanie. Claude powtarzał zapytanie od daty date_add ostatniego zamówienia plus jedna sekunda, aż dostał mniej niż 100. Wyszły cztery wywołania i 376 zamówień z okresu od 21 września do 25 października 2026 r.

Fragment sesji Claude Code: na stronie jest 100 zamówień, ostatnie ma date_add 1791553800, a kolejne wywołanie getOrders zaczyna od date_from 1791553801; wynik ma 192 070 znaków i przekracza limit rozmowy.

Przejście do kolejnej strony zamówień. 1 Na stronie jest 100 zamówień, więc to nie koniec. 2 date_add ostatniego zamówienia na stronie. 3 Następne wywołanie zaczyna od tej daty plus jedna sekunda. 4 Strona ma ok. 190 tys. znaków, za dużo na rozmowę, więc Claude Code zapisuje ją do pliku.

Dokumentacja Base podpowiada stronicowanie po dacie potwierdzenia (date_confirmed_from). Pytaliśmy o to, kiedy kupujący kupił, więc w CLAUDE.md kazaliśmy liczyć po dacie dodania zamówienia. Źródło: dokumentacja API BaseLinker, getOrders

Krok 2: tydzień po tygodniu, w podziale na kanały

Sprzedaż to wartość produktów brutto bez kosztu dostawy, bez anulowanych zamówień.

TydzieńAllegro: zamówieniaAllegro: sprzedażSklep internetowyErli
21–27.09424 728 zł25 zam., 3 567 zł4 zam., 497 zł
28.09–4.10365 453 zł21 zam., 3 300 zł14 zam., 1 363 zł
5–11.10436 066 zł23 zam., 3 766 zł7 zam., 991 zł
12–18.10496 418 zł20 zam., 3 552 zł12 zam., 2 221 zł
19–25.10285 070 zł22 zam., 4 048 zł15 zam., 1 613 zł

Zamówień z Allegro było o 43% mniej niż tydzień wcześniej, ale wartość sprzedaży spadła o 21%. Wobec średniej z czterech poprzednich tygodni to 34% mniej zamówień i 11% mniej sprzedaży, bo tydzień 12–18.10 był w tym zestawieniu najlepszy. Sklep internetowy i Erli w tym samym tygodniu nie spadły. Pierwsza hipoteza mogłaby więc brzmieć „Allegro obcięło widoczność”. Zanim ją przyjmiesz, rozbij Allegro na produkty.

Krok 3: który produkt zniknął

Każde zamówienie z getOrders ma listę produktów z SKU, ceną i liczbą sztuk. Sztuki sprzedane na Allegro, tydzień po tygodniu:

Produkt21–27.0928.09–4.105–11.1012–18.1019–25.10
Kubek „Glina” 350 ml181919264
Talerz płaski „Ochra” 27 cm88356
Miseczki „Ziarno” 3 szt.43326
Pozostałe produkty razem3443514738

Zamówień z Allegro bez tego kubka było w tych tygodniach 25, 20, 27, 26 i 26, więc ich liczba się nie zmieniła. Sztuk innych produktów sprzedało się w ostatnim tygodniu mniej, bo część kupujących brała kubek razem z czymś jeszcze. Spadek zamówień to jeden produkt, który do połowy października był w ponad jednej trzeciej zamówień z Allegro.

Ostatnie zamówienie z kubkiem przyszło z Allegro 20 października, ze sklepu internetowego 21 października, z Erli 19 października. Kubek przestał się sprzedawać we wszystkich kanałach naraz, a to wskazuje na produkt, nie na Allegro.

Krok 4: stan w katalogu

Claude znalazł identyfikator katalogu metodą getInventories i sprawdził kubek metodą getInventoryProductsData (parametry: identyfikator katalogu i lista produktów). Odpowiedź, skrócona do pól, które rozstrzygają sprawę:

{
  "sku": "<SKU kubka>",
  "stock": { "<magazyn>": 0 },
  "reservations": { "<magazyn>": 0 },
  "incoming": { "<magazyn>": 0 },
  "prices": { "<grupa cen>": 69 },
  "average_cost": 24
}

Stan zero, nic w drodze, cena bez zmian: 69 zł w każdym zamówieniu z ostatnich tygodni. Kubek się wyprzedał i nikt nie zamówił dostawy.

Wywołanie getInventoryProductsData w sesji Claude Code przez run_api_call_readonly i odpowiedź Base dla kubka „Glina” 350 ml: stan 0, w drodze 0, cena 69, średni koszt zakupu 24, a pod spodem początek odpowiedzi Claude&#x27;a.

Kubek w katalogu, rozwinięte wywołanie w sesji. 1 getInventoryProductsData przez run_api_call_readonly. 2 Stan w magazynie: 0. 3 W drodze: 0. 4 Średni koszt zakupu: 24 zł netto. 5 Początek odpowiedzi. Identyfikatory produktu, katalogu, magazynu i grupy cen zamaskowane.

Odpowiedź

Tak brzmiała odpowiedź Claude’a, w skrócie (całą widać na zrzucie na początku artykułu):

Sprzedaż na Allegro spadła głównie dlatego, że skończył się bestseller: Kubek „Glina” 350 ml (OCH-KUB-350). Sklep i Erli nie spadły, w ostatnim tygodniu sprzedały nawet więcej. […] Na Allegro sprzedawał się po 18–26 sztuk tygodniowo, a w tygodniu 19–25.10 tylko 4. Ostatnią sztukę Allegro sprzedało 20.10, sklep 21.10. Od tego dnia kubek nie sprzedał się w żadnym kanale. W Base ma teraz stan 0 i nie ma zapisanej żadnej dostawy w drodze. Ten jeden produkt tłumaczy prawie cały spadek: brakuje około 16 sztuk tygodniowo, czyli około 1 100 zł brutto. […] Cena kubka się nie zmieniła (69 zł). […] Co proponuję: zamówić kubek 350 ml u dostawcy i wpisać dostawę w Base.

Ten sam stan widać w panelu Base, na liście produktów:

Lista produktów w panelu Base: Kubek „Glina” 350 ml ze stanem 0 szt. i ceną 69 zł, pod nim Filiżanka espresso „Ziarno” 90 ml (6 szt.), Kubek „Poranek” 500 ml (38 szt.) i Miska ramen „Wir” 18 cm (31 szt.).

Lista produktów w panelu Base. 1 Kolumna stanu. 2 Kubek „Glina” 350 ml: 0 sztuk przy cenie 69 zł. Identyfikatory produktów zamaskowane.

Dla marży policzyliśmy to samo z kosztami. Base nie przechowuje prowizji kanałów ani kosztu wysyłki, więc wzięliśmy je z arkusza sklepu: prowizja Allegro 11,5% od wartości z dostawą, wysyłka 13,50 zł na zamówienie, koszt zakupu z pola average_cost, ceny bez VAT. Wynik na Allegro po tych kosztach: 1 093 zł w tygodniu 12–18.10 i 813 zł tydzień później. Jeśli koszty kanałów masz w kilku miejscach (faktury Allegro, umowa z kurierem, ERP), to jest najtrudniejszy krok. Napisz, gdzie je trzymasz, a podpowiemy, jak je połączyć z danymi z Base.

Sprawdzenie drugim sposobem

Odpowiedź modelu warto sprawdzić czymś, czego model nie liczył w ten sam sposób. Zrobiliśmy trzy rzeczy:

  1. Dzień po dniu zamiast tygodni. Zamówienia z Allegro z kubkiem kończą się 20 października, a zamówienia bez kubka idą w ostatnich dziesięciu dniach równo, po 2 do 7 dziennie. Spadek nie zależy od tego, jak podzielimy tygodnie.
  2. Katalog z arkusza. Cena brutto i koszt zakupu kubka w osobnym pliku produktów (69 zł i 24 zł) zgadzają się z polami prices i average_cost w Base. Marża nie opiera się więc na jednym źródle.
  3. Skrypt bez modelu. Te same tygodnie, kanały i produkty policzyliśmy osobnym skryptem w Pythonie, tokenem API tylko do odczytu. Liczby zgadzają się z odpowiedzią Claude’a co do zamówienia i złotówki. Skrypt z raportem tygodniowym opisaliśmy w artykule o API BaseLinkera (Base) i metodzie getOrders.

Co zauważyliśmy

  • Liczba zamówień przesadza. Zamówień z Allegro było o 43% mniej, a wartość sprzedaży spadła o 21%, bo średnie zamówienie wzrosło z 131 zł do 181 zł: zniknął tani kubek, zostały droższe koszyki. Claude podał oba wskaźniki i porównał je też ze średnią z czterech tygodni. Zawsze proś o oba wskaźniki i o więcej niż jeden tydzień do porównania.
  • Strona zamówień nie mieści się w rozmowie. 100 zamówień z getOrders to ok. 190 tys. znaków JSON. Claude Code zapisał każdą stronę do pliku i policzył je skryptem w Pythonie, a do rozmowy trafiły tylko wyniki. Dlatego w sesji obok wywołań Base widać polecenia powłoki.
  • Za pierwszym razem liczenie marży się wyłożyło. W danych było jedno zamówienie spoza kanałów sprzedaży, z produktem, którego nie ma w katalogu, więc zabrakło dla niego kosztu zakupu. Dopiero po pominięciu zamówień spoza Allegro, sklepu i Erli liczby się zgodziły. Przy własnym sklepie poproś model, żeby wypisał zamówienia, których nie umiał przypisać do kanału.
  • Base nie ma historii stanów. API pokazuje stan teraz. Dzień, w którym kubek się skończył, wynika z ostatniej sprzedaży, a nie z zapisu w katalogu. Czy oferta na Allegro jest zakończona, sprawdzisz w Sales Center albo w liście ofert w Base.
  • Claude zauważył koniec danych. Ostatnie zamówienie w Base było z 25 października rano i od tamtej pory nie przyszło żadne, w żadnym kanale. Na koncie z danymi przykładowymi to po prostu koniec danych. W prawdziwym sklepie to sygnał, żeby od razu sprawdzić synchronizację zamówień.
  • Przy okazji wyszło, co utknęło. Dwa zamówienia ze sklepu internetowego od 17 i 18 października nadal miały status nowych. Do pytania o sprzedaż nie należały, ale to dobra rzecz do sprawdzenia tego samego dnia.
  • Kolejne braki widać w tych samych danych. Z tych samych zamówień i stanów w katalogu policzyliśmy, które produkty skończą się w ciągu tygodnia przy obecnym tempie sprzedaży:
ProduktStanSprzedaż tygodniowo (śr. z 4 tygodni, wszystkie kanały)Wystarczy na
Filiżanka espresso „Ziarno” 90 ml6ok. 10ok. 4 dni
Miseczki „Ziarno” 3 szt.4ok. 7ok. 4 dni
Zestaw 4 talerzy „Ochra”3ok. 3, w ostatnich dwóch tygodniach więcejok. 7 dni, przy ostatnim tempie mniej

Czego te dane nie powiedzą

Base widzi zamówienia, katalog i stany. Nie widzi tego, co dzieje się po stronie Allegro przed zakupem: wyświetleń ofert, pozycji w wynikach, cen konkurencji, kampanii Allegro Ads ani ocen. Jeśli w kroku 3 spada całe Allegro, a nie jeden produkt, dalsza część analizy dzieje się w Sales Center. Base w swoim poradniku o spadku sprzedaży na Allegro wymienia jako przyczyny między innymi cenę i konkurencję, jakość obsługi i oceny, dostępność produktów i zmiany na platformie. Źródło: blog Base, spadek sprzedaży na Allegro

Te same pytania co tydzień

Kiedy jedno pytanie zadziała, można je powtarzać w poniedziałek rano. Kilka, które na tym samym koncie dały odpowiedź z tych samych metod:

  • Co skończy się w tym tygodniu przy obecnym tempie sprzedaży?
  • Które zamówienia stoją w jednym statusie dłużej niż dwa dni?
  • Ile zostało z każdego kanału po prowizji, wysyłce i koszcie zakupu w zeszłym tygodniu?
  • O ile mogę obniżyć cenę każdego produktu na Allegro, żeby nie dopłacać? To pytanie policzyliśmy przed Black Weeks w artykule o kalkulatorze marży Allegro z Claude’em.
  • Który produkt sprzedaje się w sklepie, a na Allegro nie? Ten przykład policzyliśmy w artykule o Allegro MCP i danych sprzedawcy w Claude.

Pytanie, które ma przychodzić co tydzień, możesz zapisać jako zaplanowane zadanie w Claude Cowork, który liczy w chmurze, także przy wyłączonym komputerze. Polecenie z tego przykładu i ustawienia konektora Base opisaliśmy w artykule o Claude Cowork w sklepie internetowym.

Każde z nich wymaga tylko metod odczytu. Zapis (zmiana statusu, stanu, ceny) to osobna decyzja, z listą dozwolonych operacji i testem. Opisaliśmy ją w artykule o MCP Base w Claude i ChatGPT. Jeśli dane w Base nie zgadzają się z ERP albo magazynem, model odpowie pewnie na podstawie złych liczb. Wtedy zacznij od audytu integracji Base i Apilo z ERP i magazynem.

← Wszystkie artykuły