Import wariantów Shoper + zakładanie konta API

katarzyna

Artykuł z 18 czerwca, 2026

Krok 1: Zakładanie konto API w Shoperze

Aby można było użyć narzędzia do wgrywania wariantów po API trzeba założyć osobne konto do obsługi API w Shoperze.

W tym celu należy przejść do: Ustawienia > Ogólnie > Administratorzy sklepu.

Jeżeli istnieje już grupa i user np. verseo-api (polecam używać nazwy verseo-api bo od razu wiadomo co to jest) to nie musimy robić nowego konta tylko zdobyć hasło z Keepera – jeżeli nie pamiętamy hasła to można usunąć to konto i zrobić nowe.

Klikamy więcej i Dodaj grupę administratorów.

Ustawiamy nazwę np. verseo-api grupa i wybieramy dostęp do webapi:

Po zapisaniu z lewej strony wchodzimy do zakładki Administratorzy i klikamy Dodaj administratora

Pojawi nam się taki formularz i tworzymy administratora. Login i hasło są najważniejsze – to one będą używane w programie do zalogowania się. Dane zapisz w Keeperze. Grupę trzeba wybrać tą co się przed chwilą stworzyło czyli np. verseo-api grupa:

Potem wracamy i przechodzimy do uprawnień. W Asortyment zaznaczamy pole odczyt, dodawanie, edycja, usuwanie. Jeżeli ktoś będzie rozwijał program to można też oczywiście zaznaczyć w innych polach też jakieś uprawnienia. Ale importer wariantów wymaga tylko Asortymentu i tych 4 pól.

Krok 2: Logowanie do programu i używanie go

Wchodzimy na: https://warianty-shoper.v-stage.pl/

❌ Jeżeli nie działa: trzeba uruchomić serwer pythona ręcznie. Jest ustawione w terminalu na vhost2 Direct Admin, aby odpalało się przy restarcie serwera oraz jest Cron na sprawdzanie co minutę czy działa (w panelu vhost2 zakładka Funkcje zaawansowane > Zadania Cron) – więc nie powinno być sytuacji, że coś się zepsuło. Natomiast komenda do uruchomienia serwera to:

pgrep -f "python3 app.py" > /dev/null || (cd /home/katarzyna/shoper-variants-server && nohup /home/katarzyna/.python311/bin/python3 app.py > /home/katarzyna/shoper-variants-server/app.log 2>&1 &)

Ta komenda uruchamia bezpiecznie serwer w tle jeżeli jeszcze nie działa i zapisuje logi z błędami do pliku app.log w lokalizacji /home/katarzyna/shoper-variants-server.

✅ Jeżeli wszystko jest okej to powinna pojawić się taka strona:

Wpisujemy link do sklepu oraz nasze przed chwilą utworzone dane.

Po zalogowaniu przywita nas taki ekran. Jest to miejsce do wybrania pliku CSV (robimy go w Google Sheets / Excel i eksportujemy do CSV) oraz przykładowy wzór jak zbudować taki plik. Nazwy kolumn są dosyć intuicyjne. Trzeba podać ID produktu do jakiego wgrywamy warianty (niestety musi to być ID produktu – shoper nie akceptuje innych pól) i później nazwę opcji nr 1, typ opcji nr 1 oraz wartość tej opcji i jeżeli typ wpisaliśmy color to również trzeba ustawić wartość HEX koloru – jak nie to zostawiamy puste. Kolejne pola to: price, price_type, stock, active – cena tego wariantu, typ ceny, ile jest szt. na stanie oraz czy wariant ma być aktywny.

Ważna informacja: Shoper wcześniej miał 2 typy wariantów: bez stanów magazynowych i dowolny MIX opcji oraz stany magazynowe i wybrane ręcznie opcje, które mają ze sobą być połączone w wariant. Ale wprowadzili jakąś aktualizację UI i od teraz nowe sklepy chyba nie mają tej drugiej opcji. Program był napisany pod warianty ze stanami magazynowymi.

Trzeba pamiętać, że jeżeli chcemy mieć kilka opcji do wyboru w wariantach, to aby dodać kolejne należy robić kolumny jako option_name_1, … , option_name_2, … , option_name3, … , option_name_N:

option_name_1, option_type_1, value_name_1, color_hex_1, option_name_2, option_type_2, value_name_2, color_hex_2, option_name_3, option_type_3, ...

I wtedy program to zrozumie i wgra tyle opcji ile będzie kolumn.

https://docs.google.com/spreadsheets/d/1_Xt4KjAY8ciW1vG_x-aoYzfLHSx-7WIxQHAfz4jgrjs/edit?usp=sharing

Repo na github: https://github.com/Verseo/shoper-variants-importer-py/

Po uruchomieniu importu powinien być taki ekran:

Jest podsumowanie wgrywania. Pojawił się jakiś błąd i można wywnioskować z niego co poszło nie tak. Okazało się że nie zaznaczyłem odczyt/dodawanie/edycja zamiast odczyt/dodawanie/edycja/usuwanie.