Request for quote (RFQ)
Das RFQ-Modul ersetzt “In den Warenkorb” durch “Nach Preis fragen”. Kunden reichen Angebotsanfragen ein, statt direkt zu kaufen. Nützlich für B2B-Shops und Produkte mit individueller Preisgestaltung.
Konfiguration
Section titled “Konfiguration”Gehen Sie zu WooCommerce > Einstellungen > Polski PRO > Angebotsanfragen und aktivieren Sie das Modul.
Grundeinstellungen
Section titled “Grundeinstellungen”| Einstellung | Datenbankoption | Standardwert | Beschreibung |
|---|---|---|---|
| Modul aktivieren | polski_quote | Nein | Aktiviert die Funktion für Angebotsanfragen |
| Button-Text | polski_quote_button_text | ”Zapytaj o cenę” | Auf dem Button angezeigter Text |
| Auf Listen anzeigen | polski_quote_show_on_loops | Nein | Zeigt den Anfrage-Button auf Archiv- und Kategorieseiten an |
| Anmeldung erforderlich | polski_quote_require_login | Nein | Erfordert die Anmeldung vor dem Absenden einer Anfrage |
| Einwilligung zur Verarbeitung | polski_quote_consent | Ja | Fügt dem Formular ein DSGVO-Einwilligungs-Kontrollkästchen hinzu |
Formularfelder
Section titled “Formularfelder”Das Angebotsanfrageformular enthält standardmäßig:
- Vor- und Nachname - erforderlich
- E-Mail-Adresse - erforderlich, Formatprüfung
- Telefon - optional
- Menge - erforderlich, numerische Prüfung
- Nachricht - optional, Textbereich
- DSGVO-Einwilligung - Kontrollkästchen, erforderlich falls aktiviert
Verhalten im Frontend
Section titled “Verhalten im Frontend”Button-Ersetzung
Section titled “Button-Ersetzung”Nach dem Aktivieren des Moduls wird der Button “In den Warenkorb” durch den Angebotsanfrage-Button ersetzt. Das gilt für:
- Einzelproduktseite
- Archiv- und Kategorieseiten (wenn die Option
polski_quote_show_on_loopsaktiviert ist) - Produkt-Widgets und Shortcodes
Shortcode
Section titled “Shortcode”Der Angebotsanfrage-Button kann per Shortcode an beliebiger Stelle platziert werden:
[polski_quote_button product_id="123" text="Zapytaj o cenę" class="custom-class"]Parameter:
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
product_id | Nein | Produkt-ID (standardmäßig das aktuelle Produkt) |
text | Nein | Button-Text |
class | Nein | Zusätzliche CSS-Klassen |
Formularübermittlung (AJAX)
Section titled “Formularübermittlung (AJAX)”Das Formular wird asynchron (AJAX) ohne Neuladen der Seite übermittelt. Nach dem Absenden sieht der Kunde eine Bestätigungsmeldung mit der Anfragenummer.
/** * Filtruje dane zapytania ofertowego przed zapisem. * * @param array $quote_data Dane zapytania * @param int $product_id ID produktu * @param \WP_User $user Obiekt zalogowanego użytkownika lub pusty */apply_filters('polski_pro/quote/before_save', array $quote_data, int $product_id, $user): array;Beispiel - Hinzufügen eines benutzerdefinierten Feldes:
add_filter('polski_pro/quote/before_save', function (array $quote_data, int $product_id, $user): array { $quote_data['meta']['company_nip'] = sanitize_text_field($_POST['company_nip'] ?? ''); return $quote_data;}, 10, 3);Protokollierung von Einwilligungen
Section titled “Protokollierung von Einwilligungen”Jede Angebotsanfrage speichert Informationen zur Einwilligung:
- Zeitstempel der erteilten Einwilligung
- IP-Adresse des Kunden (SHA-256-gehasht)
- Inhalt der Einwilligung zum Zeitpunkt der Erteilung
- Formularversion
Diese Daten werden in der Tabelle {prefix}_polski_quote_consents gespeichert und können für DSGVO-Audit-Zwecke exportiert werden.
/** * Akcja wywoływana po zapisaniu zgody. * * @param int $quote_id ID zapytania ofertowego * @param array $consent Dane zgody * @param string $ip_hash Zahashowany adres IP */do_action('polski_pro/quote/consent_logged', int $quote_id, array $consent, string $ip_hash);Admin-Bereich
Section titled “Admin-Bereich”Anfrageliste
Section titled “Anfrageliste”Angebotsanfragen sind im Menü WooCommerce > Angebotsanfragen verfügbar. Die Liste enthält:
- Anfragenummer
- Kundendaten (Name, E-Mail, Telefon)
- Produkt und Menge
- Status (neu, in Bearbeitung, beantwortet, geschlossen)
- Einreichungsdatum
Anfragestatus
Section titled “Anfragestatus”| Status | Beschreibung |
|---|---|
new | Neue Anfrage, unbearbeitet |
in_progress | Angebot wird vorbereitet |
replied | Angebot an den Kunden gesendet |
accepted | Kunde hat das Angebot angenommen |
rejected | Kunde hat das Angebot abgelehnt |
closed | Anfrage geschlossen |
Auf eine Anfrage antworten
Section titled “Auf eine Anfrage antworten”Im Bereich kann der Administrator:
- Anfragedetails einsehen
- Eine interne Notiz hinzufügen
- Den Angebotspreis festlegen
- Eine E-Mail-Antwort an den Kunden senden
- Die Anfrage in eine WooCommerce-Bestellung umwandeln
E-Mail-Benachrichtigungen
Section titled “E-Mail-Benachrichtigungen”Das Modul registriert die folgenden E-Mail-Vorlagen in WooCommerce:
| Empfänger | Auslöser | |
|---|---|---|
| Neue Angebotsanfrage | Administrator | Kunde reicht eine Anfrage ein |
| Anfragebestätigung | Kunde | Einreichung der Anfrage |
| Angebotsantwort | Kunde | Administrator sendet ein Angebot |
| Änderung des Anfragestatus | Kunde | Änderung des Anfragestatus |
E-Mail-Vorlagen können im Theme im Verzeichnis woocommerce/emails/ überschrieben werden:
polski-pro-quote-new.phppolski-pro-quote-confirmation.phppolski-pro-quote-reply.phppolski-pro-quote-status.php
Formularfilter
Section titled “Formularfilter”/** * Filtruje pola formularza zapytania ofertowego. * * @param array $fields Tablica pól formularza * @param int $product_id ID produktu */apply_filters('polski_pro/quote/form_fields', array $fields, int $product_id): array;Beispiel - Hinzufügen eines USt-IdNr.-Feldes:
add_filter('polski_pro/quote/form_fields', function (array $fields, int $product_id): array { $fields['company_nip'] = [ 'type' => 'text', 'label' => 'NIP firmy', 'required' => false, 'priority' => 35, ]; return $fields;}, 10, 2);Aktion nach dem Absenden
Section titled “Aktion nach dem Absenden”/** * Akcja wywoływana po zapisaniu zapytania ofertowego. * * @param int $quote_id ID zapytania * @param array $quote_data Dane zapytania */do_action('polski_pro/quote/submitted', int $quote_id, array $quote_data);Beispiel - Senden an ein CRM:
add_action('polski_pro/quote/submitted', function (int $quote_id, array $quote_data): void { $crm_api = new MyCrmApi(); $crm_api->create_lead([ 'name' => $quote_data['name'], 'email' => $quote_data['email'], 'product' => $quote_data['product_name'], 'qty' => $quote_data['quantity'], ]);}, 10, 2);Fehlerbehebung
Section titled “Fehlerbehebung”Der Button “In den Warenkorb” wird weiterhin angezeigt
Prüfen Sie, ob die Option polski_quote aktiviert ist. Leeren Sie den Cache von Caching-Plugins (WP Super Cache, W3 Total Cache, LiteSpeed Cache).
Das Formular wird nicht übermittelt (AJAX-Fehler)
Prüfen Sie die Browser-Konsole auf JavaScript-Fehler. Stellen Sie sicher, dass das Skript polski-pro-quote.js geladen ist. Konflikte mit anderen Plugins können AJAX blockieren - deaktivieren Sie andere Plugins, um den Konflikt zu identifizieren.
E-Mails werden nicht gesendet Prüfen Sie die E-Mail-Konfiguration unter WooCommerce > Einstellungen > E-Mails. Stellen Sie sicher, dass die Polski PRO-Vorlagen aktiviert sind.
Nächste Schritte
Section titled “Nächste Schritte”- Probleme melden: GitHub Issues
- Integration mit dem Katalogmodus: B2B-Katalogmodus