Formulare mit INQUIRY4
INQUIRY4-External ist ein externes WEBSALE Modul zur Erstellung von individuellen Kontakt-, Support- und Serviceformularen für deinen WEBSALE-Onlineshop. Die Formulare können ganz nach deinen Anforderungen konfiguriert werden.
Formulare über INQUIRY4-External können einfach und problemlos an verschiedenen Stellen in dein Shop-Frontend integriert werden. Auch Links zu den Formularen können überall platziert werden.
Das Look & Feel der Formulare kann mittels HTML und CSS individuell gestaltet werden.
Inhaltsverzeichnis
- 1 Einleitung
- 2 Besondere Funktionen des Programms
- 3 Aufruf von INQUIRY4-Formularen
- 4 Grundlagen für Anfrageformulare
- 4.1 Benötigte Dateien für ein Formular
- 4.2 Speicherort der benötigten Dateien
- 4.3 Eingabefelder für Formulare
- 4.4 Syntax-Regeln für die Eingabefelder
- 4.4.1 Feldname
- 4.4.2 Feldwert
- 4.4.3 Listboxen mit und ohne Feldwert
- 4.5 Konfigurationsdatei
- 4.5.1 Allgemeine Angaben
- 4.5.2 Beschreibung der Parameter:
- 4.5.3 Angaben zur Bestätigungs-E-Mail an den Anfragenden
- 4.5.4 Angaben zur Anfrage-E-Mail
- 4.5.5 PDF-Download der Anfrage
- 4.5.6 Konfiguration des WEBSALE-Upload-Moduls
- 4.5.7 Konfiguration der CAPTCHA-Funktionalität
- 4.5.8 Konfiguration des Blacklisting
- 4.5.9 Fehlermeldungen für den Anwender
- 4.5.10 Allgemeine Anfragefelder
- 4.5.11 Adressfelder
- 4.5.12 Sektion SendUserEmail
- 5 Globale Konfigurationsdatei inquiry-global.config
- 5.1 Erklärung und Beschreibung der Parameter
- 5.2 Aktivierung / Deaktivierung nur für bestimmte Formulare
- 5.3 Konfiguration von IP-Reputationslisten
- 5.4 Konfiguration Web Application Firewall (WAF)-Prüfungen
- 5.5 Konfiguration eigener Prüfungsmechanismen über REST-Schnittstelle
- 5.6 Konfiguration für das Herausfiltern bestimmter Zeichen aus Eingaben
- 5.7 Konfiguration zusätzlicher Inhaltsfilter mittels Regular Expressions
- 5.8 Fehlermeldungsausgabe der Protection-Regeln im Template
- 6 Tags und Templates
- 6.1 Verwendung von Tags
- 6.1.1 Arten von Tags
- 6.1.2 Verschachtelung von Tags
- 6.2 Unterstützte Tags
- 6.2.1 Tags der Adressdaten
- 6.2.2 Tags der optionalen Lieferadresse
- 6.2.3 Tags von allgemeinen Eingabefeldern
- 6.2.4 Tags der CAPTCHA-Funktionen
- 6.2.5 Tags des PDF-Downloads
- 6.2.6 Tags des Dateiuploads
- 6.2.7 Design Control Tags
- 6.2.8 Spezielle Tags
- 6.3 Regeln für ein HTML-E-Mail-Template
- 6.1 Verwendung von Tags
- 7 Besondere Namen und Klassen
- 8 Verwendung von INQUIRY4 mit WEBSALE E-Commerce
- 9 Anhang
- 10 Haftungs- und Gewährleistungsausschluss
Einleitung
Zielgruppe für diese Dokumentation
Diese Dokumentation richtet sich an Personen, die entsprechendes Wissen über die Erstellung von HTML-Seiten besitzen und die Grundlagen von HTML beherrschen.
Allgemeine Anwendung des Programms
INQUIRY4 ist ein universelles Formularprogramm, mit dem auf einfache Art beliebige Anfrage-Formulare betrieben werden können.
INQUIRY4 ist ein CGI-Programm, das gänzlich auf Java-Applets, Java-Scripts und Cookies verzichtet. Es unterstützt daher alle Browser auf dem Markt.
INQUIRY4 bearbeitet und kontrolliert die Eingaben von Anfrageformularen und sendet die Eingaben per E-Mail an einen Formularempfänger. Alternativ können alle Anfragen über den Online-Servicebereich (OSB) von WEBSALE in der Übersicht und im Detail angesehen werden.
INQUIRY4 wurde zur Verwendung in Verbindung mit WEBSALE E-Commerce Shops entwickelt. Eine Nutzung des Programms ist auch ohne Shop möglich.
Verbrauch von Leistungseinheiten
Genauso wie bei jedem anderen Aufruf eines Programms am Server wird auch beim Aufruf von INQUIRY4 Rechenleistung benötigt. Daher wird der Leistungsverbrauch ebenfalls über die Leistungseinheiten mit abgerechnet.
Sofern INQUIRY4 über WS-ExternInclude innerhalb einer Shopseite in WEBSALE E-Commerce integriert aufgerufen wird, entsteht sowohl für den Aufruf von INQUIRY4 als auch für den Aufruf von WEBSALE E-Commerce Rechenleistungsbedarf und Laufzeit.
Es besteht jedoch eine einfache Möglichkeit einzelne Eingabefelder auf jeder oder vielen Shopseiten anzuzeigen ohne den zusätzlichen Bedarf an Leistungseinheiten oder Laufzeit. (s. „Einzelnes Formular-Eingabefeld auf jeder Shopseite“)
Besondere Funktionen des Programms
Refererschutz
Der HTTP-Referer-Schutz ist von der WEBSALE AG für INQUIRY4 entwickelt worden, da es im Internet Anbieter gibt, die für deren Kunden automatisiert Formulare ausfüllen und so mit Leichtigkeit mehrere tausend Anfragen pro Stunde generieren können. Dies sind insbesondere Anbieter, die für ihre Kunden Gewinnspiele oder Kataloganfragen etc. automatisiert ausfüllen. Ein auf diese Art an deinem Gewinnspiel teilnehmende “Kunde“ kennt also weder dich noch hat er deine Website angesehen noch hat er einem Newsletterversand zugestimmt und ist somit für dich weitgehend wertlos.
Auch im Bereich Formulare für Kataloganforderung könnten durch solche Anbieter hohe Kosten ohne Nutzen generiert werden, da keine wirklich an eurem Angebot interessierte Kunden die Kataloge erhalten würden.
Prüfung und Erhalt der Benutzer-Eingaben
Vor dem Absenden eines Formulars werden die erforderlichen Eingabefelder geprüft, ob sie ausgefüllt sind.
Wird das Formular unvollständig ausgefüllt, so wird die Formularseite erneut mit Hinweisen zu den fehlenden Feldern angezeigt. Alle bis dahin gemachten Eingaben bleiben voll erhalten. Dies ergibt eine angenehme Benutzerführung und die u. U. fehlerträchtige Verwendung des "Back-Button" des Browsers ist nicht erforderlich.
SPAM-Vermeidung
Für die SPAM-Vermeidung stellen wir Ihnen verschiedene Möglichkeiten zur Verfügung:
CAPTCHA-Unterstützung
Verschiedene, optionale CAPTCHA-Funktionen zur SPAM-Vermeidung können verwendet werden:
CAPTCHA-Funktion der WEBSALE AG. Kein JavaScript erforderlich und stets verfügbar.
Der Anfragende muss eine kleine Rechenaufgabe lösen, um die Anfrage abzusendenExterne CAPTCHA-Funktion „ReCaptcha“ mittels Bilderkennung und höchster Sicherheitsstufe. JavaScript ist erforderlich. Die Verfügbarkeit wird jedoch nicht garantiert. Der Anfragende muss eine Zeichenkette aus einem Bild ablesen und korrekt in ein Eingabefeld eingeben, um die Anfrage abzusenden.
Friendly Captcha - Sie können das Friendly Captcha-Widget in Ihre Webanwendung einbauen, um Spam zu bekämpfen, ohne die Benutzerfreundlichkeit zu beeinträchtigen.
Friendly Captcha sendet dem Benutzer ein kryptografisches Rätsel, das Gerät des Benutzers benötigt einige Sekunden, um dieses zu lösen, der Benutzer muss nichts tun.captcha.eu - Datenschutzfreundliches CAPTCHA-System aus der EU. Es setzt auf eine non-intrusive Verifizierung, die vollständig ohne Benutzereingriff funktioniert. Es gibt keine sichtbaren Aufgaben für den Nutzer. Zudem werden keine Tracking-Technologien eingesetzt, sodass captcha.eu höchste Datenschutzstandards gemäß der DSGVO erfüllt.
Blacklisting
Zur SPAM-Vermeidung können unterschiedliche Blacklists (z. B. auf Basis der IP-Adresse oder des MX-Records) verwendet werden, um bestimmten, unerwünschten Anfragenden bzw. automatisierten Programmen das Absenden einer Anfrage zu unterbinden.
Unterstützung von IP-Reputationslisten
Zur SPAM-Vermeidung kann die IP-Adresse des Anfragenden mit frei verfügbaren IP-Reputationslisten abgeglichen werden. Dadurch werden bekannte Spam- oder Angriffsbots automatisch erkannt und blockiert.
Wir haben uns entschieden, drei große, frei verfügbare Anbieter zu unterstützen:
blocklist.de – Erkennt IP-Adressen, die mit Brute-Force-Angriffen auf Server, Mailserver und Webdienste in Verbindung stehen.
firehol.org – Aggregiert verschiedene IP-Blocklisten und stellt optimierte Firewall-Regeln bereit.
stopforumspam.com – Spezialisiert auf die Identifikation von Spam-Bots, die in Foren, Blogs und Kommentarbereichen aktiv sind.
Durch die Aktivierung dieser Funktion kann der Schutz vor Spam und automatisierten Angriffen weiter verbessert werden.
→ Detaillierte Dokumentation zur Konfiguration von IP Reputationslisten
Erweiterte Web Application Firewall (WAF)-Prüfungen
Zusätzlich können verschärfte Web Application Firewall (WAF)-Regeln für Inquiry4 aktiviert werden. Diese erweiterten Prüfungen helfen, Angriffsversuche frühzeitig zu erkennen und zu blockieren, indem sie z. B. SQL-Injections, Cross-Site Scripting (XSS) und andere bekannte Angriffsmuster automatisch identifizieren.
Die aktivierte WAF-Policy setzt die aktuellen Sicherheitsregeln des OWASP Core Rule Set (CRS) ein. Da die Sicherheitsregeln regelmäßig aktualisiert werden, empfehlen wir die offizielle Dokumentation des OWASP CRS-Projekts für detaillierte Informationen: 🔗 OWASP Core Rule Set (CRS) Project
→ Detaillierte Dokumentation zur Konfiguration Web Application Firewall (WAF)-Prüfungen
Eigene Prüfungsmechanismen über REST-Schnittstelle
Da es zahlreiche Anbieter mit unterschiedlichen Preismodellen für SPAM-Erkennung gibt, bieten wir eine einfache REST-Schnittstelle für eine individuelle Server-to-Server-Prüfung. So können Sie eine eigene Lösung integrieren, um Anfragen anhand externer Dienste oder interner Algorithmen zu bewerten, bevor diese weiterverarbeitet werden. Dies bietet maximale Flexibilität für Ihre persönliche SPAM-Erkennung.
→ Detaillierte Dokumentation zur Konfiguration eigener Prüfungsmechanismen über REST-Schnittstelle
Zeichen-Filterung aus Eingaben
Es können bestimmte Zeichen definiert werden, die automatisch aus Benutzereingaben herausgefiltert werden. Dies verhindert die Verarbeitung unerwünschter oder potenziell schädlicher Inhalte und verbessert die Sicherheit und Datenintegrität.
→ Detaillierte Dokumentation zur Konfiguration für das Herausfiltern bestimmter Zeichen aus Eingaben
Zusätzliche Inhaltsfilter mittels Regular Expressions
Es können benutzerdefinierte Regular Expressions (RegEx) definiert werden, um unerwünschte Zeichenketten oder Muster in den Eingaben zu erkennen und zu blockieren. Dies ermöglicht eine flexible Anpassung an spezifische Anforderungen, wie das Filtern von bestimmten Keywords, verdächtigen Mustern oder schadhaften Skripten.
→ Detaillierte Dokumentation zur Konfiguration zusätzlicher Inhaltsfilter mittels Regular Expressions
Verbindung zu WEBSALE-Shops
Benutzerdaten, die in einem WEBSALE-Shop z. B. aufgrund eines Benutzer-Logins bereits bekannt sind, können an das Formularprogramm übergeben werden, um dem Benutzer das erneute Ausfüllen z. B. von Adressfeldern zu ersparen.
PDF-Download der Anfrage
Nach Absenden des Formulars kann dem Benutzer angeboten werden, seine Anfrage als PDF herunterzuladen. Das Template, aus dem die PDF-Datei erzeugt wird, ist frei designbar.
Unterstützung von Dateiuploads
Optional können zu einer Anfrage Dateien vom Benutzer hochgeladen werden. Dies wird durch Verwendung des WEBSALE-Upload-Moduls realisiert. Die hochgeladenen Dateien werden an die E-Mail angehängt, die dem Angefragten zugesendet wird, oder in einem eigenen FTP-Verzeichnis gespeichert.
Ein ausführliches Beispiel für ein Anmeldeformular mit Datei-Upload finden Sie in der Frontend-Dokumentation:
https://doku.websale.net/index.html?guide_uploadmodulfuerformulareinquiry.html
Wenn Sie das WEBSALE-Upload-Modul mit INQUIRY4 verwenden wollen müssen Sie dies für jedes Anfrageformular einzeln beauftragen!
Aufruf von INQUIRY4-Formularen
Der Aufruf eines Formulars erfolgt über
den Aufruf des Inquiry-Programms
mit Angabe einer Shop- und SubshopID und
Angabe einer Konfigurationsdatei.
In der Konfigurationsdatei (s. Kapitel Konfigurationsdatei) ist angegeben, welches Formular-Template für das Formular verwendet werden soll.
Beispiel:
https://www.ihre-domain.de/cgi/inquiry4.cgi?inq4=<ihre-shopid>.<ihre subshopid>&cfg=<ihre-config>
Parameter | Beschreibung |
---|---|
inq4 | Erforderlicher Aufruf-Parameter. In diesem Parameter müssen Sie ihre ShopID und ihre SubShopID durch einen Punkt getrennt angeben. |
cfg (veraltet: ".ini") | Erforderlicher Aufruf-Parameter. Den Namen der Konfigurationsdatei, z. B. „anfrage.config". |
m | Optionaler Parameter Wenn Sie INQUIRY4 in Verbindung mit einem WEBSALE E-Commerce-Testshop oder DevPack verwenden wollen, müssen Sie im Parameter "m" die MallID angeben, z. B. m=test oder m=devpack. |
Weitere, optionale Parameter
In INQUIRY4 können bereits beim Aufruf ein Teil oder alle Daten der Formularfelder übergeben werden.
Dies wird häufig in Kombination mit dem WEBSALE-Shop verwendet.
Als Parametername wird der HTML-Name des entsprechenden Feldes angegeben. Eine Ausnahme stellt hierbei das Geburtsdatum dar (siehe nächstes Kapitel, “Spezielle Parameter“).
Beispiel: Übergabe des Vornamens beim Aufruf von INQUIRY4
Inquiry-URL:
.../cgi/inquiry4.cgi?inq4=<ihre-shopid>.<ihre-subshopid>&cfg=<ihre-config>&first_name=Wolfgang
Wichtig: Bei eingeschaltetem aktivem Refererschutz (s. Kapitel “Refererschutz“) und dabei übergebenem ungültigem Referer werden keine Parameter übernommen.
Spezielle Parameter
Parameter | Beschreibung |
---|---|
a_dateofbirth_day | Geburtsdatum der Rechnungsadresse Diese Parameter werden verwendet, um Geburtsdaten zu übergeben, wenn automatisch generierte Listboxen zum Einsatz kommen. |
d_dateofbirth_day | Geburtsdatum der Lieferadresse Diese Parameter werden verwendet, um Geburtsdaten zu übergeben, wenn automatisch generierte Listboxen zum Einsatz kommen. |
ref | Angabe eines Referers Dient statistischen Zwecken. Dieser Aufrufparameter sollte nicht verwechselt werden mit dem Konfigurationsparameter “Referer“, der sich auf den HTTP-Referer bezieht (siehe Kapitel „Konfigurationsdatei“ und Kapitel „Refererschutz“). |
subref | Angabe eines SubReferers. Dient statistischen Zwecken |
a-userindex | Angabe des Userindexes, nur in Verbindung mit dem WEBSALE-Shop. |
a-userid | Angabe der User-ID, nur in Verbindung mit dem WEBSALE-Shop. |
immediate | Erlaubt “One-Klick“-Anfragen. Wenn dieser Parameter auf „yes“ gesetzt ist, werden die mit dem Aufruf des Formularprogramms übergebenen Parameter auf Vollständigkeit geprüft und dann die Anfrage sofort ausgeführt, ohne dass der Anfragende ein Anfrageformular zum Ausfüllen sieht. Er bekommt also unmittelbar die Bestätigungsseite angezeigt. WICHTIG: Der Parameter “immediate“ wird nur bei aktivem Refererschutz (siehe 3.1 Refererschutz) verarbeitet! |
Grundlagen für Anfrageformulare
Benötigte Dateien für ein Formular
Je Formular benötigen Sie:
ein HTML-Formular-Template (*.htm)
ein HTML-Antwort-Template (*.htm)
ein HTML-Antwort-Template für die Erzeugung eines PDFs (*.htm)
eine Konfigurationsdatei (*.config)
ein HTML-E-MailTemplate (*.hmail)
Definitionsdateien für Anrede, Titel und Länderauswahl (*.dat)
Üblicherweise gehört zu einem Formular immer ein kompletter Satz mit den oben genannten Dateien.
Sie können auch für unterschiedliche Anfrageformulare z. B. stets das gleiche Antwort-Template und/oder die gleiche Anrede-Definition usw. verwenden.
Ob und welche Dateien jeweils verwendet werden, legen Sie nach Ihrem Ermessen in der dem Formular zugehörigen Konfigurationsdatei (.config) fest.
Dieser Dokumentation liegen folgende Beispiele bei:
Fallbeispiel | Beispieldateien |
Standardanfrage in eigener Seite mit Download der Anfrage als PDF, Popup oder iFrame | anfrage.config |
Standardanfrage integriert in WEBSALE E-Commerce mit WS-ExternInclude | externinclude_anfrage.config |
Standardanfrage in eigener Seite, Popup oder iFrame mit CAPTCHA-Funktion Rechenaufgabe zur SPAM-Vermeidung | anfrage_captcha_rechnen.config |
Erläuterung der einzelnen Beispieldateien:
Datei | Beschreibung |
anfrage.config | Konfigurationsdatei einer Standardanfrage |
anfrage.htm | Anfrageseite einer Standardanfrage |
antwort.htm | Antwortseite einer Standardanfrage |
antwort_pdf.htm | HTML-Template für die Erzeugung der PDF-Datei |
antwort.hmail | HTML-E-Mail-Template an den Anfragenden einer Standardanfrage |
anfrage.hmail | HTML-E-Mail-Template an den Angefragten einer Standardanfrage |
externinclude_anfrage.htm | Anfrageseite einer Standardanfrage, welche mit ExternInclude eingebunden wird |
externinclude_anfrage.config | Konfigurationsdatei einer Standardanfrage, welche mit ExternInclude eingebunden wird |
externinclude_antwort.htm | Antwortseite einer Standardanfrage, welche mit ExternInclude eingebunden wird |
tpl_externinclude_anfrage.htm | Shoptemplate auf dem eine Standardanfrage mit ExternInclude eingebunden wird |
anfrage_captcha_rechnen.config | Konfigurationsdatei einer Standardanfrage mit CAPTCHA-Funktion Rechenaufgabe |
anfrage_captcha_rechnen.htm | Anfrageseite einer Standardanfrage mit CAPTCHA-Funktion Rechenaufgabe |
Speicherort der benötigten Dateien
Die benötigten Dateien müssen innerhalb des WEBSALE E-Commerce Shops abgelegt werden.
Alle Konfigurationsdateien (config-Dateien, Länder-, Titel- und Anredeauswahldateien sowie Blacklist-Dateien) müssen im zugehörigen Konfigurationsverzeichnis des Subshops im Unterverzeichnis inquiry gespeichert werden:
/websale8_shop-<ihre-shopid>/konfiguration/<ihre-subshopid>/inquiry/
Alle Template-Dateien (E-Mail- und Formular-Templates) müssen im zugehörigen Template-Verzeichnis des Subshops gespeichert werden:
/websale8_shop-<ihre-shopid>/benutzer/templates/<ihre-subshopid>/
Eingabefelder für Formulare
Ein Template für ein Anfrageformular können Sie mit einem HTML-Editor Ihrer Wahl erstellen.
INQUIRY4 verarbeitet und kontrolliert folgende Eingabefelder:
Checkboxen
Radio Buttons
Listboxen
einzeilige Textfelder
mehrzeilige Textfelder (max. 4048 Zeichen)
Wie bereits erwähnt, bleiben alle gemachten Eingaben voll erhalten. Um dies zu erreichen, muss INQUIRY4 die bereits gemachten Eingaben in die entsprechenden Felder auf dem Template integrieren.
Es ist daher notwendig, dass die HTML-Syntax im Formular einigen Regeln entspricht, die im Folgenden erläutert werden. Diese Regeln werden üblicherweise auch von allen gängigen HTML-Editoren eingehalten.
Syntax-Regeln für die Eingabefelder
Feldname
Alle Feldnamen müssen in Anführungszeichen stehen. Es darf kein Leerzeichen zwischen "name=" und Feldname sein.
<input type="text" name="Feldname" ...>
<input type="text" name= "Feldname" ...>
<input type="text" name=Feldname ...>
Feldwert
Alle Feldwerte müssen in Anführungszeichen stehen. Es darf kein Leerzeichen zwischen "value=" und Feldwert sein.
<input type="text" ... value="Feldwert">
<input type="text" ... value= "Feldwert">
<input type="text" ... value=Feldwert>
Listboxen mit und ohne Feldwert
Listboxen können mit und ohne Feldwert (value=“...“) angegeben werden.
INQUIRY4 unterstützt beide Methoden. Wenn ein Feldwert vorhanden ist, wird der entsprechende Eintrag ausgewählt, ansonsten der passende Eintrag ohne Feldwert gesucht und ausgewählt.
Ohne Feldwert:
<select name="Feldname">
<option></option>
<option>Herr</option>
<option>Frau</option>
</select>
Mit Feldwert:
<select name="Feldname">
<option value=""></option>
<option value="Herr">Herr</option>
<option value="Frau">Frau</option>
</select>
Verwenden Sie Listboxen mit Feldwert, dies erleichtert die Arbeit insbesondere bei fremdsprachigen Formularseiten, da Sie dann stets den gleichen value (z. B. value=“Herr“) verwenden können und lediglich im lesbaren Text die Übersetzung (z. B. “Monsieur“)
Konfigurationsdatei
In der Konfigurationsdatei wird angegeben,
an welche E-Mail-Adresse die Anfragen gesendet werden,
welche Templates verwendet werden sollen,
welche Fehlermeldungen ausgegeben werden,
welche Formularfelder von INQUIRY4 abgefragt und kontrolliert werden sollen.
Code-Beispiele finden Sie in diesem Dokument unter „Fehler: Verweis nicht gefunden“
Allgemeine Angaben
Die allgemeinen Angaben finden Sie in der Sektion <Basic>
.
<Basic>
InquiryPage = anfrage.htm
ConfirmPage = antwort.htm
CommonInputRequired = yes
Language = DEU
EMailCheckMethod = domain # [none][syntax][domain]
CountryDat = ../country.dat
SalutationDat = ../salutation.dat
TitleDat = ../title.dat
Referer = www.ihr-shop.de
WSOMAllow = yes
TransferEmptyValues = no # [yes][no], Std: no
Charset = ISO-8859-1
TextAreaWrap = 30
NoEmptyCountryListboxEntry = no # [yes|no], Std: no
PresetSTC = yes # [yes|no], Std: yes
VS4Allow = yes # [yes|no], Std: yes
InquiryFormatMinorVersion = # Std: 1
</Basic>
Beschreibung der Parameter:
Parameter | Beschreibung | Werte |
---|---|---|
InquiryPage | Name der HTML-Anfrageseite. | Dateiname z. B. anfrage.htm |
ConfirmPage | Name der HTML-Antwortseite. | Dateiname z. B. antwort.htm |
CommonInputRequired | Wenn Sie diesen Parameter auf "yes" setzen, dann muß mindestens ein allgemeines Anfragefeld vom Anfragenden ausgefüllt worden sein, ansonsten erfolgt eine entsprechende Fehlermeldung. | [yes][no] |
Language | Die gewünschte Sprache für Anrede und Titel im ISO-Code. | 3-stelliger Länder ISO-Code, z. B. DEU |
CountryDat | Optionaler Parameter Hier können Sie die Länder-Konfigurationsdatei aus ihrem WEBSALE-Shop verwenden. | Dateiname, z. B. country.dat |
SalutationDat | Optionaler Parameter Hier können Sie die Anrede-Konfigurationsdatei aus ihrem WEBSALE-Shop verwenden. | Dateiname, z. B. salutation.dat |
TitleDat | Optionaler Parameter Hier können Sie die Titel-Konfigurationsdateiaus ihrem Websale-Shop verwenden. | Dateiname, z. B. title.dat |
Referer | Optionaler Parameter Hier können Sie verschiedeneURLs, jeweils durch Komma getrennt, angeben. Eine Referer-URL dient dem Schutz vor unerwünschten automatisierten Anfragen und ist von der Behandlung her einzustufen wie ein Passwort, d. h. ein Referer ist vertraulich zu behandeln. (s. Kapitel “Refererschutz“) Durch Angabe einer oder mehrerer URLs wird der Refererschutz eingeschaltet. Wenn nichts angegeben wird, nimmt INQUIRY4 alle übergebenen Parameter an, der Refererschutz ist damit ausgeschaltet! | URL, www.ihr-shop.de |
WSOMAllow | Wenn Sie diesen Parameter auf „yes“ setzen, dann werden alle erzeugten Anfragen vom WSOM (WEBSALE Order Manager) verarbeitet und können somit über den WSOM in Warenwirtschaftssysteme automatisiert eingelesen werden. Anwendungsbeispiel: Anfrage zur Zusendung eines Katalogs. | [yes][no] |
TransferEmptyValues | Wenn Sie diesen Parameter auf „yes“ setzen werden alle leeren Felder der Anfrage mit übergeben. Steht dieser Parameter auf "no" so werden leere Felder nicht mit übergeben. Dies betrifft die Tags AUTOGENERATE-Full, AUTOGENERATE-Addr, AUTOGENERATE-Common, AUTOGENERATE-Readable und AUTOGENERATE-Technical sowie die Datenübergabe an den WSOM. Wenn die Anfragedaten durch den WSOM abgeholt werden und optionale Felder in dem Anfrageformular vorhanden sind kann durch die Übertragung der leeren Felder eine einheitliche Felderdefinition erreicht werden. | [yes][no] |
Charset | Hier geben Sie den Zeichensatz der Anfrage an. Dieser Zeichensatz wird auch für die erzeugten E-Mails verwendet, wenn in den entsprechenden Sektionen kein anderer Zeichensatz angegeben ist. Der Parameter muss vorhanden sein, um Konvertierungen in UTF-8 per Tag durchführen zu können. | Zeichensatz, z. B. ISO-8859-1 |
TextAreaWrap | Hier können Sie angeben nach wie vielen Zeichen die Ausgabe einer Textarea in den E-Mails umgebrochen werden soll. Ist dieser Wert 0 erfolgt kein automatischer Umbruch. | Zeichenanzahl, z. B. 30 |
NoEmptyCountryListboxEntry | Hier können Sie festlegen ob der erste Eintrag in der Listbox zur Länderauswahl ein leerer Eintrag sein soll. yes: Es wird kein leerer Eintrag erzeugt, der erste Eintrag ist "vorausgewählt". no: Der erste Eintrag wird als leerer (nicht ausgewählter) Eintrag erzeugt. | [yes][no] |
PresetSTC | Hier können Sie festlegen ob Anrede, Titel und Land vorausgefüllt sein sollen, wenn INQUIRY per ExternInclude eingebunden wird. | [yes][no] |
VS4Allow | Hier können Sie festlegen ob Anfragen an das VS/4 weitergeleitet werden sollen. | [yes][no] |
InquiryFormatMinorVersion | Parameter zur Beeinflussung von nicht abwärtskompatiblen Änderungen des technischen Ausgabeformats. Momentan max. verwendet: Wert 2. Für Werte >= 2 gilt: In der technischen Übergabe von Textarea-Daten wird als Sektionsname <Value> anstelle von <value> verwendet. | [1][2] |
Angaben zur Bestätigungs-E-Mail an den Anfragenden
Alle Definitionen zur E-Mail an den Anfragenden finden Sie in der Sektion <ConfirmEmail>
.
<ConfirmEmail>
SendEmail = yes
EmailSubject = Ihre Anfrage
SenderEmail = abc@domain.de
SenderName = Firma XYZ
charset = ISO-8859-1
EmailTemplate = confirm.hmail
UseExternMailSystem = no
ExternMailTemplate =
</ConfirmEmail>
Parameter | Beschreibung | Werte |
---|---|---|
SendEmail | Legt fest, ob an den Anfragenden eine Bestätigungsemail geschickt wird. Wenn der Wert von SendEmail userselect ist, muss die Sektion <SendUserEmail> vorhanden sein, in welcher das zugehörige HTML-Element zur Auswahl definiert ist. | [yes][no][userselect] |
EmailSubject | Der Betreff der E-Mail. | Text, z. B. Ihre Anfrage |
SenderEmail | Die E-Mail-Adresse des Absenders. | E-Mail-Adresse, abc@domain.de |
SenderName | Der Name des Absenders. | Text, z. B. Firma XYZ |
Charset | Optionaler Parameter Der in der E-Mail verwendete Zeichensatz. Wichtig für die sprachabhängig korrekte Darstellung der Mailtexte beim Empfänger. Ist der Parameter nicht angegeben wird der globale Zeichensatz (Parameter Charset in der Sektion Basic) verwendet. | ISO-Zeichensatz, z. B. ISO-8859-1 |
EmailTemplate | Das HTML-Template der E-Mail. Weitere Informationen zu “Tags und Templates“ finden Sie im entsprechenden Abschnitt dieses Dokuments. | Dateiname, z. B. confirm.hmail |
UseExternMailSystem | Bei Verwendung eines Drittanbieters für den E-Mail-Versand wird dieser Anbieter hier angegeben. Standard ist „no“, d. h., das Shop-eigene Mail-System wird verwendet. | [no][InxMail], |
ExternMailTemplate | Template, auf dem das JSON-Objekt zur Übergabe an den externen Mail-Anbieter, z. B. InxMail, angelegt wird | Dateiname |
Angaben zur Anfrage-E-Mail
Alle Angaben zur E-Mail an den Angefragten finden Sie in der Sektion <InquiryEmail>
.
<InquiryEmail>
SendEMail = yes
EmailSubject = Anfrage
EmailAddress = ihreAdresse@ihre-domain.de
charset = ISO-8859-1
EmailTemplate = templates/request.hmail
SenderAddress = optionaleAnfrageadresse@ihre-domain.de
UseExternMailSystem = no
ExternMailTemplate =
</InquiryEmail>
Parameter | Beschreibung | Werte |
---|---|---|
SendEmail | Legt fest, ob an den Angefragten eine Bestätigungs-E-Mail geschickt wird. | [yes][no] |
EmailSubject | Der Betreff der E-Mail. | Text, z. B. Ihre Anfrage |
EmailAddress | Die E-Mail-Adresse zu der die Anfrage gesendet wird. Es können auch mehrere Adressen, durch Komma getrennt, angegeben werden. | E-Mail-Adresse, abc@domain.de |
Charset | Optionaler Parameter Der in der E-Mail verwendete Zeichensatz. Ist der Parameter nicht angegeben, so wird der globale Zeichensatz (Parameter Charset in der Sektion „Basic“) verwendet. | ISO-Zeichensatz, z. B. ISO-8859-1 |
EmailTemplate | Das HTML-Template der E-Mail. Weitere Informationen zu Tags und Templates finden Sie in dieser Dokumentation. | Dateiname, z. B. confirm.hmail |
SenderAddress | Optionale Absenderadresse. Ist diese Adresse angegeben, so wird sie als Absenderadresse verwendet. Die vom Benutzer eingegebene Adresse wird dann als Antwortadresse verwendet. | E-Mail-Adresse, abc@domain.de |
UseExternMailSystem | Bei Verwendung eines Drittanbieters für den E-Mail-Versand wird dieser Anbieter hier angegeben. Standard ist „no“, d. h., das Shop-eigene Mail-System wird verwendet. | [no][InxMail], Standard: no |
ExternMailTemplate | Template, auf dem das JSON-Objekt zur Übergabe an den externen Mail-Anbieter, z. B. InxMail, angelegt wird | Dateiname |
PDF-Download der Anfrage
Alle Einstellungen zur PDF-Erzeugung sind in der Sektion <PDF> zu finden.
<PDF>
Allow = yes
Template = antwort_pdf.htm
Filename = anfrage.pdf
</PDF>
Parameter | Beschreibung | Werte |
---|---|---|
Allow | Legt fest ob die Anfrage als PDF heruntergeladen werden kann. | [yes][no], Standard: no |
Template | Name des HTML-Templates welches für die PDF-Erzeugung verwendet wird. | Dateiname, z. B. antwort_pdf.htm |
Filename | Der Dateiname der erzeugten PDF-Datei. | Dateiname, z. B. anfrage.pdf |
Konfiguration des WEBSALE-Upload-Moduls
Alle Einstellungen zur Verwendung des WEBSALE-Upload-Moduls sind in der Sektion <Upload>
zu finden.
<Upload>
Allow = yes
UploadIni = upload.config
UploadDescr = Anhänge
AttachUploadsToInquiryEMail-Allow = yes
</Upload>
Parameter | Beschreibung | Werte |
---|---|---|
Allow | Legt fest, ob die Uploadfunktion verwendet werden soll | [yes][no], Standard: no |
UploadIni | Konfigurationsdatei des WEBSALE-Upload-Moduls | Dateiname, |
UploadDescr | Dieser Text erscheint in den automatisch erzeugten Anfragedaten als Text über der Liste der hochgeladenen/angehängten Dateien. | Text, z. B. Anhänge |
AttachUploadsToInquiryEMail-Allow | Erlaubt Datei-Anhänge an Mails | [yes][no], Standard: no |
Ein ausführliches Beispiel für ein Anmeldeformular mit Datei-Upload finden Sie in der Frontend-Dokumentation:
https://doku.websale.net/index.html?guide_uploadmodulfuerformulareinquiry.html
Konfiguration der CAPTCHA-Funktionalität
Konfiguration
Die Einstellungen zur CAPTCHA-Funktion sind in der Sektion <Captcha> zu finden.
<Captcha>
UseArithmeticCaptcha = yes
UseReCaptchaV3 = yes
CaptchaDescription = Eine kleine Rechenaufgabe
CaptchaNotFilledIn = Bitte lösen Sie die Rechenaufgabe
CaptchaError = Die Rechenaufgabe wurde nicht gelöst
</Captcha>
Sie können als CAPTCHA-Funktionalität entweder die Rechenaufgabe, das ReCaptcha- oder das Friendly-Captcha-Verfahren verwenden.
Parameter | Beschreibung | Werte |
---|---|---|
UseArithmeticCaptcha | Legt fest ob die CAPTCHA-Funktion in Form einer Rechenaufgabe verwendet werden soll. | [yes][no], Standard: no |
UseRecaptchaCaptcha | Wenn Sie als CAPTCHA-Funktion die Rechenaufgabe verwenden möchten, muss dieser Parameter auf "no" stehen! | [yes][no], Standard: no |
CaptchaDescription | Dieser String beschreibt die CAPTCHA-Funktionalität und kann auf dem Template ausgegeben werden. | Text, z. B. Eine kleine Rechenaufgabe |
CaptchaNotFilledIn | Dieser Fehlerstring wird angezeigt, wenn das CAPTCHA-Eingabefeld nicht ausgefüllt wurde. | Text, z. B. Bitte lösen Sie die Rechenaufgabe |
CaptchaError | Dieser Fehlerstring wird angezeigt, wenn das CAPTCHA-Eingabefeld falsch ausgefüllt wurde. | Text, z. B. Die Rechenaufgabe wurde nicht gelöst |
Die CAPTCHA-Funktion in Form einer Rechenaufgabe stellt die drei Grundrechenarten Addition, Subtraktion und Multiplikation zur Verfügung. Diese drei Grundrechenarten werden standardmäßig mit vorgegebenen Wertebereichen verwendet. Sie können allerdings die Einstellungen für jede dieser Grundrechenarten individuell konfigurieren. Dazu können Sie folgende drei Sektionen verwenden:
Parameter | Beschreibung | Werte |
---|---|---|
CaptchaOperation+ | Addition |
|
CaptchaOperation- | Subtraktion |
|
CaptchaOperation* | Multiplikation |
|
Beispiel:
<CaptchaOperation+>
Allow = yes
Operand1RangeStart = 1
Operand1RangeEnd = 9
Operand2RangeStart = 1
Operand2RangeEnd = 9
+Sign = plus
+Sign = +
+Sign = und
</CaptchaOperation+>
Parameter | Beschreibung | Werte |
---|---|---|
Allow | Legt fest ob diese Grundrechenart verwendet wird. | [yes][no], Standard: yes |
Operand1RangeStart | Legt den kleinsten Wert des ersten Operanden fest. (optional) | Zeichenanzahl, z. B. 1 |
Operand1RangeEnd | Legt den größten Wert des ersten Operanden fest. (optional) | Zeichenanzahl, z. B. 9 |
Operand2RangeStart | Legt den kleinsten Wert des zweiten Operanden fest. (optional) | Zeichenanzahl, z. B. 1 |
Operand2RangeEnd | Legt den größten Wert des zweiten Operanden fest. (optional) | Zeichenanzahl, z. B. 9 |
+Sign | Bis zu 10 Einträge je Grundrechenart werden unterstützt. Ist mindestens ein Eintrag einer Grundrechenart vorhanden werden die standardmäßig konfigurierten Strings nicht mehr verwendet! Eine textuelle Repräsentation der Rechenoperation. | Text, z. B. plus |
Konfiguration Google ReCaptcha (Version 3)
Google ReCaptcha Version 2 wurde deaktiviert und funktioniert daher nicht mehr. INQUIRY4 unterstützt derzeit Google ReCaptcha Version 3.
<Captcha>
...
UseReCaptchaV3 = yes
Site-Key = # z. B. 6Le0SJsUxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxx
Secret-Key = # z. B. 6Le0SJsUxxxxxx_xxxxxxxxxxxxxxxxxx_xxxxxx
Api-Url = https://www.google.com/recaptcha/api.js
Verify-Url = https://www.google.com/recaptcha/api/siteverify
CaptchaV3EmptyToken = Token ist leer #
CaptchaV3EmptySecretKey = Secret-Key ist nicht gesetzt #
CaptchaV3ResponseError = Recaptcha Response ist false #
CaptchaV3ScoreError = Score ist weniger als 0.5 #
CaptchaV3ActionName = # z. B. kontakt
CaptchaV3TechnicalProblem = Techn. Problem, keine Verbindung
CustomScore = # Wert von 0.1 – 1.0; Standard: 0.5
...
</Captcha>
Parameter | Beschreibung | Werte |
---|---|---|
UseReCaptchaV3 |
| [yes|no]; Standard: no |
Site-Key | Site-Key, wird von Google bezogen |
|
Secret-Key | Secret-Key, wird von Google bezogen |
|
Api-Url | Standardwert von Google | |
Verify-Url | Standardwert von Google | |
CaptchaV3EmptyToken | Fehlermeldung, wenn Token leer ist | Text, z. B. Token ist leer |
CaptchaV3EmptySecretKey | Fehlermeldung, wenn Secret-Key nicht gesetzt ist | Text, z. B. Secret-Key ist nicht gesetzt |
CaptchaV3ResponseError | „Success“-Parameter in Response ist "false" | Text, z. B. Recaptcha Response ist false |
CaptchaV3ScoreError | „Score“-Parameter in Response ist weniger als 0.5 | Text, z. B. Score ist weniger als 0.5 |
CaptchaV3ActionName | ActionName für Seite (z. B homepage, login ...) | Text, z. B. Kontakt |
CaptchaV3TechnicalProblem | Fehlermeldung bei technischem Problem | Text, z. B. Techn. Problem, keine Verbindung |
CustomScore | Recaptcha Custom Score (0.1 – 1.0), wir vergleichen diesen Wert mit der Response von Google, um zu prüfen, ob Form gültig ist | Zeichenanzahl, z. B. 30 Standard: 0.5. |
Konfiguration Friendly Captcha
Friendly Captcha sendet dem Benutzer ein kryptografisches Rätsel, das Gerät des Benutzers benötigt einige Sekunden, um dieses zu lösen, der Benutzer muss nichts tun.
<Captcha>
...
UseFriendlyCaptchaV1 = yes
FriendlyCaptchaV1ApplicationID = #ApplicationID aus FriendlyCaptcha Backend
FriendlyCaptchaV1APIKey = #API-Key aus FriendlyCaptcha
FriendlyCaptchaV1ApiUrl = https://eu-api.friendlycaptcha.eu/api/v1/puzzle #Endpoint (bei FC dokumentiert, global oder EU Endpoint)
FriendlyCaptchaV1VerifyUrl = https://eu-api.friendlycaptcha.eu/api/v1/siteverify #Endpoint (bei FC dokumentiert, global oder EU Endpoint)
FriendlyCaptchaV1TechnicalProblem = #
FriendlyCaptchaV1Denied = #
FriendlyCaptchaV1EmptySolution = #
...
</Captcha>
Parameter | Beschreibung | Werte |
---|---|---|
UseFriendlyCaptchaV1 |
| [yes|no]; Standard: no |
FriendlyCaptchaV1ApplicationID | ApplicationID, wird von FriendlyCaptcha bezogen |
|
FriendlyCaptchaV1APIKey | API-Key, wird von FriendlyCaptcha bezogen |
|
FriendlyCaptchaV1ApiUrl | Standardwert von FriendlyCaptcha | |
FriendlyCaptchaV1VerifyUrl | Standardwert von FriendlyCaptcha | |
FriendlyCaptchaV1TechnicalProblem | Fehlermeldung bei technischem Problem | Text, z. B. Techn. Problem, keine Verbindung |
FriendlyCaptchaV1Denied | Fehlermeldung, wenn Zugriff verweigert wird | Text |
FriendlyCaptchaV1EmptySolution | Fehlermeldung, wenn Captcha nicht gelöst wurde | Text |
Konfiguration des CATPCHA-Systems Captcha.eu
<Captcha>
...
UseCaptchaEu =
CaptchaEuPublic-Key =
CaptchaEuREST-Key =
CaptchaEuValidation-Url =
CaptchaEuJS-Url =
CaptchaEuEmptySolution =
CaptchaEuTechnicalProblem =
CaptchaEuResponseError =
...
</Captcha>
Parameter | Beschreibung | Werte |
---|---|---|
UseCaptchaEu | Aktiverung / Deaktivierung für die Verwendung des CAPTCHA-Systems captcha.eu |
|
CaptchaEuPublic-Key | Public-Key für das Captcha, der von captcha.eu bezogen werden muss |
|
CaptchaEuREST-Key | REST-API-Key für das Captcha, der von captcha.eu bezogen werden muss |
|
CaptchaEuValidation-Url | Standardwert von captcha.eu | |
CaptchaEuJS-Url | Standardwert von captcha.eu | |
CaptchaEuEmptySolution | Hinweismeldung, wenn keine Lösung des Captchas übergeben werden konnte, d.h. das Captcha konnte nicht gelöst werden | Text |
CaptchaEuTechnicalProblem | Fehlermeldung, wenn ein technisches Problem vorliegt, zum Beispiel captcha.eu ist nicht erreichbar oder der Zugriff verweigert wird | Text |
CaptchaEuResponseError | Hinweismeldung, wenn das Captcha der Menung ist, dass der Nutzer ein “robot” ist. | Text |
Nach der Konfiguration müssen Sie noch die entsprechenden Anpassungen am InquiryPage-Template vornehmen. Die entsprechende Anleitung dazu finden Sie hier.
Konfiguration des Blacklisting
Alle Einstellungen zu verwendeten Blacklists sind in der Sektion <Filter> zu finden.
Wenn eigene, lokale Blacklists verwendet werden sollen, werden diese im Online-Servicebereich (OSB) in der INQUIRY-Konfiguration als eigenen config-Dateien angelegt (Format siehe unten).
<Filter>
IP-Blacklisting = both
IP-Blacklist = ip.blacklist.config
MX-Blacklisting = both
MX-Blacklist = mx.blacklist.config
ErrorMessage = Ihre IP-Adresse ist gesperrt
</Filter>
Parameter | Beschreibung | Werte |
---|---|---|
IP-Blacklisting | Legt fest ob geprüft werden soll, ob die IP-Adresse des Anfragenden auf einer none: keine Prüfung global: Es wird nur die globale, von der WEBSALE AG gepflegte Blacklist verwendet (Für weitere Informationen kontaktieren Sie bitte WEBSALE AG) local: Es wird nur die lokal angegebene Blacklist verwendet both: Es wird die lokale und die globale Blacklist verwendet | [none][global][local][both] |
IP-Blacklist | Name der lokalen Blacklist-Datei für IP-Adressen | Beispiel: |
MX-Blacklisting | Legt fest, ob geprüft werden soll, ob einer der MX-Einträge der E-Mail-Adressen des Anfragenden (soweit vorhanden) auf einer Blacklist steht. Ist dies der Fall, kann der Anfragende die Anfrage nicht absenden. Dies ist vor allem gegen sogenannte "Gewinnspielclubs" ein Ansatz, Spam zu vermeiden! none: keine Prüfung global: Es wird nur die globale, von der WEBSALE AG gepflegte Blacklist verwendet (Für weitere Informationen kontaktieren Sie bitte WEBSALE AG) local: Es wird nur die lokal angegebene Blacklist verwendet both: Es wird die lokale und die globale Blacklist verwendet | [none][global][local][both] |
MX-Blacklist | Name der lokalen Blacklist mit MX-Einträgen, | Beispiel: |
ErrorMessage | Dieser Fehlerstring wird angezeigt, wenn der Anfragende aufgrund einer Blacklist die Anfrage nicht absenden kann. | Text, z. B. Ihre IP-Adresse ist gesperrt |
Format der Blacklist-Dateien
Pro Zeile kann ein Eintrag stehen, Kommentarzeichen ist #.
Domains
Für Domaineinträge kann ein beliebiger Teil der zu sperrenden Domain angegeben werden.
IP-Adressen
Es können sowohl Bereiche als auch einzelne IP-Adressen angegeben werden.
Beispiel:
##########################
# Blacklist für MX-Records
##########################
##########################
# Sperren von Domains:
##########################
# Sperre der Domain xyz.de (Achtung hier wird auch abcxyz.de mit gesperrt!):
xyz.de
# Sperren der Subdomains von xyz.de (Achtung xyz.de wird nicht mitgesperrt, aber z. B. mx0.xyz.de):
.xyz.de
# Sperren von *.abc.xyz.de
.abc.xyz.de
#######################
# Sperren von IP-Adressen
#######################
# Sperre des IP-Bereichs von 13.0.0.0 - 13.255.255.255
13.
# Sperre des IP-Bereichs von 172.16.1.0 - 172.16.1.255
172.16.1.
# Sperren der einzelnen IP-Adresse 172.16.1.10
172.16.1.10
# Teilbereichssperren wie z. B. 172.16.5.12 - 172.16.7.22 sind nicht möglich!
Fehlermeldungen für den Anwender
Alle konfigurierbaren Fehlermeldungen sind in der Sektion <ErrorMessages> zu finden.
<ErrorMessages>
Error = Um Ihre Anfrage bearbeiten zu können, prüfen Sie bitte folgende Angaben:
AddressEmailError = Rechnungsanschrift: Ungültige E-Mail-Adresse
DeliverEmailError = Lieferanschrift: Ungültige E-Mail-Adresse
CommonInputMissing = Treffen Sie bitte ihre Wahl / machen Sie folgende Angaben
NoInput = Füllen sie bitte mindestens ein Feld aus
</ErrorMessages>
Parameter | Beschreibung | Werte |
---|---|---|
Error | Dieser Fehlerstring wird immer angezeigt, wenn mindestens eine Eingabe fehlt oder falsch ist. Darunter werden dann die Details zu dem (den) Fehler(n) gezeigt. | Text, z. B. Um Ihre Anfrage bearbeiten zu können, prüfen Sie bitte folgende Angaben: |
AddressEmailError | Dieser Fehlerstring wird angezeigt, wenn die Überprüfung der E-Mail-Adresse der Rechnungsadresse fehlschlug. | Text, z. B. Rechnungsanschrift: Ungültige E-Mail-Adresse |
DeliverEmailError | Dieser Fehlerstring wird angezeigt, wenn die Überprüfung der E-Mail-Adresse der Lieferadresse fehlschlug. | Text, z. B. Lieferanschrift: Ungültige E-Mail-Adresse |
CommonInputMissing | Dieser Fehlerstring wird angezeigt, wenn der Benutzer keine Eingaben in einem allgemeinen Anfragefeld (keine Adressdaten) gemacht hat und die Option <Basic>
...
CommonInputRequired = yes
...
</Basic> gesetzt ist. Dieser Fehlerstring kann auch leer sein. Die Fehlermeldung wird dann nie angezeigt. | Text, z. B. Treffen Sie bitte ihre Wahl / machen Sie folgende Angaben |
NoInput | Dieser Fehlerstring wird angezeigt, wenn überhaupt keine Eingabe gemacht wurde, weder in allgemeinen Feldern noch in Adressfeldern. Dieser Fehlerstring kann auch leer sein. Die Fehlermeldung wird dann nie angezeigt. | Text, z. B. Füllen Sie bitte mindestens ein Feld aus |
Allgemeine Anfragefelder
INQUIRY4 kann in einem Formular bis zu 1000 allgemeine Anfragefelder bearbeiten. Ein allgemeines Anfragefeld hat folgende Form:
<+CommonInput>
Allow = yes
Type = CheckBox
Name = beratung
Descr = Ich möchte Beratung
Required = no
Hide = yes
Max = 100
</+CommonInput>
Parameter | Beschreibung | Werte |
---|---|---|
Allow | Wenn Sie diesen Parameter auf "yes" setzen, dann wird das Feld von INQUIRY4 bearbeitet und kontrolliert. Bei "no" wird das Eingabefeld nicht bearbeitet bzw. ignoriert. | [yes|no]; Standard: yes |
Type | Typ des Eingabefeldes. |
|
Name | Name des Eingabefeldes, welches Sie im HTML-Formular vergeben. Bitte beachten Sie: Die Namen der Eingabefelder müssen für das gesamte Formular eindeutig sein. Ein Feldname, z. B. "beratung", darf somit nicht mehrmals vorkommen. Die Namen der allgemeinen Anfragefelder dürfen nicht mi „A-“ oder „D-“ beginnen. | Text, z. B. beratung |
Descr | Textuelle Beschreibung des Feldes. Dieser Text erscheint in den E-Mails. | Text, z. B. Ich möchte Beratung |
Required | Wenn Sie diesen Parameter auf "yes" setzen, dann muß dieses Feld vom Anfragenden ausgefüllt oder markiert werden. | [yes][no]; Standard: no |
Hide | Wenn dieser Parameter auf „yes“ gesetzt wird, wird dieses Feld NICHT in einer automatisch generierten E-Mail erzeugt. | [yes][no]; Standard: no |
Max | Optional, maximale Länge der Eingabe | Zeichenanzahl, z. B. 100
|
Adressfelder
Adressfelder werden prinzipiell wie die allgemeinen Anfragefelder behandelt, besitzen jedoch jeweils eine eigene, fest definierte Sektion. Der Grund hierfür liegt u.a. darin, dass INQUIRY4 diese Felder der Adresse bzw. einer optionalen Lieferadresse zuordnet und diese gesondert behandelt.
Felder der Adressdaten beginnen mit „A-“, die der Lieferadresse mit „D-“ (für Delivery). Es werden dabei alle von WEBSALE V8 verwendeten Felder von INQUIRY4 unterstützt.
z. B.
Wert | Feld |
---|---|
Vorname |
|
Nachname (Lieferadresse) |
|
Anrede |
|
usw.
Spezialfeld: Das Feld <A-MerchantEmail>
verhält sich wie ein normales Eingabefeld. Der eingegebene/übergebene Wert wird allerdings als Liste von E-Mail-Adressen (die einzelnen E-Mail-Adressen müssen durch ein Komma voneinander getrennt sein) interpretiert. An diese E-Mail-Adressen wird zusätzlich zu der konfigurierten E-Mail-Adresse die Anfrage-E-Mail gesendet.
Sektion SendUserEmail
Dies ist ein spezielles, fest definiertes Feld, welches vorhanden sein muss, wenn der Parameter SendEmail in der Sektion <ConfirmEmail>
den Wert userselect hat.
Mit diesem Feld wird definiert, über welches HTML-Element der Benutzer steuern kann, ob er eine E-Mail erhält oder nicht.
Das Feld hat die Form:
<SendUserEmail>
Type = CheckBox
Name = confirmemail
Descr = Ich möchte eine Bestätigungsemail erhalten
UseInput = A
</SendUserEmail>
Parameter | Beschreibung | Werte |
---|---|---|
Type | Typ des Eingabefeldes. |
|
Name | Name des Eingabefeldes, welches Sie im HTML-Formular vergeben haben. | Text, z. B. confirmemail |
Descr | Textuelle Beschreibung des Feldes. | Text, z. B. Ich möchte eine Bestätigungs-E-Mail erhalten |
UseInput | Wenn dieser Parameter „A“ ist, wird die E-Mail-Adresse zwingend benötigt, wenn der Benutzer eine Bestätigungsemail wünscht. Wenn dieser Parameter „D“ ist, wird die optionale E-Mail-Adresse der Lieferadresse zwingend benötigt, wenn der Benutzer eine Bestätigungsemail wünscht. Wenn dieser Parameter „AD“ ist wird sowohl die E-Mail-Adresse als auch die optionale E-Mail-Adresse der Lieferadresse zwingend benötigt, wenn der Benutzer eine Bestätigungsemail wünscht. | [A][D][AD] Standard: A |
Globale Konfigurationsdatei inquiry-global.config
Zusätzlich zu den individuellen Formular-Konfigurationsdateien kann auch eine globale Konfigurationsdatei angelegt werden, deren Einstellungen sich im Standard auf alle Formulare des Shops beziehen. Innerhalb der Datei kann definiert werden, ob die Einstellungen tatsächlich für alle Formulare des Shops gelten oder nur für bestimmte Formulare.
Diese Konfigurationsdatei muss inquiry-global.config
heißen.
Sie muss im Online Servicebereich im Service Konfiguration unterhalb des Tabs Konfiguration > Shop im Abschnitt Global.
Erklärung und Beschreibung der Parameter
Parameter und Erklärungen für <Protection>
<Protection>
<+Entry>
ID =
Action =
Standard =
Type =
RegEx =
IPReputationList =
WAF =
CheckExtern =
CheckExternBasicAuth =
FilterSigns =
</+Entry>
</Protection>
Über den Abschnitt <Protection>
können erweiterte Sicherheitsmechanismen zur Vermeidung von SPAM für die Formulare hinterlegt werden, die über das WEBSALE Formular-Modul Inquiry4 erstellt worden sind.
Parameter | Beschreibung | Werte |
---|---|---|
+Entry |
|
|
Parameter und Erklärungen für +Entry
Parameter | Beschreibung | Werte |
---|---|---|
ID |
|
|
Standard |
|
|
Action |
|
|
Type |
|
|
RegEx |
|
|
IPReputationList |
|
|
WAF |
|
|
CheckExtern |
|
|
CheckExternBasicAuth |
|
|
CheckExternOnErrorBehavior |
|
|
CheckExternBearerToken |
|
|
FilterSigns |
|
|
Aktivierung / Deaktivierung nur für bestimmte Formulare
Aktivierung nur für bestimmte Formulare
Die Einschränkung bestimmter Zeichenfolgen – beispielsweise das Untersagen der Eingabe von „ABCDE“ – wird in der Datei inquiry-global.config
definiert. Diese Einschränkung ist jedoch standardmäßig nicht für alle Formulare aktiv (Standard = inactive
).
<Protection>
...
<+Entry>
ID = deleteRule
Standard = inactive
Type = FilterSigns
FilterSigns = ABCDE
</+Entry>
...
</Protection>
Um die Zeichenfolgenprüfung gezielt für ein bestimmtes Formular – beispielsweise das Kontaktformular (contact.config) – zu aktivieren, muss der folgende Eintrag in der zugehörigen Formular-Konfigurationsdatei vorgenommen werden:
<Protection>
+ID = deleteRule
</Protection>
Innerhalb des <Protection>
-Abschnitts können über den Parameter +ID gezielt Sicherheitsmechanismen aus der globalen Konfigurationsdatei eingebunden und aktiviert werden. Dadurch lässt sich flexibel steuern, welche Schutzmaßnahmen für welche Formulare gelten.
Deaktivierung nur für bestimmte Formulare
In der Datei inquiry-global.config
wird die Zeichenfolgenprüfung – z. B. das Untersagen der Eingabe von „ABCDE“ – standardmäßig für alle Formulare aktiviert (Standard = active).
<Protection>
...
<+Entry>
ID = deleteRule
Standard = active
Type = FilterSigns
FilterSigns = ABCDE
</+Entry>
...
</Protection>
Falls diese Zeichenfolgenprüfung für ein bestimmtes Formular – beispielsweise das Kontaktformular (contact.config) – deaktiviert werden soll, muss in der jeweiligen Formular-Konfigurationsdatei folgender Eintrag vorgenommen werden:
<Protection>
-ID = deleteRule
</Protection>
Innerhalb des <Protection>
-Abschnitts können über den Parameter -ID gezielt Sicherheitsmechanismen aus der globalen Konfigurationsdatei deaktiviert werden. Dadurch lässt sich flexibel steuern, welche Schutzmaßnahmen für welche Formulare gelten.
Konfiguration von IP-Reputationslisten
Die IPReputationList ermöglicht den Abgleich eingehender Anfragen mit bekannten IP-Reputationslisten. Dadurch können Anfragen von als schädlich oder verdächtig eingestuften IP-Adressen automatisch blockiert werden.
In der globalen Konfigurationsdatei inquiry-global.config
muss der folgende +Entry
hinzugefügt werden, um die Überprüfung gegen bestimmte IP-Reputationslisten zu aktivieren.
<Protection>
...
<+Entry>
ID = IPListValditation
Standard = active
Action = block
Type = IPReputationList
IPReputationList = blocklist.de, firehol.org-1, firehol.org-2, firehol.org-3, firehol.org-4, stopforumspam.com
</+Entry>
...
</Protection>
Attribute
ID = IPListValidation
: Eindeutige ID für diesen Sicherheitsmechanismus.Standard = active
: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wird.Action = block
: Gibt an, dass Anfragen von einer gelisteten IP blockiert werden. Alternativ kannignore
gesetzt werdenType = IPReputationList
: Definiert den Sicherheitsmechanismus als IP-Reputationsprüfung.IPReputationList =
: Liste der externen IP-Blocklisten, die zur Prüfung herangezogen werden. Mehrere Werte werden durch Kommas getrennt.
Alle Parameter und deren Beschreibung sind unter "Parameter und Erklärungen für +Entry" noch einmal ausführlich aufgeführt.
Konfiguration Web Application Firewall (WAF)-Prüfungen
Die Web Application Firewall (WAF) schützt vor bekannten Angriffsvektoren, indem verdächtige oder schädliche Anfragen automatisch erkannt und blockiert werden.
In der globalen Konfigurationsdatei inquiry-global.config
muss der folgende +Entry
hinzugefügt werden, um die WAF-Prüfung zu aktivieren:
<Protection>
...
<+Entry>
ID = WAFValidation
Standard = active
Action = block
Type = RestrictiveWAFPolicies
WAF =
</+Entry>
...
</Protection>
Attribute
ID = WAFValidation
: Eindeutige ID für diesen Sicherheitsmechanismus.Standard = active
: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wird.Action = block
: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kannignore
gesetzt werden.Type = RestrictiveWAFPolicies
: Definiert den Sicherheitsmechanismus als restriktive WAF-Policy.WAF =
: Platzhalter für zukünftige spezifische WAF-Regeln. Aktuell leer, da die Standardregeln des OWASP Core Rule Set angewendet werden (Stand: 03/2025)
Alle Parameter und deren Beschreibung sind unter "Parameter und Erklärungen für +Entry" noch einmal ausführlich aufgeführt.
Konfiguration eigener Prüfungsmechanismen über REST-Schnittstelle
Die CheckExtern-Funktion ermöglicht es, eine externe Prüfungs-API einzubinden, um Formulareingaben vor der Verarbeitung zu validieren. Alle relevanten Eingabedaten werden per Server-zu-Server-POST-Anfrage als JSON an die angegebene URL gesendet. Die Antwort entscheidet, ob die Anfrage weiterverarbeitet oder blockiert wird.
In der globalen Konfigurationsdatei inquiry-global.config
muss der folgende +Entry
hinzugefügt werden, um eine externe Prüfung zu aktivieren:
<Protection>
...
<+Entry>
ID = externValidation
Standard = active
Action = block
Type = CheckExtern
CheckExternURL = https://example.com/api/check
CheckExternOnErrorBehavior = block
CheckExternBasicAuth = user:pass
CheckExternBearerToken = secrettoken123
</+Entry>
...
</Protection>
Attribute
ID = externValidation
: Eindeutige ID für diesen Sicherheitsmechanismus.Standard = active
: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wirdAction = block
: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kannignore
gesetzt werdenType = CheckExtern
Definiert den Sicherheitsmechanismus als externe Prüfungsanfrage per REST-APICheckExternURL =
: Ziel-URL für die externe Prüfung. Muss eine gültige HTTPS-Adresse seinCheckExternOnErrorBehavior =
: Fehlverhalten der externen Prüfung:block
(Standard) verhindert Anfragen bei technischen Fehlern,pass
erlaubt sie trotzdemCheckExternBasicAuth =
: Optionale Basic Authentication für die API (Format:user:pass
).CheckExternBearerToken =
: Optionaler Bearer-Token für API-Authentifizierung. Wird im Header alsAuthorization: Bearer <Token>
gesendet.
Alle Parameter und deren Beschreibung sind unter "Parameter und Erklärungen für +Entry" noch einmal ausführlich aufgeführt.
Das Modul sendet alle erfassten Eingaben sowie zusätzliche Informationen als JSON-Objekt per POST an die konfigurierte URL (CheckExternURL
), z.B.
{
"IPAddress": "",
"Referer": "",
"SubReferer": "",
"CustomerAddress": {
...
},
"DeliveryAddress": {
...
},
"CommonInput": {
...
},
"Upload": {
"UploadID": "",
"FileNames": [
{
"FileName": ""
},
...
]
}
}
Parameter oder Strukturen können fehlen, wenn sie nicht für das Formular vorhanden oder definiert sind.
Die externe API muss eine gültige JSON-Antwort mit einem HTTP-Statuscode 200 OK zurückgeben. Wichtig ist, dass das externe System innerhalb von 3 Sekunden antwortet, ansonsten wird dies als Kommunikationfehler interpretiert.
Die Anfrage wird als erfolgreich gewertet und weiterverarbeitet:
{ "result": "OK" }
Die Anfrage wird blockiert:
{ "result": "failed" } -> oder beliebiger anderer Wert
Andere HTTP-Statuscodes oder ungültige Antworten werden als Kommunikationsfehler betrachtet, und das Verhalten wird gemäß CheckExternOnErrorBehavior
angewendet (block
oder pass
).
Konfiguration für das Herausfiltern bestimmter Zeichen aus Eingaben
Die FilterSigns-Funktion ermöglicht das automatische Entfernen unerwünschter Zeichen aus Benutzereingaben. Dadurch können unerwünschte oder sicherheitskritische Zeichen gefiltert werden, bevor die Eingaben weiterverarbeitet werden.
In der globalen Konfigurationsdatei inquiry-global.config
muss der folgende +Entry
hinzugefügt werden, um eine externe Prüfung zu aktivieren:
<Protection>
...
<+Entry>
ID = deleteSignsValidation
Standard = active
Active = block
Type = FilterSigns
FilterSigns = !$%
</+Entry>
...
</Protection>
Attribute
ID = deleteSignsValidation
: Eindeutige ID für diesen Sicherheitsmechanismus.Standard = active
: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wirdAction = block
: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kannignore
gesetzt werdenType = FilterSigns
: Definiert den Sicherheitsmechanismus als Zeichenfilterung.FilterSigns = !$%
: Liste der zu entfernenden Zeichen. Mehrere Zeichen werden ohne Trennzeichen angegeben.
Alle Parameter und deren Beschreibung sind unter "Parameter und Erklärungen für +Entry" noch einmal ausführlich aufgeführt.
Konfiguration zusätzlicher Inhaltsfilter mittels Regular Expressions
Die RegEx-Filterung ermöglicht das Blockieren oder Ignorieren von Anfragen, wenn eine bestimmte Zeichenfolge oder ein bestimmtes Muster in den Eingaben erkannt wird. Dies dient zum Schutz vor Injection-Angriffen, Spam oder unerwünschten Eingaben.
In der globalen Konfigurationsdatei inquiry-global.config
muss der folgende +Entry
hinzugefügt werden, um eine externe Prüfung zu aktivieren:
<Protection>
...
<+Entry>
ID = RegExValidation
Standard = active
Action = block
Type = RegEx
RegEx = (if\(|\bsysdate\b|sleep\(|SELECT\(|SELECT\s\*|PG_SLEEP|example\.com)
</+Entry>
...
</Protection>
Attribute
ID = RegExValidation
: Eindeutige ID für diesen Sicherheitsmechanismus.Standard = active
: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wirdAction = block
: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kannignore
gesetzt werdenType = RegEx
: Definiert den Sicherheitsmechanismus als Regulären Ausdruck zur InhaltsprüfungRegEx =
: Regulärer Ausdruck, der auf die Eingabe angewendet wird. Wird ein Treffer gefunden, wird die Anfrage gemäßAction
behandelt
Alle Parameter und deren Beschreibung sind unter "Parameter und Erklärungen für +Entry" noch einmal ausführlich aufgeführt.
Die im Beispiel verwendete RegEx prüft auf typische SQL-Injection- und Spam-Muster:
RegEx-Ausdruck | Erklärung |
---|---|
| Erkennt die Verwendung von |
| Erkennt |
| Erkennt die |
| Erkennt SQL- |
| Erkennt |
| Erkennt PostgreSQL-spezifische |
| Erkennt Referenzen zu |
Fehlermeldungsausgabe der Protection-Regeln im Template
Falls eine Anfrage aufgrund einer Protection-Regel blockiert wurde, kann eine entsprechende Fehlermeldung im InquiryPage-Template ausgegeben werden.
Allgemeine Fehlerausgabe für alle Protection
-Regeln:
...
{INQUIRY-ProtectionTriggered}
<!-- Liste der fehlgeschlagenen IDs aus den +Entry Abschnitten -->
~INQUIRY-ProtectionTriggered~
{/INQUIRY-ProtectionTriggered}
...
Das Einzeltag gibt die Liste der IDs aus den +Entry-Einträgen aus, die zur Ablehnung der Anfrage geführt haben.
Die Ausgabe gilt für alle Sicherheitsmechanismen
Falls eine spezifische Fehlermeldung für eine bestimmte Regel erwünscht ist, muss dies über eine dedizierte ID im Template definiert werden, z.B. über einen DC-(DesignControl)-Tags, z.B.
...
{INQUIRY-ProtectionTriggered}
<!-- Liste der fehlgeschlagenen IDs aus den +Entry Abschnitten -->
~DC-FPProtectionID_set($INQUIRY-ProtectionTriggered$)~
...
{DC-FPProtectionID(RegExValidation)}
Fehlermeldung für RegEx Regel
{/DC-FPProtectionID(RegExValidation)}
...
{DC-FPProtectionID(deleteSignsValidation)}
Fehlermeldung für FilterSigns-Regel
{/DC-FPProtectionID(deleteSignsValidation)}
...
{/INQUIRY-ProtectionTriggered}
...
Tags und Templates
INQUIRY4 bietet Ihnen die Möglichkeit, in Ihren Templates durch bestimmte, wohldefinierte „Tags“ Informationen entsprechend den Benutzereingaben einzufügen bzw. bestimmte Bereiche ein- oder auszublenden.
Verwendung von Tags
Arten von Tags
Es existieren 3 Arten von Tags:
Einfache Ersetzungs-Tags | Diese haben die Form ~TAG-Name~. Das Tag wird durch den entsprechenden Wert ersetzt. |
Bereichs-Tags | Ein Bereich wird mit {TAG-Name} geöffnet und mit {/TAG-Name} geschlossen. Dieser Bereich wird nur angezeigt, wenn das TAG irgendeinen Wert hat. |
Negative Bereichs-Tags | Ein negativer Bereich wird mit {!TAG-Name} geöffnet und mit {/!TAG-Name} geschlossen. Dieser Bereich wird nur angezeigt, wenn kein Wert für dieses TAG existiert. |
Ein Tag kann im Template entweder in Form eines einfachen Ersetzungs-Tags und/oder eines Bereichs-Tags und/oder eines negativen Bereichs-Tags eingesetzt werden. Folgende Kodierung soll hierzu gelten:
Kodierung der Einsatzmöglichkeiten, z. B.: 100
Die erste Stelle „1“ bezieht sich auf Ersetzungstags. Die 2. Stelle „0“ bezieht sich auf Bereichs-Tags und die 3. Stelle „0“ auf negative Bereichs-Tags.
1 bedeutet: wird unterstützt
0 bedeutet: keine Unterstützung
Unterstützt | Einfaches Tag | Bereichs-Tag | neg. Bereichs-Tag |
---|---|---|---|
100 | ja | nein | nein |
011 | nein | ja | ja |
111 | ja | ja | ja |
Beispiel 1:
Tag | Unterstützt | Beschreibung | Besonderheit |
---|---|---|---|
Beispiel | 100 | Tag für das Feld ABCDE | Dieser Text wird nicht beim ersten Aufruf des Formulars mit INQUIRY4 angezeigt, sondern nur, wenn beim Absenden des Formulars ein Fehler festgestellt wurde. |
Dieses Tag können Sie im Template wie folgt verwenden:
~ABCDE~ ok, weil 100
Sie können dieses Tag allerdings nicht wie folgt verwenden:
{ABCDE} falsch! weil 100
Text Text Text Text Text Text
{/ABCDE}
Dieses Beispiel-Tag unterstützt mit 100 also nur die Möglichkeiten eines “Einfachen Tags“, ist aber kein “Bereichs-Tag“ bzw. kein “Negatives Bereichs-Tag“.
Beispiel 2:
Tag | Unterstützt | Beschreibung |
---|---|---|
INFO-Referer | 111 | Zeigt den als Parameter |
Dieses Tag können Sie im Template wie folgt verwenden:
~INFO-Referer~ ok, weil 111
Dadurch wird dieses Tag durch den übergebenen Wert ersetzt.
Sie können dieses Tag allerdings auch als Bereichs-Tag oder Negatives Bereichs-Tag verwenden:
(a)
{INFO-Referer} ok, weil 111
Folgender Referer wurde übergeben: ~INFO-Referer~.
{/INFO-Referer}
(b)
{!INFO-Referer} ok, weil 111
Es wurde kein Referer übergeben.
{/!INFO-Referer}
Wenn ein Referer übergeben wurde, wird nur der Bereich (a) angezeigt. Wurde kein Referer übergeben, wird nur der Bereich (b) angezeigt.
Verschachtelung von Tags
In einem Bereich (Anzeigebereich auf der erzeugten Webseite) dürfen wiederum beliebige andere Tags vorkommen.
Beispiel:
{A-LastName_value}
Der von Ihnen eingegebene Nachname lautet: ~A-LastName_value~
{/A-LastName_value}
Im Fehlerfall wäre auf der Formularseite z. B. zu lesen:
Herr <Name>, die Eingabe der folgenden Punkte war nicht korrekt:
Unterstützte Tags
INQUIRY4 kennt hierbei folgende Tags:
Tags der Adressdaten
Die Tags der Adressdaten beginnen alle mit „A-“ und haben die gleiche Bezeichnung wie die zugehörige Sektion in der Konfigurationsdatei.
Es existieren drei Suffixe, die in Kombination mit dem Sektionsnamen ein gültiges Tag ergeben:
Suffix | Beschreibung |
---|---|
_value | Der vom Nutzer eingegebene Wert |
_descr | Die Beschreibung, wie in der Konfigurationsdatei angegeben |
_name | Der HTML-Name, wie in der Konfigurationsdatei angegeben. |
_max | Die in der Konfigurationsdatei angegebene maximale Eingabelänge |
_error | Fehlerhafte Eingabe:
|
Jedes so erzeugte Tag unterstützt dabei alle drei Arten von Tags.
{A-LastName_value}
Eingegebener Nachname: ~A-LastName_value~
{/A-LastName_value}
Dadurch wird der vom Benutzer eingegebene Nachname, wenn vorhanden, angezeigt.
~A-FirstName_descr~:
<input type=“text“ name=“~A-FirstName_name~“ size=32 maxlength="~A-FirstName_max~">
Hier wird ein Eingabefeld für den Vornamen erstellt, wobei der HTML-Name wie in der Konfigurationsdatei angegeben eingefügt und die Beschreibung aus der Konfigurationsdatei vorangestellt wird.
Zusätzlich können die Bereichs- und negativen Bereichs-Tags mit dem Suffix _value auf bestimmte eingegebene Werte geklammert werden.
{A-Country_value(DEU)}
Dieser Bereich wird nur angezeigt, wenn als Land Deutschland ausgewählt wurde.
{/A-Country_value(DEU)}
Daneben können Zusatzfelder (sog. Suffix-Felder) verwendet werden.
Auch die Tags der Suffix-Felder beginnen mit „A-“ und haben die gleiche Bezeichnung wie die zugehörige Sektion in der Konfigurationsdatei.
Achtung: Im INQUIRY können maximal 10 Suffix-Felder (<A-Suffix1>
bis <A-Suffix10>
) genutzt werden. Wenn Sie mehr Zusatzfelder einsetzen möchten, müssen diese mit <+CommonInput>
realisiert werden. (Siehe oben Allgemeine Anfragefelder)
Zusätzliche Tags:
Tag | Unterstützt | Beschreibung | Besonderheit |
---|---|---|---|
A-Salutation_list | 100 | Generiert automatisch eine Listbox mit Anreden. Dabei wird die Datei aus der Sektion |
|
A-Salutation_complete | 100 | Die vollständige Anrede. Zur Erzeugung dieser wird die Datei aus der Sektion |
|
A-Title_list | 100 | Generiert automatisch eine Listbox mit Titeln. Dabei wird die Datei aus der Sektion | Die erzeugte Listbox besitzt die Styles-klasse |
A-Country_list | 100 | Generiert automatisch eine Listbox mit Ländern. Dabei wird die Datei aus der Sektion | Die erzeugte Listbox besitzt die Styles-klasse |
A-DateOfBirth_list | 100 | Generiert automatisch drei Listboxen zur Auswahl des Geburtsdatums. | Die erzeugten Listboxen besitzen die Styles-klasse |
Tags der optionalen Lieferadresse
Die Tags der Lieferadresse werden analog zu denen der Adressdaten gebildet.
Die Tags der Lieferadresse beginnen alle mit „D-“ und haben die gleiche Bezeichnung wie die zugehörige Sektion in der Konfigurationsdatei.
Es existieren drei Suffixe, die in Kombination mit dem Sektionsnamen einen gültigen Tag ergeben:
Suffix | Beschreibung |
---|---|
_value | Der vom Nutzer eingegebene Wert |
_descr | Die Beschreibung, wie in der Konfigurationsdatei angegeben |
_name | Der HTML-Name, wie in der Konfigurationsdatei angegeben. |
_max | Die in der Konfigurationsdatei angegebene maximale Eingabelänge |
_error | Fehlerhafte Eingabe:
|
Jedes so erzeugte Tag unterstützt dabei alle drei Arten von Tags.
{D-LastName_value}
Eingegebener Nachname: ~D-LastName_value~
{/D-LastName_value}
Dadurch wird der vom Benutzer eingegebene Nachname, wenn vorhanden, angezeigt.
~D-FirstName_descr~:
<input type=“text“ name=“~D-FirstName_name~“ size=32 maxlength="~D-FirstName_max~">
Hier wird ein Eingabefeld für den Vornamen erstellt, wobei der HTML-Name wie in der Konfigurationsdatei angegeben eingefügt und die Beschreibung aus der Konfigurationsdatei vorangestellt wird.
Zusätzlich können die Bereichs- und negativen Bereichs-Tags mit dem Suffix _value
auf bestimmte eingegebene Werte geklammert werden.
{D-Country_value(DEU)}
Dieser Bereich wird nur angezeigt, wenn als Land der Lieferadresse
Deutschland ausgewählt wurde.
{/D-Country_value(DEU)}
Daneben können Zusatzfelder (sog. Suffix-Felder) verwendet werden.
Auch die Tags der Suffix-Felder beginnen mit „D-“ und haben die gleiche Bezeichnung wie die zugehörige Sektion in der Konfigurationsdatei.
Achtung: Im INQUIRY können maximal 10 Suffix-Felder (<D-Suffix1>
bis <D-Suffix10>
) genutzt werden. Wenn Sie mehr Zusatzfelder einsetzen möchten, müssen diese mit <+CommonInput>
realisiert werden (Siehe oben Allgemeine Anfragefelder).
Zusätzliche Tags:
Tag | Unterstützt | Beschreibung | Besonderheit |
---|---|---|---|
D-Salutation_list | 100 | Generiert automatisch eine Listbox mit Anreden. Dabei wird die Datei aus der Sektion <Basic>, Parameter SalutationDat verwendet. | Die erzeugte Listbox besitzt die Styles-klasse „select_d_salut“. |
D-Salutation_complete | 100 | Die vollständige Anrede. Zur Erzeugung dieser wiird die Datei aus der Sektion |
|
D-Title_list | 100 | Generiert automatisch eine Listbox mit Titeln. Dabei wird die Datei aus der Sektion | Die erzeugte Listbox besitzt die Styles-klasse |
D-Country_list | 100 | Generiert automatisch eine Listbox mit Ländern. Dabei wird die Datei aus der Sektion | Die erzeugte Listbox besitzt die Styles-klasse |
D-DateOfBirth_list | 100 | Generiert automatisch drei Listboxen zur Auswahl des Geburtsdatums. | Die erzeugten Listboxen besitzen die Styles-klasse |
Tags von allgemeinen Eingabefeldern
Die Tags der allgemeinen Eingabefelder beginnen alle mit „C-“ und werden aus diesem Prefix, dem HTML-Namen und dem entsprechenden Suffix gebildet.
Es existieren drei Suffixe, die in Kombination mit dem Prefix „C-“ und dem HTML-Namen ein gültiges Tag ergeben:
Suffix | Beschreibung |
---|---|
_value | Der vom Nutzer eingegebene Wert |
_descr | Die Beschreibung, wie in der Konfigurationsdatei angegeben |
_name | Der HTML-Name, wie in der Konfigurationsdatei angegeben. |
_max | Die in der Konfigurationsdatei angegebene maximale Eingabelänge |
_error | Fehlerhafte Eingabe:
|
Jedes so erzeugte Tag unterstützt dabei alle drei Arten von Tags.
Konfigurationsdatei:
<+CommonInput>
Allow = yes
Type = TextArea
Name = field2
Descr = Bemerkungen
Required = no
</+CommonInput>
Template Anfrage:
~C-field2_descr~:
<textarea name="~C-field2_name~"></textarea>
Template E-Mail:
{C-field2_value}
Usereingabe bei ~C-field2_descr~:
~C-field2_value~
{/C-field2_value}
{!C-field2_value}
User machte keine Angabe zu ~C-field2_descr~
{/!C-field2_value}
Hier wird eine Textarea als allgemeines Eingabefeld erstellt, im HTML-Template angezeigt und bei einer Benutzereingabe der Wert bzw. bei keiner Eingabe eine alternative Nachricht in der E-Mail verschickt.
Zusätzlich können die Bereichs- und negativen Bereichs-Tags mit dem Suffix _value
auf bestimmte eingegebene Werte geklammert werden.
{C-field2_value(anfrage)}
Dieser Bereich wird nur angezeigt, wenn der Kunde im Feld field2 „anfrage“ eingegeben hat.
{/C-field2_value(anfrage)}
Tags der CAPTCHA-Funktionen
Allgemeines Tag
Tag | Unterstützt | Beschreibung |
---|---|---|
CAPTCHA-Description | 111 | Gibt die Beschreibung der CAPTCHA-Funktionalität aus. (Konfigurationsdatei: Abschnitt Parameter |
Tags für die Rechenaufgabe und Beispiel
Tag | Unterstützt | Beschreibung | Besonderheit |
---|---|---|---|
CAPTCHA-Input_name | 100 | Der HTML-Name des CAPTCHA-Eingabefelds |
|
CAPTCHA-Input_error | 111 | Fehlerhafte Eingabe im CAPTCHA-Eingabefeld
|
|
CAPTCHA-Input_value | 111 | Der vom Anfragenden eingegebene Wert im CAPTCHA-Eingabefeld | Dieser Wert wird nur nach korrekter Eingabe des CAPTCHA- Eingabefelds ausgegeben! |
CAPTCHA-Result | 111 | Die korrekte erwartete CAPTCHA-Eingabe
| NUR ZU TESTZWECKEN VERWENDEN! |
CAPTCHA-ArithmeticOperand1 | 111 | Der erste Operand der Rechenaufgabe |
|
CAPTCHA-ArithmeticOperand2 | 111 | Der zweite Operand der Rechenaufgabe |
|
CAPTCHA-ArithmeticOperation | 111 | Die Rechenoperation der Rechenaufgabe |
|
Beispiel:
~CAPTCHA-ArithmeticOperand1~
~CAPTCHA-ArithmeticOperation~
~CAPTCHA-ArithmeticOperand2~
=
<input type="text" class="stdinput~CAPTCHA-Input_error~" value="~CAPTCHA-Input_value~" name="~CAPTCHA-Input_name~" size="10" maxlength="10">
Hierbei wird das Eingabefeld im Fall einer fehlerhaften Eingabe markiert.
Wurde versucht, das Formular mit richtig gelöster Rechenaufgabe abzusenden, aber andere Eingaben wurden nicht korrekt ausgeführt, muss der Anfragende keine neue Rechenaufgabe lösen, sondern die bereits gelöste Aufgabe wird inklusive korrekt ausgefüllten Eingabefeldes wieder angezeigt.
Tags für Google ReCaptcha Version 3 und JavaScript
Tag | Unterstützt | Beschreibung |
---|---|---|
CAPTCHA-RecaptchaV3SiteKey | 100 | Site-Key, der von Google bezogen und in |
CAPTCHA-RecaptchaV3ApiUrl | 100 | URL von Google bezogen und in |
CAPTCHA-RecaptchaV3ActionName | 100 | z. B. homepage, login usw., in |
CAPTCHA-RecaptchaV3Error | 111 | Fehlermeldung von |
CAPTCHA-RecaptchaV3Score | 111 | Recaptcha Score von Google |
CAPTCHA-RecaptchaV3Response | 111 | technische Antwort von Google, kann zur Fehleranalyse verwendet werden |
CAPTCHA-RecaptchaV3ErrorCode | 111 | interner Fehlercode, kann zur Fehleranalyse verwendet werden |
JavaScript-Code, der auf dem Template eingefügt werden muss:
<script src="~CAPTCHA-RecaptchaV3ApiUrl~?render=~CAPTCHA-RecaptchaV3SiteKey~"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('~CAPTCHA-RecaptchaV3SiteKey~', {action: '~CAPTCHA-RecaptchaV3ActionName~'}).then(function(token) {
$("[name='g_recaptcha_token']").val(token); //Token wird bezogen und sein Wert im input-Element im Formular gespeichert
});
});
</script>
HTML-Code, der auf dem Formular eingefügt werden muss:
<form>
...
<input type="hidden" name="g_recaptcha_token">
...
</form>
Tags für Friendly Captcha
Tag | Unterstützt | Beschreibung |
---|---|---|
CAPTCHA-FriendlyCaptchaV1ApiUrl | 111 | URL von Friendly Captcha bezogen und in |
CAPTCHA-FriendlyCaptchaV1ApplicationID | 111 | ApplicationID aus FriendlyCaptcha Backend |
CAPTCHA-FriendlyCaptchaV1Error | 111 | Fehlermeldung von |
CAPTCHA-FriendlyCaptchaV1Response | 111 | technische Antwort von Friendly Captcha, kann zur Fehleranalyse verwendet werden |
CAPTCHA-FriendlyCaptchaV1ErrorCode | 111 | interner Fehlercode, kann zur Fehleranalyse verwendet werden |
Code, der auf dem Template eingefügt werden muss:
<script
type="module"
src="https://cdn.jsdelivr.net/npm/friendly-challenge@0.9.14/widget.module.min.js"
async
defer
></script>
<script nomodule src="https://cdn.jsdelivr.net/npm/friendly-challenge@0.9.14/widget.min.js" async defer></script>
<div class="frc-captcha" data-sitekey="~CAPTCHA-FRIENDLYCAPTCHAV1-ApplicationID~" data-puzzle-endpoint="~CAPTCHA-FRIENDLYCAPTCHAV1-APIUrl~" data-start="focus"></div>
Tags für das CAPTCHA-System captcha.eu
Bitte beachten Sie, dass Sie vor der Integration der Tags in das InquiryPage-Template die entsprechende Konfiguration in der Formular-Konfiguration vorgenommen haben.
Tag | Unterstützt | Beschreibung |
---|---|---|
CAPTCHA-CaptchaEuPublicKey | 1110 | Tag für die Ausgabe des in der Konfiguration hinterlegten Public-Keys |
CAPTCHA-CaptchaEuValidationURL | 1110 | Tag für die Ausgabe einer URL für das benötigte CAPTCHA-Javascript |
CAPTCHA-CaptchaEuErrorCode | 1110 | Tag für die Ausgabe der technischen Fehlercode, die dann für die Ausgabe entsprechender Fehlermeldungen oder zum Debuggen verwendet werden können. |
CAPTCHA-CaptchaEuError | 1110 | Tag für die Ausgabe der in der Formular-Konfiguration hinterlegten Fehlermeldungen. |
CAPTCHA-CaptchaEuResponse | 1110 | Tag für die Ausgabe der Server-to-Server Antwort von captcha.eu zum Debuggen. |
Die Integration von captcha.eu erfolgt über ein JavaScript-SDK, das sicherstellt, dass die CAPTCHA-Verifizierung erfolgreich durchgeführt wird, bevor das Formular gesendet wird. Es gibt zwei Möglichkeiten, das CAPTCHA in ein Formular einzubinden:
Automatische Überprüfung beim Absenden des Formulars
Asynchrone Lösung mit einem versteckten Eingabefeld
1. Automatische Prüfung beim Absenden (Intercept Submit-Button)
In dieser Variante wird das Captcha-Skript automatisch beim Absenden des Formulars ausgeführt. Es fängt den Submit-Button ab, prüft das Captcha und sendet das Formular erst nach erfolgreicher Validierung.
<script type="text/javascript" src="~CAPTCHA-CaptchaEuValidationURL~"></script>
<script type="text/javascript">
KROT.setup("~CAPTCHA-CaptchaEuPublicKey~");
var form = document.getElementById("<ID Ihres Formulars>");
KROT.interceptForm(form);
</script>
2. Asynchrone Prüfung mit verstecktem Eingabefeld
Hierbei wird die CAPTCHA-Lösung nach dem Laden der Seite per JavaScript asynchron vom Server abgerufen und in ein verstecktes Feld (captcha_at_solution
) geschrieben. Beim Absenden des Formulars wird die im Hintergrund gelöste CAPTCHA-Antwort übermittelt.
<body>
...
<form action="~FORM-SSLTemplate(<IHR TEMPLATE>)~" method="POST">
<input type="hidden" name="captcha_at_solution" id="captcha_at_solution">
~INQUIRY-Link~
...
<!-- Ihre Eingabefelder -->
...
</form>
...
<script type="text/javascript" src="~CAPTCHA-CaptchaEuValidationURL~"></script>
<script type="text/javascript">
KROT.setup("~CAPTCHA-CaptchaEuPublicKey~");
KROT.getSolution()
.then((solution) => {
// Die CAPTCHA-Lösung wird als JSON gespeichert
document.getElementById("captcha_at_solution").value = JSON.stringify(solution);
});
</script>
...
</body>
Tags des PDF-Downloads
Tag | Unterstützt | Beschreibung | Werte / Beispiele |
---|---|---|---|
PDF-Form | 111 | Form zur Erzeugung eines PDFs der Anfrage. Wird nur auf der ConfirmPage unterstützt. Der Bereich wird nicht angezeigt, wenn der Parameter Allow in der Sektion PDF auf no steht. | {PDF-Form}
<form action="~PDF-Form~" method="post">
....
</form>
{/PDF-Form} |
PDF-Button | 111 | Buttonname zur Erzeugung eines PDFs der Anfrage. Wird nur auf der ConfirmPage unterstützt. Der Bereich wird nicht angezeigt, wenn der Parameter Allow in der Sektion PDF auf no steht. Muss innerhalb der PDF-Form stehen. | {PDF-Form}
<form action="~PDF-Form~" method="post">
...
<input type="submit" name="~PDF-Button~" value="download">
...
</form>
{/PDF-Form} |
Tags des Dateiuploads
Tag | Unterstützt | Beschreibung | Werte / Beispiele |
---|---|---|---|
INQUIRY-Upload | 011 | Der Bereich wird angezeigt, wenn das WEBSALE-Upload-Modul mit diesem Anfrageformular verwendet werden kann. Dies beinhaltet auch, dass der Upload in der Konfigurationsdatei aktiviert ist (Parameter Allow in der Sektion Upload) |
|
UPLOAD-Link | 100 | Link zum Upload-Modul. Dieser Link kann als Popup oder als iFrame (als iFrame auch innerhalb einer Colorbox) verwendet werden. |
|
UPLOAD-SSLLink | 100 | Link zum Upload-Modul im SSL-Modus. Dieser Link kann als Popup oder als iFrame (als iFrame auch innerhalb einer Colorbox) verwendet werden. |
|
UPLOAD-Data | 111 | Gibt die Anzahl der hochgeladenen Dateien aus bzw. zeigt an, ob Dateien hochgeladen wurden. | Dieses Tag kann auch als Schleifentag verwendet werden, um Informationen zu den hochgeladenen Dateien anzuzeigen. Beispiel: Anzeige der hochgeladenen Dateien als Schleife: {@UPLOAD-Data}
~UPLOAD-Position~. ~UPLOAD-File~
{/@UPLOAD-Data} Dies erzeugt bei 3 hochgeladenen Dateien (Datei1.txt, Datei2.txt und Datei3.pdf):
|
UPLOAD-File | 100 | Der Dateiname der hochgeladenen Datei. Kann nur innerhalb der Schleife des Tags UPLOAD-Data verwendet werden. |
|
UPLOAD-Position | 100 | Die Position der hochgeladenen Datei. Kann nur innerhalb der Schleife des Tags UPLOAD-Data verwendet werden. |
|
UPLOAD-Descr | 100 | Die Beschreibung der hochgeladenen Dateien (festgelegt in der Konfigurationsdatei, Sektion Upload, Parameter UploadDescr) |
|
UPLOAD-ID | 111 | Das Einzel-Tag gibt die ID des Uploads aus. |
|
Design Control Tags
INQUIRY4 unterstützt folgende INQDC-FP-Tags, inkl. Tag-in-Tag-Unterstützung. Hinsichtlich Funktionalität und Arbeitsweise entsprechen diese den DC-FP-Tags im Shop (vgl. WEBSALE-Designer-Dokumentation):
Tag | Unterstützt | Beschreibung |
---|---|---|
INQDC-FPX | 111 | X ist frei wählbar, darf aber ausschließlich aus alphanumerischen Zeichen bestehen |
INQDC-FPX_set | 100 |
|
INQDC-FPX_reset | 100 |
|
INQDC-FPX_replace | 100 |
|
INQDC-FPX_append | 100 |
|
INQDC-FPX_truncate | 100 |
|
INQDC-FPX_contains | 011 |
|
INQDC-FPX_urlencoding | 100 |
|
INQDC-FPX_slice | 100 |
|
INQDC-FPX_convertToEncoding | 100 |
|
INQDC-FPX_extractTaggedData | 100 |
|
INQDC-FPX_length | 100 |
|
INQDC-FPX_jsonencoding | 100 |
|
INQDC-CompareDigitLT | 011 |
|
INQDC-CompareDigitLTE | 011 |
|
INQDC-CompareDigitGT | 011 |
|
INQDC-CompareDigitGTE | 011 |
|
INQDC-CompareDigitIB | 011 |
|
INQDC-CompareDigitIBE | 011 |
|
INQDC-CompareStringInList | 011 |
|
INQDC-IntX | 111 | X = 1...3 |
INQDC-IntX_set | 100 |
|
INQDC-IntX_add | 100 |
|
INQDC-IntX_sub | 100 |
|
INQDC-IntX_mul | 100 |
|
INQDC-IntX_div | 100 |
|
INQDC-IntX_mod | 100 |
|
INQDC-IntX_inc | 100 |
|
INQDC-LoopX | 111 | X = 1...3 |
INQDC-LoopX_set | 100 |
|
INQDC-LoopX_position | 100 |
|
INQDC-DateTime_set | 100 |
|
INQDC-DateTime_hours | 111 |
|
INQDC-DateTime_minutes | 111 |
|
INQDC-DateTime_seconds | 111 |
|
INQDC-DateTime_year | 111 |
|
INQDC-DateTime_month | 111 |
|
INQDC-DateTime_day | 111 |
|
INQDC-DateTime_setunixtimestamp | 100 |
|
INQDC-DateTime_dayofweek | 111 |
|
INQDC-DateTime_unixtimestamp | 111 |
|
INQDC-ZeroLoopX | 111 |
|
INQDC-ZeroLoopX_set | 100 |
|
INQDC-ZeroLoopX_position | 100 |
|
INQDC-DynamicLoopX | 111 | X = 1...3 |
INQDC-DynamicLoopX_set | 100 |
|
INQDC-DynamicLoopX_settaggeddata | 100 |
|
INQDC-DynamicLoopX_setseparator | 100 |
|
INQDC-DynamicLoopX_setSeparatorTags | 100 |
|
INQDC-DynamicLoopX_position | 100 |
|
INQDC-DynamicLoopX_data | 100 |
|
Spezielle Tags
Es existieren noch folgende, zusätzliche Tags:
Tag | Unterstützt | Beschreibung | Werte / Beispiel |
---|---|---|---|
AUTOGENERATE-full | 100 | Erzeugt automatisch alle Informationen zu einer Anfrage. Zur Benutzung in E-Mail-Templates vorgesehen. | ~AUTOGENERATE-full~ Erzeugt folgenden Inhalt in einer E-Mail: Generated by Inquiry 4.0, http://www.websale-ag.de
-----------------------------------------------------------------
Neue Anfrage / New Inquiry
<--- Customer Inquiry --->
ShopID ihre-ShopIDSubShopID ihre-SubShopID
MallID ihre-MallID
Reference 1180702057381
Subject Anfrage
Date 01.06.2007
Time 14:47
...
<--- Customer Address --->
Anrede Herr
Firma Musterfirma
...
<--- Delivery Address --->
Nachname Mustermann
...
<--- Inquiry --->
- möchte Beratung
- Art der Kontaktaufnahme schriftlich
- Anmerkungen Eine Anregung an die allgemeingültige Anfrage eines allgemeingültigen Anfragenden.
<--- Anhänge --->
...
|
AUTOGENERATE-header | 100 | Erzeugt automatisch nur den Header einer Anfrage. Zur Benutzung in E-Mail-Templates vorgesehen. | ~AUTOGENERATE-header~ Erzeugt folgenden Inhalt in einer E-Mail: -----------------------------------------------------------------------
Generated by Inquiry 4.0, http://www.websale-ag.de
-----------------------------------------------------------------------
Neue Anfrage / New Inquiry
<--- Customer Inquiry --->
ShopID ihre-ShopIDSubShopID ihre-SubShopIDMallID ihre-MallID
Reference 1180702057381
Subject Anfrage
Date 01.06.2007
Time 14:47
Referer
SubReferer
IPAdress 172.16.1.93 |
AUTOGENERATE-addr | 111 | Erzeugt automatisch nur die Adress-Informationen. Zur Benutzung in E-Mail-Templates vorgesehen. | {AUTOGENERATE-addr}
~AUTOGENERATE-addr~
{/AUTOGENERATE-addr} Erzeugt folgenden Inhalt in einer E-Mail: <--- Customer Address --->
Anrede Herr
Firma Musterfirma
Titel Dipl. Ing.
...
E-Mail hans.mustermann@musterdomain.de
<--- Delivery Address --->
...
Vorname Hans
... |
AUTOGENERATE-common | 111 | Erzeugt automatisch nur die allgemeinen Anfrageinformationen. Zur Benutzung in E-Mail-Templates vorgesehen. | {AUTOGENERATE-common}
~AUTOGENERATE-common~
{/AUTOGENERATE-common} Erzeugt folgenden Inhalt in einer E-Mail: <--- Inquiry --->
- möchte Beratung
- Angebot Präsentation
- Art der Kontaktaufnahme schriftlich
- mit Anzahl Seiten 2
- Anmerkungen Eine Anregung an die allgemeingültige Anfrage eines allgemeingültigen Anfragenden. |
AUTOGENERATE-upload | 111 | Erzeugt automatisch nur die Liste der hochgeladenen Dateien. Zur Benutzung in E-Mail-Templates vorgesehen. | {AUTOGENERATE-upload}
~AUTOGENERATE-upload~
{/AUTOGENERATE-upload} Erzeugt folgenden Inhalt in einer E-Mail: <--- Anhänge --->
Datei1.txt
Datei2.txt
Datei3.pdf |
AUTOGENERATE-technical | 111 | Erzeugt alle Anfrageinformationen in einem Format, welches von technischen Systemen gelesen werden kann. Zur Benutzung in E-Mail-Templates vorgesehen. | {AUTOGENERATE-technical}
~AUTOGENERATE-technical~
{/AUTOGENERATE-technical} Erzeugt folgenden Inhalt in einer E-Mail: ------------------------------------------------
Technical order format
------------------------------------------------
<TechnicalFormat>
<Header>
FormatID = INQUIRY-4
Generator = INQUIRY-4
Copyright(c) = WEBSALE AG, www.websale-ag.de
Remark = This File-Format is protected by international copyright laws.
Remark = Use only with expressed written allowance of WEBSALE AG.
</Header>
<ID>
ShopID = ihre-ShopID SubShopID = ihre-SubShopID MallID = ihre-MallID
InquiryNumber = 1180702057381
Subject = Anfrage
</ID>
<CustomerAddress>
<Item>
Name = SalutationCode
Descr = SalutationCode
Value = 01
</Item>
<Item>
TechnicalName = A-Company
Name = firma
Descr = Firma
Value = Musterfirma
</Item>
...
</CustomerAddress>
<DeliveryAddress>
...
</DeliveryAddress>
<Inquiry>
<Item>
Name = beratung
Descr = - möchte Beratung
Value = on
</Item>
<Item>
Name = anmerkungen
Descr = - Anmerkungen
<value>
Eine Anregung an die allgemeingültige Anfrage eines allgemeingültigen Anfragenden.
</value>
</Item>
...
</Inquiry>
</TechnicalFormat> |
INFO-ShopID | 100 | Die beim ersten Aufruf übergebene ShopID. | ~INFO-ShopID~ |
INFO-SubShopID | 100 | Die beim ersten Aufruf übergebene SubShopID. | ~INFO-SubShopID~ |
INFO-MallID | 100 | Die verwendete MallID. | ~INFO-MallID~ |
INFO-Reference | 100 | Die eindeutige Referenznummer der Anfrage. | ~INFO-Reference~ |
INFO-Subject | 100 | Der Betreff der Anfrage-E-Mail. (Konfigurationsdatei: Sektion <InquiryEmail>, Parameter:EMailSubject) | ~INFO-Subject~ |
INFO-Date | 100 | Datum der Anfrage. Format: TT.MM.JJJJ | ~INFO-Date~ |
INFO-Time | 100 | Uhrzeit der Anfrage. Format: HH:MM | ~INFO-Time~ |
INFO-Referer | 111 | Der beim ersten Aufruf übergebene Referer | {INFO-Referer}
~INFO-Referer~
{/INFO-Referer} |
INFO-Subreferer | 111 | Der beim ersten Aufruf übergebene SubReferer. | {INFO-Subreferer}
~INFO-Subreferer~
{/INFO-Subreferer} |
INFO-IPAddr | 100 | Die IP-Adresse des Users Bei Integration eines Inquiry über die ExternInclude-Technologie gibt der Tag immer die Adresse des WEBSALE Servers aus. | ~INFO-IPAddr~ |
INFO-ExternIPAddr | 100 | Die IP-Adresse des Users Bei Integration eines Inquiry über die ExternInclude-Technologie gibt dieses Tag die IP-Adresse des Users aus. | ~INFO-ExternIPAddr~ |
INFO-ExternIPAddrTimeStamp | 111 | Der zugehörige Zeitstempel bei Verwendung von ExternInclude | {INFO-ExternIPAddrTimeStamp}
~INFO-ExternIPAddrTimeStamp~
{/INFO-ExternIPAddrTimeStamp} |
INFO-ExternSessionID | 111 | SessionID des WEBSALE-Shops bei Verwendung von ExternInclude | {INFO-ExternSessionID}
~INFO-ExternSessionID~
{/INFO-ExternSessionID} |
INFO-ATitleCode | 100 | Der zum Titel der Rechnungsanschrift gehörende Code. | ~INFO-ATitleCode~ |
INFO-DTitleCode | 100 | Der zum Titel der Lieferanschrift gehörende Code. |
|
INFO-ASalutationCode | 100 | Der zur Anrede der Rechnungsanschrift gehörende Code. |
|
INFO-DSalutationCode | 100 | Der zur Anrede der Lieferanschrift gehörende Code. |
|
INQUIRY-SendUserEmail_name | 100 | Der Name des HTML-Elements zur Steuerung der Bestätigungsemail durch den Benutzer wie in der Konfigurationsdatei festgelegt. |
|
INQUIRY-SendUserEmail_descr | 100 | Die textuelle Beschreibung des HTML-Elements zur Steuerung der Bestätigungsemail durch den Benutzer wie in der Konfigurationsdatei angegeben. |
|
INQUIRY-SendUserEmail_value | 111 | Der vom Benutzer ausgewählte Wert. |
|
INQUIRY-AlreadySent | 011 | Hiermit kann auf dem Antworttemplate geklammert werden, ob eine Anfrage bereits abgesendet wurde bzw. der Benutzer zu lange inaktiv war. Fehlt dieser Bereich auf dem Antworttemplate und dieser Fall tritt ein, wird ein Standardfehlertemplate angezeigt. |
|
INQUIRY-NewInquiryLink | 111 | WICHTIG: Dieses Tag wird nur angezeigt bzw. der Link erzeugt, wenn INQUIRY4 NICHT im per ExternInclude eingebunden wird! Soll ein Link dieser Art per ExternInclude eingebunden werden, so kann ein WEBSALE-Link verwendet werden: ~WS-LoadTpl(<Template mit ExternInclude>)~ Erzeugt einen Link zum erneuten Aufruf von INQUIRY4 mit der aktuellen Konfiguration. |
|
INQUIRY-Link | 100 | Die Form-URL zum Aufruf von INQUIRY4 . | ...
<form action="~INQUIRY-Link~" method="POST">
...
</form>
... |
INQUIRY-ReloadButton | 100 | Buttonname zum Aktualisieren der Anfrage. Es werden alle eingegebenen Daten aufgenommen und die Liste der hochgeladenen Dateien aktualisiert. Die eingegebenen Daten werden nicht geprüft und die Anfrage wird nicht abgesendet. |
|
MSG-Notify | 100 | Zeigt den allgemeinen Fehlertext an. (Konfigurationsdatei: Sektion | Dieser Text wird nicht beim ersten Aufruf von INQUIRY4 angezeigt. |
MSG-Input_error | 111 | Erzeugt eine detaillierte Liste der fehlerhaften Eingaben. | Es wird eine ul/li Liste erzeugt. Verwendete Stylesheet-Klassen: Die Reihenfolge der Meldungen in dieser Liste ist dieselbe wie die der zugehörigen Sektionen in der Konfigurationsdatei. |
URL-Template | 100 | Wird durch die URL auf das Template-Verzeichnis ersetzt. | ...
<base href=″~URL-Template″>
... |
Regeln für ein HTML-E-Mail-Template
Damit eine HTML-E-Mail versendet werden kann, müssen beim Erstellen eines HTML-E-Mail-Templates folgende Regeln beachtet werden:
Die Adressbasis (base href) innerhalb des <head>-Elements muss vorhanden sein und mit „http://“ oder ″https://″ beginnen,
<html>
<head>
...
<base href=″http://websale-ag.de″>
...
</head>
<body>
...
</body>
</html>
Alle relativen Links und Links zu Bildern oder Style-Dateien müssen in Anführungszeichen stehen.
<html>
...
<link rel=″stylesheet″ href=″styles.css″>
...
<img src=″pic1.png″>
…
<a href=″site2.htm″>Link</a>
...
</html>
Alle absoluten Links müssen mit ″http://″ oder ″https://″ beginnen
Alle Bilder werden als Anhänge mitgeschickt, da das Verlinken von externen Bildern in einer HTML-E-Mail das Risiko, dass diese E-Mail als Spam eingestuft wird, wesentlich erhöht!
Besondere Namen und Klassen
INQUIRY4 verwendet folgende Namen für Stylesheet-Klassen und Buttons:
Stylesheet-Klassen
Klasse |
|
---|---|
.input_error_ul | Liste der Fehlermeldungen |
.select_a_dateofbirth | SelectBox des Geburtsdatums der Rechnungsadresse |
.select_d_dateofbirth | SelectBox des Geburtsdatums der Lieferadresse |
.select_a_country | SelectBox der Länderauswahl der Rechnungsadresse |
.select_d_country | SelectBox der Länderauswahl der Lieferadresse |
.select_a_title | SelectBox der Titelauswahl der Rechnungsadresse |
.select_d_title | SelectBox der Titelauswahl der Lieferadresse |
.select_a_salut | SelectBox der Anredeauswahl der Rechnungsadresse |
.select_d_salut | SelectBox der Anredeauswahl der Lieferadresse |
Verwendung von INQUIRY4 mit WEBSALE E-Commerce
INQUIRY4 lässt sich auf verschiedene Arten in WEBSALE E-Commerce integrieren. So kann INQUIRY4 per Popup, iFrame oder ExternInclude eingebunden werden. Sollen einzelne Eingabefelder auf vielen oder allen Shopseiten eingebunden werden, so kann eine einfache Integrationsweise ohne zusätzlichen Leistungs- und Laufzeitbedarf angewandt werden.
Hinweise zur Verwendung von WS-ExternInclude
INQUIRY4 unterstützt das von WEBSALE angebotene Feature des externen Includes. Dadurch kann INQUIRY4 ohne iFrame auf einem Shop-Template eingebunden werden.
Siehe dazu die Beispieldateien in der Frontend-Dokumentation:
https://doku.websale.net/index.html?mats_materialien_zu_inquiry4.html
Integration auf einem Shop-Template
Der Aufruf von INQUIRY4 muss mit allen benötigten Parametern auf einem Template des WEBSALE Shops erfolgen.
Beispiel-INQUIRY4-Aufruf auf einem Shop-Template
...
<body>
...
~WS-ExternInclude(https://$URL-Homepage$/cgi/inquiry4.cgi?inq4=$WS-ShopID$.$WS-SubshopID$&cfg=<Name-Ihrer-Config-Datei>.config)~
...
</body>
...
Die Tags in der angegebenen URL werden vor dem Aufruf von INQUIRY4 ersetzt
Änderungen am Anfragetemplate
Da mit jedem Aufruf von INQUIRY4 auch der WEBSALE Shop aufgerufen werden muss, muss die URL zum Abschicken eines Templates eine andere sein, als wenn INQUIRY4 im Popup oder eigenständig aufgerufen wird.
Beispiel InquiryPage-Template im Direktaufruf bzw. PopUp
...
<form action="~INQUIRY-Link~" method="POST">
...
</form>
...
Beispiel InquiryPage-Template über ExternInclude
...
<form action="~Form-Template(<Ihr-Shop-Templatename.htm>)~" method="POST">
~INQUIRY-Link~
...
</form>
...
Das Tag ~INQUIRY-Link~ muss innerhalb der Form stehen!
Wenn INQUIRY4 über ExternInclude auf einem Shop-Template integriert worden ist, müssen bestimmte Werte als versteckte Parameter übergeben werden. Das Tag ~INQUIRY-Link~ sorgt automatisiert für die Übergabe dieser Parameter.
Relative Adressierungen
Durch das direkte Einbinden haben alle relativen Adressierungen auf den Inquiry-Templates den Basispfad des WEBSALE Templates!
WEBSALE-Tags
Durch das direkte Einbinden von INQUIRY4 in den WEBSALE-Shop können WEBSALE-Tags auf den Inquiry-Templates eingesetzt werden. Diese werden durch WEBSALE entsprechend ersetzt.
Um das Formular anzeigen zu lassen, muss das Template des Shops geladen werden.
Beispiel:
~WS-LoadTpl(tpl_anfrage.htm)~ |
Anhang
Nicht mehr unterstützte Parameter und Tags
Konfiguration der CAPTCHA-Funktionalität „ReCaptcha“, Version 2
ReCaptcha ver 2 wird von Google nicht mehr unterstützt. Die folgenden Angaben dienen lediglich zur Information.
Die Einstellungen zur CAPTCHA-Funktion „ReCaptcha“ sind in der Sektion <Captcha>
zu finden.
<Captcha>
Use ArithmeticCaptcha = no
UseRecaptchaCaptcha = yes
RecaptchaPublicKey =
RecaptchaPrivateKey =
RecaptchaTheme = clean # red|white|blackglass|clean
CaptchaNotFilledIn = Dieses Formular ist vor Missbrauch geschützt. Um das Formular absenden zu können, muss die angezeigte Zeichenkette eingegeben werden.
CaptchaError = Dieses Formular ist vor Missbrauch geschützt. Um das Formular absenden zu können, muss die angezeigte Zeichenkette korrekt eingegeben werden.
CaptchaTechnicalProblem = Die Anfrage kann im Moment aus technischen Gründen nicht bearbeitet werden. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.
</Captcha>
Parameter | Beschreibung | Werte |
---|---|---|
UseArithmeticCaptcha | Wenn Sie als CAPTCHA-Funktion ReCaptcha verwenden möchten, muss dieser Parameter auf "no" stehen! | [yes][no] |
UseRecaptchaCaptcha | Legt fest, ob die CAPTCHA-Funktion ReCaptcha verwendet werden soll. | [yes][no] |
RecaptchaPublicKey | Für die Nutzung von “ReCaptcha” notwendiger und kostenlos bei Google zu beantragender Schlüssel |
|
RecaptchaPrivateKey | Für die Nutzung von “ReCaptcha” notwendiger und kostenlos bei Google zu beantragender Schlüssel |
|
RecaptchaTheme | Legt die gewünschte Farbgestaltung des ReCaptcha-Widgets fest. | [red][white][blackglass][clean], |
CaptchaNotFilledIn | Dieses Formular ist vor Missbrauch geschützt. Um das Formular absenden zu können, muss die angezeigte Zeichenkette eingegeben werden. Dieser Fehlerstring wird angezeigt, wenn die Zeichenkette nicht eingegeben wurde. |
|
CaptchaError | Dieses Formular ist vor Missbrauch geschützt. Um das Formular absenden zu können, muss die angezeigte Zeichenkette korrekt eingegeben werden. Dieser Fehlerstring wird angezeigt, wenn die Zeichenkette falsch eingegeben wurde. |
|
CaptchaTechnicalProblem | Die Anfrage kann im Moment aus technischen Gründen nicht bearbeitet werden. Bitte versuchen Sie es zu späteren Zeitpunkt noch einmal. Dieser Fehlerstring wird angezeigt, wenn der externe Dienst nicht verfügbar ist. |
|
Konfiguration der Rechenaufgabe
Parameter "UseRecaptchaCaptcha ="
ist veraltet, wird ersetzt durch "UseReCaptchaV3 ="
.
Nicht mehr unterstützte Tags
Die folgenden Angaben dienen lediglich zur Information.
Tag | Unterstützt | Beschreibung |
---|---|---|
CAPTCHA-Description | 111 | Gibt die Beschreibung der CAPTCHA-Funktionalität aus. (Konfigurationsdatei: Sektion <Captcha>, Parameter CaptchaDescription). |
CAPTCHA-RecaptchaPublicKey | 111 | Gibt den PublicKey der ReCaptcha-Funktionalität aus.(Konfigurationsdatei: Sektion <Captcha>, Parameter RecaptchaPublicKey). |
CAPTCHA-RecaptchaTheme | 111 | Gibt die gewünschte Farbgestaltung des ReCaptcha-Widgets aus (Konfigurationsdatei: Sektion <Captcha>, Parameter RecaptchaTheme). |
Haftungs- und Gewährleistungsausschluss
Die Nutzung des Programms erfolgt auf Grundlage der dem Nutzer bekannten allgemeinen Geschäftsbedingungen der WEBSALE AG unter ausdrücklichem Ausschluss jeglicher Haftung oder Gewährleistung. Die Geschäftsbedingungen können jederzeit bei der WEBSALE AG angefordert werden. Durch die Nutzung des Programms erkennen Sie diese Bedingungen an.
Copyright © WEBSALE AG
Gutenstetter Str. 2, 90449 Nürnberg, +49 (0)911-63 221-0, kontakt@websale.de, www.websale.de
Haftungsausschluss
Alle Inhalte werden von der WEBSALE AG ausschließlich zu allgemeinen Informationszwecken veröffentlicht. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen.
Disclaimer
All content is published by WEBSALE AG for general information purposes only. However, we cannot guarantee the correctness, completeness and actuality of the contents.
Related content
© 2025 WEBSALE AG | Impressum | Datenschutz