Professionelles B2B-System für Magento 2 Open Source

Kowal B2B Suite ist ein Paket von Magento 2-Modulen, das für Unternehmen entwickelt wurde, die B2B-Vertrieb auf Magento Open Source betreiben möchten, ohne auf den nativen Katalog, Warenkorb, Checkout, MSI, Store View, Website Scope und die Integrationsmechanismen der Plattform zu verzichten.
SKU
M2-B2B
922,50 €
E-Mail an einen Freund

Zu diesem Produkt anfragen

Beschreibung / Professionelles B2B-System für Magento 2 Open Source

MAGENTO 2 · MAGENTO OPEN SOURCE · UNTERNEHMEN · B2B-HANDEL

Verbinden Sie B2B- und B2C-Verkauf in einer Magento-Installation.

Kowal B2B Suite

Entwickeln Sie ein Geschäftskundenportal mit Unternehmen, Rollen, Preisen, Katalogen, RFQ, Limits, Dokumenten und Integrationen. Aktivieren Sie B2B für ausgewählte Websites und stimmen Sie den Prozess auf Ihre Handelsregeln ab.

16 Module und Theme · Website-Scope · REST und GraphQL

SO FUNKTIONIERT ES IN DER PRAXIS

01 · Handelsmodell festlegen
Unternehmen, Kanäle, Preise und Datenquellen definieren.

02 · B2B-Prozess konfigurieren
Rollen, Katalog, Bedingungen und Freigaben zuordnen.

03 · Systeme verbinden und implementieren
Adapter auswählen und vollständige Szenarien prüfen.

Welche Vorteile bietet das Ihrem Shop?

Entdecken Sie die Funktionen, Einsatzmöglichkeiten und Einstellungen des Moduls.

Lernen Sie das Modul kennen

KOWAL B2B SUITE · MAGENTO 2 OPEN SOURCE

Professionelles B2B-System ohne Wechsel zu Adobe Commerce

Kowal B2B Suite ergänzt Magento 2 Open Source um Funktionen für Großhandel und Vertragsverkauf.

Verwalten Sie Unternehmen, Benutzer, individuelle Preise, Schnellbestellungen, Kreditlimits, Freigaben, Angebote, Dokumente und Integrationen in einer Magento-Umgebung.

Unternehmen und Rollen · Preise und Kataloge · RFQ · Lieferantenkredit · Dokumente · Integrationen

B2B-Verkauf gemäß Ihren Handelsregeln

Jeder Geschäftskunde kann eigene Preise, Kataloge, Zahlungsbedingungen, Limits und Benutzer mit unterschiedlichen Berechtigungen erhalten.

Das System unterstützt einfache Großhandelsmodelle ebenso wie umfangreiche Einkaufsprozesse mit mehrstufiger Freigabe und ERP-, PIM-, WMS- oder CRM-Integration.

Die wichtigsten B2B-Plattformbereiche

Verlagern Sie die tägliche Geschäftskundenbetreuung aus E-Mails, Tabellen und manuellen Absprachen direkt nach Magento.

Unternehmen, Benutzer und Einkaufsrollen

Ein Unternehmen kann mehrere Benutzer, Adressen und Einkaufsverantwortliche besitzen. Rollen bestimmen Bestell-, Freigabe- und Datenzugriffsrechte.

Individuelle Preise und Kataloge

Jeder Geschäftskunde kann einen eigenen Katalog, Vertragspreise, Mengenstaffeln und Einkaufsregeln erhalten. Er sieht das für sein Unternehmen bestimmte Angebot.

Schnellbestellungen und Einkaufslisten

Kunden bestellen größere Mengen per SKU, nutzen Einkaufslisten und importieren Positionen, statt jedes Produkt einzeln zu suchen.

RFQ, Angebote und Freigaben

Der Angebotsprozess kann verhandelte Preise, Gültigkeit und individuelle Bedingungen umfassen. Bestellungen können wert- oder rollenabhängige Freigaben durchlaufen.

Finanzkontrolle ohne Tabellenarbeit

Kreditlimits, Kreditnutzung und Zahlungsfristen unterstützen die Kontrolle des Verkaufs mit Zahlungsziel.

Kunden greifen auf Dokumente zu; das Team sieht Handelsbedingungen und Prozessstatus an einem Ort.

Dokumente im Kundenportal

  • Rechnungen und Gutschriften,
  • Lieferscheine und Bestätigungen,
  • PDF-Angebote,
  • Magento- oder ERP-Dokumente.

Wie erfolgt die Implementierung?

Die Plattform kann schrittweise implementiert werden. Zunächst ordnen wir Handelsregeln, bilden sie dann in Magento ab und verbinden Unternehmenssysteme.

1. Verkaufsmodell

Wir bestimmen Kunden, Kanäle, Preislisten, Zahlungen, Einschränkungen und Datenquellen.

2. Unternehmensregeln

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

3. Einkaufsprozess

Wir implementieren Schnellbestellungen, Angebote, Freigaben, Dokumente und Checkout-Regeln.

4. Integrationen und Tests

Wir verbinden ERP, PIM, WMS oder CRM, testen Szenarien und bereiten das Team vor.

Integration mit Unternehmenssystemen

Kunden-, Preis-, Produkt-, Bestell- und Dokumentdaten können mit ERP, PIM, WMS, CRM, EDI und Einkaufssystemen der Geschäftskunden ausgetauscht werden.

Die Synchronisation kann Kreditlimits, Zahlungsbedingungen, Bestellstatus und Dokumente umfassen. Aufgaben- und Fehlerverlauf erleichtern die Kontrolle.

B2B wächst mit Ihrem Unternehmen

Kowal B2B Suite ist eine Lösung für Großhändler, Distributoren, Hersteller und Unternehmen mit Vertragsverkauf.

Beginnen Sie mit Unternehmen, Preisen und Katalog und erweitern Sie um Schnellbestellungen, RFQ, Limits, Freigaben, Dokumente und Integrationen.

Ein Magento. Ein Katalog. Ein B2C- und B2B-Verkaufsprozess.

Ein Paket, modulare Architektur

kowal/metapackage-b2b-suite liefert die Dateien von 16 B2B-Modulen und dem Theme frontend/Kowal/b2b. Das Hauptpaket registriert sie im Autoload und ersetzt Unterpaketnamen; separate Repositories für jedes Modul sind nicht nötig.

Die Implementierung ist für Magento Open Source 2.4.9 und PHP 8.3 konzipiert. Prüfen Sie aktivierte Module, Theme-Kompatibilität und Prozessszenarien in der Zielinstallation.

Website und Unternehmenszugangsmodell

B2B-Funktionen arbeiten im Kontext der gewählten website_id. Das Unternehmen benötigt eine aktive Kanalbeziehung; Rollen bestimmen Zugriff auf Einkauf, Benutzer, Angebote und Dokumente.

Das erste Unternehmensmodell sieht eine zugeordnete Website vor. B2C kann dieselbe Installation nutzen; B2B-Aktivierung und Unternehmenszugriff bleiben über Kanalkonfiguration getrennt.

Quick Order, Freigaben und schrittweise Implementierung

Schnellbestellung prüft SKU, Menge, Website-Zuordnung, Unternehmenssichtbarkeit und B2B-Preis. Einkaufslisten und Importprotokolle unterstützen wiederkehrende Bestellungen.

Approval-Regeln berücksichtigen Unternehmen, Website, Währung und Schwelle. Der aktuelle Pending-Request wird mit approve, reject oder cancel geschlossen. Mehrstufige Abläufe müssen als konkreter Implementierungsumfang vereinbart und geprüft werden.

Dokumente und sicherer Zugang

Dokumente sind Unternehmen und Website zugeordnet. PDFs liegen in var/kowal_b2b_documents und werden über einen zugriffsprüfenden Controller heruntergeladen.

Quellen können Magento Sales oder der hybride Modus Magento + API sein. Das Paket umfasst Bestell-, Rechnungs-, Versand- und Gutschriftdokumente sowie einen gemeinsamen PDF-Renderer; externe Dokumentensynchronisation benötigt einen passenden Adapter.

Integrationen benötigen Adapter und Datenquellen

Integration liefert Profile, Kennungszuordnung, Aufgaben, Wiederholungen, Protokolle und Dead Letter Queue. Ein konkretes ERP, PIM, WMS oder CRM wird über einen SyncAdapterInterface-Adapter angebunden.

Legen Sie vor dem Start führende Quellen für Unternehmen, Preise, Bestände, Bestellungen und Dokumente fest. REST und GraphQL bieten Integrationspunkte; die Paketinstallation verbindet Unternehmenssysteme nicht automatisch.

Installation über Composer

Paket kowal/metapackage-b2b-suite, Modul Kowal_B2BBase. Installieren Sie nach der Konfiguration des Zugriffs auf das Kowal-Repository das Paket, aktivieren Sie das Modul, aktualisieren Sie Magento und leeren Sie den Cache. Berücksichtigen Sie in der Produktionsumgebung die Kompilierung und Bereitstellung statischer Inhalte entsprechend dem Prozess des Shops.

Von der Konfiguration zum Ergebnis

1. Handelsmodell festlegen
Unternehmen, Kanäle, Preise und Datenquellen definieren.

2. B2B-Prozess konfigurieren
Rollen, Katalog, Bedingungen und Freigaben zuordnen.

3. Systeme verbinden und implementieren
Adapter auswählen und vollständige Szenarien prüfen.

Bestellportal für Geschäftskunden

Ein Unternehmen ist einer aktiven B2B-Website zugeordnet. Sein Benutzer nutzt den vereinbarten Katalog und Preis, ergänzt Positionen per SKU und bestellt.

Je nach Konfiguration berücksichtigt der Prozess Limit und Freigabe. Dokumente und Integrationen bleiben dem Unternehmen und richtigen Vertriebskanal zugeordnet.

Eine unternehmensgerechte B2B-Implementierung planen

Möchten Sie das Modul an Ihren Shop anpassen? Implementierung von Kowal B2B Suite anfragen und besprechen Sie die Konfiguration oder benötigte Erweiterungen.

Weitere Informationen

Übereinstimmung mit der Vorlage Luma / Leer, KOWAL

Konfiguration der Integration

Kowal B2B API — vollständige REST-Dokumentation

Vertragsversion: V1 · Quelle der Wahrheit: Kowal_B2BApi/etc/webapi.xml · Zielgruppe: Shop-Administratoren, Implementierungspartner und Teams, die ERP, PIM, WMS oder ein Beschaffungssystem integrieren.

1. Zweck und Grenzen der API

Die Kowal B2B API stellt B2B-Daten und -Prozesse bereit, die in Magento 2 laufen: Firmen, Katalog und individuelle Preise, Schnellkäufe, Dokumente, Kreditlimit, Genehmigungen, RFQ sowie Integrationswarteschlangen. Es handelt sich um eine REST API für Systemintegrationen; sie ersetzt nicht die Standard-Endpunkte von Magento für Katalog, Warenkorb, Checkout und Kundenkonto.

Das Dokument beschreibt ausschließlich die aktuell bereitgestellten Endpoints des Moduls. Es enthält keine Zusage für Operationen, die der Vertrag V1 nicht bereitstellt, z. B. Erstellung einer Bestellung per REST, CRUD von Preislisten oder Bearbeitung der Website-Konfiguration.

2. Zugriff erhalten und Regeln der Zusammenarbeit

2.1. Prozess zur Inbetriebnahme der Integration

  1. Der Integrator übermittelt dem Shop-Administrator Ziel der Integration, Umgebung (Test/Produktion), Quellsystem, Datenumfang sowie die Liste der erforderlichen API-Bereiche.
  2. Der Administrator erstellt oder konfiguriert die Magento-Integration, weist ihr minimale ACL-Berechtigungen zu und übermittelt über einen sicheren Kanal: baseUrl, Token, websiteId, companyId (falls zutreffend), Währung und Testdaten.
  3. Der Integrator führt den Test GET /V1/kowal-b2b/websites/:websiteId/config und anschließend Funktionstests in der Testumgebung aus.
  4. Vor der Produktion vereinbaren beide Seiten den Synchronisationsplan, die maximale Datengröße, Retry, den Dateneigentümer und die Art der Fehlermeldung.
  5. Tokens werden ausschließlich in einem Secrets Vault gespeichert; der Administrator rotiert oder entzieht sie bei Wechsel des Anbieters, Benutzers oder Integrationsumfangs.

2.2. Verantwortlichkeiten

ParteiVerantwortung
Shop-AdministratorKonfiguration der B2B-Website, Firma und Firmenbeziehung zur Website, des Tokens und der ACL; Bereitstellung von Testdaten; Entscheidung über den Zugriff auf Daten.
IntegratorSichere Speicherung des Tokens, korrekte Verwendung des Kontexts websiteId/companyId, Datenvalidierung, Fehler- und Retry-Behandlung, keine Offenlegung von Daten anderer Firmen.
Verantwortlicher des GeschäftsprozessesAbstimmung der Quelle der Wahrheit für Preise, Dokumente, RFQ, Limits und Synchronisationsstatus.

Ein Administrator-Token sollte nicht in einer Client-Anwendung verwendet und ein einzelnes Token nicht von unabhängigen Systemen gemeinsam genutzt werden. Jede Integration sollte ein eigenes Token und ausschließlich die erforderlichen ACL haben.

2.3. Berechtigungen

Magento prüft das Bearer-Token sowie die ACL, die dem administrativen Benutzer oder der Integration zugewiesen sind. B2B-Endpoints erfordern eine der folgenden Berechtigungsgruppen:

ACLUmfang
configWebsites und Feature Flags
companies, company_save, company_users, batchFirmen, ihre Benutzer und Batch-Import von Firmen
products, prices, catalog_permissionsKatalog, Verfügbarkeit, Preise und Sichtbarkeit
import_export, quick_order, documentsImport-/Exportprofile, Einkaufslisten und Dokumente
credit_limits, approvals, orders, quotesLimit, Genehmigungsworkflow, Bestellkontext und RFQ
system_integrationsProfile, Zuordnungen und Integrationsjobs

Der Umfang sollte sich aus dem Zweck der Integration ergeben. Beispiel: Ein Beschaffungssystem benötigt in der Regel products, prices, catalog_permissions, quick_order und quotes; ein ERP, das Dokumente verarbeitet — documents sowie, wenn es Eigentümer der Synchronisierung ist, system_integrations.

3. Technische Konventionen

Adresse, Header und Parameter

Die Basisadresse hat die Form https://b2b.example.com/rest/V1. Alle weiteren Pfade im Dokument werden ab /V1 angegeben; die vollständige Endpoint-Adresse ist BASE_URL + Pfad.

Authorization: Bearer Accept: application/jsonContent-Type: application/json

Die API verwendet JSON. Namen in der URL sind camelCase (websiteId, companyId), und JSON-Felder entsprechen den Parameternamen der Magento-Verträge. :companyId, :quoteId, :sku usw. sind Pfadparameter. In Beispielen bedeutet ? einen optionalen Parameter.

websiteId ist bei Operationen erforderlich, die vom Vertriebskanal abhängig sind. Es muss auf eine bestehende Website mit aktiviertem B2B verweisen. companyId verweist auf eine Firma, die eine aktive Beziehung zu dieser Website haben muss, wenn die Operation in ihrem Kontext ausgeführt wird. Die API wählt weder eine Standard-Website noch eine Standardfirma aus.

Request Body und Idempotenz

Magento serialisiert das DTO-Objekt unter dem Namen des Methodenparameters: Die meisten Schreibvorgänge akzeptieren {'request': {...}}; die Erstellung einer Firma verwendet {'company': {...}}; Firmen-Batch — {'companies': [...]}. Endpoints mit einfachen Argumenten akzeptieren Felder ohne Wrapper, z. B. {'websiteId': 1, 'currency': 'PLN', 'items': [...]}.

Der Header Idempotency-Key (max. 128 Zeichen) wird derzeit von POST /companies unterstützt: Ein Retry mit demselben Schlüssel gibt die zuvor erstellte Firma zurück. Für einen Integrationsjob verwenden Sie das Feld request.idempotencyKey. Gehen Sie nicht von automatischer Idempotenz anderer Schreib-Endpoints aus; wiederholen Sie sie erst, nachdem der Status der Operation geklärt wurde.

Antworten und Fehler

Erfolgreiche Antworten sind Objekte oder Tabellen von Magento-Verträgen. Von Objekten zurückgegebene Felder können kompatibel erweitert werden; die Integration sollte unbekannte Felder ignorieren. Ein Geschäftsfehler kann enthalten:

{ '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': []}
HTTPBedeutungReaktion des Integrators
400 / 422Ungültige Daten oder Domain-ValidierungDaten korrigieren; nicht ohne Änderung des Payloads wiederholen.
401 / 403Kein oder unzureichendes Token/ACLNicht wiederholen; dem Administrator den Token-Umfang melden.
404Ressource oder Beziehung existiert im jeweiligen Kontext nichtIDs und Website-Kontext prüfen.
409Statuskonflikt oder DuplikatAktuellen Zustand lesen, bevor über eine Wiederholung entschieden wird.
5xx / timeoutTechnischer FehlerBegrenzte Retries mit Backoff anwenden und trace_id aufbewahren.

Loggen Sie keine Tokens, vollständigen personenbezogenen Daten oder Konfigurationsgeheimnisse. Eine Meldung an das Shop-Team sollte Zeit, Methode, Pfad ohne Secrets, HTTP-Status, trace_id sowie anonymisierten Payload enthalten.

4. Schemas der Eingabedaten

Die folgenden Schemas gelten gemeinsam für die Referenz-Endpoints. Ein Feld ohne ? ist durch den Vertrag erforderlich; ? bedeutet einen optionalen Wert. Die Felder metadata, config, configuration und payload sind JSON-Objekte.

DTO / WrapperFelder
companywebsiteId, name, taxId, externalId?, status?, salesRepresentativeId?, customerGroupId?, websiteActive?
companyUserwebsiteId, roleId, active
request — RFQwebsiteId, companyId, customerId?, externalId?, title, currency, validUntil?, customerNote?, salesNote?, metadata?
request — RFQ-PositionquoteId, sku, productId?, name?, qty, requestedPrice?, offeredPrice?, comment?, metadata?
request — RFQ-EntscheidungcustomerId?, adminUserId?, message?
request — RFQ-KommentarquoteId, customerId?, adminUserId?, authorType, message, visibleForCustomer
request — DokumentwebsiteId, companyId, orderId?, orderIncrementId?, invoiceId?, invoiceIncrementId?, creditmemoId?, creditmemoIncrementId?, externalId?, documentNumber, documentType, status, issueDate?, dueDate?, grandTotal?, currency?, metadata?
request — DokumentdateidocumentId, fileName, filePath, mimeType, fileSize, checksum?, primary
request — LimitwebsiteId, companyId, termsId?, creditLimit, currency, active, status, metadata?
request — Limit-ExposurewebsiteId, companyId, sourceType, sourceId, sourceIncrementId?, amount, currency, dueDate?, metadata?
request — ZahlungsbedingungenwebsiteId, code, name, daysDue, active, description?
request — GenehmigungsregelwebsiteId, companyId, name, thresholdAmount, currency?, priority, active, metadata?
request — GenehmigerruleId, customerId, sortOrder, active
request — GenehmigungsentscheidungapproverCustomerId?, comment?
request — GenehmigungsantragwebsiteId, companyId, orderId?, orderIncrementId?, requesterCustomerId?, grandTotal, currency, comment?, metadata?
request — Import-/ExportprofilwebsiteId, code, name, direction, entityType, format, behavior, active, configuration?
request — IntegrationsprofilwebsiteId, code, name, systemType, adapterCode, direction, active, maxAttempts, config?
request — ZuordnungwebsiteId, systemType, entityType, localId, externalId, metadata?
request — IntegrationsjobprofileId, direction?, entityType, operation, idempotencyKey?, maxAttempts?, payload?, scheduledAt?

5. Endpoint-Referenz

In den Tabellen bezeichnet ACL die minimale Magento-Berechtigungsressource. Ergebnis bestimmt die Art der erfolgreichen Antwort.

5.1. Websites und Konfiguration

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /V1/kowal-b2b/websitesconfig—Tabelle der Websites (websiteId, Code, Name, B2B-Flag). Vor der Konfiguration der Integration abrufen.
GET /V1/kowal-b2b/websites/:websiteId/configconfigpath: websiteIdB2B-Konfiguration der Website (u. a. enabled/debug/Log-Aufbewahrung). Als Zugriffstest ausführen.
GET /V1/kowal-b2b/websites/:websiteId/featuresconfigpath: websiteIdFür die Website aktive Feature Flags; zur bedingten Aktivierung von Kundenfunktionen verwenden.

5.2. Firmen und Firmenbenutzer

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /companies?websiteId=companiesquery: websiteIdTabelle der Firmen, die der Website zugewiesen sind.
POST /companiescompany_savebody: companyErstellt eine Firma und die Beziehung zur Website; bei Wiederholungen Idempotency-Key verwenden. Gibt die Firma zurück.
POST /companies/batchbatchbody: companies — Tabelle companyErstellt mehrere Firmen und gibt das Ergebnis pro Element einschließlich Fehlern zurück.
GET /companies/:companyId?websiteId=companiespath: companyId; query: websiteIdIm Website-Kontext verifizierte Firma.
PUT /companies/:companyIdcompany_savepath: companyId; body: companyAktualisiert Daten und Firmenbeziehung für company.websiteId.
POST /companies/:companyId/activate?websiteId=company_savepath: companyId; query: websiteIdAktiviert die Firma in der angegebenen Website und gibt die Firma zurück.
POST /companies/:companyId/block?websiteId=company_savepath: companyId; query: websiteIdSperrt die Firma in der angegebenen Website und gibt die Firma zurück.
GET /companies/:companyId/users?websiteId=company_userspath: companyId; query: websiteIdTabelle der Kundenzuweisungen zur Firma.
PUT /companies/:companyId/users/:customerIdcompany_userspath: companyId, customerId; body: companyUserVergibt/aktualisiert Rolle und Aktivität des Kunden in der Firma; gibt die Zuordnung zurück.

5.3. Produkte, Preis und Katalogsichtbarkeit

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /products?websiteId=productsquery: websiteIdTabelle grundlegender Magento-Produkte für die Website.
GET /products/:sku?websiteId=productspath: codiertes sku; query: websiteIdProdukt (id, sku, Name, Typ, Status, Websites).
GET /products/:sku/availability?websiteId=productspath: sku; query: websiteIdMSI-Verfügbarkeit und verkaufbare Menge für SKU.
GET /products/:sku/b2b-status?websiteId=productspath: sku; query: websiteIdB2B-Status: Zuweisung zur Website, Übersetzungen und Stock-Daten.
GET /reports/products/missing-translations?websiteId=productsquery: websiteIdBericht zu SKUs ohne erforderliche Übersetzungen, mit reason/details.
GET /reports/products/missing-stock?websiteId=productsquery: websiteIdBericht zu SKUs ohne erforderliche Stock-Daten.
GET /companies/:companyId/products/:sku/price?websiteId=&currency=&qty=pricespath: companyId, sku; query: websiteId, currency, optional qty (standardmäßig 1)Erklärung des für Firma, Währung und Menge gültigen Preises; vor dem Kauf abrufen.
GET /companies/:companyId/products/:sku/visibility?websiteId=catalog_permissionspath: companyId, sku; query: websiteIdErgebnis der Sichtbarkeit/Kaufbarkeit der SKU für die Firma.
GET /companies/:companyId/catalog-visibility?websiteId=catalog_permissionspath: companyId; query: websiteIdTabelle der Indexpositionen des für die Firma sichtbaren Katalogs.
POST /companies/:companyId/catalog-visibility/reindex?websiteId=catalog_permissionspath: companyId; query: websiteIdErstellt den Index neu und gibt die Anzahl der indexierten Positionen zurück. Administrative Operation.

5.4. Dateiimport und -export

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /import-export/profiles?websiteId=import_exportquery: websiteIdTabelle der Import-/Exportprofile der Website.
POST /import-export/profilesimport_exportbody: request — Import-/ExportprofilSpeichert das Profil und gibt dessen Daten zurück.
POST /import-export/import/:profileId?sourceFile=&dryRun=import_exportpath: profileId; query: sourceFile, optional dryRun=falseStartet den Import der auf Seite der Magento-Umgebung angegebenen Datei; gibt einen Job zurück. Sendet kein Multipart.
POST /import-export/export/:profileId?resultFile=import_exportpath: profileId; optional query: resultFileErstellt einen Exportjob, optional mit Zielpfad der Datei.
GET /import-export/jobs?websiteId=import_exportquery: websiteIdTabelle der Import-/Exportjobs für die Website.
GET /import-export/jobs/:jobIdimport_exportpath: jobIdStatus, Ergebnis und Daten eines einzelnen Jobs.
GET /import-export/jobs/:jobId/logsimport_exportpath: jobIdDiagnoselogs des Jobs.

5.5. Schnellbestellung und Einkaufslisten

Methode und EndpointACLEingabeErgebnis und Verwendung
POST /companies/:companyId/quick-order/validatequick_orderpath: companyId; body: websiteId, currency, items (sku, qty)Validiert mehrere SKUs im Firmenkontext: Verfügbarkeit, Sichtbarkeit und Preis; gibt ein Sammelergebnis zurück.
GET /companies/:companyId/shopping-lists?websiteId=quick_orderpath: companyId; query: websiteIdTabelle der Einkaufslisten der Firma.
POST /companies/:companyId/shopping-listsquick_orderpath: companyId; body: websiteId, name, optional customerId, isDefault=falseErstellt eine Einkaufsliste und gibt sie zurück.
GET /shopping-lists/:listId/itemsquick_orderpath: listIdTabelle der Positionen der angegebenen Liste.
POST /shopping-lists/:listId/itemsquick_orderpath: listId; body: currency, items (sku, qty)Fügt Positionen zur Liste hinzu und gibt die gespeicherten Positionen zurück.

5.6. Dokumente und Dateien

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /companies/:companyId/documents?websiteId=&documentType=documentspath: companyId; query: websiteId, optional documentTypeDokumente der Firma, optional nach Typ gefiltert.
GET /documents/:documentId?companyId=&websiteId=documentspath: documentId; query: companyId, websiteIdDokumentdetails nach Prüfung der Firmenzugehörigkeit.
POST /documentsdocumentsbody: request — DokumentErstellt oder speichert die Metadaten des Dokuments und gibt das Dokument zurück.
POST /documents/filesdocumentsbody: request — DokumentdateiRegistriert eine in Magento Storage vorhandene Datei (Name, Pfad, MIME, Größe), sendet keine Binärdaten.
GET /documents/:documentId/files?companyId=&websiteId=documentspath: documentId; query: companyId, websiteIdTabelle der Dateimetadaten des Dokuments.
GET /documents/:documentId/sync-logsdocumentspath: documentIdSynchronisationslogs des Dokuments; für administrative Integration vorgesehen.

5.7. Kreditlimit und Zahlungsbedingungen

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /companies/:companyId/credit/status?websiteId=&currency=credit_limitspath: companyId; query: websiteId, currencyLimitstatus, Nutzung und verfügbarer Betrag der Firma.
POST /credit-limitscredit_limitsbody: request — LimitErstellt/aktualisiert das Firmenlimit und gibt das Limit zurück.
POST /credit/exposurescredit_limitsbody: request — ExposureReserviert eine Limit-Exposure für die Quelle (z. B. Bestellung) und gibt sie zurück.
POST /credit/exposures/:exposureId/releasecredit_limitspath: exposureId; optional body: messageGibt die Exposure frei; gibt ihren Status zurück.
GET /payment-terms?websiteId=credit_limitsquery: websiteIdTabelle der aktiven/bekannten Zahlungsbedingungen der Website.
POST /payment-termscredit_limitsbody: request — ZahlungsbedingungenSpeichert Zahlungsbedingungen und gibt sie zurück.

5.8. Genehmigungsworkflow

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /companies/:companyId/approval/rules?websiteId=&currency=approvalspath: companyId; query: websiteId, optional currencyGenehmigungsregeln der Firma für Kanal/Währung.
POST /approval/rulesapprovalsbody: request — RegelErstellt/aktualisiert eine Schwellenregel und gibt sie zurück.
GET /approval/rules/:ruleId/approversapprovalspath: ruleIdTabelle der zugewiesenen Genehmiger, in der Reihenfolge sortOrder.
POST /approval/approversapprovalsbody: request — GenehmigerSpeichert die Zuordnung des Kunden als Genehmiger.
GET /companies/:companyId/approval/required?websiteId=&grandTotal=&currency=approvalspath: companyId; query: websiteId, grandTotal, currencyBoolean: ob der Betrag eine Genehmigung erfordert.
POST /approval/requestsapprovalsbody: request — GenehmigungsantragErstellt einen Request für eine Bestellung und gibt ihn zurück.
GET /companies/:companyId/approval/requests?websiteId=&status=approvalspath: companyId; query: websiteId, optional statusTabelle der Genehmigungsrequests der Firma.
POST /approval/requests/:requestId/approveapprovalspath: requestId; body: request — EntscheidungGenehmigt den Request; gibt seinen aktuellen Status zurück.
POST /approval/requests/:requestId/rejectapprovalspath: requestId; body: request — EntscheidungLehnt den Request ab; gibt seinen aktuellen Status zurück.
POST /approval/requests/:requestId/cancelapprovalspath: requestId; body: request — EntscheidungStorniert den Request; gibt seinen aktuellen Status zurück.
GET /approval/requests/:requestId/decisionsapprovalspath: requestIdEntscheidungshistorie für den Request.

5.9. B2B-Kontext von Bestellungen

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /orders/:orderId/b2b-contextorderspath: orderIdB2B-Kontext einer einzelnen nativen Magento-Bestellung (z. B. Firma, Genehmigungsstatus, Limit, Export).
GET /companies/:companyId/orders/b2b-context?websiteId=&approvalStatus=orderspath: companyId; query: websiteId, optional approvalStatusTabelle der Bestellkontexte der Firma, optional nach Genehmigungsstatus gefiltert.

5.10. RFQ und kommerzielle Angebote

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /companies/:companyId/quotes?websiteId=&status=quotespath: companyId; query: websiteId, optional statusRFQ und Angebote der Firma, optional nach Status.
POST /quotesquotesbody: request — RFQErstellt ein RFQ im Entwurf und gibt es zurück. Positionen über einen separaten Endpoint hinzufügen.
GET /quotes/:quoteIdquotespath: quoteIdDetails des RFQ/Angebots.
GET /quotes/:quoteId/itemsquotespath: quoteIdTabelle der RFQ-Positionen.
POST /quotes/itemsquotesbody: request — RFQ-PositionFügt SKU und Menge, optional Wunsch-/Angebotspreis sowie Kommentar hinzu.
GET /quotes/:quoteId/commentsquotespath: quoteIdRFQ-Kommentare. Der Kunde sieht nur als sichtbar markierte Kommentare.
POST /quotes/commentsquotesbody: request — RFQ-KommentarFügt eine Nachricht hinzu; authorType und visibleForCustomer bestimmen Autor und Sichtbarkeit.
GET /quotes/:quoteId/historyquotespath: quoteIdHistorie von Statusänderungen und RFQ-Ereignissen.
POST /quotes/:quoteId/submitquotespath: quoteId; body: request — RFQ-EntscheidungÜbergibt ein RFQ im Entwurf zur Kalkulation.
POST /quotes/:quoteId/make-offerquotespath: quoteId; body: request — RFQ-EntscheidungDer Vertriebsmitarbeiter erstellt/übermittelt ein Angebot; vor dem Aufruf Preise der Positionen festlegen.
POST /quotes/:quoteId/acceptquotespath: quoteId; body: request — RFQ-EntscheidungAkzeptiert das aktuelle Angebot. Erstellt in diesem Vertrag keine REST-Bestellung.
POST /quotes/:quoteId/rejectquotespath: quoteId; body: request — RFQ-EntscheidungLehnt Angebot/RFQ ab.
POST /quotes/:quoteId/cancelquotespath: quoteId; body: request — RFQ-EntscheidungStorniert das RFQ, sofern der aktuelle Status dies zulässt.

5.11. Integrationsprofile und -jobs

Methode und EndpointACLEingabeErgebnis und Verwendung
GET /integrations/profiles?websiteId=&systemType=system_integrationsquery: websiteId, optional systemTypeIntegrationsprofile für die Website.
POST /integrations/profilessystem_integrationsbody: request — IntegrationsprofilSpeichert ein ERP-/PIM-/WMS-Profil usw. und gibt es zurück.
POST /integrations/mappingssystem_integrationsbody: request — ZuordnungSpeichert das Paar lokale ID ↔ externe ID.
GET /integrations/mappings/local?websiteId=&systemType=&entityType=&localId=system_integrationsquery: alle Parameter erforderlichSucht die Zuordnung anhand der Magento-Kennung.
GET /integrations/mappings/external?websiteId=&systemType=&entityType=&externalId=system_integrationsquery: alle Parameter erforderlichSucht die Zuordnung anhand der Kennung des externen Systems.
POST /integrations/jobssystem_integrationsbody: request — JobVeröffentlicht einen Job zur Ausführung; idempotencyKey identifiziert die Geschäftsoperation.
GET /integrations/jobs?websiteId=&status=system_integrationsquery: websiteId, optional statusTabelle der Integrationsjobs.
GET /integrations/jobs/:jobIdsystem_integrationspath: jobIdStatus und Details eines einzelnen Jobs.
POST /integrations/jobs/:jobId/processsystem_integrationspath: jobIdVerarbeitet den Job und gibt seinen aktuellen Status zurück.
POST /integrations/jobs/:jobId/retrysystem_integrationspath: jobIdWiederholt den Job nach einem Fehler gemäß seinem Versuchslimit.
GET /integrations/jobs/:jobId/logssystem_integrationspath: jobIdAusführungslogs des Jobs.
GET /integrations/jobs/:jobId/errorssystem_integrationspath: jobIdDomain-/technische Fehler des Jobs.

6. Aufrufbeispiele

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łucurl -sS '$BASE_URL/kowal-b2b/websites/$WEBSITE_ID/config' \ -H 'Authorization: Bearer $TOKEN' -H 'Accept: application/json'# Cena kontraktowa firmy dla konkretnej ilościcurl -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 SKUcurl -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 RFQcurl -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. Empfohlene Integrationsszenarien

Kauf nach SKU

  1. Lesen Sie die Website-Konfiguration aus und speichern Sie die übermittelte websiteId, companyId und Währung.
  2. Verwenden Sie quick order zur Sammelvalidierung von SKU, Menge, Sichtbarkeit und Verfügbarkeit.
  3. Rufen Sie für akzeptierte Positionen den Preis aus price mit dem richtigen qty ab.
  4. Erstellen Sie ein RFQ, fügen Sie Positionen hinzu und senden Sie sie über submit, wenn der Kauf ein Angebot erfordert.
  5. Verfolgen Sie Status und Historie des RFQ; gehen Sie nach der Annahme gemäß dem vereinbarten Magento-Bestellprozess vor, da V1 keinen Endpoint zur Erstellung einer order bereitstellt.

Dokumente und Abrechnung

  1. Rufen Sie die Dokumentenliste der Firma ab, optional gefiltert nach documentType.
  2. Rufen Sie für das ausgewählte Dokument Metadaten und Dateiliste ab; der Dateipfad ist nicht automatisch eine öffentliche URL — die Art des Abrufs der Binärdatei stimmen Sie mit dem Shop-Administrator ab.
  3. Lesen Sie den Limitstatus vor dem Kaufprozess aus; nur eine Integration mit ACL credit_limits kann ihn verwalten.

Asynchrone Operationen

  1. Speichern Sie das Integrationsprofil und die ID-Zuordnungen.
  2. Veröffentlichen Sie einen Job mit einem geschäftlichen idempotencyKey und bewahren Sie die jobId auf.
  3. Lesen Sie Job sowie Logs/Fehler aus; retry rufen Sie erst nach Analyse des Fehlers und Beseitigung seiner Ursache auf.

8. Abnahmeliste vor der Produktion

  • Das Token hat ausschließlich die erforderlichen ACL und ist kein Administrator-Token, das von der UI verwendet wird.
  • Der Integrator behandelt 401, 403, 404, Validierung 422, Konflikt 409 und Timeouts korrekt.
  • Jeder Request im B2B-Kontext übermittelt die richtige websiteId, und Firmendaten verwenden die korrekte companyId.
  • Preise, Sichtbarkeit und Verfügbarkeit werden vor Erstellung des Kaufprozesses geprüft.
  • Die Erstellung einer Firma verwendet Idempotency-Key; Integrationsjobs haben einen stabilen idempotencyKey im Body.
  • Logs enthalten keine Tokens oder sensiblen Daten, und das Supportverfahren übermittelt trace_id.
  • Tests wurden in der Testumgebung mit einer Firma durchgeführt, die eine aktive Beziehung zur B2B-Website hat.

9. Kompatibilität

Der Vertrag ist über /V1 versioniert. Die Erweiterung der Antwort um neue Felder ist kompatibel; der Integrator sollte unbekannte Felder tolerieren. Eine Änderung, die ein Feld, die Bedeutung eines Feldes oder einen Endpoint entfernt, erfordert eine neue API-Version. Bei Abweichungen zwischen Dokument und laufender Installation ist der aktive Vertrag webapi.xml der jeweiligen Modulversion maßgeblich.

Installationsanleitung für das Modul

Installation und Konfiguration der Kowal B2B Suite

Dieses Handbuch richtet sich an Personen, die die Kowal B2B Suite gekauft haben und sie in einer bestehenden Magento Open Source Installation in Betrieb nehmen sollen. Es führt durch zwei Schritte:

  1. technische Installation— durchgeführt durch einen Developer oder Serveradministrator;
  2. geschäftliche Konfiguration— durchgeführt im Magento-Panel durch den Shop-Administrator.

Erstellen Sie vor Beginn ein Backup der Magento-Datenbank und -Dateien. Wir empfehlen, die erste Inbetriebnahme in einer Testumgebung durchzuführen und erst danach in die Produktion zu übernehmen.

1. Lieferumfang und Voraussetzungen

Die Kowal B2B Suite wird als Composer-Paketkowal/metapackage-b2b-suitebereitgestellt. Sie enthält B2B-Module sowie das Themefrontend/Kowal/b2bverwenden.

Anforderungen

Element Anforderung
Magento Magento Open Source 2.4.9
PHP 8.3
Composer Composer 2
Serverzugriff SSH und Ausführungsmöglichkeit fürbin/magento
Magento funktionierende Funktionen für Katalog, Kunden, Checkout, Sales, MSI und Cron
PDF Schreibmöglichkeit invar/durch den PHP-Prozess

Von Kowal erhalten Sie:

  • die Adresse des privaten Composer-Repositorys — im FolgendenREPOSITORY_URL;
  • den Benutzernamen oder die Zugriffskennung —USERNAME;
  • das Zugriffstoken —ACCESS_TOKEN;
  • den zulässigen Versionsbereich des Pakets.

Speichern Sie das Token nicht im Git-Repository, in Tickets oder in der Shell-Historie, die mit anderen Personen geteilt wird.

2. Technische Installation

Führen Sie alle Befehle im Stammverzeichnis der bestehenden Magento-Installation aus, als Benutzer mit Zugriff auf die Dateien und auf den Befehlbin/magentoverwenden.

2.1. Vorbereitung

  1. Stellen Sie sicher, dass Magento vor der Änderung korrekt funktioniert.
  2. Dokumentieren Sie den Deployment-Stand und erstellen Sie ein Backup der Datenbank sowie der Verzeichnisseapp/etc,pub/mediaundvarverwenden.
  3. Aktivieren Sie in der Produktion für die Dauer der Aktualisierung den Maintenance-Modus:
bin/magento maintenance:enable

2.2. Privates Repository ergänzen

Fügen Sie das Composer-Repository von Kowal hinzu und konfigurieren Sie die erhaltenen Zugangsdaten.

Die Zugangsdaten für das Composer-Repository – E-Mail-Adresse des Kunden und Lizenz-Token – erhalten Sie nach dem Kauf per E-Mail. Sie sind nach der Anmeldung auf kowal.storeebenfalls im Kundenkonto verfügbar. Ersetzen Sie TWOJ_EMAIL_KLIENTA durch die E-Mail-Adresse Ihres Kontos und TWOJ_TOKEN durch das erhaltene Token. Führen Sie die Befehle im Magento-Stammverzeichnis aus.

composer config repositories.kowal composer https://repo.kowal.store
composer config http-basic.repo.kowal.store "TWOJ_EMAIL_KLIENTA" "TWOJ_TOKEN"

Composer speichert Zugangsdaten in der Regel in einer lokalenauth.json; fügen Sie diese Datei nicht zu Git hinzu.

2.3. Paket installieren

Installieren Sie die Version, die mit der Lizenz übermittelt wurde. Für die aktuelle Paketlinie sieht ein Beispielbefehl wie folgt aus:

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

Führen Sie nach dem Herunterladen der Abhängigkeiten die Aktualisierung des Magento-Schemas und der Konfiguration aus:

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

Im Produktionsmodus führen Sie zusätzlich aus:

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

Verwenden Sie nur die Locales, die im Shop aktiv sind. Wenn die Installation einen anderen Deployment-Prozess verwendet, nehmen Sie die oben genannten Befehle in dessen Standardverfahren auf.

2.4. Installation prüfen

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

Im Administrationspanel sollten das MenüB2Bsowie der TabStores > Configuration > Kowal > B2Berscheinen. Wenn sie fehlen, prüfen Sie das Ergebnis vonsetup:upgrade, den Cache sowie die ACL-Rollen des Administratorbenutzers.

2.5. PDF-Dateiberechtigungen

Die von B2B generierten PDFs verwenden mPDF und Verzeichnisse untervar/, daruntervar/tmp/kowal_b2b_mpdfsowievar/kowal_b2b_documents. Der PHP-Prozess muss diese erstellen und beschreiben können. Fehlende Berechtigungen äußern sich durch einen Fehler bei der Dokument- oder PDF-Erzeugung.

Deaktivieren Sie nach Abschluss des Produktionsdeployments den Maintenance-Modus:

bin/magento maintenance:disable

3. B2B-Shopstruktur konfigurieren

3.1. Website und Store View

Die Suite arbeitet im Scopewebsiteund nicht global. Sie können B2C und B2B in derselben Magento-Installation betreiben, B2B sollte jedoch in einer separaten Website oder in einer bewusst ausgewählten Website für den Firmenvertrieb laufen.

  1. Definieren Sie unterStores > Settings > All Storesdie B2B-Website, ihren Store und die Store View aus.
  2. Merken Sie sich diewebsite_id— sie wird von Firmen, Preisen, Dokumenten, API und Integrationen verwendet.
  3. Definieren Sie unterContent > Design > Configurationdas Themefrontend/Kowal/b2bnur der B2B Store View zu.
  4. Prüfen Sie, ob aktive Währungen, Steuern, Versandmethoden und Zahlungsmethoden für denselben Scope konfiguriert sind.

Weisen Sie das B2B-Theme keiner B2C Store View zu, wenn Sie deren Darstellungsebene nicht ändern möchten. Die reine Installation der Module aktiviert die B2B-Logik nicht für alle Websites.

3.2. B2B aktivieren

  1. Öffnen SieStores > Configuration > Kowal > B2Bverwenden.
  2. Wählen Sie im Scope-Umschalter die richtigeWebsiteverwenden.
  3. Setzen Sie im AbschnittGeneraldie OptionEnable B2BaufYesverwenden.
  4. Für die Dauer des Deployments können SieDebug Modeaktivieren; deaktivieren Sie ihn nach den Tests.
  5. Legen Sie im Scope Default Config den Aufbewahrungszeitraum für Logs fest.
  6. Speichern Sie die Konfiguration und leeren Sie den Cache.

Nach der Aktivierung werden alle Store Views, die zu dieser Website gehören, als B2B behandelt. Eine Firma ohne aktive Beziehung zu dieser Website erhält keinen Zugriff darauf.

3.3. Verkäuferdaten

Ergänzen Sie die Daten des verkaufenden Unternehmens unterStores > Configuration > General > Store Information: Name, Adresse, Telefon und Umsatzsteuer-ID. Sie werden in Dokumenten und RFQ-PDFs verwendet. Ergänzen Sie außerdem die allgemeine E-Mail-Adresse des Absenders in der Sales Emails-Konfiguration sowie das E-Mail-Logo, wenn es im PDF erscheinen soll.

4. Ersten B2B-Kunden konfigurieren

Verwenden Sie die folgende Reihenfolge für jede Firma. So vermeiden Sie Situationen, in denen der Kunde zwar ein Konto hat, aber das Angebot nicht sieht oder den Checkout nicht durchlaufen kann.

4.1. Unternehmen, Personen und Adressen

  1. Öffnen SieB2B > Companiesund erstellen Sie eine Firma.
  2. Geben Sie Name, Umsatzsteuer-ID, externe Kennung (falls die Firma mit ERP synchronisiert wird), den StatusActivesowie die Zuordnung zur B2B-Website an.
  3. Fügen Sie einen Firmenbenutzer hinzu oder weisen Sie einen bestehenden Magento-Kunden zu. Weisen Sie ihm die passende Rolle zu und aktivieren Sie die Zuordnung.
  4. Definieren Sie unterB2B > Company Addressesdie Firmenadressen hinzu; markieren Sie die Standard-Rechnungs- und Versandadresse für die B2B-Website.
  5. Definieren Sie unterB2B > Company Contactseinen aktiven Hauptkontakt mit E-Mail und Telefon hinzu.

Die Rechnungsadresse und der Hauptkontakt werden ebenfalls in RFQ-PDFs verwendet. Fehlende Daten blockieren das PDF nicht, das Dokument ist jedoch weniger vollständig.

4.2. Unternehmensrollen

Vergeben Sie Benutzern nur die benötigten Berechtigungen. Eine typische Aufteilung ist:

Rolle Beispielaufgaben
Firmenadministrator Benutzer, Rollen, Adressen, Dokumente und Firmenhistorie
Einkäufer Katalog, Schnellbestellung, Warenkorb, RFQ und Bestellungen
Genehmiger Entscheidungen im Genehmigungsworkflow
Buchhaltung Dokumente und Abrechnungsinformationen

Testen Sie ein Konto jedes Typs, insbesondere die Berechtigung zum Aufgeben und Genehmigen von Bestellungen. Verwenden Sie nicht ein gemeinsames Konto für die gesamte Firma.

5. Angebot, Preise und Checkout

5.1. Katalog und Preise

  1. Stellen Sie sicher, dass die Magento-Produkte der B2B-Website zugewiesen, aktiv und mit korrekten MSI-Daten versehen sind.
  2. Konfigurieren Sie Preislisten oder Vertragspreise für die Firma im BereichB2B > Pricing(Price Lists, Price List Assignments oder Contract Prices).
  3. Konfigurieren Sie die Regeln für die Katalogsichtbarkeit der Firma gemäß dem implementierten Berechtigungsmodell und prüfen Sie anschließend die Sichtbarkeit im Kundenkonto.
  4. Testen Sie im Firmenkonto: Suche nach SKU, Produktsichtbarkeit und Preis für die Menge1sowie für eine Mengenstaffel.

Der B2B-Preis hängt von Firma, Website, Währung und Menge ab. Ein in B2C sichtbares Produkt muss für einen B2B-Kunden nicht verfügbar sein.

5.2. Versand und Zahlung

  1. Aktivieren Sie die erforderlichen Versand- und Zahlungsmethoden in der Standardkonfiguration von Magento für die B2B Store View.
  2. Definieren Sie unterB2B > CheckoutRegeln für verfügbare Methoden für Firma/Website hinzu, wenn Sie die Auswahl einschränken möchten.
  3. Führen Sie einen Warenkorbtest mit den Standardadressen der Firma durch.

Wenn die Erstellung einer Bestellung aus RFQ automatisch auf Administratorseite funktionieren soll, muss die Firma eindeutige Standardadressen sowie eine aktive Zahlungs- und Versandmethode haben. Andernfalls lädt die Suite die Daten in das native Backend Order Create, wo der Administrator fehlende Elemente ergänzt.

5.3. Limits und Freigaben

Diese Funktionen sind optional, sollten jedoch konfiguriert werden, bevor sie für Kunden aktiviert werden.

  1. Definieren Sie unterB2B > Credit > Payment TermsZahlungsbedingungen hinzu.
  2. Definieren Sie unterB2B > Credit > Credit LimitsLimit, Währung, Status und Zahlungsbedingung zu.
  3. Definieren Sie unterB2B > Approvals > Ruleseine Betragsgrenzenregel für Firma und Website.
  4. Definieren Sie unterB2B > Approvals > ApproversGenehmiger zu.
  5. Testen Sie den Warenkorb unterhalb und oberhalb der Grenze und prüfen Sie, ob die Entscheidung des Genehmigers den weiteren Prozess ändert.

6. Dokumente, PDF und RFQ

6.1. Magento-Dokumente

Definieren Sie unterStores > Configuration > Kowal > B2B > Documentsdie Dokumentenquelle und entscheiden Sie, welche Dokumente automatisch generiert werden sollen: Auftragsbestätigungen, Rechnungen, Lieferscheine und Gutschriften. Legen Sie außerdem den Zielstatus des Dokuments fest.

Definieren Sie unterB2B > Documents > PDF Templatesfest:

  1. prüfen Sie die aktive Vorlage für jeden Typ und jede Website;
  2. führen Sie eine Vorschau aus;
  3. passen Sie HTML/CSS nur dann an, wenn Sie eine Person haben, die Magento-Templates und mPDF-CSS kennt;
  4. generieren Sie eine Testrechnung oder Bestätigung und prüfen Sie den Download aus dem Firmenkonto.

6.2. RFQ und PDF-Angebot

  1. Definieren Sie unterB2B > Quotes > RFQein Test-RFQ für eine aktive Firma und einen aktiven Benutzer.
  2. Fügen Sie eine für die Firma sichtbare SKU, Menge und Angebotspreis hinzu.
  3. Legen Sie die Gültigkeitsfrist fest, senden Sie das Angebot an den Kunden und generieren Sie das PDF.
  4. Prüfen Sie die Kundenvariante: Verkäufer-/Käuferdaten, Positionen, Preis, Summe und Gültigkeitsfrist.
  5. Prüfen Sie die Administratorvariante: zusätzlich Vertriebsnotizen, Kommentare, Historie und interne Informationen zu den Positionen.

Das Kunden-PDF darf keine Notizen des Vertriebsmitarbeiters oder interne Statushistorie enthalten.

7. Schnellbestellungen, Importe und Integrationen

Schnellbestellungen

Definieren Sie unterB2B > Quick Order > Debug SKUdie ListeSKU,qtyfür Firma, Website und Währung. Erstellen Sie anschließend eine Einkaufsliste und testen Sie deren Verwendung durch den Kunden im Storefront.

Import und Export

Definieren Sie unterB2B > Import/Exportein Profil erst, nachdem die Datenquelle festgelegt wurde. Die Profilkonfiguration ist ein JSON-Objekt und muss Dateipfade enthalten, die auf dem Magento-Server verfügbar sind. Starten Sie den Import zunächst im Testmodus und analysieren Sie Job und Logs.

API-Integrationen

Legen Sie vor dem Erstellen eines Integrationstokens den Datenumfang und den Verantwortlichen für die Synchronisierung fest. Verwenden Sie für jedes ERP, PIM, WMS oder jede Middleware eine separate Magento-Integration und vergeben Sie ausschließlich die benötigten B2B-ACL. Die vollständige Liste der Endpoints, Tokens und Sicherheitsregeln finden Sie in derAPI-Dokumentation für Integratorenverwenden.

8. Abnahmecheckliste

Bestätigen Sie vor dem Produktionsstart:

  • ☐ Die Kowal-Module sind aktiv, cron läuft, Cache und Indizes sind korrekt.
  • ☐ B2B ist ausschließlich für die richtige Website aktiviert.
  • ☐ Das B2B-Theme ist ausschließlich der B2B Store View zugewiesen.
  • ☐ Die Testfirma hat den Status Active, einen Benutzer, eine Rolle, einen Kontakt und Standardadressen.
  • ☐ Das Testprodukt ist aktiv, der Website zugewiesen, für die Firma sichtbar und hat einen korrekten B2B-Preis.
  • ☐ Der Kunde kann sich anmelden, nach SKU suchen, quick order verwenden und das Produkt in den Warenkorb legen.
  • ☐ Der Checkout zeigt nur zulässige Versand- und Zahlungsmethoden an.
  • ☐ Limit und Genehmigungsregel funktionieren gemäß der Firmenrichtlinie, sofern diese Funktionen verwendet werden.
  • ☐ Dokument und RFQ-PDF werden generiert und sind ausschließlich für die richtige Firma verfügbar.
  • ☐ RFQ kann gesendet, akzeptiert und in den Prozess zur Auftragserstellung übergeben werden.
  • ☐ Integrationen haben separate Tokens und eingeschränkte ACL, sofern sie verwendet werden.

9. Häufige Probleme

Symptom Was prüfen?
Es gibt kein B2B-Menü setup:upgrade, Modulstatus, Cache und Administrator-ACL.
Firma oder Kunde sieht B2B nicht Ob B2B für die richtige Website aktiv ist und ob die Firma eine aktive Beziehung zu dieser Website hat.
Produkt ist nicht sichtbar oder hat keinen Preis Produktzuweisung zur Website, Aktivität der SKU, MSI-Daten, Katalogregeln, Firmenpreis, Währung und Menge.
Versand- oder Zahlungsmethode fehlt Standardkonfiguration von Magento, Scope der B2B Store View und B2B Checkout-Regeln.
PDF wird nicht erstellt Aktive PDF-Vorlage, mPDF-Paket, Berechtigungen fürvar/, Verkäuferdaten und Magento-Logs.
RFQ erstellt die Bestellung nicht automatisch Standardadressen der Firma, eindeutige Zahlung und Lieferung; verwenden Sie in den übrigen Fällen Backend Order Create.
API gibt403 Dem Integrationstoken fehlt die erforderliche ACL; verwenden Sie in externen Anwendungen keinen Administratortoken.

Geben Sie bei Supportanfragen Magento-Version, Paketversion, Reproduktionsschritte, Ereigniszeit, sicher anonymisierte Protokolle und gegebenenfallstrace_idan. Senden Sie keine Tokens oder Passwörter.

10. Paket aktualisieren

  1. Lesen Sie die von Kowal übermittelten Versionsinformationen.
  2. Führen Sie die Aktualisierung zuerst in der Testumgebung durch.
  3. Erstellen Sie ein Backup, führen Siecomposer update kowal/metapackage-b2b-suite --with-all-dependencies,bin/magento setup:upgradeund in der Produktion zusätzlich die DI-Kompilierung und das Deployment statischer Inhalte aus.
  4. Wiederholen Sie die Abnahme-Checkliste mit besonderem Fokus auf Preise, Checkout, Dokumente und Integrationen.

Aktualisieren Sie das Paket nicht durch manuelles Kopieren von Dateien nachapp/code; dies verursacht Probleme mit Composer und erschwert späteren Support.

Klicken Sie, um das Karussell zu überspringen

Wir haben weitere Produkte gefunden, die Sie interessieren könnten!

Magento 2 BaseLinker Stock Export - synchronizacja stanów magazynowych z ERP i Magento do BaseLinker
30,75 €
Kowal Analytics für Magento 2
30,75 €
Schreiben Sie eine Bewertung
Sie bewerten: Professionelles B2B-System für Magento 2 Open Source
Ihre Bewertung:
Preis
Qualität
Support
loader
Wird geladen …

Ihre Bewertung wurde zur Moderation übermittelt.

Fragen und Antworten

Frage
Czy Kowal B2B Suite działa z Magento 2 Open Source?
Antwort
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.
Frage
Czy każdy klient B2B może mieć własne ceny i katalog produktów?
Antwort
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.
Frage
Czy jedna firma może mieć wielu użytkowników z różnymi uprawnieniami?
Antwort
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.
Frage
Czy system B2B można zintegrować z ERP, PIM, WMS lub CRM?
Antwort
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.
Frage
Czy wdrożenie platformy B2B można realizować etapami?
Antwort
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.
Cookie-Einstellungen ändern