> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# INQUIRY materials

> Two ready-made sample sets for a contact form with INQUIRY4, one with a PDF attachment and one with an arithmetic challenge, including configuration and all templates.

Here you'll find two ready-made sets of configuration and templates for a contact form. Use one of them as a starting point and adapt it.

How an INQUIRY is structured, where the files belong, and how to embed the form in a shop page is described on the guide page. This page contains only the templates themselves.

Guide: Forms for customer inquiries · Upload module for forms with INQUIRY

## The two sets

| | Contact form with PDF attachment | Contact form with arithmetic challenge |
| - | - | - |
| Special feature | the inquirer can download their inquiry as a PDF | an arithmetic challenge keeps out simple spam programs |
| Additional section in the configuration | `<PDF>` | `<Captcha>` |
| Additional template | `anfrage_antwort_pdf.htm` | none |

> [!NOTE]
>
> The two sets differ only in these points. Everything else, the basic configuration, the field list, and the remaining templates, is the same in both. You can therefore also combine the features: to get a form with an arithmetic challenge **and** a PDF attachment, add both sections to the same configuration.
>
> The previous documentation doesn't mention that the two sets can be combined. This has been added here.

## The files

| File | Purpose | Required |
| - | - | - |
| `anfrage.config` | the configuration of the form | yes |
| `anfrage.htm` | the form the customer fills out | yes |
| `anfrage_antwort.htm` | the page shown after submission | yes |
| `tpl_anfrage.htm` | the shop page that embeds the form | yes |
| `anfrage_confirmemail.htm` | the confirmation sent to the inquirer | no |
| `anfrage_inquiryemail.htm` | the notification sent to the shop operator | no |
| `anfrage_antwort_pdf.htm` | the inquiry as a PDF | only in the PDF set |

## anfrage.config

The configuration consists of three parts: the general sections, the free input fields, and the fixed address fields. The first two are shown here in full; the address fields are described further below as a pattern with a list of values.

### The general sections

> [accordion] anfrage.config, general part
>
> ```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
> ###
> #  I N Q U I R Y . C O N F I G
> #   Copyright (c) WEBSALE AG, Germany
> #   websale.de
> ###
>
> <Basic>
> InquiryPage         = anfrage.htm           # HTML-Template mit den Eingabefeldern
> ConfirmPage         = anfrage_antwort.htm   # HTML-Template, das nach einer Anfrage angezeigt wird
> CommonInputRequired = yes                   # Ist mindestens ein allgemeines Anfragefeld erforderlich
> EMailCheckMethod    = domain                # [none][syntax][domain], Teststufen der E-Mail-Adressen, empfohlen [domain]
> Language            = DEU                   # Sprache des Shops im ISO-Code
> CountryDat          = ../../../konfiguration/<ihre shopid>/country.dat   # Liste der Länder
> SalutationDat       = ../../../konfiguration/salutation.dat             # Liste der Anreden
> TitleDat            = ../../../konfiguration/title.dat                  # Liste der Titel
> Referer             = #ihr-shop.de          # optional, Refererschutz: gültige Referer durch Komma getrennt angeben
> WSOMAllow           = no                    # [yes][no], gibt an, ob die Anfragen von WSOM verarbeitet werden sollen
> charset             = ISO-8859-1            # Zeichensatz
> </Basic>
>
>
> ###################################################################
> #  E-Mails
> ###################################################################
>
> <ConfirmEmail>
> SendEmail     = userselect                      # [yes][no][userselect], Bestätigungsmail an den Anfragenden schicken. Bei userselect muss der Abschnitt <SendUserEmail> vorhanden und aktiv sein
> EmailSubject  = Danke für Ihre Anfrage          # Betreff der E-Mail an den Anfragenden
> SenderName    = IhrShop                         # Der Absender
> SenderEmail   = info@ihre-domain.de             # Die E-Mail-Adresse des Absenders
> EmailTemplate = anfrage_confirmemail.htm        # Template der E-Mail für den Anfragenden
> </ConfirmEmail>
>
> <InquiryEmail>
> SendEMail     = yes                             # [yes][no], E-Mail an den Angefragten schicken
> EmailSubject  = Anfrage                         # Betreff der E-Mail
> EmailAddress  = sachbearbeiter@ihre-domain.de   # Empfänger, mehrere durch Komma getrennt
> EmailTemplate = anfrage_inquiryemail.htm        # Template der E-Mail an den Angefragten
> </InquiryEmail>
>
>
> ###################################################################
> #  Spezialfeld für <ConfirmEmail> SendEmail = userselect
> ###################################################################
>
> <SendUserEmail>
> Type     = checkbox                                     # Der Typ muss checkbox, radiobutton oder listbox sein
> Name     = sendConfirmEmail                             # Name des HTML-Elements
> Descr    = Ich möchte eine Bestätigungsmail erhalten    # Kurze textuelle Beschreibung
> UseInput = A                                            # [A][D][AD], welche E-Mail-Adressen vorhanden sein müssen
> </SendUserEmail>
>
>
> ###################################################################
> #  Fehlermeldungen
> ###################################################################
>
> <ErrorMessages>
> Error              = Um Ihre Anfrage zügig bearbeiten zu können, ergänzen Sie bitte folgende Angaben und versuchen Sie es erneut.
> AddressEmailError  = Die eingegebene E-Mail-Adresse ist ungültig. Bitte überprüfen Sie Ihre Eingabe.
> DeliverEmailError  = Die eingegebene E-Mail-Adresse ist ungültig. Bitte überprüfen Sie Ihre Eingabe.
> CommonInputMissing = Treffen Sie bitte Ihre Wahl oder machen Sie entsprechende Angaben
> NoInput            = Füllen Sie bitte mindestens ein Feld aus
> </ErrorMessages>
>
>
> ###################################################################
> #  Newsletter
> #
> #  Der Abschnitt <+NewsLetter> kann bis zu 10 mal angelegt werden.
> #  Ein Newsletter muss immer eine Checkbox sein.
> #  Namen dürfen nicht mit A- oder D- beginnen.
> #  Gilt nur in Verbindung mit dem WEBSALE Newsletter V1.
> ###################################################################
>
> <+NewsLetter>
> Allow        = no                           # [yes][no], Newsletter zulassen
> AutoRegister = no                           # [yes][no], automatische Anmeldung, dann wird keine Checkbox angezeigt
> Name         = news1                        # Name des Checkbox-Feldes im Formular, darf nur einmal vergeben werden
> Descr        = Anmeldung zum Newsletter 1
> EMail        = newsletter@xyz.de            # Adresse, an welche die An- und Abmeldung geschickt wird
> UseInput     = A                            # [A][D], welche E-Mail-Adresse verwendet wird
> Subject      = Anmelden                     # Betreff der An- und Abmeldemail
> SenderName   = IhrShop                      # Absender der E-Mail
> Charset      =                              # optional, Zeichenkodierung der E-Mail
> Template     =                              # optional, Template der E-Mail an das Newslettersystem
> Required     = A-LastName, A-FirstName      # optional, benötigte Felder für diesen Newsletter, durch Komma getrennt
> Hide         = yes                          # [yes][no], Standard no. Ob dieses Feld in der automatisch erzeugten Bestätigungsmail erscheint
> </+NewsLetter>
>
>
> ###################################################################
> #  Freie Eingabefelder
> #
> #  Der Abschnitt <+CommonInput> kann bis zu 1000 mal angelegt werden.
> #
> #  Allow    = [yes][no], Eingabefeld zulassen
> #  Type     = [Text][TextArea][CheckBox][RadioButton][ListBox]
> #  Name     = Name des Feldes im Formular, darf nur einmal vergeben werden
> #  Descr    = Beschriftung
> #  Required = [yes][no], Pflichtfeld
> #  Hide     = [yes][no], Standard no. Ob dieses Feld in der Bestätigungsmail erscheint
> #
> #  Namen dürfen nicht mit A- oder D- beginnen.
> ###################################################################
>
> <+CommonInput>
> Allow    = yes
> Type     = CheckBox
> Name     = beratung
> Descr    = - möchte Beratung
> Required = no
> </+CommonInput>
>
> <+CommonInput>
> Allow    = yes
> Type     = CheckBox
> Name     = praesentation
> Descr    = - Angebot Präsentation
> Required = no
> </+CommonInput>
>
> <+CommonInput>
> Allow    = yes
> Type     = RadioButton
> Name     = kontaktart
> Descr    = - Art der Kontaktaufnahme
> Required = no
> </+CommonInput>
>
> <+CommonInput>
> Allow    = yes
> Type     = Text
> Name     = seiten
> Descr    = - mit Anzahl Seiten
> Required = no
> Max      = 5
> </+CommonInput>
>
> <+CommonInput>
> Allow    = yes
> Type     = TextArea
> Name     = anmerkungen
> Descr    = - Anmerkungen
> Required = no
> Max      = 1000
> </+CommonInput>
> ```

### Only in the PDF set

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
###################################################################
#  PDF
###################################################################

<PDF>
Allow    = yes
Template = anfrage_antwort_pdf.htm
Filename = anfrage.pdf
</PDF>
```

### Only in the set with the arithmetic challenge

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
###################################################################
#  Captcha-Einstellungen
#  Hier stellen Sie die verwendeten Rechenarten ein.
###################################################################

<Captcha>
UseArithmeticCaptcha = yes
CaptchaDescription   = Eine kleine Rechenaufgabe
CaptchaNotFilledIn   = Bitte lösen Sie die Rechenaufgabe
CaptchaError         = Die Rechenaufgabe wurde nicht korrekt gelöst
</Captcha>
```

> [!NOTE]
>
> The arithmetic challenge is only one of four captcha methods that INQUIRY4 supports. The guide page describes the others and what you need to keep in mind regarding data protection.

### The address fields

After the free input fields, the configuration contains the fixed address fields: first those of the inquirer with the prefix `A-`, then those of a different delivery address with the prefix `D-`. Each field gets its own section, and all of them have the same form:

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<A-LastName>
Allow    = yes      # [yes][no], Feld zulassen
Type     = Text     # [Text][ListBox]
Name     = name     # Name des Feldes im Formular
Descr    = Name     # Beschriftung
Required = yes      # [yes][no], Pflichtfeld
Max      = 45       # maximale Zeichenzahl, entfällt bei ListBox
</A-LastName>
```

The following table shows how the sample set populates each field. Create a section following the pattern above for every field you need.

| Section | `Allow` | `Type` | `Name` | `Descr` | `Required` | `Max` |
| - | - | - | - | - | - | - |
| `A-Number` | no | Text | `customer_id` | Kundennummer | no | 45 |
| `A-Salutation` | yes | ListBox | `anrede` | Anrede | yes | |
| `A-Company` | yes | Text | `firma` | Firma | no | 45 |
| `A-Department` | no | Text | `a_department` | Abteilung | no | 45 |
| `A-Title` | yes | ListBox | `a_title_list` | Titel | yes | |
| `A-FirstName` | yes | Text | `vorname` | Vorname | yes | 45 |
| `A-LastName` | yes | Text | `name` | Name | yes | 45 |
| `A-Street1` | yes | Text | `strasse` | Straße | yes | 45 |
| `A-Street2` | no | Text | `a_street2` | Hausnummer | no | 45 |
| `A-Zip` | yes | Text | `plz` | Postleitzahl | yes | 10 |
| `A-City` | yes | Text | `ort` | Ort | yes | 45 |
| `A-State` | no | Text | `state` | Staat | no | 45 |
| `A-Country` | yes | ListBox | `a_country` | Land | yes | |
| `A-Phone` | yes | Text | `tel` | Telefon | yes | 45 |
| `A-BusinessPhone` | no | Text | `a_business_phone` | Telefon geschäftlich | no | 45 |
| `A-MobilePhone` | no | Text | `a_mobile_phone` | Telefon mobil | no | 45 |
| `A-Fax` | yes | Text | `fax` | FAX | no | 45 |
| `A-BusinessFax` | no | Text | `a_business_fax` | FAX geschäftlich | no | 45 |
| `A-Email` | yes | Text | `email` | E-Mail | no | 128 |
| `A-DateOfBirth` | yes | ListBox | `a_dateofbirth_list` | Geburtsdatum | no | |
| `A-PostOfficeBox` | no | Text | `a_postofficebox` | Postfach | no | 45 |
| `A-Suffix1` to `A-Suffix10` | no | Text | `a_suffix_1` to `a_suffix_10` | Suffix | no | 45 |
| `A-UserID` | yes | Text | `a_userid` | UserID | no | 45 |
| `A-UserIndex` | yes | Text | `a_userindex` | User Index | no | 45 |

In the sample set, the delivery address fields are all set to `Allow = no`. They exist for the same fields as above, from `D-Salutation` to `D-Suffix10`, each with the field name prefix `d_` instead of `a_`. A customer number, a UserID, and a User Index exist only for the inquiry address.

> [!NOTE]
>
> The sample set contains all sections in the file, including those set to `Allow = no`. That's convenient for trying things out, but it makes the file more than 800 lines long. For production use, it's enough to create only the sections you actually need.

## anfrage.htm

The form. Each field consists of three parts: the label from `_descr`, the input field with `_name` and `_max`, and an error area with `_error`. The error area appears only if validation failed for that field.

> [accordion] anfrage.htm
>
> ```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
> <html>
> <head>
> <title>Anzeige des Formulares</title>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> </head>
> <body>
> {WS-Include}
> <h1>Template für den Parameter "InquiryPage=" im Abschnitt &lt;Basic&gt;</h1>
> {MSG-Input_error}
> 	<p>~MSG-Notify~ ~MSG-Input_error~</p>
> {/MSG-Input_error}
> <form action="~FORM-SSLTemplate(tpl_anfrage.htm)~" method="POST">
>    ~INQUIRY-Link~
>   <h2>Uns interessiert Folgendes:</h2>
>   <div>
>     <input type="checkbox" id="~C-beratung_name~" name="~C-beratung_name~" value="ja" class="stdInput~C-beratung_error~">
>     <label for="~C-beratung_name~">Eine unverbindliche Beratung über die Möglichkeiten und Chancen für unser Unternehmen im Internet.</label>
>     {C-beratung_error}<p>Bitte treffen Sie eine Auswahl.</p>{/C-beratung_error}
>   </div>
>   <div>
>     <input type="checkbox" id="~C-praesentation_name~" name="~C-praesentation_name~" value="ja" class="stdInput~C-praesentation_error~">
>     <label for="~C-praesentation_name~">Ein Angebot für die Erstellung einer professionellen Firmenpräsentation. Wir gehen von ca.
>       <input type="text" size="3" name="~C-seiten_name~" value="" class="stdInput~C-seiten_error~" maxlength="~C-seiten_max~">
>       Web-Seiten aus.</label>
>     {C-praesentation_error}<p>Bitte treffen Sie eine Auswahl.</p>{/C-praesentation_error}
>     {C-seiten_error}<p>Bitte geben Sie eine Seitenanzahl an.</p>{/C-seiten_error}
>   </div>
>   <h2>Informieren Sie mich</h2>
>   {C-kontaktart_error}
>   <p>Bitte treffen Sie eine Auswahl darüber, wie wir Sie kontaktieren sollen.</p>
>   {/C-kontaktart_error}
>   <div>
>     <input type="radio" id="kontaktart_anruf" name="~C-kontaktart_name~" value="Anruf" class="stdInput~C-kontaktart_error~">
>     <label for="kontaktart_anruf">Bitte vorab Anruf</label>
>   </div>
>   <div>
>     <input type="radio" id="kontaktart_schriftlich" name="~C-kontaktart_name~" value="schriftlich" class="stdInput~C-kontaktart_error~">
>     <label for="kontaktart_schriftlich">Bitte schriftlich</label>
>   </div>
>   <h2>Bitte senden Sie die Antwort an folgende Adresse</h2>
>   <p>Felder, die mit einem Stern "*" gekennzeichnet sind, sind Pflichtangaben.</p>
>   <div>
>     <label for="~A-Company_name~">~A-Company_descr~</label>
>     <input type="text" id="~A-Company_name~" size="30" maxlength="~A-Company_max~" name="~A-Company_name~" value="" class="stdInput~A-Company_error~">
>     {A-Company_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/A-Company_error}
>   </div>
>   <div>
>     <label for="~A-Salutation_name~">~A-Salutation_descr~ *</label>
>     ~A-Salutation_list~
>     {A-Salutation_error}<p>Bitte überprüfen Sie Ihre Auswahl.</p>{/A-Salutation_error}
>   </div>
>   <div>
>     <label for="~A-Title_name~">~A-Title_descr~ *</label>
>     ~A-Title_list~
>     {A-Title_error}<p>Bitte überprüfen Sie Ihre Auswahl.</p>{/A-Title_error}
>   </div>
>   <div>
>     <label for="~A-LastName_name~">~A-LastName_descr~ *</label>
>     <input type="text" id="~A-LastName_name~" size="30" maxlength="~A-LastName_max~" name="~A-LastName_name~" value="" class="stdInput~A-LastName_error~">
>     {A-LastName_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/A-LastName_error}
>   </div>
>   <div>
>     <label for="~A-FirstName_name~">~A-FirstName_descr~ *</label>
>     <input type="text" id="~A-FirstName_name~" size="30" maxlength="~A-FirstName_max~" name="~A-FirstName_name~" value="" class="stdInput~A-FirstName_error~">
>     {A-FirstName_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/A-FirstName_error}
>   </div>
>   <div>
>     <label for="~A-Street1_name~">Straße, Nr. *</label>
>     <input type="text" id="~A-Street1_name~" size="30" maxlength="~A-Street1_max~" name="~A-Street1_name~" value="" class="stdInput~A-Street1_error~">
>     {A-Street1_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/A-Street1_error}
>   </div>
>   <div>
>     <label for="~A-Zip_name~">~A-Zip_descr~, ~A-City_descr~ *</label>
>     <input type="text" id="~A-Zip_name~" size="5" maxlength="~A-Zip_max~" name="~A-Zip_name~" value="" class="stdInput~A-Zip_error~">
>     <input type="text" id="~A-City_name~" size="24" maxlength="~A-City_max~" name="~A-City_name~" value="" class="stdInput~A-City_error~">
>     {A-Zip_error}<p>Bitte überprüfen Sie Ihre Eingabe im Feld "~A-Zip_descr~".</p>{/A-Zip_error}
>     {A-City_error}<p>Bitte überprüfen Sie Ihre Eingabe im Feld "~A-City_descr~".</p>{/A-City_error}
>   </div>
>   <div>
>     <label for="~A-Country_name~">~A-Country_descr~ *</label>
>     ~A-Country_list~
>     {A-Country_error}<p>Bitte überprüfen Sie Ihre Auswahl.</p>{/A-Country_error}
>   </div>
>   <div>
>     <label for="~A-DateOfBirth_name~">~A-DateOfBirth_descr~</label>
>     ~A-DateOfBirth_list~
>     {A-DateOfBirth_error}<p>Bitte überprüfen Sie Ihre Auswahl.</p>{/A-DateOfBirth_error}
>   </div>
>   <div>
>     <label for="~A-Phone_name~">~A-Phone_descr~ *</label>
>     <input type="text" id="~A-Phone_name~" size="20" maxlength="~A-Phone_max~" name="~A-Phone_name~" value="" class="stdInput~A-Phone_error~">
>     {A-Phone_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/A-Phone_error}
>   </div>
>   <div>
>     <label for="~A-Fax_name~">~A-Fax_descr~</label>
>     <input type="text" id="~A-Fax_name~" size="20" maxlength="~A-Fax_max~" name="~A-Fax_name~" value="" class="stdInput~A-Fax_error~">
>     {A-Fax_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/A-Fax_error}
>   </div>
>   <div>
>     <label for="~A-Email_name~">~A-Email_descr~</label>
>     <input type="text" id="~A-Email_name~" size="30" maxlength="~A-Email_max~" name="~A-Email_name~" value="" class="stdInput~A-Email_error~">
>     {A-Email_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/A-Email_error}
>   </div>
>   <div>
>     <input type="checkbox" id="~INQUIRY-SendUserEmail_name~" name="~INQUIRY-SendUserEmail_name~">
>     <label for="~INQUIRY-SendUserEmail_name~">~INQUIRY-SendUserEmail_descr~</label>
>   </div>
>   <div>
>     <h2>Ihre Mitteilung an uns</h2>
>     <textarea id="~C-anmerkungen_name~" name="~C-anmerkungen_name~" rows="4" cols="33" class="stdInput~C-anmerkungen_error~" maxlength="~C-anmerkungen_max~"></textarea>
>     {C-anmerkungen_error}<p>Bitte überprüfen Sie Ihre Eingabe.</p>{/C-anmerkungen_error}
>   </div>
>   <input type="submit" name="absenden" value="Anfrage absenden">
> </form>
> {/WS-Include}
> </body>
> </html>
> ```

> [!NOTE]
>
> Don't omit `~INQUIRY-Link~` directly after the opening `form` element. The module uses it to find the inquiry again when the form comes back with errors.

### The addition for the arithmetic challenge

In the set with the arithmetic challenge, this block is added before the submit button:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<div>
  <label for="~INQUIRY-Captcha_name~">~INQUIRY-Captcha_descr~ *</label>
  ~INQUIRY-Captcha_question~
  <input type="text" id="~INQUIRY-Captcha_name~" name="~INQUIRY-Captcha_name~" value="" class="stdInput~INQUIRY-Captcha_error~">
  {INQUIRY-Captcha_error}<p>~INQUIRY-Captcha_errortext~</p>{/INQUIRY-Captcha_error}
</div>
```

> [!WARNING]
>
> The names of these tags were derived from the structure of the other fields, not from the module. Check them against the INQUIRY4 documentation before you use the block. The rest of the page is taken from the templates.

## anfrage\_antwort.htm

The page shown after submission. It covers two cases: the successful inquiry, and the case where the form has already been submitted or was left open for too long.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>Vielen Dank für Ihre Anfrage</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
{WS-Include}
   <h1>Template für den Parameter &quot;ConfirmPage=&quot; im Abschnitt &lt;Basic&gt;</h1>

   {!Inquiry-AlreadySent}
      <h2>Vielen Dank für Ihre Anfrage.</h2>
      <h3>~A-Salutation_complete~,</h3>
      <p>wir haben Ihre Anfrage erhalten und werden so bald wie möglich auf Sie zukommen!</p>
      <p>Ihre Firma XYZ</p>
      {PDF-Form}
         <form action="~PDF-Form~" method="post">
            <input type="submit" value="Anfrage als PDF herunterladen" name="~PDF-Button~">
         </form>
      {/PDF-Form}
   {/!Inquiry-AlreadySent}

   {Inquiry-AlreadySent}
      <h2>Wichtiger Hinweis</h2>
      <p>Das Formular wurde bereits abgesendet oder Sie waren zu lange inaktiv.</p>
      <p>Bitte rufen Sie das Formular erneut auf.</p>
      {INQUIRY-NewInquiryLink}<p><a href="~INQUIRY-NewInquiryLink~">Formular erneut aufrufen</a></p>{/INQUIRY-NewInquiryLink}
   {/Inquiry-AlreadySent}

{/WS-Include}
</body>
</html>
```

> [!NOTE]
>
> The block with `{PDF-Form}` is included in both sets. Without the `<PDF>` section in the configuration, the condition simply isn't true and the button doesn't appear. You can therefore use the template unchanged for both sets.

## anfrage\_antwort\_pdf.htm

Only in the PDF set. The appearance of the inquiry as a PDF.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>PDF-Ansicht der versendeten Anfrage</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
   <h1>Template für den Parameter &quot;Template=&quot; im Abschnitt &lt;PDF&gt;</h1>
   <h2>Vielen Dank für Ihre Anfrage.</h2>
   <h3>~A-Salutation_complete~,</h3>
   <p>wir haben Ihre Anfrage erhalten und werden so bald wie möglich auf Sie zukommen!</p>
   <p>Sie haben folgende Anfrage an uns gerichtet:</p>
   <pre>~AUTOGENERATE-readable_full~</pre>
   <p>Ihre Firma XYZ</p>
</body>
</html>
```

## anfrage\_confirmemail.htm

The confirmation sent to the inquirer.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>E-Mail-Template</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
   <h1>Template für den Parameter &quot;EmailTemplate=&quot; im Abschnitt &lt;ConfirmEmail&gt;</h1>
   <h2>Vielen Dank für Ihr Interesse.</h2>
   <h3>~A-Salutation_complete~,</h3>
   <p>wir führen Ihre Anfrage unter der Referenznummer ~INFO-Reference~ und werden so bald wie möglich auf Sie zukommen!</p>
   <p>Ihre Firma XYZ</p>
</body>
</html>
```

## anfrage\_inquiryemail.htm

The notification sent to the shop operator. It shows what each of the five `AUTOGENERATE` tags outputs.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>E-Mail-Template</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
   <h1>Template für den Parameter &quot;EmailTemplate=&quot; im Abschnitt &lt;InquiryEmail&gt;</h1>
   <h2>Sie haben eine neue Anfrage</h2>
   <p>Sie haben eine neue Anfrage von
      {A-Salutation_value}~A-Salutation_value~{/A-Salutation_value}
      {A-FirstName_value}~A-FirstName_value~{/A-FirstName_value}
      {A-LastName_value}~A-LastName_value~{/A-LastName_value} erhalten.</p>
   <h3>Daten der Anfrage:</h3>
   <h4>Alle Informationen zu einer Anfrage</h4>
   <pre>~AUTOGENERATE-full~</pre>
   <hr>
   <h4>Der Kopf einer Anfrage</h4>
   <pre>~AUTOGENERATE-header~</pre>
   <hr>
   <h4>Die Adressangaben einer Anfrage</h4>
   <pre>~AUTOGENERATE-addr~</pre>
   <hr>
   <h4>Die allgemeinen Angaben einer Anfrage</h4>
   <pre>~AUTOGENERATE-common~</pre>
   <hr>
   <h4>Alle Angaben in einem Format, das von technischen Systemen gelesen werden kann</h4>
   <pre>~AUTOGENERATE-technical~</pre>
</body>
</html>
```

> [!NOTE]
>
> This template is built as a showcase: it outputs all five variants one after another so you can see which one suits you. For production use, leave out the other four.

## tpl\_anfrage.htm

The shop page that embeds the form. It contains nothing except the call.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>Anfrage</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
   <h1>Inhaltstemplate zum Aufruf des Inquiry</h1>
   <h2>Aufruf des gewünschten Inquiry</h2>
   ~WS-ExternInclude($URL-Homepage$/cgi/inquiry4.cgi?inq4=$WS-ShopID$.$WS-SubShopID$&cfg=anfrage.config)~
</body>
</html>
```

> [!NOTE]
>
> The `cfg` parameter names the configuration file. This is how you distinguish multiple forms in the same shop: a separate configuration for each form, and a separate shop page that calls it.

## Note on all files

> [!NOTE]
>
> All templates use the HTML 4.01 doctype and `charset=iso-8859-1`, matching `charset = ISO-8859-1` in the configuration. For a new shop, switch both to UTF-8, in both places together. If the configuration and the template don't match, umlauts are displayed incorrectly.

> [!NOTE]
>
> Compared to the previous documentation, eight places in the templates have been corrected: the spellings `A-ZIP` and `A-EMail`, which differ from the section names `A-Zip` and `A-Email`; a `&lt;Basic&gt;` that appeared as a bare angle bracket in a heading; two hard-coded field names instead of the corresponding tags; a label with two targets in one `for`; the missing `id` attributes on the input fields; a superfluous space in `<body >`; and the outdated `wrap` attribute on the textarea.


## Related topics

- [Forms for customer inquiries](https://dokumentation.websale.de/en/v8s/formulare-fuer-kundenanfragen/formulare-fuer-kundenanfragen.md)
- [Inquiry](https://dokumentation.websale.de/en/frontend/referenz/aktionen/inquiry.md)
- [Directory structure of a shop](https://dokumentation.websale.de/en/v8s/materialien/verzeichnisstruktur-eines-shops.md)
- [Reload and submit forms via AJAX](https://dokumentation.websale.de/en/v8s/formulare-fuer-kundenanfragen/formulare-per-ajax-nachladen-und-absenden.md)
- [inquiry - Forms](https://dokumentation.websale.de/en/konfiguration/inquiry-formulare.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.