# B2B Offerteaanvraag (Express Offerte): volledige gids

> Overzicht De module Express Offerte Multi-Product B2B (dfexpressquote) voegt een knop « Een offerte aanvragen » toe onder aan de winkelwagen. Met één klik zet uw zakelijke klant zijn winkelwagen…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfexpressquote/>
- Taal: nl
- Bijgewerkt op: 2026-09-09
- Andere talen: [fr](https://www.datafirefly.com/documentation/dfexpressquote/index.md), [en](https://www.datafirefly.com/en/documentation/dfexpressquote/index.md), [es](https://www.datafirefly.com/es/documentation/dfexpressquote/index.md), [de](https://www.datafirefly.com/de/documentation/dfexpressquote/index.md), [it](https://www.datafirefly.com/it/documentation/dfexpressquote/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfexpressquote/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfexpressquote/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Overzicht

De module **Express Offerte Multi-Product B2B** (`dfexpressquote`) voegt een knop **« Een offerte aanvragen »** toe onder aan de winkelwagen. Met één klik zet uw zakelijke klant zijn winkelwagen om in een verzorgde **PDF-offerte**, die hij per e-mail ontvangt zonder een account aan te maken. Een kopie gaat naar uw winkel en elke offerte wordt met zijn statussen opgevolgd in de backoffice.

De PDF wordt gegenereerd met TCPDF, dat al in PrestaShop zit: geen externe bibliotheek en geen Composer-afhankelijkheid. Het document wordt nooit op de server bewaard, maar op aanvraag opnieuw opgebouwd uit een momentopname van de winkelwagen in de database.

## Compatibiliteit

- PrestaShop 8.0 tot 9.x
- PHP 7.4 tot 8.3
- Eén winkel en multistore
- 5 talen: FR, EN, ES, DE, IT
- Classic-thema en eigen thema's (modaal venster in pure JavaScript, onafhankelijk van het thema)
- Geen enkele afhankelijkheid (geen Composer, geen framework)

## Installatie

1. Open in de backoffice **Modules > Modulebeheer**.
2. Klik op **Een module installeren** en selecteer het bestand `dfexpressquote.zip`.
3. Klik na de installatie op **Configureren**.

Bij de installatie maakt de module zijn offertetabel aan, registreert hij zijn hooks (`actionFrontControllerSetMedia`, `displayShoppingCartFooter`, `displayExpressCheckout`), voegt hij een tabblad **Express Offerte** toe onder het menu Bestellingen en initialiseert hij zijn standaardinstellingen.

## Configuratie

### Weergave en knop

- **Opschrift van de knop**: de tekst onder aan de winkelwagen, vrij aan te passen.
- **Contactgegevens vragen**: schakelt de modus met contactformulier in. Staat dit uit, dan schakelt de module over op de directe modus met één klik (de PDF-offerte wordt zonder enig formulier gegenereerd).

### Offerte

- **Referentievoorvoegsel**: voorvoegsel van de offertenummers (standaard `DEV`), gevolgd door de datum en een teller.
- **Geldigheidsduur**: aantal dagen dat de offerte geldig blijft, gebruikt om de vervaldatum te berekenen.
- **Btw tonen**: toont de btw-kolommen en -totalen op de PDF.
- **Adres tonen**: voegt het adresblok van de ontvanger toe aan de PDF.
- **Wettelijke btw-vermeldingen** en **Voorwaarden**: vrije teksten onder aan de offerte.

### E-mails

- **E-mail naar de klant**: stuurt de PDF-offerte automatisch als bijlage naar de klant.
- **E-mail naar de winkel**: stuurt een melding naar uw team.
- **E-mailadres voor meldingen**: interne ontvanger (standaard het e-mailadres van de winkel).

## Werking

### Twee aanvraagmodi

In de **formuliermodus** opent één klik een licht modaal venster waarin de klant zijn bedrijf, naam en e-mailadres invult en, optioneel, zijn telefoonnummer, zijn intracommunautair btw-nummer en een bericht. In de **directe modus met één klik** wordt de PDF-offerte meteen aangemaakt, zonder formulier. In beide gevallen is er geen account nodig.

### De PDF-offerte

De PDF neemt de identiteit van uw winkel over: logo, contactgegevens, unieke referentie, uitgiftedatum en geldigheidsdatum, ontvangerblok, producttabel (referentie, omschrijving, aantal, stukprijs excl. btw, btw, totaal excl. btw) en de totalen excl. btw, btw en incl. btw, gevolgd door uw vermeldingen en voorwaarden. Het document wordt nooit op schijf bewaard: het wordt op aanvraag opnieuw opgebouwd uit de momentopname van de winkelwagen in de database, wat het opstapelen van bestanden voorkomt en een altijd consistent document garandeert.

### Automatische e-mails

Afhankelijk van uw configuratie ontvangt de klant zijn offerte als bijlage en krijgt uw winkel een melding op het adres van uw keuze. De e-mailsjablonen worden in het Frans en het Engels geleverd.

### Opvolging in de backoffice

Het tabblad **Express Offerte** toont alle offertes met hun referentie, de ontvanger, het bedrag incl. btw, de status en de datum. U opent een offerte om het detail te bekijken, laat de status evolueren (nieuw, verstuurd, aanvaard, geweigerd, omgezet) en genereert of downloadt de PDF op elk moment opnieuw.

### Beveiliging

Het downloaden van de PDF is beschermd met een deterministisch token dat van de sleutel van uw winkel is afgeleid. Elke aanvraag is beveiligd met een honeypot tegen bots en een token dat aan de lopende winkelwagen is gekoppeld, en werkt alleen op de winkelwagen van de huidige sessie.

## FAQ en probleemoplossing

### Moet de klant een account aanmaken?

Nee. De offerteaanvraag werkt in gastmodus. De directe modus met één klik maakt de PDF zelfs zonder enig formulier aan.

### Moet ik een PDF-bibliotheek installeren?

Nee. De offerte wordt gegenereerd met TCPDF, dat al in PrestaShop 8 en 9 zit. Geen enkele Composer-afhankelijkheid.

### De knop verschijnt niet op de winkelwagenpagina

Leeg de cache van PrestaShop (Geavanceerde parameters > Prestaties) en schakel tijdens uw tests de combinatie en compressie (CCC) uit. De knop verschijnt alleen als de winkelwagen minstens één artikel bevat. Roept uw thema de hook `displayShoppingCartFooter` niet aan, dan wordt de knop ingevoegd via het laden van de resources aan de frontzijde.

### Stapelen de PDF-bestanden zich op de server op?

Nee. De offerte wordt niet op schijf bewaard: zij wordt op aanvraag opnieuw opgebouwd uit de momentopname van de winkelwagen in de database.

### Werkt dit met PrestaShop 9?

Ja. De module is compatibel met PrestaShop 8 en 9, in multistore en meertalig.
