01
Przed startem
GrowB2B wymaga zainstalowanej aplikacji, aktywnego abonamentu lub trialu oraz co najmniej jednej istniejącej grupy użytkowników w Shoperze. Aplikacja nie utworzy konta klienta, hasła, grupy, zamówienia, płatności ani statusu.
Wymagane uprawnienia
Aplikacja używa dokładnie 11 zakresów: users_read, users_edit, products_read, products_edit, units_read, orders_read, statuses_read, currencies_read, webhooks_read, webhooks_create i webhooks_delete. Nie istnieje osobny zakres application-config.
02
Zmapuj istniejące grupy i poziomy cen
- Otwórz Grupy i ceny.
- Sprawdź odczyt istniejących grup Shopera i ich
price_level. - Upewnij się, że poziom 1 jest ceną podstawową, poziom 2 korzysta z
price_wholesale, a poziom 3 zprice_special. - W planie Start wybierz jedną grupę. Pro pozwala używać do trzech grup. Max nie ogranicza liczby istniejących grup, ale Shoper nadal ma trzy natywne poziomy.
03
Udostępnij właściwy dla sklepu formularz
Link jest dostępny w panelu i zawiera losowy, rotowalny identyfikator formularza w fragmencie #f=…. Fragment nie trafia do logu dostępu ani nagłówka Referer. Strona usuwa go z adresu natychmiast po odczycie i przesyła wyłącznie w JSON POST. Nie udostępniaj go jako identyfikatora bezpieczeństwa do operacji Shopera, ponieważ wybiera tenant, ale nie autoryzuje zmiany.
- Klient wpisuje e-mail istniejącego konta.
- Odpowiedź jest neutralna dla braku, wielu, nieaktywnego i prawidłowego konta.
- Dokładnie jedno aktywne, zarejestrowane konto może otrzymać sześciocyfrowy kod.
- Po kodzie istniejący kontrahent wraca do szybkiego zamawiania. Pozostały użytkownik podaje NIP lub VAT ID i dane firmy.
- Odczyt rejestrowy jest pomocniczy, a pola pozostają edytowalne. Niedostępny rejestr nie blokuje ręcznego wniosku.
- Zgoda na wersję regulaminu i podsumowanie kończą zgłoszenie.
Kod działa 10 minut, ma pięć prób i 60 sekund przerwy przed ponowieniem. E-mail, NIP, kod i capability nie pojawiają się w URL, logach ani analityce.
04
Podejmij ręczną decyzję
W widoku wniosku porównaj potwierdzone konto, pomocniczy odczyt rejestrowy, obecną grupę i grupę docelową. Przycisk akceptacji nazywa dokładną zmianę.
- Wybierz istniejącą grupę.
- Potwierdź jawnie before i after.
- GrowB2B ponownie odczyta użytkownika, grupę i plan.
- Jeśli stan się zmienił, operacja zakończy się konfliktem bez PUT.
- Jeśli stan jest zgodny, payload zawiera tylko
group_id. - Sukces pojawi się dopiero po świeżym odczycie użytkownika.
05
Zmień natywny rabat tylko w planie Max
Rejestr kontrahentów nie pokazuje wartości z cache jako bieżącej. Edytor odblokowuje się dopiero po świeżym odczycie dokładnie jednego aktywnego użytkownika z Shopera.
- Kliknij Odczytaj bieżący rabat.
- Sprawdź dokładną parę bieżący → docelowy dla
users.discount. - Wpisz cel od
0.00do100.00i potwierdź zmianę. - Przed PUT aplikacja ponownie porówna rabat z wartością oczekiwaną i zapisze wyłącznie pole
discount. - Sukces pojawi się dopiero po zgodnym, świeżym odczycie kontrolnym.
06
Szybkie zamawianie
Kontrahent wkleja wiersze SKU lub EAN + ilość. Serwer rozwiązuje dokładny product_id + stock_id i sprawdza możliwość zakupu. Błędny wiersz blokuje wspólne dodanie do poprawy lub usunięcia.
Storefront
Moduł uzyskuje dynamicznie ProductFetcherApi i basketUpdaterApi, przekazuje rzeczywiste variantOptions i dodaje wiersze sekwencyjnie. Pusty lub niejednoznaczny wynik jest błędem. Nie ma automatycznego retry ani rollbacku częściowo dodanego koszyka.
RWD
Integracja jest domyślnie ukryta. Dopiero pozytywny test dokładnego adaptera callback-first pozwala uruchomić tryb qty=1. Aplikacja nie zapętla wywołań, by udawać większą ilość.
Natywny koszyk zawsze potwierdza bieżącą cenę, stan i zawartość. GrowB2B nie obiecuje sumy przed dodaniem.
07
Import cen poziomu 2 lub 3
Funkcja zapisu jest dostępna w Pro i Max. Trial pozwala zbudować podgląd, ale nie zapisuje cen. Plik V1 ma dokładnie kolumny sku,price, jeden wybrany poziom na plik i dodatnią cenę dziesiętną. Typ ceny jest zawsze bezwzględny 1.
- Wybierz poziom 2 lub 3 i plik UTF-8.
- Podgląd odrzuci duplikaty, brakujące SKU, niejednoznaczny katalog i błędne liczby.
- Sprawdź każdą parę before i target oraz hash podglądu.
- Zastosowanie przed każdym PUT wykonuje GET i porównuje parę ceny oraz typu.
- Po PUT następuje GET kontrolny. Niepewny zapis nie jest ponawiany.
- Cofnięcie przywraca tylko pozycję, której bieżąca wartość nadal równa się wartości zapisanej przez GrowB2B. Inna wartość jest konfliktem i pozostaje bez zmian.
08
Czytaj analitykę według historii członkostwa
Przypisanie używa user_id i przedziału członkostwa zapisanego w chwili zdarzenia. Gość nie jest łączony po e-mailu, a dzisiejsza grupa nie przepisuje historii.
Zamówienia, opłacone zamówienia i wartość brutto są pokazane osobno dla każdej waluty. GrowB2B nie wyświetla jednej sumy między walutami, marży, adresu ani danych dostawy.
09
Rozumiej stany i bezpieczne odzyskanie
- Loading: trwa odczyt, bez zmiany zdalnego stanu.
- Empty: widok uczy pierwszego bezpiecznego kroku.
- Conflict: źródło zmieniło się od podglądu, więc pozycja nie została zapisana lub cofnięta.
- Uncertain: wynik zapisu nie został potwierdzony. Najpierw uzgodnij przez odczyt.
- Locked lub over limit: brak nowego zwykłego zapisu. Odczyt, diagnostyka i bezpieczne cofnięcie własnej operacji cenowej pozostają dostępne.
- No adapter: moduł sklepu pozostaje niewidoczny, natywny koszyk działa bez zmian.
Obniżenie planu nigdy nie cofa automatycznie grup, cen ani rabatów w Shoperze.
English quick start
Use existing Shoper state and keep every write explicit.
- Prepare existing active accounts and Shoper user groups mapped to native levels 1–3.
- Share the store-specific public form link from the admin panel. Neutral OTP never reveals whether an account exists.
- Review company data manually. Registry lookup is advisory and editable.
- Approve an exact current group to target group change. GrowB2B writes only
group_idafter source recheck and confirms it by readback. - In Max, unlock a native discount edit only after a fresh user read, then confirm the exact current-to-target pair. Stop after conflict or uncertain readback.
- Enable Storefront quick order after its live probe. Keep RWD hidden unless the exact callback-first adapter passes, then start with qty=1 only.
- In Pro or Max, preview absolute level 2 or 3 CSV prices before applying. Never retry an uncertain write; undo only unchanged GrowB2B values.
Support: support@app.growcommerce.pl.