StartseiteDokumentationAngebotsanfragen

    Angebotsanfragen

    Individuelle Preise direkt aus dem Warenkorb anfragen

    Überblick

    Das Plugin ermöglicht Kunden, direkt aus dem Warenkorb oder von der Produktdetailseite eine Angebotsanfrage an den Shop-Betreiber zu senden. Der Shop-Betreiber bearbeitet die Anfrage im Admin, kann den Status ändern und über eine integrierte Chat-Funktion mit dem Kunden kommunizieren.

    Der gesamte Prozess wird über drei Entities in der Shopware-Datenbank abgebildet und ist vollständig nachvollziehbar. Drei Flow-Builder-Events ermöglichen automatisierte Workflows.

    Systemvoraussetzungen

  1. Shopware 6.7 oder höher
  2. PHP 8.1 oder höher
  3. MySQL 8.0 oder höher
  4. Installation

  5. 1.Plugin über den Shopware Plugin-Manager installieren oder manuell in custom/plugins/BronnOfferRequest ablegen
  6. 2.Plugin im Plugin-Manager aktivieren
  7. 3.Cache leeren:
  8. php bin/console cache:clear
  9. 4.E-Mail-Templates und Flow-Builder-Flows werden automatisch bei der Installation über drei Migrationen angelegt.
  10. Das Plugin enthaelt vorkompiliertes Admin-JS und funktioniert ohne build-administration.sh – eine reine Installation ueber den Shopware Plugin-Manager im Admin ist ausreichend.

    Konfiguration

    Die Plugin-Konfiguration befindet sich unter Erweiterungen > Meine Erweiterungen > BC Angebotsanfragen > Konfiguration (config.xml).

    Allgemeine Einstellungen:

  11. **Plugin aktiv** (`BronnOfferRequest.config.active`, Typ: `bool`, Standard: `true`): Aktiviert oder deaktiviert die Angebotsanfrage-Funktion.
  12. **Nur für eingeloggte Kunden** (`BronnOfferRequest.config.loginRequired`, Typ: `bool`, Standard: `false`): Wenn aktiviert, wird der Button nur für eingeloggte Kunden angezeigt.
  13. Button-Einstellungen:

  14. **Button-Text** (`BronnOfferRequest.config.buttonText`, Typ: `text`): Text auf dem Angebotsanfrage-Button. Leer = Standard-Snippet.
  15. **Button-Farbe** (`BronnOfferRequest.config.buttonColor`, Typ: `colorpicker`): Hintergrundfarbe des Buttons.
  16. **Button auf der Warenkorb-Seite anzeigen** (`BronnOfferRequest.config.showButtonInCart`, Typ: `bool`, Standard: `true`): Zeigt den Button unterhalb des "Zur Kasse"-Buttons.
  17. Formular-Einstellungen:

  18. **Wunschtermin-Feld anzeigen** (`BronnOfferRequest.config.showDesiredDate`, Typ: `bool`, Standard: `true`): Datumsfeld für gewünschten Liefertermin.
  19. **Nachricht-Feld anzeigen** (`BronnOfferRequest.config.showMessage`, Typ: `bool`, Standard: `true`): Freitextfeld für zusätzliche Informationen.
  20. **Mengenanpassung erlauben** (`BronnOfferRequest.config.quantityEditable`, Typ: `bool`, Standard: `true`): Erlaubt Mengenanpassung auf der Angebotsanfrage-Seite.
  21. Funktionen:

  22. **Chat-Funktion aktivieren** (`BronnOfferRequest.config.showChatFunction`, Typ: `bool`, Standard: `true`): Aktiviert den Nachrichtenverlauf im Kundenkonto.
  23. E-Mail-Benachrichtigungen:

  24. **Kundenbestätigung bei neuer Anfrage** (`BronnOfferRequest.config.sendCustomerConfirmation`, Typ: `bool`, Standard: `true`)
  25. **Admin-Benachrichtigung bei neuer Anfrage** (`BronnOfferRequest.config.sendAdminNotification`, Typ: `bool`, Standard: `true`)
  26. **Admin E-Mail-Adresse** (`BronnOfferRequest.config.adminEmail`, Typ: `text`): Leer = Shop-Standard-Adresse.
  27. **Mail bei Statusänderung** (`BronnOfferRequest.config.sendStatusChangeMail`, Typ: `bool`, Standard: `true`)
  28. **Mail bei neuer Nachricht** (`BronnOfferRequest.config.sendMessageMail`, Typ: `bool`, Standard: `true`)
  29. Funktionen

    Angebotsanfrage erstellen

    Der Kunde füllt seinen Warenkorb und klickt auf "Angebot anfordern". Die Anfrage (bronn_offer_request) enthält alle Warenkorbpositionen, Mengen und optionale Bemerkungen. Ein eigener Storefront-Controller (OfferRequestController) verarbeitet die Anfrage.

    Angebotsbearbeitung im Admin

    Der Shop-Betreiber sieht die Anfrage im Admin unter dem Modul bronn-offer-request. Er kann den Status ändern und über die Chat-Funktion antworten.

    Nachrichtenverlauf

    Nachrichten (bronn_offer_request_message) werden chronologisch gespeichert. Kunden und Admin können direkt über das Angebotsanfrage-Detail kommunizieren.

    Angebotshistorie

    Kunden sehen im Account-Bereich unter "Angebotsanfragen" ihre gesamte Historie mit Status, Datum und Artikeln.

    Events & Hooks

    Das Plugin loest drei Flow-Builder-faehige Events aus:

  30. **`bronn_offer_request.created`** (`BronnOfferRequest\Core\Event\OfferRequestCreatedEvent`) -- Eine neue Angebotsanfrage wurde erstellt. Implementiert: `FlowEventAware`, `ShopwareSalesChannelEvent`, `MailAware`, `CustomerAware`, `ScalarValuesAware`
  31. **`bronn_offer_request.status_changed`** (`BronnOfferRequest\Core\Event\OfferRequestStatusChangedEvent`) -- Der Status einer Anfrage hat sich geaendert. Implementiert: `FlowEventAware`, `MailAware`, `CustomerAware`, `ScalarValuesAware`
  32. **`bronn_offer_request.message_sent`** (`BronnOfferRequest\Core\Event\OfferRequestMessageSentEvent`) -- Eine Nachricht wurde zu einer Anfrage hinzugefuegt. Implementiert: `FlowEventAware`, `MailAware`, `CustomerAware`, `ScalarValuesAware`
  33. Shopware 6.7 Kompatibilitaet: Die Events verwenden CustomerDefinition statt CustomerEntity als EntityType (Shopware 6.7 Standard).

    Subscriber:

  34. `FlowEventSubscriber` -- Verarbeitet Flow-Builder-Events
  35. `OfferRequestWriteSubscriber` -- Reagiert auf Entity-Schreibvorgaenge
  36. `AccountMenuSubscriber` -- Erweitert das Account-Menue im Storefront
  37. Flow-Namen: Alle automatisch angelegten Flows tragen den Prefix "Bronn Angebotsanfrage:" (z.B. "Bronn Angebotsanfrage: Neue Anfrage erhalten").

    Flow Builder Events

    Alle drei Events sind im Shopware Flow Builder verfügbar:

    | Event-Name | Klasse | Beschreibung |

    |---|---|---|

    | bronn_offer_request.created | OfferRequestCreatedEvent | Neue Angebotsanfrage erstellt |

    | bronn_offer_request.status_changed | OfferRequestStatusChangedEvent | Status geändert |

    | bronn_offer_request.message_sent | OfferRequestMessageSentEvent | Neue Nachricht gesendet |

    E-Mail-Templates

    Das Plugin registriert vier E-Mail-Templates ueber Migrationen. Die Mail-Template-Type-Namen tragen den Prefix "Bronn" (z.B. "Bronn Angebotsanfrage erstellt"). Die Template-Dateien liegen in src/Migration/Fixtures/mails/:

    offer_request_created** -- Bestaetigung bei neuer Angebotsanfrage

  38. `de-html.html.twig` / `de-plain.html.twig`
  39. `en-html.html.twig` / `en-plain.html.twig`
  40. offer_request_status_changed** -- Benachrichtigung bei Statusänderung

  41. `de-html.html.twig` / `de-plain.html.twig`
  42. `en-html.html.twig` / `en-plain.html.twig`
  43. offer_request_admin_notification** -- Admin-Benachrichtigung bei neuer Anfrage

  44. `de-html.html.twig` / `de-plain.html.twig`
  45. `en-html.html.twig` / `en-plain.html.twig`
  46. offer_request_message_sent** -- Benachrichtigung bei neuer Nachricht

  47. `de-html.html.twig` / `de-plain.html.twig`
  48. `en-html.html.twig` / `en-plain.html.twig`
  49. Textbausteine (Snippets)

    Storefront-Snippets (src/Resources/snippet/de_DE/bronn-offer-request.de-DE.json):

  50. `bronn-offer-request.button` -- "Angebot anfordern"
  51. `bronn-offer-request.pageTitle` -- "Angebot anfordern"
  52. `bronn-offer-request.pageSubtitle` -- Untertitel der Angebotsseite
  53. `bronn-offer-request.itemsTitle` -- "Artikel"
  54. `bronn-offer-request.messageLabel` -- "Ihre Nachricht"
  55. `bronn-offer-request.desiredDateLabel` -- "Gewünschter Liefertermin"
  56. `bronn-offer-request.submitButton` -- "Angebotsanfrage absenden"
  57. `bronn-offer-request.cartButton` -- "Angebot für den gesamten Warenkorb anfordern"
  58. `bronn-offer-request.submitSuccess` -- Erfolgsmeldung
  59. `bronn-offer-request.submitError` -- Fehlermeldung
  60. `bronn-offer-request.successTitle` -- "Vielen Dank für Ihre Anfrage!"
  61. `bronn-offer-request.successMessage` -- Mit Platzhalter `%offerNumber%`
  62. `bronn-offer-request.accountTitle` -- "Meine Angebotsanfragen"
  63. `bronn-offer-request.accountMenuTitle` -- Menüpunkt-Text
  64. `bronn-offer-request.columnOfferNumber` / `columnDate` / `columnItems` / `columnStatus` / `columnProduct` / `columnQuantity` / `columnPrice` / `columnOfferPrice` -- Tabellenspalten
  65. `bronn-offer-request.messagesTitle` -- "Nachrichten"
  66. `bronn-offer-request.messageThreadTitle` -- "Nachrichtenverlauf"
  67. `bronn-offer-request.sendMessageTitle` -- "Nachricht senden"
  68. Admin-Snippets (src/Resources/app/administration/src/module/bronn-offer-request/snippet/de-DE.json, en-GB.json)

    Datenbank-Tabellen

    Das Plugin erstellt folgende Datenbank-Tabellen über 3 Migrationen:

    | Tabelle | Entity-Name | Beschreibung |

    |---|---|---|

    | bronn_offer_request | bronn_offer_request | Angebotsanfragen mit Status, Kundenbezug |

    | bronn_offer_request_item | bronn_offer_request_item | Positionen einer Angebotsanfrage |

    | bronn_offer_request_message | bronn_offer_request_message | Nachrichten/Chat zu einer Anfrage |

    Migrationen:

  69. `Migration1711929600CreateOfferRequestTables` -- Erstellt die drei Haupttabellen
  70. `Migration1743500000CreateMailTemplatesAndFlow` -- Erstellt Mail-Templates und Flow-Builder-Flows
  71. `Migration1743600000CreateStatusAndMessageMailTemplates` -- Erstellt Status- und Nachrichten-Mail-Templates
  72. Admin-Integration

    Das Plugin registriert ein Admin-Modul bronn-offer-request (Farbe: #ff6b35, Icon: regular-file-text):

    Seiten:

  73. `bronn-offer-request-list` -- Liste aller Anfragen mit Status-Filter und Suchfunktion
  74. `bronn-offer-request-detail` -- Detail-Ansicht mit Tabs
  75. Detail-Views (Tabs):

  76. `bronn-offer-request-detail-base` -- Stammdaten der Anfrage
  77. `bronn-offer-request-detail-items` -- Positionen mit Artikeldetails
  78. `bronn-offer-request-detail-messages` -- Nachrichtenverlauf und Antwortformular
  79. Die Admin-Module liegen unter:

    src/Resources/app/administration/src/module/bronn-offer-request/

    Storefront-Integration

    Das Plugin erweitert den Storefront um:

    Angebotsanfrage-Seiten (src/Resources/views/storefront/page/offer-request/):

  80. `index.html.twig` -- Angebotsanfrage-Formular
  81. `success.html.twig` -- Erfolgsseite nach Absenden
  82. Account-Seiten (src/Resources/views/storefront/page/account/offer-request/):

  83. `index.html.twig` -- Übersicht aller Angebotsanfragen
  84. `detail.html.twig` -- Detail mit Nachrichtenverlauf
  85. Warenkorb-Erweiterung:

  86. `page/checkout/cart/index.html.twig` -- Button im Warenkorb
  87. Sidebar-Erweiterung:

  88. `page/account/sidebar.html.twig` -- Menüpunkt im Account
  89. Produkt-Erweiterungen:

  90. `component/buy-widget/buy-widget.html.twig` -- Kauf-Widget
  91. `component/buy-widget/buy-widget-form.html.twig` -- Kauf-Formular
  92. `component/checkout/offcanvas-cart.html.twig` -- Offcanvas-Warenkorb
  93. JavaScript-Plugin:

  94. `BronnOfferRequestPlugin` (`src/Resources/app/storefront/src/js/plugin/bronn-offer-request.plugin.js`)
  95. Storefront-Controller:

  96. `OfferRequestController` -- Verarbeitet Angebotsanfragen
  97. `AccountOfferRequestController` -- Account-Bereich-Controller
  98. Plugin-Lebenszyklus

    Die Hauptklasse BronnOfferRequest implementiert alle fuenf Lifecycle-Methoden:

  99. **install()** -- Erstellt die Datenbanktabellen ueber Migrations
  100. **update()** -- Fuehrt neue Migrations aus, benennt bestehende Flows auf den Prefix "Bronn Angebotsanfrage:" um und aktualisiert Mail-Template-Typ-Namen
  101. **activate()** -- Aktiviert das Plugin
  102. **deactivate()** -- Deaktiviert das Plugin
  103. **uninstall()** -- Bei `keepUserData=false` werden alle Plugin-Daten vollstaendig entfernt: eigene Datenbanktabellen (`bronn_offer_request_message`, `bronn_offer_request_item`, `bronn_offer_request`), Mail-Template-Typen und Mail-Templates (inkl. Uebersetzungen), Flows und Flow-Sequenzen
  104. Die update()-Methode stellt sicher, dass bei einem Update von aelteren Versionen Flow-Namen und Mail-Template-Typen automatisch auf die aktuelle Naming-Konvention migriert werden.

    Kompatibilität

  105. Aktuelle Version: **1.7.17**
  106. Kompatibel mit dem Plugin **B2B Plattform** (Angebotsanfragen koennen von Firmenmitarbeitern gestellt werden)
  107. Kompatibel mit allen anderen Plugins der Bronner B2B Suite
  108. Kompatibel mit Standard-Shopware-Themes
  109. Getestet mit Shopware 6.7.x
  110. Enthaelt Unit-Tests fuer alle drei Event-Klassen
  111. Flow-Builder-Events verwenden `CustomerDefinition` als EntityType (Shopware 6.7 kompatibel, seit v1.7.14)
  112. Alle Event-Klassen mit korrektem `CustomerEntity`-Import (Fix in v1.7.16)
  113. FAQ

    Bereit für professionelles B2B?

    Statt 30.000–80.000 € Individualentwicklung: fertige, getestete Plugins — einsatzbereit in Stunden.

    • Alle 12 Plugins im vollen Funktionsumfang
    • Persönliche Einführung durch den Entwickler
    • Individuelle Beratung für deinen Use Case

    Keine Kreditkarte nötig · Unverbindlich · Antwort innerhalb von 24h