Profesjonalny system B2B dla Magento 2 Open Source

Kowal B2B Suite to pakiet modułów Magento 2 zaprojektowany dla firm, które chcą prowadzić sprzedaż B2B na Magento Open Source bez rezygnowania z natywnego katalogu, koszyka, checkoutu, MSI, store view, website scope i mechanizmów integracyjnych platformy.
SKU
M2-B2B
3 690,00 zł
Wyślij znajomemu

Zapytaj o ten produkt

Opis / Profesjonalny system B2B dla Magento 2 Open Source

MAGENTO 2 · MAGENTO OPEN SOURCE · FIRMY · HANDEL B2B

Połącz sprzedaż B2B i B2C w jednej instalacji Magento.

Kowal B2B Suite

Rozwijaj portal kontrahentów z firmami, rolami, cenami, katalogami, RFQ, limitami, dokumentami i integracjami. Aktywuj logikę B2B dla wybranych website i dopasuj proces do swoich zasad handlowych.

16 modułów i motyw · Website scope · REST i GraphQL

JAK TO DZIAŁA W PRAKTYCE

01 · Ustalasz model handlowy
Definiujesz firmy, kanały, ceny i źródła danych.

02 · Konfigurujesz proces B2B
Przypisujesz role, katalog, warunki oraz akceptacje.

03 · Łączysz systemy i wdrażasz
Dobierasz adaptery i sprawdzasz pełne scenariusze.

Co zyskuje Twój sklep?

Poznaj funkcje, zastosowanie i ustawienia modułu.

Poznaj moduł

KOWAL B2B SUITE · MAGENTO 2 OPEN SOURCE

Profesjonalny system B2B bez przechodzenia na Adobe Commerce

Kowal B2B Suite rozbudowuje Magento 2 Open Source o funkcje potrzebne w sprzedaży hurtowej i kontraktowej.

Obsługuj firmy, użytkowników, indywidualne ceny, szybkie zamówienia, limity kupieckie, akceptacje, oferty, dokumenty i integracje — w jednym środowisku Magento.

Firmy i role · Ceny i katalogi · RFQ · Kredyt kupiecki · Dokumenty · Integracje

Sprzedaż B2B dopasowana do Twoich zasad handlowych

Każdy kontrahent może otrzymać własne ceny, katalog, warunki płatności, limity oraz użytkowników z różnymi uprawnieniami.

System wspiera zarówno prosty model hurtowy, jak i rozbudowane procesy zakupowe z wieloetapową akceptacją i integracją z ERP, PIM, WMS lub CRM.

Najważniejsze obszary platformy B2B

Przenieś codzienną obsługę kontrahentów z maili, arkuszy i ręcznych ustaleń bezpośrednio do Magento.

Firmy, użytkownicy i role zakupowe

Jedna firma może mieć wielu użytkowników, adresy i osoby odpowiedzialne za zakupy. Role określają, kto może zamawiać, zatwierdzać lub przeglądać dane.

Indywidualne ceny i katalogi

Każdy kontrahent może otrzymać własny katalog, ceny kontraktowe, progi ilościowe i zasady zakupowe. Klient widzi ofertę przeznaczoną dla jego firmy.

Szybkie zamówienia i listy zakupowe

Klienci mogą sprawnie składać duże zamówienia po SKU, korzystać z list zakupowych i importować pozycje zamiast wyszukiwać każdy produkt osobno.

RFQ, oferty i akceptacje

Proces ofertowy może obejmować negocjowane ceny, termin ważności i indywidualne warunki. Zamówienia mogą przechodzić przez akceptację zależną od wartości lub roli użytkownika.

Kontrola finansowa bez pracy w arkuszach

Limity kupieckie, wykorzystanie kredytu i terminy płatności pomagają kontrolować sprzedaż z odroczoną płatnością.

Klient ma dostęp do dokumentów, a zespół widzi warunki handlowe i stan procesu w jednym miejscu.

Dokumenty w portalu klienta

  • faktury i korekty,
  • WZ i potwierdzenia,
  • oferty PDF,
  • dokumenty z Magento lub systemu ERP.

Jak wygląda wdrożenie?

Platformę można wdrażać etapami. Najpierw porządkujemy zasady handlowe, później odwzorowujemy je w Magento i integrujemy z systemami firmy.

1. Model sprzedaży

Ustalamy klientów, kanały, cenniki, płatności, ograniczenia i źródła danych.

2. Reguły dla firm

Konfigurujemy użytkowników, ceny, katalog, adresy, limity i role zakupowe.

3. Proces zakupu

Wdrażamy szybkie zamówienia, oferty, akceptacje, dokumenty i zasady checkoutu.

4. Integracje i testy

Łączymy ERP, PIM, WMS lub CRM, testujemy scenariusze i przygotowujemy zespół do pracy.

Integracje z systemami firmy

Dane o klientach, cenach, produktach, zamówieniach i dokumentach mogą być wymieniane z ERP, PIM, WMS, CRM, EDI oraz systemami zakupowymi kontrahentów.

Synchronizacja może obejmować limity kupieckie, warunki płatności, statusy zamówień i dokumenty. Historia zadań i błędów ułatwia kontrolę procesu.

B2B, które rozwija się razem z biznesem

Kowal B2B Suite jest rozwiązaniem dla hurtowni, dystrybutorów, producentów i firm prowadzących sprzedaż kontraktową.

Możesz rozpocząć od firm, cen i katalogu, a następnie rozbudować platformę o szybkie zamówienia, RFQ, limity, akceptacje, dokumenty i integracje.

Jedno Magento. Jeden katalog. Jeden proces sprzedażowy B2C i B2B.

Jeden pakiet, modułowa architektura

kowal/metapackage-b2b-suite dostarcza pliki 16 modułów B2B oraz motywu frontend/Kowal/b2b. Pakiet główny rejestruje je w autoload i zastępuje nazwy podpakietów, więc instalacja suite nie wymaga osobnego repozytorium dla każdego modułu.

Wdrożenie jest projektowane dla Magento Open Source 2.4.9 i PHP 8.3. Zakres aktywowanych modułów, kompatybilność motywu i scenariusze procesu trzeba sprawdzić w docelowej instalacji.

Website i model dostępu firmy

Funkcje B2B działają w kontekście wybranego website_id. Firma musi mieć aktywną relację z tym kanałem, a role określają dostęp do zakupu, użytkowników, ofert i dokumentów.

Pierwszy model firmy zakłada jedno przypisane website. Sprzedaż B2C może korzystać z tej samej instalacji, lecz aktywacja B2B i dostęp do firm pozostają rozdzielone konfiguracją kanałów.

Quick Order, akceptacje i wdrożenie etapowe

Szybkie zamówienie sprawdza SKU, ilość, przypisanie do website, widoczność dla firmy i cenę B2B. Listy zakupowe oraz logi importu pomagają obsługiwać powtarzalne zamówienia.

Reguły approval uwzględniają firmę, website, walutę i próg. Bieżący request pending jest zamykany decyzją approve, reject albo cancel. Wieloetapowy obieg trzeba uzgodnić i zweryfikować jako konkretny zakres wdrożenia.

Dokumenty i bezpieczny dostęp

Dokumenty są przypisane do firmy oraz website. Pliki PDF znajdują się w var/kowal_b2b_documents i są pobierane przez kontroler sprawdzający dostęp.

Źródłem może być Magento Sales lub tryb hybrydowy Magento + API. Pakiet obejmuje dokumenty zamówień, faktur, wysyłek i korekt oraz wspólny renderer PDF; synchronizacja dokumentów z zewnętrznego systemu wymaga odpowiedniego adaptera.

Integracje wymagają adapterów i źródeł danych

Warstwa Integration dostarcza profile, mapowanie identyfikatorów, zadania, retry, logi i dead letter queue. Konkretny ERP, PIM, WMS lub CRM jest podłączany adapterem implementującym SyncAdapterInterface.

Przed startem ustal źródło prawdy dla firm, cen, stanów, zamówień i dokumentów. REST i GraphQL stanowią punkty integracji; instalacja pakietu nie łączy automatycznie wszystkich systemów firmy.

Instalacja przez Composer

Pakiet kowal/metapackage-b2b-suite, moduł Kowal_B2BBase. Po skonfigurowaniu dostępu do repozytorium Kowal zainstaluj pakiet, włącz moduł, zaktualizuj Magento i wyczyść cache. W produkcji uwzględnij kompilację i wdrożenie treści statycznych zgodnie z procesem sklepu.

Od konfiguracji do efektu

1. Ustalasz model handlowy
Definiujesz firmy, kanały, ceny i źródła danych.

2. Konfigurujesz proces B2B
Przypisujesz role, katalog, warunki oraz akceptacje.

3. Łączysz systemy i wdrażasz
Dobierasz adaptery i sprawdzasz pełne scenariusze.

Portal zamówień dla kontrahenta

Firma jest przypisana do aktywnego website B2B. Jej użytkownik korzysta z katalogu i ceny zgodnej z ustalonymi warunkami, dodaje pozycje po SKU oraz składa zamówienie.

W zależności od konfiguracji proces uwzględnia limit i akceptację. Dokumenty oraz integracje pozostają powiązane z firmą i właściwym kanałem sprzedaży.

Zaplanuj wdrożenie B2B dopasowane do firmy

Chcesz dopasować moduł do swojego sklepu? Zapytaj o wdrożenie Kowal B2B Suite i omów konfigurację lub potrzebne rozszerzenia.

Więcej informacji

Zgodność z szablonem Luma / Blank, KOWAL

Konfiguracja Integracji

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, websiteId, companyId (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
companies, company_save, company_users, batch Firmy, ich użytkownicy i import wsadowy firm
products, prices, catalog_permissions Katalog, dostępność, ceny i widoczność
import_export, quick_order, documents Profile importu/eksportu, listy zakupowe i dokumenty
credit_limits, approvals, orders, quotes 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 products, prices, catalog_permissions, quick_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 (websiteId, companyId), 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 metadata, config, configuration i payload są obiektami JSON.

DTO / wrapper Pola
company websiteId, name, taxId, externalId?, status?, salesRepresentativeId?, customerGroupId?, websiteActive?
companyUser websiteId, roleId, active
request — RFQ websiteId, companyId, customerId?, externalId?, title, currency, validUntil?, customerNote?, salesNote?, metadata?
request — pozycja RFQ quoteId, sku, productId?, name?, qty, requestedPrice?, offeredPrice?, comment?, metadata?
request — decyzja RFQ customerId?, adminUserId?, message?
request — komentarz RFQ quoteId, customerId?, adminUserId?, authorType, message, visibleForCustomer
request — dokument websiteId, companyId, orderId?, orderIncrementId?, invoiceId?, invoiceIncrementId?, creditmemoId?, creditmemoIncrementId?, externalId?, documentNumber, documentType, status, issueDate?, dueDate?, grandTotal?, currency?, metadata?
request — plik dokumentu documentId, fileName, filePath, mimeType, fileSize, checksum?, primary
request — limit websiteId, companyId, termsId?, creditLimit, currency, active, status, metadata?
request — ekspozycja limitu websiteId, companyId, sourceType, sourceId, sourceIncrementId?, amount, currency, dueDate?, metadata?
request — warunki płatności websiteId, code, name, daysDue, active, description?
request — reguła akceptacji websiteId, companyId, name, thresholdAmount, currency?, priority, active, metadata?
request — akceptujący ruleId, customerId, sortOrder, active
request — decyzja akceptacji approverCustomerId?, comment?
request — wniosek akceptacji websiteId, companyId, orderId?, orderIncrementId?, requesterCustomerId?, grandTotal, currency, comment?, metadata?
request — profil import/export websiteId, code, name, direction, entityType, format, behavior, active, configuration?
request — profil integracji websiteId, code, name, systemType, adapterCode, direction, active, maxAttempts, config?
request — mapowanie websiteId, systemType, entityType, localId, externalId, metadata?
request — job integracyjny profileId, direction?, entityType, operation, idempotencyKey?, 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: companyId, customerId; 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 (id, sku, 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: companyId, sku; query: websiteId, currency, 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: companyId, sku; 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: websiteId, currency, items (sku, qty) 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: websiteId, name, opcj. customerId, isDefault=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: currency, items (sku, qty) 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: companyId, websiteId 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: companyId, websiteId 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: websiteId, currency 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: websiteId, grandTotal, currency 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 websiteId, companyId, 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 401, 403, 404, 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.

Instrukcja Instalacji modułu

Przed rozpoczęciem

Instalacja i konfiguracja Kowal B2B Suite

Ten podręcznik jest przeznaczony dla osoby, która kupiła Kowal B2B Suite i ma go uruchomić w istniejącej instalacji Magento Open Source. Prowadzi przez dwa etapy:

  1. instalacja techniczna — wykonywana przez developera lub administratora serwera;
  2. konfiguracja biznesowa — wykonywana w panelu Magento przez administratora sklepu.

Przed rozpoczęciem wykonaj kopię bazy danych i plików Magento. Pierwsze uruchomienie zalecamy przeprowadzić na środowisku testowym, a dopiero później wdrożyć na produkcję.

1. Co otrzymujesz i czego potrzebujesz

Kowal B2B Suite jest dostarczany jako pakiet Composer kowal/metapackage-b2b-suite. Zawiera moduły B2B oraz theme frontend/Kowal/b2b.

Wymagania

Element Wymaganie
Magento Magento Open Source 2.4.9
PHP 8.3
Composer Composer 2
Dostęp serwerowy SSH oraz możliwość uruchamiania bin/magento
Magento działające katalog, klienci, checkout, Sales, MSI oraz cron
PDF możliwość zapisu w var/ przez proces PHP

Od Kowal otrzymasz:

  • adres prywatnego repozytorium Composer — dalej jako REPOSITORY_URL;
  • nazwę użytkownika lub identyfikator dostępu — USERNAME;
  • token dostępu — ACCESS_TOKEN;
  • dozwolony zakres wersji pakietu.

Nie zapisuj tokenu w repozytorium Git, w ticketach ani w historii powłoki współdzielonej z innymi osobami.

2. Instalacja techniczna

Wszystkie polecenia wykonuj w katalogu głównym istniejącej instalacji Magento, jako użytkownik mający dostęp do plików oraz do polecenia bin/magento.

2.1. Przygotowanie

  1. Upewnij się, że Magento działa poprawnie przed zmianą.
  2. Zapisz stan wdrożenia i wykonaj backup bazy danych oraz katalogów app/etc, pub/media i var.
  3. Na produkcji włącz tryb maintenance na czas aktualizacji:
bin/magento maintenance:enable

2.2. Dodanie prywatnego repozytorium

Dodaj repozytorium Composer Kowal i skonfiguruj otrzymane dane dostępowe.

Dane dostępowe do repozytorium Composer (adres e-mail klienta i token licencyjny) otrzymasz e-mailem po zakupie. Są również dostępne w panelu klienta po zalogowaniu na kowal.store. Zastąp TWOJ_EMAIL_KLIENTA adresem e-mail swojego konta, a TWOJ_TOKEN otrzymanym tokenem. Polecenia wykonaj w katalogu głównym Magento.

Dodaj repozytorium Composer

composer config repositories.kowal composer https://repo.kowal.store

Skonfiguruj dane dostępowe

composer config http-basic.repo.kowal.store "TWOJ_EMAIL_KLIENTA" "TWOJ_TOKEN"

Composer zwykle zapisuje poświadczenia w lokalnym auth.json; nie dodawaj tego pliku do Git.

2.3. Instalacja pakietu

Zainstaluj wersję przekazaną wraz z licencją. Dla bieżącej linii pakietu przykładowe polecenie ma postać:

composer require kowal/metapackage-b2b-suite:^0.2 --with-all-dependencies

Po pobraniu zależności wykonaj aktualizację schematu i konfiguracji Magento:

bin/magento setup:upgrade
bin/magento cache:clean

W trybie produkcyjnym wykonaj dodatkowo:

bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f pl_PL en_US
bin/magento cache:flush

Użyj tylko tych locale, które są aktywne w sklepie. Jeżeli instalacja korzysta z innego procesu deploymentu, dołącz powyższe komendy do jego standardowej procedury.

2.4. Weryfikacja instalacji

bin/magento module:status | grep Kowal
bin/magento indexer:status

W panelu administracyjnym powinno pojawić się menu B2B oraz zakładka Stores > Configuration > Kowal > B2B. Jeżeli ich nie ma, sprawdź wynik setup:upgrade, cache oraz role ACL użytkownika administratora.

2.5. Uprawnienia plików PDF

PDF-y generowane przez B2B używają mPDF i katalogów pod var/, w tym var/tmp/kowal_b2b_mpdf oraz var/kowal_b2b_documents. Proces PHP musi mieć możliwość ich utworzenia i zapisu. Brak tych uprawnień objawia się błędem generowania dokumentu lub PDF.

Po zakończeniu wdrożenia produkcyjnego wyłącz maintenance:

bin/magento maintenance:disable

3. Konfiguracja struktury sklepu B2B

3.1. Website i store view

Suite działa w zakresie website, a nie globalnie. Możesz prowadzić B2C i B2B w tej samej instalacji Magento, lecz B2B powinno działać w osobnym website lub w świadomie wybranym website sprzedaży firmowej.

  1. W Stores > Settings > All Stores utwórz lub wybierz website B2B, jego store oraz store view.
  2. Zapamiętaj website_id — jest używany przez firmy, ceny, dokumenty, API i integracje.
  3. W Content > Design > Configuration przypisz theme frontend/Kowal/b2b tylko do B2B store view.
  4. Sprawdź, że aktywne waluty, podatki, metody dostawy i metody płatności są skonfigurowane dla tego samego scope.

Nie przypisuj theme B2B do store view B2C, jeśli nie chcesz zmieniać jego warstwy prezentacji. Sama instalacja modułów nie włącza logiki B2B dla wszystkich website.

3.2. Aktywacja B2B

  1. Otwórz Stores > Configuration > Kowal > B2B.
  2. W przełączniku scope wybierz właściwy Website.
  3. W sekcji General ustaw Enable B2B na Yes.
  4. Na czas wdrożenia możesz włączyć Debug Mode; wyłącz go po testach.
  5. W scope Default Config ustaw okres retencji logów.
  6. Zapisz konfigurację i wyczyść cache.

Po aktywacji wszystkie store view należące do tego website są traktowane jako B2B. Firma bez aktywnej relacji z tym website nie uzyska do niego dostępu.

3.3. Dane sprzedawcy

Uzupełnij dane firmy sprzedającej w Stores > Configuration > General > Store Information: nazwę, adres, telefon oraz NIP. Są używane w dokumentach i PDF RFQ. Uzupełnij również ogólny adres e-mail nadawcy w konfiguracji Sales Emails oraz logo e-mail, jeśli ma pojawiać się w PDF.

4. Konfiguracja pierwszego klienta B2B

Poniższą kolejność stosuj dla każdej firmy. Pozwala uniknąć sytuacji, w której klient ma konto, ale nie widzi oferty lub nie może przejść checkoutu.

4.1. Firma, osoby i adresy

  1. Otwórz B2B > Companies i utwórz firmę.
  2. Podaj nazwę, NIP, identyfikator zewnętrzny (jeśli firma jest synchronizowana z ERP), status Active oraz przypisanie do B2B website.
  3. Dodaj użytkownika firmy lub przypisz istniejącego klienta Magento. Nadaj mu właściwą rolę i aktywuj przypisanie.
  4. W B2B > Company Addresses dodaj adresy firmy; oznacz domyślny adres rozliczeniowy i wysyłkowy dla website B2B.
  5. W B2B > Company Contacts dodaj aktywny kontakt główny z e-mailem i telefonem.

Adres rozliczeniowy i kontakt główny są również używane w PDF RFQ. Brak danych nie blokuje PDF, ale dokument będzie mniej kompletny.

4.2. Role firmowe

Nadaj użytkownikom tylko potrzebne uprawnienia. Typowy podział to:

Rola Przykładowe zadania
Administrator firmy użytkownicy, role, adresy, dokumenty i historia firmy
Kupiec katalog, szybkie zamówienie, koszyk, RFQ i zamówienia
Akceptujący decyzje w workflow akceptacji
Księgowość dokumenty i informacje rozliczeniowe

Przetestuj konto każdego typu, zwłaszcza uprawnienie do składania zamówień i akceptacji. Nie używaj jednego wspólnego konta dla całej firmy.

5. Oferta, ceny i checkout

5.1. Katalog i ceny

  1. Upewnij się, że produkty Magento są przypisane do B2B website, aktywne i mają poprawne dane MSI.
  2. Skonfiguruj cenniki lub ceny kontraktowe dla firmy w obszarze B2B > Pricing (Price Lists, Price List Assignments lub Contract Prices).
  3. Skonfiguruj reguły widoczności katalogu dla firmy zgodnie z wdrożonym modelem uprawnień, a następnie sprawdź widoczność na koncie klienta.
  4. Przetestuj na koncie firmy: wyszukanie SKU, widoczność produktu i cenę dla ilości 1 oraz dla progu ilościowego.

Cena B2B zależy od firmy, website, waluty i ilości. Produkt widoczny w B2C nie musi być dostępny dla klienta B2B.

5.2. Dostawa i płatność

  1. Włącz wymagane metody dostawy i płatności w standardowej konfiguracji Magento dla B2B store view.
  2. W B2B > Checkout dodaj reguły dostępnych metod dla firmy/website, jeśli chcesz ograniczyć wybór.
  3. Przeprowadź test koszyka na domyślnych adresach firmy.

Jeśli tworzenie zamówienia z RFQ ma działać automatycznie po stronie administratora, firma musi mieć jednoznaczne domyślne adresy, aktywną metodę płatności i dostawy. W przeciwnym razie Suite załaduje dane do natywnego Backend Order Create, gdzie administrator uzupełnia brakujące elementy.

5.3. Limity i akceptacje

Te funkcje są opcjonalne, ale powinny być skonfigurowane przed włączeniem ich klientom.

  1. W B2B > Credit > Payment Terms dodaj terminy płatności.
  2. W B2B > Credit > Credit Limits przypisz firmie limit, walutę, status i termin płatności.
  3. W B2B > Approvals > Rules utwórz regułę progu kwotowego dla firmy i website.
  4. W B2B > Approvals > Approvers przypisz osoby akceptujące.
  5. Przetestuj koszyk poniżej i powyżej progu oraz sprawdź, czy decyzja akceptującego zmienia dalszy proces.

6. Dokumenty, PDF i RFQ

6.1. Dokumenty Magento

W Stores > Configuration > Kowal > B2B > Documents wybierz źródło dokumentów i zdecyduj, które dokumenty mają być generowane automatycznie: potwierdzenia zamówień, faktury, WZ i korekty. Ustaw też docelowy status dokumentu.

W B2B > Documents > PDF Templates:

  1. sprawdź aktywny szablon dla każdego typu i website;
  2. wykonaj podgląd;
  3. dostosuj HTML/CSS wyłącznie, gdy masz osobę znającą szablony Magento i CSS mPDF;
  4. wygeneruj testową fakturę lub potwierdzenie i sprawdź pobranie z konta firmy.

6.2. RFQ i oferta PDF

  1. W B2B > Quotes > RFQ utwórz testowe RFQ dla aktywnej firmy i użytkownika.
  2. Dodaj widoczne dla firmy SKU, ilość oraz cenę ofertową.
  3. Ustaw termin ważności, prześlij ofertę klientowi i wygeneruj PDF.
  4. Sprawdź wariant klienta: dane sprzedawcy/nabywcy, pozycje, cena, suma i termin ważności.
  5. Sprawdź wariant administratora: dodatkowo notatki handlowe, komentarze, historię oraz wewnętrzne informacje o pozycjach.

PDF klienta nie może zawierać notatek handlowca ani wewnętrznej historii statusów.

7. Szybkie zamówienia, importy i integracje

Szybkie zamówienia

W B2B > Quick Order > Debug SKU sprawdź listę SKU,qty dla firmy, website i waluty. Następnie utwórz listę zakupową i przetestuj jej użycie przez klienta na storefront.

Import i eksport

W B2B > Import/Export zdefiniuj profil dopiero po ustaleniu źródła danych. Konfiguracja profilu jest obiektem JSON i musi zawierać ścieżki plików dostępne na serwerze Magento. Najpierw uruchom import w trybie testowym oraz przeanalizuj job i logi.

Integracje API

Przed utworzeniem tokenu integracyjnego ustal zakres danych i właściciela synchronizacji. Użyj osobnej integracji Magento dla każdego ERP, PIM, WMS lub middleware i nadaj jej wyłącznie potrzebne ACL B2B. Pełna lista endpointów, tokenów i zasad bezpieczeństwa znajduje się w dokumentacji API dla integratorów.

8. Checklista odbiorowa

Przed uruchomieniem produkcyjnym potwierdź:

  • [ ] Moduły Kowal są aktywne, cron działa, a cache i indeksy są poprawne.
  • [ ] B2B jest włączone wyłącznie dla właściwego website.
  • [ ] Theme B2B jest przypisany wyłącznie do B2B store view.
  • [ ] Firma testowa ma status Active, użytkownika, rolę, kontakt i domyślne adresy.
  • [ ] Produkt testowy jest aktywny, przypisany do website, widoczny dla firmy i ma poprawną cenę B2B.
  • [ ] Klient może zalogować się, wyszukać SKU, użyć quick order i dodać produkt do koszyka.
  • [ ] Checkout pokazuje tylko dopuszczalne metody dostawy i płatności.
  • [ ] Limit i reguła akceptacji działają zgodnie z polityką firmy, jeśli te funkcje są używane.
  • [ ] Dokument oraz PDF RFQ generują się i są dostępne wyłącznie dla właściwej firmy.
  • [ ] RFQ można wysłać, zaakceptować i przekazać do procesu utworzenia zamówienia.
  • [ ] Integracje mają osobne tokeny i ograniczone ACL, jeśli są używane.

9. Najczęstsze problemy

Objaw Co sprawdzić
Nie ma menu B2B setup:upgrade, status modułów, cache oraz ACL administratora.
Firma lub klient nie widzi B2B Czy B2B jest aktywne dla właściwego website i czy firma ma aktywną relację z tym website.
Produkt nie jest widoczny albo nie ma ceny Przypisanie produktu do website, aktywność SKU, dane MSI, reguły katalogu, cena firmy, waluta i ilość.
Brak metody dostawy lub płatności Standardowa konfiguracja Magento, scope B2B store view oraz reguły B2B Checkout.
Nie powstaje PDF Aktywny szablon PDF, pakiet mPDF, uprawnienia do var/, dane sprzedawcy i logi Magento.
RFQ nie tworzy zamówienia automatycznie Domyślne adresy firmy, jednoznaczna płatność i dostawa; w pozostałych przypadkach użyj Backend Order Create.
API zwraca 403 Token integracji nie ma wymaganego ACL; nie używaj tokenu administratora w aplikacji zewnętrznej.

Przy zgłoszeniu do wsparcia podaj wersję Magento, wersję pakietu, kroki odtworzenia, godzinę zdarzenia, bezpiecznie zanonimizowane logi i ewentualny trace_id. Nie przesyłaj tokenów ani haseł.

10. Aktualizacja pakietu

  1. Zapoznaj się z informacją o wersji przekazaną przez Kowal.
  2. Wykonaj aktualizację najpierw na środowisku testowym.
  3. Wykonaj backup, composer update kowal/metapackage-b2b-suite --with-all-dependencies, bin/magento setup:upgrade, a w produkcji także kompilację DI i deployment zasobów statycznych.
  4. Powtórz checklistę odbiorową, ze szczególnym uwzględnieniem cen, checkoutu, dokumentów i integracji.

Nie aktualizuj pakietu przez ręczne kopiowanie plików do app/code; powoduje to problemy z Composerem oraz utrudnia późniejsze wsparcie.

Naciśnij, aby pominąć karuzelę

Znaleźliśmy inne produkty, które mogą Cię zainteresować!

Magento 2 BaseLinker Stock Export - synchronizacja stanów magazynowych z ERP i Magento do BaseLinker
123,00 zł
Kowal Analytics dla Magento 2
123,00 zł
Napisz opinię
Napisz opinię o produkcie: Profesjonalny system B2B dla Magento 2 Open Source
Twoja ocena:
Cena
Jakość
Wsparcie
loader
Wczytywanie...

Twoja opinia została przekazana do moderacji.

Pytania i odpowiedzi

Pytanie
Czy Kowal B2B Suite działa z Magento 2 Open Source?
Odpowiedź
Tak. Kowal B2B Suite jest przeznaczony do rozbudowy Magento 2 Open Source o funkcje sprzedaży B2B, dzięki czemu wiele procesów typowych dla handlu hurtowego i kontraktowego można wdrożyć bez przechodzenia na Adobe Commerce.
Pytanie
Czy każdy klient B2B może mieć własne ceny i katalog produktów?
Odpowiedź
Tak. System pozwala odwzorować indywidualne warunki handlowe kontrahentów, w tym ceny, katalogi, progi ilościowe i zasady zakupowe. Zakres konfiguracji jest dopasowywany do modelu sprzedaży firmy.
Pytanie
Czy jedna firma może mieć wielu użytkowników z różnymi uprawnieniami?
Odpowiedź
Tak. W ramach jednego kontrahenta można obsługiwać wielu użytkowników i różne role zakupowe. Pozwala to rozdzielić między innymi składanie zamówień, ich akceptację oraz dostęp do danych i dokumentów.
Pytanie
Czy system B2B można zintegrować z ERP, PIM, WMS lub CRM?
Odpowiedź
Tak. Kowal B2B Suite może wymieniać dane z zewnętrznymi systemami, między innymi ERP, PIM, WMS i CRM. Integracja może obejmować produkty, ceny, klientów, zamówienia, dokumenty, statusy oraz inne dane wymagane przez konkretny proces biznesowy.
Pytanie
Czy wdrożenie platformy B2B można realizować etapami?
Odpowiedź
Tak. Wdrożenie może rozpocząć się od podstawowych funkcji, takich jak firmy, użytkownicy, ceny i katalogi, a następnie zostać rozszerzone o szybkie zamówienia, RFQ, limity kupieckie, akceptacje, dokumenty oraz integracje.
Aktualizacja preferencji plików cookie