Instrukcja 1.0

Uruchom dostęp firmowy bez tworzenia drugiego sklepu.

Konfiguracja opiera się na istniejących kontach, grupach, produktach, cenach i natywnym koszyku Shopera.

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.

Najpierw przygotuj ShoperaSprawdź aktywne konta firm, grupy użytkowników, przypisanie grup do poziomów 1–3 oraz unikalność SKU lub EAN. Zestawy, jednostki ułamkowe i niejednoznaczne identyfikatory nie są obsługiwane przez szybkie zamawianie.

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

  1. Otwórz Grupy i ceny.
  2. Sprawdź odczyt istniejących grup Shopera i ich price_level.
  3. Upewnij się, że poziom 1 jest ceną podstawową, poziom 2 korzysta z price_wholesale, a poziom 3 z price_special.
  4. 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.
Brak osobnych cennikówWiele grup może wskazywać ten sam poziom. GrowB2B nie tworzy cen per kontrahent ani czwartego poziomu.

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.

  1. Klient wpisuje e-mail istniejącego konta.
  2. Odpowiedź jest neutralna dla braku, wielu, nieaktywnego i prawidłowego konta.
  3. Dokładnie jedno aktywne, zarejestrowane konto może otrzymać sześciocyfrowy kod.
  4. Po kodzie istniejący kontrahent wraca do szybkiego zamawiania. Pozostały użytkownik podaje NIP lub VAT ID i dane firmy.
  5. Odczyt rejestrowy jest pomocniczy, a pola pozostają edytowalne. Niedostępny rejestr nie blokuje ręcznego wniosku.
  6. 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ę.

  1. Wybierz istniejącą grupę.
  2. Potwierdź jawnie before i after.
  3. GrowB2B ponownie odczyta użytkownika, grupę i plan.
  4. Jeśli stan się zmienił, operacja zakończy się konfliktem bez PUT.
  5. Jeśli stan jest zgodny, payload zawiera tylko group_id.
  6. Sukces pojawi się dopiero po świeżym odczycie użytkownika.
Wynik niepewnyNie klikaj ponownie. Otwórz diagnostykę i uzgodnij bieżącą grupę z Shoperem. Aplikacja nie wykonuje ślepego retry.

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.

  1. Kliknij Odczytaj bieżący rabat.
  2. Sprawdź dokładną parę bieżący → docelowy dla users.discount.
  3. Wpisz cel od 0.00 do 100.00 i potwierdź zmianę.
  4. Przed PUT aplikacja ponownie porówna rabat z wartością oczekiwaną i zapisze wyłącznie pole discount.
  5. Sukces pojawi się dopiero po zgodnym, świeżym odczycie kontrolnym.
Konflikt lub wynik niepewnyKonflikt zamyka stary formularz i wymaga nowego odczytu. Przy braku potwierdzenia zapis pozostaje zablokowany — nie powtarzaj go w ciemno.

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.

  1. Wybierz poziom 2 lub 3 i plik UTF-8.
  2. Podgląd odrzuci duplikaty, brakujące SKU, niejednoznaczny katalog i błędne liczby.
  3. Sprawdź każdą parę before i target oraz hash podglądu.
  4. Zastosowanie przed każdym PUT wykonuje GET i porównuje parę ceny oraz typu.
  5. Po PUT następuje GET kontrolny. Niepewny zapis nie jest ponawiany.
  6. 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.

  1. Prepare existing active accounts and Shoper user groups mapped to native levels 1–3.
  2. Share the store-specific public form link from the admin panel. Neutral OTP never reveals whether an account exists.
  3. Review company data manually. Registry lookup is advisory and editable.
  4. Approve an exact current group to target group change. GrowB2B writes only group_id after source recheck and confirms it by readback.
  5. 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.
  6. Enable Storefront quick order after its live probe. Keep RWD hidden unless the exact callback-first adapter passes, then start with qty=1 only.
  7. 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.