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

Sistema B2B professionale per Magento 2 Open Source

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

Configurazione dell'integrazione

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.

Istruzioni per l'installazione del modulo

Magento 2 · vendite per aziende

Vendite B2B che funzionano come lavorano i tuoi clienti.

Offri a ogni cliente aziendale i propri prezzi, catalogo, regole di acquisto e documenti. Kowal B2B Suite organizza l'intero processo, dalla registrazione dell'azienda all'offerta e all'ordine, fino alla gestione dei pagamenti e allo scambio dati con ERP.

Grafica iconografica di Kowal B2B Suite per Magento 2
Un solo negozio, molte relazioni commerciali. Le vendite al dettaglio e quelle per aziende possono convivere senza mescolare le regole.
Condizioni personalizzate prezzi, catalogo e pagamenti adattati alla singola azienda
Meno lavoro manuale acquisti rapidi, liste acquisti, documenti e gestione offerte in un unico posto
Controllo del processo fidi commerciali, approvazioni e autorizzazioni utente chiare
Sistemi connessi base pronta per collaborare con ERP, PIM, WMS e CRM

Perché è nato Kowal B2B Suite

Nel B2B ogni relazione commerciale ha le proprie regole.

I clienti aziendali acquistano in modo diverso dai consumatori: tornano sugli stessi prodotti, negoziano i prezzi, lavorano in team e si aspettano documenti e pagamenti conformi al contratto. Suite consente di gestire queste differenze senza creare una piattaforma separata.

01

Ogni cliente vede la propria offerta

Prezzi personalizzati, catalogo, soglie quantitative, condizioni di pagamento e persone autorizzate agli acquisti.

02

Acquisti senza passaggi superflui

Il cliente ordina per SKU, usa liste acquisti oppure passa tramite offerta e approvazione.

03

Vendite collegate all'operatività

Documenti, limiti e dati commerciali possono collaborare in modo fluido con ERP, magazzino e contabilità.

Ambito funzionale

Tutto ciò che ti serve per gestire i clienti aziendali secondo le loro regole.

Dal primo contatto con l'azienda agli ordini successivi e ricorrenti. Scegli le aree di cui ha bisogno il tuo modello di vendita e tutto funziona in modo coerente in Magento.

01

Aziende e utenti

Registrazione e approvazione delle aziende, utenti multipli, ruoli, indirizzi, contatti e chiara suddivisione delle autorizzazioni.

02

Prezzi conformi al contratto

Listini per aziende, prezzi contrattuali, soglie quantitative e prezzi adattati a valuta e dimensione dell'ordine.

03

Catalogo per il cliente giusto

Prodotti e categorie visibili solo dove devono essere, senza condivisioni accidentali dell'offerta.

04

Acquisti rapidi e ricorrenti

Ricerca per SKU, aggiunta di più righe, importazione di liste e liste acquisti salvate per clienti abituali.

05

Documenti sempre a portata di mano

Fatture, note di rettifica, DDT, conferme d'ordine e PDF disponibili in modo sicuro nel portale cliente.

06

Offerte e negoziazioni

Richieste di offerta, prezzi concordati, dialogo con il cliente, PDF, validità e ordine da offerta approvata.

07

Vendita sicura con pagamento differito

Condizioni di pagamento, fidi commerciali e controllo costante dell'utilizzo del fido prima dell'invio dell'ordine.

08

Acquisti sotto controllo

Soglie di acquisto, approvatori, decisioni e cronologia del processo per aziende che richiedono approvazioni.

09

Dati che lavorano insieme

Import ed export CSV, integrazioni con ERP, PIM, WMS e CRM e monitoraggio dello scambio dati e degli errori.

Adattato al tuo modello di vendita

Sviluppa il B2B senza abbandonare il negozio che già conosci.

Kowal B2B Suite estende Magento con processi aziendali, invece di sostituire l'intero e-commerce. Puoi avviare il B2B accanto alle vendite al dettaglio e implementare nuove aree al ritmo della tua organizzazione.

  • Le vendite B2C e B2B possono funzionare in un unico ecosistema.
  • I clienti B2B ottengono regole dedicate senza complicare l'offerta retail.
  • Puoi iniziare da catalogo e prezzi e poi aggiungere fidi, offerte o integrazioni.
  • I tuoi dati di prodotto, ordini e magazzino restano nel familiare ambiente Magento.

Un'unica piattaforma, esperienze diverse

Il cliente retail acquista in modo semplice. Il cliente aziendale acquista secondo il proprio contratto.

Canali di vendita separati consentono di gestire l'offerta retail e quella commerciale in parallelo, mantenendo ordine in prezzi, catalogo e accessi.

Vendite B2C e B2B Un unico catalogo prodotti Condizioni personalizzate Portale cliente Magento Open Source

Dal primo accesso all'evasione

Un processo B2B che collega cliente, commerciale, finanza e operations.

Ogni fase ha un responsabile e regole chiare. Il cliente ottiene comodità e il tuo team controllo e cronologia completa delle attività.

1. L'azienda entra nella piattaforma
Registrazione dell'azienda, verifica, attivazione dell'account, indirizzi, contatti e persone responsabili degli acquisti.
2. Il cliente vede la propria offerta
Catalogo, prodotti, prezzi e condizioni commerciali sono adattati al singolo cliente aziendale.
3. L'acquirente effettua l'ordine
Acquisti rapidi per SKU, importazione righe, liste acquisti e carrello standard con regole B2B.
4. L'acquisto segue il percorso corretto
Il sistema verifica autorizzazioni, disponibilità prodotti, consegna, pagamento e limiti stabiliti.
5. Se necessario, l'ordine viene approvato
Le soglie di importo indirizzano l'acquisto alla persona appropriata e le decisioni vengono salvate nella cronologia.
6. Il commerciale gestisce l'offerta
RFQ consente di definire prezzi, validità e condizioni; il cliente approva l'offerta online o passa al carrello.
7. La finanza mantiene il controllo
Fidi commerciali, utilizzo del credito e scadenze di pagamento proteggono le vendite con pagamento differito.
8. Il cliente ha i documenti sempre a portata di mano
Fatture, DDT, rettifiche, conferme e offerte PDF sono disponibili in modo sicuro nel portale B2B.
9. Il team gestisce i dati
Pannello amministrativo, ruoli, audit e import ed export CSV facilitano la gestione quotidiana.
10. I sistemi scambiano dati
ERP, PIM, WMS, CRM e i sistemi di acquisto dei clienti possono scambiare dati tramite meccanismi di integrazione pronti all'uso.
11. Lo scambio dati è monitorato
Profili di sincronizzazione, ripetizione delle attività, cronologia degli errori e mappatura dati riducono il lavoro manuale.
12. La piattaforma cresce insieme al business
Le funzionalità possono essere implementate per fasi, mantenendo catalogo condiviso, dati cliente e processi Magento.

Integrazioni senza perdere il controllo

Collega le vendite B2B ai sistemi che usi già.

I dati su clienti, prezzi, documenti e ordini possono fluire tra Magento ed ERP, PIM, WMS, CRM, EDI e i sistemi di acquisto dei tuoi partner commerciali. Il team ha visibilità su stati ed errori dello scambio dati.

ERP e contabilità PIM e catalogo WMS e magazzino CRM e commerciali Sistemi di acquisto

Cosa si può collegare

  • aziende, utenti e autorizzazioni di acquisto,
  • prodotti, cataloghi e prezzi personalizzati,
  • ordini, offerte e relativi stati,
  • fatture, DDT, rettifiche e altri documenti,
  • fidi commerciali e condizioni di pagamento,
  • import ed export CSV per il lavoro operativo,
  • stati di sincronizzazione e attività che richiedono attenzione.

Processo di implementazione

Un buon B2B inizia dall'organizzazione delle regole commerciali, non dall'installazione del modulo.

1. Analizziamo il modello di vendita

Definiamo clienti, canali, listini, pagamenti, limiti di acquisto e fonti dati.

2. Impostiamo le regole per le aziende

Configuriamo account aziendali, utenti, prezzi, catalogo, indirizzi, limiti e ruoli di acquisto.

3. Progettiamo il percorso di acquisto

Implementiamo ordini rapidi, offerte, approvazioni, documenti e la corretta gestione del checkout.

4. Colleghiamo e verifichiamo

Colleghiamo sistemi esterni, testiamo gli scenari cliente e formiamo il team sulla gestione del processo.

Per chi è pensato Kowal B2B Suite?

  • grossisti e distributori,
  • produttori che vendono a clienti aziendali,
  • aziende con listini personalizzati,
  • organizzazioni con fidi commerciali,
  • organizzazioni con processo di approvazione degli acquisti,
  • aziende che vogliono collegare il negozio a ERP o PIM,
  • brand che gestiscono B2C e B2B in un unico ecosistema.

Cosa ottiene il tuo team?

  • condizioni commerciali coerenti per ogni cliente aziendale,
  • meno richieste manuali su prezzi, documenti e stato dell'ordine,
  • controllo sugli acquisti e sull'esposizione creditizia,
  • una visione più completa delle attività di clienti e team,
  • possibilità di implementare gradualmente nuove aree,
  • prontezza nel collegare le vendite ai sistemi aziendali.

FAQ

Le domande più importanti prima di avviare le vendite B2B.

Kowal B2B Suite richiede un'installazione Magento separata?

No. B2C e B2B possono funzionare in un unico ecosistema Magento. In questo modo mantieni catalogo condiviso, ordini e back office operativo.

Possiamo iniziare con funzionalità selezionate?

Sì. Puoi iniziare da aziende, prezzi e catalogo, per poi ampliare la piattaforma con ordini rapidi, offerte, fidi, approvazioni o integrazioni.

Un cliente B2B può avere prezzi e catalogo dedicati?

Sì. Ogni azienda può ricevere un proprio catalogo, prezzi contrattuali, soglie quantitative e regole di acquisto e pagamento definite.

È possibile controllare gli acquisti su un account aziendale?

Sì. Ruoli utente, fidi commerciali, condizioni di pagamento e approvazione multi-step permettono di adattare il processo alla policy di acquisto del cliente.

Documenti e dati possono provenire da ERP?

Sì. La piattaforma supporta documenti generati in Magento e file forniti da ERP. Le integrazioni consentono di scambiare dati e monitorarne il flusso.

Parliamo di come dovrebbe funzionare il tuo processo B2B.

Insieme tradurremo regole commerciali, esigenze dei clienti e requisiti operativi in una piattaforma di vendita comoda da usare. Dai prezzi personalizzati e ordini rapidi fino a documenti, approvazioni e integrazioni.

Reviews

Write Your Own Review
You're reviewing:Sistema B2B professionale per Magento 2 Open Source
Your Rating