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

Professionelles B2B-System für Magento 2 Open Source

922,50 € 750,00 €
Installation von COMPOSER
M2-B2B
  • 2.4.9
  • 2.4.8
  • 2.4.7

Konfiguration der Integration

Kowal B2B API — pełna dokumentacja REST

Wersja kontraktu: V1 · Źródło prawdy: Kowal_B2BApi/etc/webapi.xml · Odbiorcy: administratorzy sklepów, partnerzy wdrożeniowi i zespoły integrujące ERP, PIM, WMS lub system zakupowy.

1. Przeznaczenie i granice API

Kowal B2B API udostępnia dane i procesy B2B działające w Magento 2: firmy, katalog i ceny indywidualne, szybkie zakupy, dokumenty, limit kupiecki, akceptacje, RFQ oraz kolejki integracyjne. Jest to REST API do integracji systemowych; nie zastępuje standardowych endpointów Magento dla katalogu, koszyka, checkoutu i konta klienta.

Dokument opisuje wyłącznie endpointy aktualnie wystawione przez moduł. Brak w nim obietnicy operacji, których kontrakt V1 nie udostępnia, np. tworzenia zamówienia przez REST, CRUD cenników lub edycji konfiguracji website.

2. Uzyskanie dostępu i zasady współpracy

2.1. Proces uruchomienia integracji

  1. Integrator przekazuje administratorowi sklepu cel integracji, środowisko (test/produkcja), system źródłowy, zakres danych oraz listę wymaganych obszarów API.
  2. Administrator zakłada lub konfiguruje integrację Magento, przypisuje jej minimalne uprawnienia ACL i przekazuje bezpiecznym kanałem: baseUrl, token, websiteIdcompanyId (gdy dotyczy), walutę oraz dane testowe.
  3. Integrator wykonuje test GET /V1/kowal-b2b/websites/:websiteId/config, a następnie testy funkcjonalne na środowisku testowym.
  4. Przed produkcją obie strony uzgadniają harmonogram synchronizacji, maksymalny rozmiar danych, retry, właściciela danych i sposób zgłaszania błędów.
  5. Tokeny są przechowywane wyłącznie w sejfie sekretów; administrator rotuje lub odbiera je przy zmianie dostawcy, użytkownika albo zakresu integracji.

2.2. Odpowiedzialności

Strona Odpowiedzialność
Administrator sklepu Konfiguracja B2B website, firmy i relacji firmy z website, tokenu oraz ACL; przekazanie danych testowych; decyzja o dostępie do danych.
Integrator Bezpieczne przechowywanie tokenu, poprawne użycie kontekstu websiteId/companyId, walidacja danych, obsługa błędów i ponowień, nieujawnianie danych innych firm.
Właściciel procesu biznesowego Uzgodnienie źródła prawdy dla cen, dokumentów, RFQ, limitów i statusów synchronizacji.

Nie należy używać tokenu administratora w aplikacji klienckiej ani współdzielić jednego tokenu przez niezależne systemy. Każda integracja powinna mieć własny token i wyłącznie wymagane ACL.

2.3. Uprawnienia

Magento weryfikuje token Bearer oraz ACL przypisane do użytkownika administracyjnego lub integracji. Endpointy B2B wymagają jednej z poniższych grup uprawnień:

ACL Zakres
config Websites i feature flags
companiescompany_savecompany_usersbatch Firmy, ich użytkownicy i import wsadowy firm
productspricescatalog_permissions Katalog, dostępność, ceny i widoczność
import_exportquick_orderdocuments Profile importu/eksportu, listy zakupowe i dokumenty
credit_limitsapprovalsordersquotes Limit, workflow akceptacji, kontekst zamówień i RFQ
system_integrations Profile, mapowania i joby integracyjne

Zakres powinien wynikać z przeznaczenia integracji. Przykład: system zakupowy zwykle potrzebuje productspricescatalog_permissionsquick_order i quotes; ERP obsługujący dokumenty — documents oraz, jeśli jest właścicielem synchronizacji, system_integrations.

3. Konwencje techniczne

Adres, nagłówki i parametry

Adres bazowy ma postać https://b2b.example.com/rest/V1. Wszystkie ścieżki dalej w dokumencie są podawane od /V1; pełny adres endpointu to BASE_URL + ścieżka.

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

API używa JSON. Nazwy w URL są camelCase (websiteIdcompanyId), a pola JSON odpowiadają nazwom parametrów kontraktów Magento. :companyId:quoteId:sku itd. to parametry ścieżki. W przykładach ? oznacza parametr opcjonalny.

websiteId jest wymagany przy operacjach zależnych od kanału sprzedaży. Musi wskazywać istniejący website z włączonym B2B. companyId wskazuje firmę, która musi mieć aktywną relację z tym website, gdy operacja działa w jej kontekście. API nie wybiera domyślnego website ani firmy.

Request body i idempotencja

Magento serializuje obiekt DTO pod nazwą parametru metody: większość zapisów przyjmuje {"request": {...}}; tworzenie firmy używa {"company": {...}}; batch firm — {"companies": [...]}. Endpointy z prostymi argumentami przyjmują pola bez wrappera, np. {"websiteId": 1, "currency": "PLN", "items": [...]}.

Nagłówek Idempotency-Key (maks. 128 znaków) jest obecnie obsługiwany przez POST /companies: ponowienie z tym samym kluczem zwróci wcześniej utworzoną firmę. Dla joba integracyjnego użyj pola request.idempotencyKey. Nie zakładaj automatycznej idempotencji innych endpointów zapisu; ponawiaj je dopiero po ustaleniu statusu operacji.

Odpowiedzi i błędy

Odpowiedzi sukcesu są obiektami lub tablicami kontraktów Magento. Pola zwracane przez obiekty mogą być rozszerzane w kompatybilny sposób; integracja powinna ignorować nieznane pola. Błąd biznesowy może zawierać:

{
  "code": "b2b.company.not_assigned_to_website",
  "message": "B2B company is not assigned to website.",
  "website_id": 1,
  "trace_id": "request-correlation-id",
  "details": {"company_id": 10},
  "field_errors": []
}
HTTP Znaczenie Reakcja integratora
400 / 422 Niepoprawne dane albo walidacja domenowa Popraw dane; nie ponawiaj bez zmiany payloadu.
401 / 403 Brak lub niewystarczający token/ACL Nie ponawiaj; zgłoś administratorowi zakres tokenu.
404 Zasób lub relacja w danym kontekście nie istnieje Zweryfikuj identyfikatory i kontekst website.
409 Konflikt statusu lub duplikat Odczytaj aktualny stan przed decyzją o ponowieniu.
5xx / timeout Błąd techniczny Zastosuj ograniczone retry z backoffem i zachowaj trace_id.

Nie loguj tokenów, pełnych danych osobowych ani sekretów konfiguracji. Zgłoszenie do zespołu sklepu powinno zawierać czas, metodę, ścieżkę bez sekretów, status HTTP, trace_id oraz zanonimizowany payload.

4. Schematy danych wejściowych

Poniższe schematy są wspólne dla endpointów referencyjnych. Pole bez ? jest wymagane przez kontrakt; ? oznacza wartość opcjonalną. Pola metadataconfigconfiguration i payload są obiektami JSON.

DTO / wrapper Pola
company websiteIdnametaxIdexternalId?status?salesRepresentativeId?customerGroupId?websiteActive?
companyUser websiteIdroleIdactive
request — RFQ websiteIdcompanyIdcustomerId?externalId?titlecurrencyvalidUntil?customerNote?salesNote?metadata?
request — pozycja RFQ quoteIdskuproductId?name?qtyrequestedPrice?offeredPrice?comment?metadata?
request — decyzja RFQ customerId?adminUserId?message?
request — komentarz RFQ quoteIdcustomerId?adminUserId?authorTypemessagevisibleForCustomer
request — dokument websiteIdcompanyIdorderId?orderIncrementId?invoiceId?invoiceIncrementId?creditmemoId?creditmemoIncrementId?externalId?documentNumberdocumentTypestatusissueDate?dueDate?grandTotal?currency?metadata?
request — plik dokumentu documentIdfileNamefilePathmimeTypefileSizechecksum?primary
request — limit websiteIdcompanyIdtermsId?creditLimitcurrencyactivestatusmetadata?
request — ekspozycja limitu websiteIdcompanyIdsourceTypesourceIdsourceIncrementId?amountcurrencydueDate?metadata?
request — warunki płatności websiteIdcodenamedaysDueactivedescription?
request — reguła akceptacji websiteIdcompanyIdnamethresholdAmountcurrency?priorityactivemetadata?
request — akceptujący ruleIdcustomerIdsortOrderactive
request — decyzja akceptacji approverCustomerId?comment?
request — wniosek akceptacji websiteIdcompanyIdorderId?orderIncrementId?requesterCustomerId?grandTotalcurrencycomment?metadata?
request — profil import/export websiteIdcodenamedirectionentityTypeformatbehavioractiveconfiguration?
request — profil integracji websiteIdcodenamesystemTypeadapterCodedirectionactivemaxAttemptsconfig?
request — mapowanie websiteIdsystemTypeentityTypelocalIdexternalIdmetadata?
request — job integracyjny profileIddirection?entityTypeoperationidempotencyKey?maxAttempts?payload?scheduledAt?

5. Referencja endpointów

W tabelach ACL oznacza minimalny zasób uprawnienia Magento. Wynik określa rodzaj odpowiedzi sukcesu.

5.1. Websites i konfiguracja

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /V1/kowal-b2b/websites config Tablica website (websiteId, kod, nazwa, flaga B2B). Pobierz przed konfiguracją integracji.
GET /V1/kowal-b2b/websites/:websiteId/config config path: websiteId Konfiguracja B2B website (m.in. enabled/debug/retencja logów). Wykonaj jako test dostępu.
GET /V1/kowal-b2b/websites/:websiteId/features config path: websiteId Feature flags aktywne dla website; użyj do warunkowego włączania funkcji klienta.

5.2. Firmy i użytkownicy firmowi

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /companies?websiteId= companies query: websiteId Tablica firm przypisanych do website.
POST /companies company_save body: company Tworzy firmę i relację z website; użyj Idempotency-Key przy ponowieniach. Zwraca firmę.
POST /companies/batch batch body: companies — tablica company Tworzy wiele firm i zwraca wynik per element, w tym błędy.
GET /companies/:companyId?websiteId= companies path: companyId; query: websiteId Firma zweryfikowana w kontekście website.
PUT /companies/:companyId company_save path: companyId; body: company Aktualizuje dane i relację firmy dla company.websiteId.
POST /companies/:companyId/activate?websiteId= company_save path: companyId; query: websiteId Aktywuje firmę w wskazanym website i zwraca firmę.
POST /companies/:companyId/block?websiteId= company_save path: companyId; query: websiteId Blokuje firmę w wskazanym website i zwraca firmę.
GET /companies/:companyId/users?websiteId= company_users path: companyId; query: websiteId Tablica przypisań klientów do firmy.
PUT /companies/:companyId/users/:customerId company_users path: companyIdcustomerId; body: companyUser Nadaje/aktualizuje rolę i aktywność klienta w firmie; zwraca przypisanie.

5.3. Produkty, cena i widoczność katalogu

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /products?websiteId= products query: websiteId Tablica podstawowych produktów Magento dla website.
GET /products/:sku?websiteId= products path: zakodowane sku; query: websiteId Produkt (idsku, nazwa, typ, status, websites).
GET /products/:sku/availability?websiteId= products path: sku; query: websiteId Dostępność i ilość sprzedażowa MSI dla SKU.
GET /products/:sku/b2b-status?websiteId= products path: sku; query: websiteId Status B2B: przypisanie do website, tłumaczenia i dane stock.
GET /reports/products/missing-translations?websiteId= products query: websiteId Raport SKU bez wymaganych tłumaczeń, z reason/details.
GET /reports/products/missing-stock?websiteId= products query: websiteId Raport SKU bez wymaganych danych stock.
GET /companies/:companyId/products/:sku/price?websiteId=&currency=&qty= prices path: companyIdsku; query: websiteIdcurrency, opcj. qty (domyślnie 1) Wyjaśnienie ceny właściwej dla firmy, waluty i ilości; odczytuj przed zakupem.
GET /companies/:companyId/products/:sku/visibility?websiteId= catalog_permissions path: companyIdsku; query: websiteId Wynik widoczności/zakupu SKU dla firmy.
GET /companies/:companyId/catalog-visibility?websiteId= catalog_permissions path: companyId; query: websiteId Tablica pozycji indeksu widocznego katalogu firmy.
POST /companies/:companyId/catalog-visibility/reindex?websiteId= catalog_permissions path: companyId; query: websiteId Przebudowuje indeks i zwraca liczbę zaindeksowanych pozycji. Operacja administracyjna.

5.4. Import i eksport plikowy

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /import-export/profiles?websiteId= import_export query: websiteId Tablica profili importu/eksportu website.
POST /import-export/profiles import_export body: request — profil import/export Zapisuje profil i zwraca jego dane.
POST /import-export/import/:profileId?sourceFile=&dryRun= import_export path: profileId; query: sourceFile, opcj. dryRun=false Uruchamia import pliku wskazanego po stronie środowiska Magento; zwraca job. Nie przesyła multipart.
POST /import-export/export/:profileId?resultFile= import_export path: profileId; opcj. query: resultFile Tworzy job eksportu, opcjonalnie z docelową ścieżką pliku.
GET /import-export/jobs?websiteId= import_export query: websiteId Tablica jobów import/export dla website.
GET /import-export/jobs/:jobId import_export path: jobId Stan, wynik i dane pojedynczego joba.
GET /import-export/jobs/:jobId/logs import_export path: jobId Logi diagnostyczne joba.

5.5. Szybkie zamówienie i listy zakupowe

Metoda i endpoint ACL Wejście Wynik i zastosowanie
POST /companies/:companyId/quick-order/validate quick_order path: companyId; body: websiteIdcurrencyitems (skuqty) Waliduje wiele SKU w kontekście firmy: dostępność, widoczność i cenę; zwraca zbiorczy wynik.
GET /companies/:companyId/shopping-lists?websiteId= quick_order path: companyId; query: websiteId Tablica list zakupowych firmy.
POST /companies/:companyId/shopping-lists quick_order path: companyId; body: websiteIdname, opcj. customerIdisDefault=false Tworzy listę zakupową i zwraca ją.
GET /shopping-lists/:listId/items quick_order path: listId Tablica pozycji wskazanej listy.
POST /shopping-lists/:listId/items quick_order path: listId; body: currencyitems (skuqty) Dodaje pozycje do listy i zwraca zapisane pozycje.

5.6. Dokumenty i pliki

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /companies/:companyId/documents?websiteId=&documentType= documents path: companyId; query: websiteId, opcj. documentType Dokumenty firmy, opcjonalnie filtrowane typem.
GET /documents/:documentId?companyId=&websiteId= documents path: documentId; query: companyIdwebsiteId Szczegóły dokumentu po sprawdzeniu przynależności firmy.
POST /documents documents body: request — dokument Tworzy lub zapisuje metadane dokumentu i zwraca dokument.
POST /documents/files documents body: request — plik dokumentu Rejestruje plik istniejący w storage Magento (nazwa, ścieżka, MIME, rozmiar), nie wysyła binariów.
GET /documents/:documentId/files?companyId=&websiteId= documents path: documentId; query: companyIdwebsiteId Tablica metadanych plików dokumentu.
GET /documents/:documentId/sync-logs documents path: documentId Logi synchronizacji dokumentu; przeznaczone dla integracji administracyjnej.

5.7. Limit kupiecki i terminy płatności

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /companies/:companyId/credit/status?websiteId=&currency= credit_limits path: companyId; query: websiteIdcurrency Status limitu, wykorzystanie i dostępna kwota firmy.
POST /credit-limits credit_limits body: request — limit Tworzy/aktualizuje limit firmy i zwraca limit.
POST /credit/exposures credit_limits body: request — ekspozycja Rezerwuje ekspozycję limitu dla źródła (np. zamówienia) i zwraca ją.
POST /credit/exposures/:exposureId/release credit_limits path: exposureId; opcj. body: message Zwalnia ekspozycję; zwraca jej stan.
GET /payment-terms?websiteId= credit_limits query: websiteId Tablica aktywnych/znanych warunków płatności website.
POST /payment-terms credit_limits body: request — warunki płatności Zapisuje warunki płatności i zwraca je.

5.8. Workflow akceptacji

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /companies/:companyId/approval/rules?websiteId=&currency= approvals path: companyId; query: websiteId, opcj. currency Reguły akceptacji firmy dla kanału/waluty.
POST /approval/rules approvals body: request — reguła Tworzy/aktualizuje regułę progową i zwraca ją.
GET /approval/rules/:ruleId/approvers approvals path: ruleId Tablica przypisanych akceptujących, w kolejności sortOrder.
POST /approval/approvers approvals body: request — akceptujący Zapisuje przypisanie klienta jako akceptującego.
GET /companies/:companyId/approval/required?websiteId=&grandTotal=&currency= approvals path: companyId; query: websiteIdgrandTotalcurrency Boolean: czy kwota wymaga akceptacji.
POST /approval/requests approvals body: request — wniosek akceptacji Tworzy request dla zamówienia i zwraca go.
GET /companies/:companyId/approval/requests?websiteId=&status= approvals path: companyId; query: websiteId, opcj. status Tablica requestów akceptacji firmy.
POST /approval/requests/:requestId/approve approvals path: requestId; body: request — decyzja Zatwierdza request; zwraca jego aktualny stan.
POST /approval/requests/:requestId/reject approvals path: requestId; body: request — decyzja Odrzuca request; zwraca jego aktualny stan.
POST /approval/requests/:requestId/cancel approvals path: requestId; body: request — decyzja Anuluje request; zwraca jego aktualny stan.
GET /approval/requests/:requestId/decisions approvals path: requestId Historia decyzji dla requestu.

5.9. Kontekst B2B zamówień

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /orders/:orderId/b2b-context orders path: orderId Kontekst B2B pojedynczego natywnego zamówienia Magento (np. firma, status akceptacji, limit, eksport).
GET /companies/:companyId/orders/b2b-context?websiteId=&approvalStatus= orders path: companyId; query: websiteId, opcj. approvalStatus Tablica kontekstów zamówień firmy, opcjonalnie filtrowana statusem akceptacji.

5.10. RFQ i oferty handlowe

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /companies/:companyId/quotes?websiteId=&status= quotes path: companyId; query: websiteId, opcj. status RFQ i oferty firmy, opcjonalnie według statusu.
POST /quotes quotes body: request — RFQ Tworzy robocze RFQ i zwraca je. Dodaj pozycje osobnym endpointem.
GET /quotes/:quoteId quotes path: quoteId Szczegóły RFQ/oferty.
GET /quotes/:quoteId/items quotes path: quoteId Tablica pozycji RFQ.
POST /quotes/items quotes body: request — pozycja RFQ Dodaje SKU i ilość, opcjonalną cenę żądaną/ofertową oraz komentarz.
GET /quotes/:quoteId/comments quotes path: quoteId Komentarze RFQ. Klient widzi tylko komentarze oznaczone jako widoczne.
POST /quotes/comments quotes body: request — komentarz RFQ Dodaje wiadomość; authorType i visibleForCustomer określają autora i widoczność.
GET /quotes/:quoteId/history quotes path: quoteId Historia zmian statusu i zdarzeń RFQ.
POST /quotes/:quoteId/submit quotes path: quoteId; body: request — decyzja RFQ Przekazuje robocze RFQ do wyceny.
POST /quotes/:quoteId/make-offer quotes path: quoteId; body: request — decyzja RFQ Handlowiec tworzy/przekazuje ofertę; przed wywołaniem ustal ceny pozycji.
POST /quotes/:quoteId/accept quotes path: quoteId; body: request — decyzja RFQ Akceptuje aktualną ofertę. Nie tworzy w tym kontrakcie zamówienia REST.
POST /quotes/:quoteId/reject quotes path: quoteId; body: request — decyzja RFQ Odrzuca ofertę/RFQ.
POST /quotes/:quoteId/cancel quotes path: quoteId; body: request — decyzja RFQ Anuluje RFQ, jeśli pozwala na to bieżący status.

5.11. Profile i joby integracyjne

Metoda i endpoint ACL Wejście Wynik i zastosowanie
GET /integrations/profiles?websiteId=&systemType= system_integrations query: websiteId, opcj. systemType Profile integracji dla website.
POST /integrations/profiles system_integrations body: request — profil integracji Zapisuje profil ERP/PIM/WMS itp. i zwraca go.
POST /integrations/mappings system_integrations body: request — mapowanie Zapisuje parę lokalny ID ↔ zewnętrzny ID.
GET /integrations/mappings/local?websiteId=&systemType=&entityType=&localId= system_integrations query: wszystkie parametry wymagane Odszukuje mapowanie po identyfikatorze Magento.
GET /integrations/mappings/external?websiteId=&systemType=&entityType=&externalId= system_integrations query: wszystkie parametry wymagane Odszukuje mapowanie po identyfikatorze systemu zewnętrznego.
POST /integrations/jobs system_integrations body: request — job Publikuje job do wykonania; idempotencyKey identyfikuje operację biznesową.
GET /integrations/jobs?websiteId=&status= system_integrations query: websiteId, opcj. status Tablica jobów integracyjnych.
GET /integrations/jobs/:jobId system_integrations path: jobId Stan i szczegóły pojedynczego joba.
POST /integrations/jobs/:jobId/process system_integrations path: jobId Przetwarza job i zwraca jego aktualny stan.
POST /integrations/jobs/:jobId/retry system_integrations path: jobId Ponawia job po błędzie, zgodnie z jego limitem prób.
GET /integrations/jobs/:jobId/logs system_integrations path: jobId Logi wykonania joba.
GET /integrations/jobs/:jobId/errors system_integrations path: jobId Błędy domenowe/techniczne joba.

6. Przykłady wywołań

export BASE_URL='https://b2b.example.com/rest/V1'
export TOKEN='token-przekazany-przez-administratora'
export WEBSITE_ID=1 COMPANY_ID=10 SKU='B2B-SKU-001' CURRENCY='PLN'

# Test dostępu i konfiguracji kanału
curl -sS "$BASE_URL/kowal-b2b/websites/$WEBSITE_ID/config" \
  -H "Authorization: Bearer $TOKEN" -H 'Accept: application/json'

# Cena kontraktowa firmy dla konkretnej ilości
curl -sS "$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'

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

# Utworzenie RFQ
curl -sS -X POST "$BASE_URL/kowal-b2b/quotes" \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  --data '{"request":{"websiteId":1,"companyId":10,"customerId":25,"title":"Dostawa kwartalna","currency":"PLN","externalId":"ERP-RFQ-2026-001"}}'

7. Zalecane scenariusze integracyjne

Zakup po SKU

  1. Odczytaj konfigurację website i zapisz przekazane websiteIdcompanyId, walutę.
  2. Użyj quick order do zbiorczej walidacji SKU, ilości, widoczności i dostępności.
  3. Dla zaakceptowanych pozycji pobierz cenę z price z właściwym qty.
  4. Utwórz RFQ, dodaj pozycje i wyślij je przez submit, jeśli zakup wymaga oferty.
  5. Śledź status i historię RFQ; po akceptacji postępuj zgodnie z uzgodnionym procesem zamówienia Magento, ponieważ V1 nie wystawia endpointu tworzenia order.

Dokumenty i rozliczenia

  1. Pobierz listę dokumentów firmy, opcjonalnie filtrując documentType.
  2. Dla wybranego dokumentu pobierz metadane i listę plików; ścieżka pliku nie jest automatycznie publicznym URL — sposób pobrania binarium uzgodnij z administratorem sklepu.
  3. Odczytaj status limitu przed procesem zakupowym; tylko integracja z ACL credit_limits może nim zarządzać.

Operacje asynchroniczne

  1. Zapisz profil integracji i mapowania identyfikatorów.
  2. Opublikuj job z biznesowym idempotencyKey i zachowaj jobId.
  3. Odczytuj job oraz logi/błędy; retry wywołuj dopiero po analizie błędu i usunięciu jego przyczyny.

8. Lista odbiorowa przed produkcją

  • Token ma wyłącznie wymagane ACL i nie jest tokenem administratora używanym przez UI.
  • Integrator poprawnie obsługuje 401403404, walidację 422, konflikt 409 i timeouty.
  • Każdy request w kontekście B2B przekazuje właściwe websiteId, a dane firmy używają prawidłowego companyId.
  • Ceny, widoczność i dostępność są sprawdzane przed utworzeniem procesu zakupowego.
  • Tworzenie firmy używa Idempotency-Key; joby integracyjne mają stabilny idempotencyKey w body.
  • Logi nie zawierają tokenów ani danych wrażliwych, a procedura wsparcia przekazuje trace_id.
  • Testy zostały wykonane na środowisku testowym na firmie, która ma aktywną relację z B2B website.

9. Kompatybilność

Kontrakt jest wersjonowany przez /V1. Rozszerzenie odpowiedzi o nowe pola jest kompatybilne; integrator powinien tolerować pola nieznane. Zmiana usuwająca pole, znaczenie pola lub endpoint wymaga nowej wersji API. W razie rozbieżności między dokumentem a działającą instalacją wiążący jest aktywny kontrakt webapi.xml danej wersji modułu.

Installationsanleitung für das Modul

Magento 2 · Vertrieb für Unternehmen

B2B-Vertrieb, der so funktioniert, wie Ihre Kunden arbeiten.

Geben Sie jedem Geschäftspartner seine eigenen Preise, seinen Katalog, seine Einkaufsregeln und seine Dokumente. Kowal B2B Suite strukturiert den gesamten Prozess — von der Unternehmensregistrierung über Angebot und Bestellung bis hin zur Abrechnung und zum Datenaustausch mit dem ERP.

Ikonografische Grafik von Kowal B2B Suite für Magento 2
Ein Shop, viele Geschäftsbeziehungen. Einzelhandel und Vertrieb an Unternehmen können nebeneinander funktionieren, ohne Regeln zu vermischen.
Eigene Konditionen Preise, Katalog und Zahlungen an das jeweilige Unternehmen angepasst
Weniger manuelle Arbeit schnelle Einkäufe, Einkaufslisten, Dokumente und Angebotsbearbeitung an einem Ort
Prozesskontrolle Kreditlimits, Freigaben und klare Benutzerberechtigungen
Verbundene Systeme eine fertige Grundlage für die Zusammenarbeit mit ERP, PIM, WMS und CRM

Warum Kowal B2B Suite entstanden ist

Im B2B hat jede Geschäftsbeziehung ihre eigenen Regeln.

Unternehmenskunden kaufen anders als Verbraucher: Sie bestellen dieselben Produkte erneut, verhandeln Preise, arbeiten in Teams und erwarten Dokumente sowie Abrechnungen gemäß Vertrag. Die Suite ermöglicht es, diese Unterschiede zu bedienen, ohne eine separate Plattform aufzubauen.

01

Jeder Kunde sieht sein eigenes Angebot

Individuelle Preise, Katalog, Mengenstaffeln, Zahlungsbedingungen und zum Einkauf berechtigte Personen.

02

Einkäufe ohne unnötige Schritte

Der Kunde bestellt per SKU, nutzt Einkaufslisten oder geht über Angebot und Freigabe.

03

Vertrieb mit den Abläufen verbunden

Dokumente, Limits und Geschäftsdaten können nahtlos mit ERP, Lager und Buchhaltung zusammenarbeiten.

Funktionsumfang

Alles, was Sie brauchen, um Unternehmenskunden nach ihren Regeln zu bedienen.

Vom ersten Kontakt mit dem Unternehmen bis zu den nächsten wiederkehrenden Bestellungen. Sie wählen die Bereiche aus, die Ihr Vertriebsmodell benötigt, und das Ganze funktioniert nahtlos in Magento.

01

Unternehmen und Benutzer

Registrierung und Freigabe von Unternehmen, mehrere Benutzer, Rollen, Adressen, Kontakte sowie eine klare Aufteilung der Berechtigungen.

02

Preise gemäß Vertrag

Preislisten für Unternehmen, Vertragspreise, Mengenstaffeln und Preise angepasst an Währung und Bestellvolumen.

03

Katalog für den richtigen Kunden

Produkte und Kategorien sind nur dort sichtbar, wo sie sichtbar sein sollen — ohne versehentliche Freigabe des Angebots.

04

Schnelle, wiederkehrende Einkäufe

Suche per SKU, Hinzufügen vieler Positionen, Listenimport und gespeicherte Einkaufslisten für Stammkunden.

05

Dokumente griffbereit

Rechnungen, Korrekturen, WZ, Bestellbestätigungen und PDF-Dateien sind sicher im Kundenportal verfügbar.

06

Angebote und Verhandlungen

Angebotsanfragen, vereinbarte Preise, Kommunikation mit dem Kunden, PDF, Gültigkeitsdauer und Bestellung aus einem freigegebenen Angebot.

07

Sicherer Vertrieb mit Zahlungsziel

Zahlungsbedingungen, Kreditlimits und laufende Kontrolle der Limitausnutzung vor dem Absenden der Bestellung.

08

Einkäufe unter Kontrolle

Einkaufsschwellen, freigebende Personen, Entscheidungen und Prozesshistorie für Unternehmen, die Freigaben benötigen.

09

Daten, die zusammenarbeiten

CSV-Import und -Export, Integrationen mit ERP, PIM, WMS und CRM sowie Monitoring des Datenaustauschs und von Fehlern.

An Ihr Vertriebsmodell angepasst

Entwickeln Sie Ihr B2B weiter, ohne den Shop aufzugeben, den Sie bereits kennen.

Kowal B2B Suite erweitert Magento um Unternehmensprozesse, anstatt den gesamten eCommerce zu ersetzen. Sie können B2B parallel zum Einzelhandel starten und weitere Bereiche im Tempo Ihrer Organisation einführen.

  • B2C- und B2B-Vertrieb können in einem Ökosystem funktionieren.
  • B2B-Kunden erhalten ihre eigenen Regeln, ohne das Einzelhandelsangebot zu verkomplizieren.
  • Sie können mit Katalog und Preisen beginnen und später Limits, Angebote oder Integrationen ergänzen.
  • Ihre Produktdaten, Bestellungen und Lagerbestände bleiben in der vertrauten Magento-Umgebung.

Eine Plattform, unterschiedliche Erlebnisse

Der Endkunde kauft einfach. Der Geschäftskunde kauft nach seinem Vertrag.

Separate Vertriebskanäle ermöglichen es, Einzelhandels- und Geschäftsangebot nebeneinander zu führen und dabei Ordnung bei Preisen, Katalog und Zugängen zu bewahren.

B2C- und B2B-Vertrieb Ein Produktkatalog Individuelle Konditionen Kundenportal Magento Open Source

Vom ersten Login bis zur Abwicklung

Ein B2B-Prozess, der Kunde, Vertrieb, Finanzen und Abläufe verbindet.

Jede Phase hat einen Verantwortlichen und klare Regeln. Der Kunde gewinnt Komfort, und Ihr Team erhält Kontrolle sowie die vollständige Historie aller Aktivitäten.

1. Das Unternehmen tritt der Plattform bei
Unternehmensregistrierung, Verifizierung, Kontoaktivierung, Adressen, Kontakte sowie für den Einkauf verantwortliche Personen.
2. Der Kunde sieht sein Angebot
Katalog, Produkte, Preise und Geschäftskonditionen sind auf den jeweiligen Geschäftspartner zugeschnitten.
3. Der Käufer gibt eine Bestellung auf
Schnelle Einkäufe per SKU, Positionsimport, Einkaufslisten und ein Standard-Warenkorb mit B2B-Regeln.
4. Der Einkauf durchläuft den richtigen Ablauf
Das System prüft Berechtigungen, Produktverfügbarkeit, Lieferung, Zahlung sowie festgelegte Limits.
5. Bei Bedarf wird die Bestellung freigegeben
Betragsschwellen leiten den Einkauf an die zuständige Person weiter, und Entscheidungen werden in der Historie gespeichert.
6. Der Vertriebsmitarbeiter bearbeitet das Angebot
RFQ ermöglicht die Festlegung von Preisen, Gültigkeitsdauer und Konditionen; der Kunde akzeptiert das Angebot online oder wechselt zum Warenkorb.
7. Die Finanzen behalten die Kontrolle
Kreditlimits, Kreditausnutzung und Zahlungsfristen schützen den Vertrieb mit Zahlungsziel.
8. Der Kunde hat Dokumente griffbereit
Rechnungen, WZ, Korrekturen, Bestätigungen und Angebots-PDFs sind sicher im B2B-Portal verfügbar.
9. Das Team verwaltet die Daten
Admin Panel, Rollen, Audit sowie CSV-Import und -Export erleichtern die tägliche Arbeit.
10. Systeme tauschen Daten aus
ERP, PIM, WMS, CRM und Einkaufssysteme der Kunden können Daten über fertige Integrationsmechanismen austauschen.
11. Der Datenaustausch wird überwacht
Synchronisationsprofile, Aufgabenwiederholungen, Fehlerhistorie und Datenmapping reduzieren manuelle Arbeit.
12. Die Plattform wächst mit dem Geschäft mit
Funktionen können schrittweise eingeführt werden, während gemeinsamer Katalog, Kundendaten und Magento-Prozesse erhalten bleiben.

Integrationen ohne Kontrollverlust

Verbinden Sie Ihren B2B-Vertrieb mit den Systemen, die Sie bereits nutzen.

Daten zu Kunden, Preisen, Dokumenten und Bestellungen können zwischen Magento und ERP, PIM, WMS, CRM, EDI sowie den Einkaufssystemen Ihrer Geschäftspartner fließen. Das Team hat Einblick in Status und Fehler des Datenaustauschs.

ERP und Buchhaltung PIM und Katalog WMS und Lager CRM und Vertrieb Einkaufssysteme

Was sich verbinden lässt

  • Unternehmen, Benutzer und Einkaufsberechtigungen,
  • Produkte, Kataloge und individuelle Preise,
  • Bestellungen, Angebote und deren Status,
  • Rechnungen, WZ, Korrekturen und weitere Dokumente,
  • Kreditlimits und Zahlungsbedingungen,
  • CSV-Importe und -Exporte für operative Arbeit,
  • Synchronisationsstatus und Aufgaben, die Aufmerksamkeit erfordern.

Implementierungsprozess

Gutes B2B beginnt mit klaren Geschäftsregeln, nicht mit der Installation eines Moduls.

1. Wir lernen Ihr Vertriebsmodell kennen

Wir definieren Kunden, Kanäle, Preislisten, Zahlungen, Einkaufsbeschränkungen und Datenquellen.

2. Wir richten Regeln für Unternehmen ein

Wir konfigurieren Unternehmenskonten, Benutzer, Preise, Katalog, Adressen, Limits und Einkaufsrollen.

3. Wir gestalten den Kaufprozess

Wir führen Schnellbestellungen, Angebote, Freigaben, Dokumente und die passende Checkout-Abwicklung ein.

4. Wir verbinden und prüfen

Wir binden externe Systeme an, testen Kundenszenarien und schulen das Team in der Prozessbedienung.

Für wen ist Kowal B2B Suite geeignet?

  • Großhändler und Distributoren,
  • Hersteller, die an Geschäftspartner verkaufen,
  • Unternehmen mit individuellen Preislisten,
  • Organisationen mit Kreditlimits,
  • Organisationen mit Freigabeprozess für Einkäufe,
  • Unternehmen, die ihren Shop mit ERP oder PIM verbinden möchten,
  • Marken, die B2C und B2B in einem Ökosystem betreiben.

Was gewinnt Ihr Team?

  • einheitliche Geschäftskonditionen für jeden Geschäftspartner,
  • weniger manuelle Rückfragen zu Preisen, Dokumenten und Bestellstatus,
  • Kontrolle über Einkäufe und Kreditrisiken,
  • ein vollständigeres Bild der Aktivitäten von Kunden und Team,
  • die Möglichkeit, weitere Bereiche schrittweise einzuführen,
  • Bereitschaft, den Vertrieb mit den Systemen des Unternehmens zu verbinden.

FAQ

Die wichtigsten Fragen vor dem Start des B2B-Vertriebs.

Benötigt Kowal B2B Suite eine separate Magento-Installation?

Nein. B2C und B2B können in einem Magento-Ökosystem betrieben werden. So behalten Sie einen gemeinsamen Katalog, Bestellungen und operative Abläufe.

Können wir mit ausgewählten Funktionen starten?

Ja. Sie können mit Unternehmen, Preisen und Katalog beginnen und die Plattform anschließend um Schnellbestellungen, Angebote, Limits, Freigaben oder Integrationen erweitern.

Kann ein B2B-Kunde eigene Preise und einen eigenen Katalog haben?

Ja. Jedes Unternehmen kann seinen eigenen Katalog, Vertragspreise, Mengenstaffeln sowie festgelegte Einkaufs- und Zahlungsregeln erhalten.

Lassen sich Einkäufe auf dem Unternehmenskonto kontrollieren?

Ja. Benutzerrollen, Kreditlimits, Zahlungsbedingungen und mehrstufige Freigaben ermöglichen es, den Prozess an die Einkaufspolitik des Kunden anzupassen.

Können Dokumente und Daten aus dem ERP stammen?

Ja. Die Plattform unterstützt in Magento erzeugte Dokumente ebenso wie vom ERP bereitgestellte Dateien. Integrationen ermöglichen den Datenaustausch und die Überwachung seines Verlaufs.

Lassen Sie uns darüber sprechen, wie Ihr B2B-Prozess funktionieren sollte.

Gemeinsam übersetzen wir Geschäftsregeln, Kundenanforderungen und operative Anforderungen in eine komfortable Vertriebsplattform. Von individuellen Preisen und Schnellbestellungen bis hin zu Dokumenten, Freigaben und Integrationen.

Reviews

Write Your Own Review
You're reviewing:Professionelles B2B-System für Magento 2 Open Source
Your Rating