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

Sistema B2B profesional para Magento 2 Open Source

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

Configuración de la integración

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.

Instrucciones de instalación del módulo

Magento 2 · ventas para empresas

Ventas B2B que funcionan como trabajan sus clientes.

Dé a cada cliente corporativo sus propios precios, catálogo, reglas de compra y documentos. Kowal B2B Suite organiza todo el proceso, desde el registro de la empresa, pasando por la oferta y el pedido, hasta la liquidación y el intercambio de datos con el ERP.

Gráfico iconográfico de Kowal B2B Suite para Magento 2
Una tienda, muchas relaciones comerciales. Las ventas minoristas y las ventas para empresas pueden funcionar lado a lado, sin mezclar las reglas.
Condiciones propias precios, catálogo y pagos adaptados a cada empresa concreta
Menos trabajo manual compras rápidas, listas de compra, documentos y gestión de ofertas en un solo lugar
Control del proceso límites de crédito comercial, aprobaciones y permisos de usuario claros
Sistemas conectados una base preparada para colaborar con ERP, PIM, WMS y CRM

Por qué se creó Kowal B2B Suite

En B2B, cada relación comercial tiene sus propias reglas.

Los clientes empresariales compran de forma distinta a los consumidores: vuelven a pedir los mismos productos, negocian precios, trabajan en equipo y esperan documentos y liquidaciones acordes con el contrato. Suite permite gestionar estas diferencias sin crear una plataforma independiente.

01

Cada cliente ve su propia oferta

Precios individuales, catálogo, tramos por cantidad, condiciones de pago y personas autorizadas para comprar.

02

Compras sin pasos innecesarios

El cliente hace pedidos por SKU, utiliza listas de compra o pasa por oferta y aprobación.

03

Ventas conectadas con la operativa

Los documentos, los límites y los datos comerciales pueden colaborar de forma fluida con el ERP, el almacén y la contabilidad.

Alcance funcional

Todo lo que necesita para gestionar clientes empresariales según sus propias reglas.

Desde el primer contacto con la empresa hasta los siguientes pedidos repetitivos. Elige las áreas que necesita su modelo de ventas y todo funciona de forma coherente en Magento.

01

Empresas y usuarios

Registro y aprobación de empresas, múltiples usuarios, roles, direcciones, contactos y una división clara de permisos.

02

Precios según el contrato

Tarifas para empresas, precios contractuales, tramos por cantidad y precios adaptados a la divisa y al volumen del pedido.

03

Catálogo para el cliente adecuado

Productos y categorías visibles solo donde deben estar, sin compartir la oferta accidentalmente.

04

Compras rápidas y recurrentes

Búsqueda por SKU, adición de múltiples posiciones, importación de listas y listas de compra guardadas para clientes habituales.

05

Documentos siempre a mano

Facturas, rectificaciones, WZ, confirmaciones de pedido y PDF disponibles de forma segura en el portal del cliente.

06

Ofertas y negociaciones

Solicitudes de oferta, precios acordados, conversación con el cliente, PDF, fecha de validez y pedido desde una oferta aprobada.

07

Ventas seguras con pago aplazado

Condiciones de pago, límites de crédito comercial y control actual del uso del límite antes de realizar el pedido.

08

Compras bajo control

Umbrales de compra, personas aprobadoras, decisiones e historial del proceso para empresas que necesitan aprobaciones.

09

Datos que trabajan juntos

Importación y exportación CSV, integraciones con ERP, PIM, WMS y CRM, además de supervisión del intercambio de datos y errores.

Adaptado a su modelo de ventas

Desarrolle B2B sin abandonar la tienda que ya conoce.

Kowal B2B Suite amplía Magento con procesos empresariales, en lugar de sustituir todo el e-commerce. Puede lanzar B2B junto a la venta minorista e implantar nuevas áreas al ritmo de la organización.

  • Las ventas B2C y B2B pueden funcionar en un solo ecosistema.
  • Los clientes B2B obtienen sus propias reglas sin complicar la oferta minorista.
  • Puede empezar por el catálogo y los precios, y después añadir límites, ofertas o integraciones.
  • Sus datos de productos, pedidos y almacén permanecen en el entorno conocido de Magento.

Una plataforma, diferentes experiencias

El cliente minorista compra de forma simple. El cliente empresarial compra según su contrato.

Los canales de venta separados permiten gestionar la oferta minorista y la comercial lado a lado, manteniendo el orden en precios, catálogo y accesos.

Ventas B2C y B2B Un catálogo de productos Condiciones individuales Portal del cliente Magento Open Source

Desde el primer inicio de sesión hasta la ejecución

Un proceso B2B que conecta al cliente, el comercial, finanzas y operaciones.

Cada etapa tiene un responsable y reglas claras. El cliente gana comodidad y su equipo obtiene control e historial completo de acciones.

1. La empresa se une a la plataforma
Registro de la empresa, verificación, activación de la cuenta, direcciones, contactos y personas responsables de las compras.
2. El cliente ve su oferta
El catálogo, los productos, los precios y las condiciones comerciales se adaptan a cada cliente concreto.
3. El comprador realiza el pedido
Compras rápidas por SKU, importación de posiciones, listas de compra y carrito estándar con reglas B2B.
4. La compra sigue el flujo adecuado
El sistema verifica permisos, disponibilidad de productos, entrega, pago y los límites establecidos.
5. Si es necesario, el pedido se aprueba
Los umbrales de importe dirigen la compra a la persona adecuada y las decisiones quedan registradas en el historial.
6. El comercial gestiona la oferta
RFQ permite establecer precios, fecha de validez y condiciones; el cliente acepta la oferta online o pasa al carrito.
7. Finanzas mantienen el control
Los límites de crédito comercial, el uso del crédito y los plazos de pago protegen las ventas con pago aplazado.
8. El cliente tiene los documentos a mano
Facturas, WZ, rectificaciones, confirmaciones y ofertas PDF están disponibles de forma segura en el portal B2B.
9. El equipo gestiona los datos
El panel de administración, los roles, la auditoría y la importación y exportación CSV facilitan la gestión diaria.
10. Los sistemas intercambian datos
ERP, PIM, WMS, CRM y los sistemas de compras de los clientes pueden intercambiar datos mediante mecanismos de integración ya preparados.
11. El intercambio de datos se supervisa
Los perfiles de sincronización, la repetición de tareas, el historial de errores y el mapeo de datos reducen el trabajo manual.
12. La plataforma evoluciona junto con el negocio
Las funciones pueden implantarse por etapas, manteniendo un catálogo común, los datos de clientes y los procesos de Magento.

Integraciones sin perder el control

Conecte las ventas B2B con los sistemas que ya utiliza.

Los datos sobre clientes, precios, documentos y pedidos pueden fluir entre Magento y ERP, PIM, WMS, CRM, EDI y los sistemas de compras de sus clientes. El equipo tiene visibilidad sobre los estados y errores del intercambio de datos.

ERP y contabilidad PIM y catálogo WMS y almacén CRM y comerciales Sistemas de compras

Qué se puede conectar

  • empresas, usuarios y permisos de compra,
  • productos, catálogos y precios individuales,
  • pedidos, ofertas y sus estados,
  • facturas, WZ, rectificaciones y demás documentos,
  • límites de crédito comercial y condiciones de pago,
  • importaciones y exportaciones CSV para el trabajo operativo,
  • estados de sincronización y tareas que requieren atención.

Proceso de implantación

Un buen B2B empieza por ordenar las reglas comerciales, no por instalar un módulo.

1. Conocemos el modelo de ventas

Definimos clientes, canales, tarifas, pagos, restricciones de compra y fuentes de datos.

2. Configuramos las reglas para empresas

Configuramos cuentas de empresa, usuarios, precios, catálogo, direcciones, límites y roles de compra.

3. Diseñamos el recorrido de compra

Implantamos pedidos rápidos, ofertas, aprobaciones, documentos y la gestión adecuada del checkout.

4. Conectamos y comprobamos

Conectamos sistemas externos, probamos escenarios de clientes y formamos al equipo en la gestión del proceso.

¿Para quién es Kowal B2B Suite?

  • mayoristas y distribuidores,
  • fabricantes que venden a clientes empresariales,
  • empresas con tarifas individuales,
  • organizaciones con límites de crédito comercial,
  • organizaciones con proceso de aprobación de compras,
  • empresas que quieren conectar la tienda con ERP o PIM,
  • marcas que gestionan B2C y B2B en un solo ecosistema.

¿Qué gana su equipo?

  • condiciones comerciales coherentes para cada cliente,
  • menos consultas manuales sobre precios, documentos y estado del pedido,
  • control sobre las compras y la exposición crediticia,
  • una visión más completa de las acciones del cliente y del equipo,
  • posibilidad de implantar nuevas áreas por etapas,
  • preparación para conectar las ventas con los sistemas de la empresa.

FAQ

Las preguntas más importantes antes de poner en marcha las ventas B2B.

¿Kowal B2B Suite requiere una instalación independiente de Magento?

No. B2C y B2B pueden funcionar en un solo ecosistema Magento. Gracias a ello, mantiene un catálogo común, los pedidos y el soporte operativo.

¿Podemos empezar con funciones seleccionadas?

Sí. Puede empezar por empresas, precios y catálogo, y después ampliar la plataforma con pedidos rápidos, ofertas, límites, aprobaciones o integraciones.

¿Puede un cliente B2B tener sus propios precios y catálogo?

Sí. Cada empresa puede recibir su propio catálogo, precios contractuales, tramos por cantidad y reglas de compra y pago definidas.

¿Se pueden controlar las compras en la cuenta de empresa?

Sí. Los roles de usuario, los límites de crédito comercial, las condiciones de pago y la aprobación en varias etapas permiten adaptar el proceso a la política de compras del cliente.

¿Los documentos y los datos pueden proceder del ERP?

Sí. La plataforma admite documentos generados en Magento y archivos proporcionados por el ERP. Las integraciones permiten intercambiar datos y supervisar su flujo.

Hablemos de cómo debe funcionar su proceso B2B.

Juntos trasladaremos las reglas comerciales, las necesidades de los clientes y los requisitos operativos a una plataforma de ventas cómoda. Desde precios individuales y pedidos rápidos hasta documentos, aprobaciones e integraciones.

Reviews

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