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/BcOfferRequest 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. Konfiguration

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

    Allgemeine Einstellungen:

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

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

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

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

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

    Angebotsanfrage erstellen

    Der Kunde füllt seinen Warenkorb und klickt auf "Angebot anfordern". Die Anfrage (bc_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 bc-offer-request. Er kann den Status ändern und über die Chat-Funktion antworten.

    Nachrichtenverlauf

    Nachrichten (bc_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 löst drei Flow-Builder-fähige Events aus:

  30. **`bc_offer_request.created`** (`BcOfferRequest\Core\Event\OfferRequestCreatedEvent`) -- Eine neue Angebotsanfrage wurde erstellt. Implementiert: `FlowEventAware`, `ShopwareSalesChannelEvent`, `MailAware`, `CustomerAware`, `ScalarValuesAware`
  31. **`bc_offer_request.status_changed`** (`BcOfferRequest\Core\Event\OfferRequestStatusChangedEvent`) -- Der Status einer Anfrage hat sich geändert. Implementiert: `FlowEventAware`, `MailAware`, `CustomerAware`, `ScalarValuesAware`
  32. **`bc_offer_request.message_sent`** (`BcOfferRequest\Core\Event\OfferRequestMessageSentEvent`) -- Eine Nachricht wurde zu einer Anfrage hinzugefügt. Implementiert: `FlowEventAware`, `MailAware`, `CustomerAware`, `ScalarValuesAware`
  33. Subscriber:

  34. `FlowEventSubscriber` -- Verarbeitet Flow-Builder-Events
  35. `OfferRequestWriteSubscriber` -- Reagiert auf Entity-Schreibvorgänge
  36. `AccountMenuSubscriber` -- Erweitert das Account-Menü im Storefront
  37. Flow Builder Events

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

    | Event-Name | Klasse | Beschreibung |

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

    | bc_offer_request.created | OfferRequestCreatedEvent | Neue Angebotsanfrage erstellt |

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

    | bc_offer_request.message_sent | OfferRequestMessageSentEvent | Neue Nachricht gesendet |

    E-Mail-Templates

    Das Plugin registriert vier E-Mail-Templates über Migrationen. Die Template-Dateien liegen in src/Migration/Fixtures/mails/:

    offer_request_created** -- Bestätigung 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/bc-offer-request.de-DE.json):

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

    Datenbank-Tabellen

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

    | Tabelle | Entity-Name | Beschreibung |

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

    | bc_offer_request | bc_offer_request | Angebotsanfragen mit Status, Kundenbezug |

    | bc_offer_request_item | bc_offer_request_item | Positionen einer Angebotsanfrage |

    | bc_offer_request_message | bc_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 bc-offer-request (Farbe: #ff6b35, Icon: regular-file-text):

    Seiten:

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

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

    src/Resources/app/administration/src/module/bc-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. `BcOfferRequestPlugin` (`src/Resources/app/storefront/src/js/plugin/bc-offer-request.plugin.js`)
  95. Storefront-Controller:

  96. `OfferRequestController` -- Verarbeitet Angebotsanfragen
  97. `AccountOfferRequestController` -- Account-Bereich-Controller
  98. Kompatibilität

  99. Kompatibel mit dem Plugin **B2B Plattform** (Angebotsanfragen können von Firmenmitarbeitern gestellt werden)
  100. Kompatibel mit allen anderen Plugins der Bronner B2B Suite
  101. Kompatibel mit Standard-Shopware-Themes
  102. Getestet mit Shopware 6.7.x
  103. Enthält Unit-Tests für alle drei Event-Klassen
  104. FAQ