Free cookie consent management tool by TermsFeedAktualizacja preferencji plików cookie

Profesjonalny system B2B dla Magento 2 Open Source

153,75 EUR 125,00 EUR
Instalacja COMPOSER
M2-B2B
  • 2.4.9
  • 2.4.8
  • 2.4.7

Kowal B2B Suite został zaprojektowany jako profesjonalna warstwa B2B dla Magento 2 Open Source. Jego zadaniem jest nie tylko dodanie kilku ekranów dla firm, ale stworzenie kompletnego środowiska sprzedaży hurtowej i kontraktowej, które może działać samodzielnie albo jako część większego ekosystemu handlowego.

Pakiet opiera się na podstawowej zasadzie: Magento pozostaje źródłem produktów, kategorii, stanów magazynowych, koszyka, zamówień i store view, a Kowal B2B Suite dodaje brakującą logikę biznesową B2B. Dzięki temu wdrożenie wykorzystuje sprawdzone mechanizmy Magento, a jednocześnie zyskuje funkcje typowe dla portali B2B: zarządzanie kontrahentami, użytkownikami firmowymi, indywidualnymi cenami, widocznością katalogu, limitami kupieckimi, dokumentami handlowymi, zapytaniami ofertowymi i integracjami.

Architektura pakietu jest modułowa. Każdy obszar B2B ma własną odpowiedzialność, własne kontrakty i własne punkty rozszerzeń. Pozwala to wdrażać system etapami, rozwijać go o kolejne funkcje i bezpiecznie integrować z ERP, PIM, WMS, CRM albo systemami księgowymi.

Kowal B2B Suite jest projektowany dla firm, które potrzebują kontroli nad procesem sprzedaży B2B, ale nie chcą utrzymywać osobnego systemu oderwanego od Magento. Jeden katalog, jedna platforma, wiele kanałów sprzedaży.

Najważniejsza wartość biznesowa

Jedna instalacja Magento dla B2C i B2B

Sprzedaż B2B działa w kontekście wybranego website_id. Oznacza to, że funkcje B2B można aktywować dla konkretnego website, bez wpływu na pozostałe kanały B2C. To właściwy model dla firm, które chcą utrzymać jeden system e-commerce, jeden katalog produktów i jedną infrastrukturę techniczną.

Pełny model kontrahenta

Pakiet dodaje domenę firm: kontrahentów, relacje firma–website, użytkowników firmowych, role, uprawnienia, adresy, kontakty i audyt zmian. Firma ma dostęp tylko do przypisanego kanału B2B, co porządkuje bezpieczeństwo danych i upraszcza wdrożenia wielokanałowe.

Ceny i katalog dopasowane do firmy

B2B rzadko działa na jednej publicznej cenie. Kowal B2B Suite wspiera cenniki, ceny kontraktowe, progi ilościowe, indeks cen i reguły widoczności katalogu. Klient widzi produkty i ceny zgodne z jego relacją handlową.

Szybszy proces zakupowy

Kupujący B2B nie zawsze przegląda sklep jak klient detaliczny. Często zna SKU, zamawia cyklicznie i oczekuje szybkiego działania. Pakiet dodaje szybkie zamówienia, listy zakupowe i walidację pozycji po SKU.

Kontrola finansowa

Limity kupieckie, terminy płatności, rezerwacja wykorzystania limitu i status kredytowy firmy pomagają kontrolować ryzyko sprzedaży z odroczoną płatnością. Moduł jest przygotowany jako fundament pod walidację checkoutu i integrację z finansami.

Zapytania ofertowe i negocjacje

RFQ pozwala obsłużyć zapytania ofertowe, pozycje oferty, komentarze, statusy, ceny oferowane, termin ważności i historię zmian. To istotne w sprzedaży kontraktowej, gdzie finalna cena lub warunki wymagają akceptacji handlowca.

Workflow akceptacji

Reguły approval umożliwiają blokowanie zamówień wymagających akceptacji, np. po przekroczeniu określonego progu kwotowego. System zapisuje requesty, approverów i decyzje, tworząc podstawę pod audyt procesu zakupowego.

Dokumenty handlowe w portalu klienta

Kontrahent może otrzymać dostęp do dokumentów handlowych powiązanych z firmą i website: faktur, korekt, dokumentów WZ i potwierdzeń zamówień. Dostęp jest kontrolowany przez kontekst B2B.

Integracje jako element architektury, nie dodatek

Pakiet zawiera warstwę integracyjną z profilami, mapowaniem identyfikatorów zewnętrznych, kolejkami, idempotencją, retry, logami i błędami synchronizacji. Konkretne adaptery ERP/PIM/WMS/CRM mogą być dodawane jako osobne rozszerzenia.

REST API i GraphQL

Kowal B2B Suite dostarcza warstwę REST API dla administracji, integracji i procesów systemowych oraz GraphQL jako fasadę dla frontendu i przyszłych kanałów API. Logika domenowa pozostaje w serwisach B2B, a API nie duplikuje zasad biznesowych.

Dla kogo

Kowal B2B Suite jest przeznaczony dla:

  • dystrybutorów i hurtowni,
  • producentów sprzedających przez sieć kontrahentów,
  • firm z indywidualnymi cennikami i warunkami handlowymi,
  • organizacji wymagających limitów kupieckich i odroczonych płatności,
  • firm potrzebujących portalu zamówień dla klientów B2B,
  • wdrożeń Magento Open Source, które nie chcą przechodzić na cięższe rozwiązania wyłącznie z powodu funkcji B2B,
  • integratorów Magento budujących powtarzalne wdrożenia B2B.

Co wyróżnia Kowal B2B Suite

  • Działa per website_id, więc nie miesza kanałów B2C i B2B.
  • Wykorzystuje Magento Open Source jako fundament, zamiast tworzyć osobny system obok sklepu.
  • Zachowuje natywny katalog, koszyk, zamówienia, MSI i klasyczny frontend Magento.
  • Dzieli logikę na moduły o jasnej odpowiedzialności.
  • Udostępnia kontrakty API przygotowane pod rozszerzenia.
  • Ma osobne warstwy REST API i GraphQL.
  • Jest przygotowany pod integracje ERP, PIM, WMS, CRM i systemy finansowe.
  • Nie wymusza forka Magento core.
  • Umożliwia budowę rozwiązania B2B etapami.

Moduły pakietu

Kowal_B2BBase

Fundament całego pakietu. Definiuje, czy B2B jest aktywne dla danego website, rozwiązuje kontekst website_id, dostarcza bazowe kontrakty, wyjątki, konfigurację, ACL i logger.

Kowal_B2BCompany

Model firm B2B: kontrahenci, relacje z website, użytkownicy firmowi, role, uprawnienia, adresy, kontakty i audyt. Moduł pilnuje, aby firma działała wyłącznie w przypisanym kanale B2B.

Kowal_B2BAdminUi

Panel administracyjny B2B w Magento Admin. Dostarcza menu, dashboard, grid firm i formularze operujące na serwisach domenowych.

Kowal_B2BApi

REST API dla procesów B2B. Udostępnia endpointy dla firm, produktów, cen, widoczności katalogu, importu/eksportu, szybkich zamówień, dokumentów, limitów, approval, zamówień, RFQ i integracji.

Kowal_B2BPricing

Moduł cen B2B. Obsługuje cenniki, ceny kontraktowe, progi ilościowe, indeks cen i resolver ceny dla konkretnej firmy, website, SKU, waluty i ilości.

Kowal_B2BCatalogPermissions

Widoczność katalogu B2B. Pozwala ograniczać produkty i kategorie per firma oraz website, buduje indeks widoczności i filtruje frontendowe kolekcje produktów.

Kowal_B2BImportExport

Import i eksport danych B2B. Zapewnia profile, zadania, logi wierszy, tryb dry-run oraz fundament pod kolejne adaptery danych.

Kowal_B2BQuickOrder

Szybkie zamawianie po SKU i listy zakupowe. Moduł waliduje widoczność, dostępność i cenę B2B, a następnie zapisuje listy zakupowe dla firm.

Kowal_B2BDocument

Dostęp do dokumentów handlowych: faktur, korekt, WZ i potwierdzeń zamówień. Dokumenty są przypisane do firmy i website, z kontrolą dostępu oraz logiem synchronizacji.

Kowal_B2BCreditLimit

Limity kupieckie, warunki płatności, rezerwacje ekspozycji kredytowej i status kredytowy firmy. Moduł tworzy podstawę pod bezpieczne zamówienia z odroczoną płatnością.

Kowal_B2BApproval

Workflow akceptacji zamówień. Reguły mogą działać per firma, website, waluta i próg kwotowy. System zapisuje approverów, requesty i decyzje.

Kowal_B2BCheckout

Integracja checkoutu Magento z regułami B2B. Waliduje firmę, uprawnienia, widoczność produktów, ceny B2B, limit kupiecki i approval, bez wpływu na website B2C.

Kowal_B2BQuote

RFQ i oferty handlowe. Obsługuje zapytania ofertowe, pozycje, komentarze, statusy, ceny negocjowane, ważność oferty i historię zmian.

Kowal_B2BIntegration

Infrastruktura integracyjna dla ERP, PIM, WMS, CRM i systemów księgowych. Dostarcza profile, mapowania zewnętrznych ID, kolejki, retry, idempotencję, logi i błędy synchronizacji.

Kowal_B2BGraphQl

Warstwa GraphQL dla frontendu i kanałów API. Udostępnia odczyty i mutacje B2B jako fasadę nad istniejącymi serwisami domenowymi.

Kowal B2B Theme

Klasyczny frontend Magento oparty o Magento/blank, przygotowany pod widoki B2B: dashboard firmy, szybkie zamówienia, listy zakupowe, dokumenty i elementy UX portalu kontrahenta.

Architektura wdrożeniowa

Kowal B2B Suite jest rozwijany jako jeden pakiet Composer składający się z modułów Magento 2 i theme. Root metapackage może wymagać wszystkich gotowych komponentów, a logika pozostaje rozbita na niezależne moduły o jasnych granicach.

W praktyce oznacza to:

  • prostsze zarządzanie zależnościami,
  • możliwość rozwijania pakietu jako kompletnej suite,
  • czytelny podział odpowiedzialności,
  • łatwiejszą diagnostykę błędów,
  • bezpieczniejsze integracje,
  • przygotowanie pod kolejne moduły PRO.

Zasada website scope

Najważniejszą decyzją architektoniczną pakietu jest działanie B2B per website_id.

Jeżeli B2B jest aktywne dla danego website, wszystkie jego store view działają jako B2B. Firmy, ceny, widoczność katalogu, limity, dokumenty, RFQ, approval i integracje są walidowane w tym kontekście.

Jeżeli website nie ma aktywnego B2B, moduły nie powinny zmieniać zachowania klasycznego sklepu B2C.

Integracje

Pakiet nie zakłada jednego konkretnego ERP. Zamiast tego dostarcza warstwę integracyjną, która pozwala tworzyć adaptery do różnych systemów:

  • ERP,
  • PIM,
  • WMS,
  • CRM,
  • księgowość,
  • systemy EDI,
  • middleware i szyny integracyjne.

Mechanizmy idempotencji, mapowania identyfikatorów, kolejek, retry i logów są projektowane jako wspólny fundament dla integracji.

API-first

Kowal B2B Suite jest projektowany w podejściu API-first. Funkcje biznesowe są dostępne przez kontrakty PHP, REST API oraz GraphQL.

Dzięki temu pakiet może obsłużyć:

  • klasyczny frontend Magento,
  • panel klienta B2B,
  • aplikacje mobilne,
  • integracje middleware,
  • automatyzację sprzedaży,
  • importy i eksporty danych,
  • headless storefront w przyszłości.

Bezpieczeństwo i kontrola dostępu

Pakiet opiera się na jawnej walidacji:

  • aktywności B2B dla website,
  • relacji firmy z website,
  • statusu firmy,
  • przypisania użytkownika do firmy,
  • uprawnień firmowych,
  • widoczności katalogu,
  • dostępu do dokumentów,
  • limitów kupieckich,
  • statusów procesów workflow.

To ogranicza ryzyko przypadkowego dostępu do danych innej firmy albo innego kanału sprzedaży.

Kowal B2B API — dokumentacja dla integratorów klienta B2B

1. Dla kogo jest ten dokument

Ten dokument jest przeznaczony dla programistów i zespołów IT po stronie klienta B2B, którzy chcą zintegrować własny system zakupowy, ERP, WMS, aplikację wewnętrzną albo middleware ze sklepem B2B opartym o Kowal B2B API.

Dokument opisuje praktyczne użycie API w procesach sprzedażowo-zakupowych pomiędzy klientem B2B a sklepem B2B:

  • pobieranie produktów dostępnych dla firmy,
  • sprawdzanie cen indywidualnych,
  • sprawdzanie widoczności i możliwości zakupu SKU,
  • walidację szybkiego zamówienia po SKU,
  • obsługę list zakupowych,
  • pobieranie dokumentów handlowych,
  • sprawdzanie limitu kupieckiego,
  • obsługę zapytań ofertowych RFQ,
  • odczyt kontekstu zamówień B2B,
  • diagnostykę błędów integracyjnych.

Dokument nie opisuje instalacji modułu ani wewnętrznej architektury sklepu. Te elementy obsługuje administrator sklepu lub zespół wdrożeniowy.

2. Co trzeba otrzymać od administratora sklepu

Przed rozpoczęciem integracji poproś administratora sklepu B2B o:

Dane Opis Przykład
baseUrl Adres API sklepu https://b2b.example.com/rest/V1
token Token integracyjny lub token klienta Bearer eyJ...
websiteId Identyfikator kanału B2B 1
companyId Identyfikator firmy B2B klienta 10
customerId Opcjonalny identyfikator użytkownika firmy 25
currency Waluta rozliczeniowa PLN
lista uprawnień API Zakres endpointów dostępnych dla integracji produkty, ceny, dokumenty, RFQ

Bez websiteId i companyId większość operacji B2B nie będzie możliwa, ponieważ API izoluje dane per kanał sprzedaży i per firma.

3. Podstawowe zasady API

3.1. Base URL

W dokumentacji endpointy są zapisywane skrótowo:

/V1/kowal-b2b/...

W wywołaniu użyj pełnego adresu:

https://b2b.example.com/rest/V1/kowal-b2b/...

Jeżeli sklep używa kodów store view w adresie API, administrator może przekazać wariant:

https://b2b.example.com/rest/{store_code}/V1/kowal-b2b/...

3.2. Format danych

API przyjmuje i zwraca JSON.

Standardowe nagłówki:

Authorization: Bearer <token>
Content-Type: application/json
Accept: application/json

Dla metod GET wystarczy Authorization i Accept.

3.3. Kontekst firmy i website

W zapytaniach sprzedażowych prawie zawsze występują:

  • websiteId — kanał B2B,
  • companyId — firma klienta B2B,
  • currency — waluta,
  • sku — kod produktu,
  • qty — ilość.

Przykład:

GET /V1/kowal-b2b/companies/10/products/B2B-SKU-001/price?websiteId=1&currency=PLN&qty=5

API nie powinno domyślnie zgadywać website ani firmy. To zabezpiecza instalacje, w których jeden sklep obsługuje równolegle B2C i B2B.

3.4. Idempotencja

Dla operacji zapisu, które mogą być ponawiane po timeoutach, stosuj nagłówek:

Idempotency-Key: unique-business-operation-id

Przykład:

Idempotency-Key: erp-rfq-2026-000123

Zastosowanie:

  • utworzenie RFQ,
  • dodanie dokumentu,
  • operacje wywoływane automatycznie przez ERP albo system zakupowy klienta.

Wartość klucza powinna być unikalna dla operacji biznesowej, a nie dla pojedynczej próby HTTP.

4. Autoryzacja

API korzysta ze standardowego mechanizmu tokenów sklepu.

W praktyce integrator klienta B2B powinien otrzymać gotowy token od administratora sklepu albo proces jego uzyskania.

4.1. Użycie tokena

curl -X GET "$BASE_URL/kowal-b2b/websites/$WEBSITE_ID/config" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

4.2. Uprawnienia tokena

Token powinien mieć tylko te uprawnienia, które są potrzebne danej integracji.

Przykłady zakresów:

Integracja Wymagane obszary API
system zakupowy klienta produkty, ceny, widoczność, quick order, RFQ
ERP klienta produkty, ceny, dokumenty, zamówienia, limity
portal analityczny produkty, ceny, dokumenty, zamówienia
automatyzacja dokumentów dokumenty, pliki dokumentów

Jeżeli endpoint zwraca błąd autoryzacji, najpierw sprawdź zakres tokena u administratora sklepu.

5. Szybki start

Ustaw zmienne pomocnicze:

export BASE_URL="https://b2b.example.com/rest/V1"
export TOKEN="paste-token-here"
export WEBSITE_ID=1
export COMPANY_ID=10
export CUSTOMER_ID=25
export SKU="B2B-SKU-001"
export CURRENCY="PLN"

5.1. Sprawdź konfigurację B2B website

curl -X GET "$BASE_URL/kowal-b2b/websites/$WEBSITE_ID/config" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

Cel:

  • potwierdzić, że integracja używa właściwego websiteId,
  • potwierdzić, że kanał B2B jest dostępny.

5.2. Pobierz produkt po SKU

curl -X GET "$BASE_URL/kowal-b2b/products/$SKU?websiteId=$WEBSITE_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

Cel:

  • sprawdzić, czy produkt istnieje,
  • pobrać podstawowe dane produktu w kontekście B2B.

5.3. Sprawdź dostępność produktu

curl -X GET "$BASE_URL/kowal-b2b/products/$SKU/availability?websiteId=$WEBSITE_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

Cel:

  • sprawdzić dostępność sprzedażową produktu,
  • wykorzystać dane magazynowe sklepu.

5.4. Sprawdź cenę B2B

curl -X GET "$BASE_URL/kowal-b2b/companies/$COMPANY_ID/products/$SKU/price?websiteId=$WEBSITE_ID&currency=$CURRENCY&qty=5" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

Cel:

  • pobrać cenę właściwą dla firmy,
  • uwzględnić walutę i ilość,
  • sprawdzić źródło ceny, np. cena kontraktowa, cennik B2B albo fallback.

5.5. Sprawdź widoczność SKU dla firmy

curl -X GET "$BASE_URL/kowal-b2b/companies/$COMPANY_ID/products/$SKU/visibility?websiteId=$WEBSITE_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

Cel:

  • ustalić, czy firma może zobaczyć produkt,
  • ustalić, czy firma może zobaczyć cenę,
  • ustalić, czy produkt można dodać do koszyka lub zamówienia.

5.6. Zweryfikuj koszyk po SKU

curl -X POST "$BASE_URL/kowal-b2b/companies/$COMPANY_ID/quick-order/validate" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "websiteId": 1,
    "currency": "PLN",
    "items": [
      {
        "sku": "B2B-SKU-001",
        "qty": 5
      },
      {
        "sku": "B2B-SKU-002",
        "qty": 2
      }
    ]
  }'

Cel:

  • sprawdzić kilka pozycji jednocześnie,
  • wykryć niedostępne SKU,
  • wykryć produkty niewidoczne dla firmy,
  • pobrać ceny i komunikaty walidacyjne przed utworzeniem zamówienia w systemie klienta.

6. Najczęstszy proces integracyjny: zakup po SKU

Typowy proces automatyzacji zakupów wygląda tak:

  1. System klienta zna companyIdwebsiteId i walutę.
  2. System klienta wysyła listę SKU i ilości do walidacji quick order.
  3. API zwraca status każdej pozycji.
  4. System klienta odrzuca lub oznacza pozycje błędne.
  5. System klienta pobiera ceny B2B dla zaakceptowanych pozycji.
  6. System klienta tworzy RFQ, listę zakupową albo przekazuje dane do dalszego procesu zakupowego.
  7. Po realizacji zamówienia system klienta pobiera dokumenty handlowe i statusy B2B zamówień.

Rekomendacja: nie pobieraj ceny i widoczności wyłącznie pojedynczymi requestami, jeśli użytkownik importuje duży plik SKU. Najpierw użyj walidacji quick order.

7. Produkty, ceny i widoczność

7.1. Lista produktów

GET /V1/kowal-b2b/products?websiteId=...

Zastosowanie:

  • synchronizacja katalogu do systemu klienta,
  • budowa lokalnej wyszukiwarki produktów,
  • odświeżanie listy SKU.

7.2. Produkt po SKU

GET /V1/kowal-b2b/products/:sku?websiteId=...

Zastosowanie:

  • pobranie danych jednego SKU,
  • walidacja ręcznie wpisanego kodu produktu.

7.3. Dostępność produktu

GET /V1/kowal-b2b/products/:sku/availability?websiteId=...

Zastosowanie:

  • sprawdzenie dostępności przed zakupem,
  • walidacja importu zamówienia,
  • informowanie użytkownika o brakach magazynowych.

7.4. Cena produktu dla firmy

GET /V1/kowal-b2b/companies/:companyId/products/:sku/price?websiteId=...&currency=...&qty=...

Zastosowanie:

  • pobranie ceny indywidualnej,
  • sprawdzenie progów ilościowych,
  • uzgodnienie ceny w systemie zakupowym klienta.

7.5. Widoczność produktu

GET /V1/kowal-b2b/companies/:companyId/products/:sku/visibility?websiteId=...

Zastosowanie:

  • sprawdzenie, czy firma może kupić produkt,
  • odróżnienie błędu „produkt nie istnieje” od „produkt niedostępny dla tej firmy”,
  • kontrola uprawnień katalogowych B2B.

8. Quick order i listy zakupowe

8.1. Walidacja quick order

POST /V1/kowal-b2b/companies/:companyId/quick-order/validate

Body:

{
  "websiteId": 1,
  "currency": "PLN",
  "items": [
    {
      "sku": "B2B-SKU-001",
      "qty": 5
    }
  ]
}

Zastosowanie:

  • import zamówienia z CSV/XLSX po stronie klienta,
  • walidacja koszyka w aplikacji zakupowej,
  • kontrola widoczności, ceny i dostępności przed dalszym procesem.

8.2. Pobranie list zakupowych firmy

GET /V1/kowal-b2b/companies/:companyId/shopping-lists?websiteId=...

Zastosowanie:

  • synchronizacja list stałych produktów,
  • budowa cyklicznych zamówień,
  • odtworzenie koszyka w systemie klienta.

8.3. Utworzenie listy zakupowej

POST /V1/kowal-b2b/companies/:companyId/shopping-lists

Przykład:

{
  "websiteId": 1,
  "name": "Stałe zamówienie magazynowe",
  "customerId": 25,
  "isDefault": false
}

8.4. Dodanie pozycji do listy

POST /V1/kowal-b2b/shopping-lists/:listId/items

Przykład:

{
  "currency": "PLN",
  "items": [
    {
      "sku": "B2B-SKU-001",
      "qty": 5
    }
  ]
}

9. RFQ i oferty

RFQ pozwala klientowi B2B wysłać zapytanie ofertowe, a sprzedawcy przygotować odpowiedź cenową.

9.1. Utworzenie RFQ

POST /V1/kowal-b2b/quotes

Przykład:

{
  "request": {
    "websiteId": 1,
    "companyId": 10,
    "customerId": 25,
    "externalId": "CLIENT-RFQ-2026-0001",
    "title": "Zapytanie ofertowe na produkty magazynowe",
    "currency": "PLN",
    "customerNote": "Prosimy o ofertę dla ilości kwartalnych.",
    "metadata": {
      "source": "client-erp"
    }
  }
}

9.2. Dodanie pozycji RFQ

POST /V1/kowal-b2b/quotes/items

Przykład:

{
  "request": {
    "quoteId": 100,
    "sku": "B2B-SKU-001",
    "qty": 100,
    "requestedPrice": null,
    "comment": "Cena dla dostawy cyklicznej"
  }
}

9.3. Złożenie RFQ

POST /V1/kowal-b2b/quotes/:quoteId/submit

Przykład:

{
  "request": {
    "customerId": 25,
    "message": "Zapytanie gotowe do wyceny."
  }
}

9.4. Odczyt statusu i historii

GET /V1/kowal-b2b/quotes/:quoteId
GET /V1/kowal-b2b/quotes/:quoteId/items
GET /V1/kowal-b2b/quotes/:quoteId/comments
GET /V1/kowal-b2b/quotes/:quoteId/history

Zastosowanie:

  • śledzenie statusu zapytania,
  • pobranie odpowiedzi handlowca,
  • synchronizacja oferty do systemu klienta.

10. Dokumenty handlowe

API dokumentów pozwala klientowi pobierać dokumenty przypisane do jego firmy.

Typowe dokumenty:

  • faktura,
  • korekta,
  • WZ,
  • potwierdzenie zamówienia.

10.1. Lista dokumentów firmy

GET /V1/kowal-b2b/companies/:companyId/documents?websiteId=...&documentType=...

Przykład:

curl -X GET "$BASE_URL/kowal-b2b/companies/$COMPANY_ID/documents?websiteId=$WEBSITE_ID&documentType=invoice" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

10.2. Szczegóły dokumentu

GET /V1/kowal-b2b/documents/:documentId?companyId=...&websiteId=...

10.3. Pliki dokumentu

GET /V1/kowal-b2b/documents/:documentId/files?companyId=...&websiteId=...

Zastosowanie:

  • pobranie PDF faktury,
  • archiwizacja dokumentów w ERP klienta,
  • automatyczne księgowanie po stronie klienta.

11. Limity kupieckie i płatności

11.1. Status limitu firmy

GET /V1/kowal-b2b/companies/:companyId/credit/status?websiteId=...&currency=...

Zastosowanie:

  • sprawdzenie dostępnego limitu przed zakupem,
  • pokazanie operatorowi, czy zamówienie może zostać złożone,
  • synchronizacja danych kredytowych do ERP klienta.

11.2. Warunki płatności

GET /V1/kowal-b2b/payment-terms?websiteId=...

Zastosowanie:

  • pobranie dostępnych warunków płatności,
  • prezentacja warunków w systemie zakupowym klienta.

12. Akceptacje zamówień

Jeżeli firma korzysta z workflow akceptacji, API pozwala sprawdzić, czy dana wartość koszyka wymaga zatwierdzenia.

12.1. Sprawdzenie wymogu akceptacji

GET /V1/kowal-b2b/companies/:companyId/approval/required?websiteId=...&grandTotal=...&currency=...

Zastosowanie:

  • ostrzeżenie użytkownika przed wysłaniem zamówienia,
  • skierowanie koszyka do wewnętrznego workflow klienta,
  • synchronizacja statusu akceptacji.

12.2. Lista requestów akceptacji

GET /V1/kowal-b2b/companies/:companyId/approval/requests?websiteId=...&status=...

12.3. Historia decyzji

GET /V1/kowal-b2b/approval/requests/:requestId/decisions

13. Zamówienia B2B

API kontekstu zamówień pozwala odczytać informacje B2B powiązane ze standardowym zamówieniem sklepu.

13.1. Kontekst B2B zamówienia

GET /V1/kowal-b2b/orders/:orderId/b2b-context

13.2. Zamówienia firmy z kontekstem B2B

GET /V1/kowal-b2b/companies/:companyId/orders/b2b-context?websiteId=...&approvalStatus=...

Zastosowanie:

  • synchronizacja zamówień do ERP klienta,
  • sprawdzenie statusu akceptacji,
  • sprawdzenie statusu eksportu albo obsługi B2B.

14. Obsługa błędów

API zwraca standardowe odpowiedzi HTTP.

Najczęstsze statusy:

HTTP Znaczenie Typowa przyczyna
200 Operacja poprawna Dane zostały zwrócone
400 Błędne dane wejściowe Brak websiteId, błędna waluta, błędny payload
401 Brak autoryzacji Brak tokena albo token wygasł
403 Brak uprawnienia Token nie ma dostępu do endpointu albo firmy
404 Nie znaleziono Firma, produkt, dokument albo RFQ nie istnieje w danym kontekście
409 Konflikt Duplikat operacji, konflikt statusu, niepoprawne przejście workflow
422 Błąd walidacji biznesowej Produkt niewidoczny, brak ceny, brak aktywnej relacji firmy
500 Błąd serwera Błąd techniczny po stronie sklepu

Najważniejsze kody domenowe:

Kod Znaczenie
b2b.website.missing Brakuje websiteId
b2b.website.disabled B2B nie jest aktywne dla website
b2b.company.not_found Firma nie istnieje
b2b.company.not_assigned_to_website Firma nie ma aktywnej relacji z website
b2b.product.not_visible Produkt nie jest widoczny dla firmy
b2b.price.not_found Brak ceny B2B
b2b.credit.limit_exceeded Przekroczony limit kupiecki
b2b.approval.required Operacja wymaga akceptacji

Przykład odpowiedzi błędu:

{
  "code": "b2b.product.not_visible",
  "message": "Product is not visible for selected company.",
  "details": {
    "website_id": 1,
    "company_id": 10,
    "sku": "B2B-SKU-001"
  }
}

15. Dobre praktyki integracyjne

  • Przechowuj websiteIdcompanyId i currency w konfiguracji integracji.
  • Nie zakładaj, że produkt widoczny w B2C jest dostępny dla firmy B2B.
  • Zawsze sprawdzaj cenę B2B dla konkretnej ilości.
  • Przy imporcie wielu SKU używaj quick order validate zamiast wielu osobnych requestów.
  • Stosuj Idempotency-Key dla operacji zapisu.
  • Loguj request URL, status HTTP i odpowiedź błędu.
  • Nie loguj tokenów, haseł ani pełnych danych wrażliwych.
  • Obsługuj ponowienie requestu po timeoutach.
  • Odróżniaj błąd techniczny od błędu biznesowego, np. brak ceny albo brak widoczności SKU.
  • Uzgodnij z administratorem sklepu limity zapytań i maksymalny rozmiar paczki danych.

16. Minimalny zestaw testów integracyjnych

Przed uruchomieniem produkcyjnym wykonaj testy:

  • poprawna autoryzacja tokenem,
  • błędny token zwraca 401 albo 403,
  • pobranie konfiguracji website,
  • pobranie produktu po SKU,
  • pobranie dostępności SKU,
  • pobranie ceny B2B dla qty=1,
  • pobranie ceny B2B dla większej ilości,
  • sprawdzenie SKU widocznego dla firmy,
  • sprawdzenie SKU niewidocznego dla firmy,
  • walidacja quick order dla poprawnych SKU,
  • walidacja quick order dla błędnego SKU,
  • pobranie dokumentów firmy,
  • utworzenie RFQ i dodanie pozycji,
  • odczyt historii RFQ,
  • pobranie statusu limitu kupieckiego,
  • próba operacji z błędnym websiteId,
  • próba operacji z błędnym companyId.

17. Katalog endpointów dla automatyzacji zakupów

17.1. Konfiguracja

Metoda Endpoint Zastosowanie
GET /V1/kowal-b2b/websites/:websiteId/config Sprawdzenie konfiguracji B2B website
GET /V1/kowal-b2b/websites/:websiteId/features Sprawdzenie dostępnych funkcji B2B

17.2. Produkty i ceny

Metoda Endpoint Zastosowanie
GET /V1/kowal-b2b/products?websiteId=... Lista produktów
GET /V1/kowal-b2b/products/:sku?websiteId=... Produkt po SKU
GET /V1/kowal-b2b/products/:sku/availability?websiteId=... Dostępność SKU
GET /V1/kowal-b2b/products/:sku/b2b-status?websiteId=... Status B2B produktu
GET /V1/kowal-b2b/companies/:companyId/products/:sku/price?websiteId=...&currency=...&qty=... Cena B2B
GET /V1/kowal-b2b/companies/:companyId/products/:sku/visibility?websiteId=... Widoczność SKU

17.3. Quick order i listy

Metoda Endpoint Zastosowanie
POST /V1/kowal-b2b/companies/:companyId/quick-order/validate Walidacja wielu SKU
GET /V1/kowal-b2b/companies/:companyId/shopping-lists?websiteId=... Listy zakupowe firmy
POST /V1/kowal-b2b/companies/:companyId/shopping-lists Utworzenie listy zakupowej
GET /V1/kowal-b2b/shopping-lists/:listId/items Pozycje listy
POST /V1/kowal-b2b/shopping-lists/:listId/items Dodanie pozycji do listy

17.4. RFQ i oferty

Metoda Endpoint Zastosowanie
GET /V1/kowal-b2b/companies/:companyId/quotes?websiteId=...&status=... Lista RFQ/ofert firmy
POST /V1/kowal-b2b/quotes Utworzenie RFQ
GET /V1/kowal-b2b/quotes/:quoteId Szczegóły RFQ
POST /V1/kowal-b2b/quotes/items Dodanie pozycji RFQ
POST /V1/kowal-b2b/quotes/:quoteId/submit Złożenie RFQ
POST /V1/kowal-b2b/quotes/:quoteId/accept Akceptacja oferty
POST /V1/kowal-b2b/quotes/:quoteId/reject Odrzucenie oferty
GET /V1/kowal-b2b/quotes/:quoteId/history Historia statusów

17.5. Dokumenty, limity i zamówienia

Metoda Endpoint Zastosowanie
GET /V1/kowal-b2b/companies/:companyId/documents?websiteId=...&documentType=... Dokumenty firmy
GET /V1/kowal-b2b/documents/:documentId?companyId=...&websiteId=... Szczegóły dokumentu
GET /V1/kowal-b2b/documents/:documentId/files?companyId=...&websiteId=... Pliki dokumentu
GET /V1/kowal-b2b/companies/:companyId/credit/status?websiteId=...&currency=... Status limitu kupieckiego
GET /V1/kowal-b2b/payment-terms?websiteId=... Warunki płatności
GET /V1/kowal-b2b/orders/:orderId/b2b-context Kontekst B2B zamówienia
GET /V1/kowal-b2b/companies/:companyId/orders/b2b-context?websiteId=...&approvalStatus=... Zamówienia firmy z kontekstem B2B

18. Zakres dokumentu

Dokument koncentruje się na integracji zakupowej po stronie klienta B2B. Opisuje praktyczne użycie API, wymagane identyfikatory, przykłady requestów, obsługę błędów i typowe scenariusze automatyzacji.

Informacje wdrożeniowe sklepu, konfiguracja panelu administracyjnego i szczegóły techniczne instalacji są obsługiwane osobno przez zespół utrzymujący sklep B2B.

Write Your Own Review
You're reviewing:Profesjonalny system B2B dla Magento 2 Open Source
Your Rating