🌐
Portalul B2B pentru clienți
portal
portal_ecosystem
🛡️ RLS Protected
Servicii de tip "self-service" pentru clienți: comenzile de catalog, invocarea, rapoartele de servicii și asistență.
Fachliche Bestimmung: Portalul B2B exclusiv pentru clienții clienți. oferă 14 module specializate integrate (produse, comenzi cu seturi de câmpuri de atribute, oferte, comenzi, rapoarte de servicii, facturi, termene, întoarceri, instalații și bilete de suport).
⚡ Fluxuri de lucru (3)
🗄️ Modele de date & câmpuri (1)
🔌 Puncte de inițiere (UI & API) (42)
🛡️ Reglementări și respectare
⚡ Fluxuri de lucru
Comandaționarea portalului de client și cascadarea ERP
portal_order_cascade
De la coșul de mărfuri din portalul clientului până la comanda de livrare automată echipament de la ofertă.
sequenceDiagram
Kunde im Portal->>PortalAPI: POST /portal/{slug}/bestellung (Positionen & Fieldsets)
PortalAPI->>PortalAPI: validate_attribute_values()
PortalAPI->>DB: INSERT INTO quotes (source_type = 'SYSTEM')
PortalAPI->>DB: INSERT INTO work_orders (order_type = 'delivery', status = 'SCHEDULED')
PortalAPI-->>Kunde im Portal: Bestätigungsseite & Auftragsnummer
1. CATALOG
Selecția produselor
client selectează produse și completează seturi de câmpuri de atribute dinamice.
Aktionen: Verificarea obligatorie a câmpului în browser
2. SUBMIT
Transmiterea de comenzi
POST la /portal/{slug}/învățare cu atribute semantice_validate tipic.
Aktionen: executaţi ordin_submit
3. QUOTE_GEN
Instalație de ofertare
Sistemul generează cotă cu source_type= 'SYSTEM' și 'portal_order'.
Aktionen: să adopte semantic_attributuri
4. WORKORDER_GEN
Instalație de comandă
Producere automată a comenzii de execuție (ordinare de lucru) în LVS/ERP.
Aktionen: depozit sau de a fi înregistrată
Oferta de utilizare: client crude subbagent
plan:command_customer_crud_subagent
Plan durabil verificat (durable_plan), inițiativă: manual_command.
1. customer_crud_subagent
customer_crud_subagent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "customer_crud_subagent", "condition_fact": null}
Aktionen: customer_crud_subagent
Cererea de acces la portalul clientului
plan:portal_request_dispatch
Plan durabil verificat (durable_plan), start: domain_event.
1. portal_request_dispatch_agent
portal_request_dispatch_agent
{"key": "step_0", "label": "Portal-Anfrage als Aufgabe disponieren", "adapter": "agent.execute", "agent": "portal_request_dispatch_agent", "condition_fact": null}
Aktionen: portal_request_dispatch_agent
🗄️ Modele de date & câmpuri
🔌 Puncte de inițiere (UI & API)
| Art | Metoda | Punctul de încheiere / traseul | Titel & Zweck | Asigurarea |
|---|---|---|---|---|
| ⚡ REST API | DELETE | /api/v1/customers/{customer_id} |
delete_customer
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | DELETE | /api/v1/customers/{customer_id}/contacts/{contact_id} |
delete_contact
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | GET | /api/v1/customers |
list_customers
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /api/v1/customers/stats |
customer_stats
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /api/v1/customers/{customer_id} |
get_customer
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /api/v1/customers/{customer_id}/contacts |
list_contacts
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /api/v1/customers/{customer_id}/invoice-recipient |
get_invoice_recipient
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /api/v1/customers/{customer_id}/portal |
customer_portal_state
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /api/v1/customers/{customer_id}/shop-rates |
list_partner_shop_rates
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /api/v1/customers/{customer_id}/tree |
get_customer_tree
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /customers |
customers_page
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /customers/new |
customer_create_page
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /customers/{customer_id} |
customer_detail_page
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /customers/{customer_id}/edit |
customer_detail_page
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /customers/{customer_id}/portal |
customer_portal_admin_page
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | GET | /portal/{slug}/profil |
profile_page
Semantic binding: not_evaluated; mutation=False
|
customers
|
| ⚡ REST API | PATCH | /api/v1/customers/{customer_id} |
update_customer
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | PATCH | /api/v1/customers/{customer_id}/contacts/{contact_id} |
update_contact
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers |
create_customer
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers/{customer_id}/contacts |
create_contact
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers/{customer_id}/portal/accounts |
customer_portal_account_add
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers/{customer_id}/portal/accounts/{account_id}/password |
customer_portal_account_password
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers/{customer_id}/portal/accounts/{account_id}/status |
customer_portal_account_status
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers/{customer_id}/portal/invites |
customer_portal_invite
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers/{customer_id}/portal/invites/{invite_id}/revoke |
customer_portal_invite_revoke
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /api/v1/customers/{customer_id}/portal/toggle |
customer_portal_toggle
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /customers/{customer_id}/portal |
customer_portal_admin_save
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /customers/{customer_id}/portal/accounts |
customer_portal_account_create
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /customers/{customer_id}/portal/accounts/{account_id}/password |
customer_portal_account_password
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /customers/{customer_id}/portal/accounts/{account_id}/status |
customer_portal_account_status
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /customers/{customer_id}/portal/invites |
customer_portal_invite_create
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /customers/{customer_id}/portal/invites/{invite_id}/revoke |
customer_portal_invite_revoke
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /portal/{slug}/profil |
profile_submit
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /portal/{slug}/profil/kontakte |
profile_contact_save
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /portal/{slug}/profil/kontakte/{contact_id}/loeschen |
profile_contact_delete
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /portal/{slug}/profil/standorte |
profile_location_save
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | POST | /portal/{slug}/profil/standorte/{location_id}/deaktivieren |
profile_location_deactivate
Semantic binding: not_evaluated; mutation=True
|
customers
|
| ⚡ REST API | PUT | /api/v1/customers/{customer_id}/shop-rates |
upsert_partner_shop_rate
Semantic binding: not_evaluated; mutation=True
|
customers
|
| 🖥️ WEB-UI | GET | /portal/{slug}/ |
Portalul de pornire
Cu o capacitate de maximă de 0,5% din capacitatea de funcționare a sistemului de control
|
Standard |
| 🖥️ WEB-UI | GET | /portal/{slug}/bestellung |
Pagina de comandă a portalului
Comenzile de catalog cu seturi de câmp dinamice
|
Standard |
| 🖥️ WEB-UI | GET | /portal/{slug}/rechnungen |
Invoice de portal
Arhiva facturilor și descărcare PDF
|
Standard |
| ⚡ REST API | POST | /portal/{slug}/bestellung |
Înregistrarea comenzii
Validarea seturilor de câmp și generarea cotelor/orderelor de lucru
|
Standard |
🛡️ Reglementări și respectare
Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:
- Articolul 15 din Regulamentul general privind reglementarea persoanelor cu drept de autor
- Securitatea datelor B2B & izolarea RLS
Module legate: