# Product Return Manager: volledige gids

> Installatie, configuratie en gebruik van de module DataFirefly Product Return Manager voor PrestaShop 8: selfservice-retouren, PDF-etiket met QR, validatie via scan, analytics op 13 assen, ChatGPT-vertaling en Fastmag-integratie.

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

DataFirefly Product Return Manager verandert het retourbeheer van PrestaShop 8 in een geautomatiseerde stroom van begin tot einde: selfservice-aanvraag door de klant (klantaccount of gast), PDF-etiket met QR-code, validatie via scan bij ontvangst, analytics op 13 assen, tegoedbon of terugbetaling, handmatige admin-retour, automatische vertaling van de redenen via ChatGPT en ERP-integratie via hook. Deze documentatie behandelt de installatie, de volledige configuratie en het dagelijkse gebruik.

## Installatie

Standaard PrestaShop-installatie: ga naar **Modules → Modulebeheer → Een module installeren**, selecteer het bestand `dfproductreturn.zip` en bevestig. De module maakt automatisch 9 tabellen met de voorvoegsels `df_return_*` en `df_product_return*` aan, installeert standaardretourenredenen, registreert haar hooks (`displayCustomerAccount`, `displayMyAccountBlock`, `displayHeader`, enzovoort) en voegt twee menu-ingangen toe aan de back-office: **Productretouren** (beheer) en **Retouranalytics** (statistieken).

Vereisten: PrestaShop 8.0 tot 8.99, PHP 8.0 tot 8.3. PrestaShop 1.7 wordt niet ondersteund. Multistore wordt native beheerd. De update vanaf een eerdere versie is idempotent (upgradescripts inbegrepen, waaronder de toevoeging van de kolom `manual_amount` in 1.7).

## Configuratie

Ga naar **Modules → Modulebeheer → DataFirefly Product Return Manager → Configureren**. De belangrijkste instellingen:

- **Retourtermijn (dagen)**: venster waarbinnen de klant na zijn bestelling een retour kan aanvragen. Standaard 30 dagen. Geldt alleen voor retouren die door de klant worden gestart; de handmatige admin-retour negeert dit.
- **In aanmerking komende orderstatussen**: alleen bestellingen in deze statussen tonen de knop "Retour aanvragen" (typisch "Geleverd").
- **Tegoedbon activeren**: biedt de tegoedbon aan als compensatievorm.
- **Terugbetaling activeren**: biedt de terugbetaling op het oorspronkelijke betaalmiddel aan.
- **Admin-e-mail**: adres dat bij elke nieuwe retouraanvraag wordt verwittigd.
- **Status gedeeltelijke / volledige terugbetaling**: de twee orderstatussen toegepast volgens het type uitgevoerde terugbetaling.
- **OpenAI API-sleutel**: alleen vereist voor de automatische vertaling van de retourenredenen via ChatGPT (zie de aparte sectie).

## Retourenredenen en categorieën

De module organiseert de redenen op twee niveaus: **categorieën** ("Productprobleem", "Logistiek probleem", "Van gedachten veranderd"...) en **redenen** gekoppeld aan elke categorie ("Verkeerde maat", "Defect artikel", "Levering te traag"...). Deze hiërarchie voedt de analytics: u ziet de macroverdeling per categorie en dan het detail per reden.

Beheer ze via het tabblad **Redenen** van de configuratie: aanmaken, bewerken, deactiveren, weergavevolgorde. Standaardredenen worden met de module geïnstalleerd; pas ze aan uw catalogus aan.

Goede praktijk: blijf onder de 10 zichtbare redenen per categorie om de klant niet te overspoelen, en formuleer de redenen vanuit zijn standpunt ("Het artikel komt niet overeen met de foto" in plaats van "Visuele non-conformiteit").

### Automatische vertaling via ChatGPT

Zodra uw OpenAI API-sleutel in de configuratie staat, verschijnt op elke reden en categorie een knop **Vertalen**. Eén klik vertaalt het label naar alle actieve winkeltalen, met een gecontextualiseerd e-commercevocabulaire. De vertalingen blijven na de generatie handmatig bewerkbaar. Haal uw sleutel op via `platform.openai.com`; de kostprijs per vertaling is verwaarloosbaar (fracties van een cent).

## Klanttraject (klantaccount)

De ingelogde klant ziet een link **"Mijn retouren"** in zijn klantzone. Om een retour te starten:

1. Hij opent de in aanmerking komende bestelling en klikt op "Retour aanvragen".
2. Hij vinkt de te retourneren producten aan en past de aantallen aan.
3. Hij kiest een redencategorie en dan een precieze reden, en voegt een optionele opmerking toe.
4. Hij bevestigt: de retour komt in de status "In afwachting" en er vertrekken twee e-mails: een bevestiging naar de klant met de etiket-PDF als bijlage, en een melding naar de admin.

De klant volgt daarna de status van zijn retour (in afwachting, aanvaard, geweigerd, terugbetaald) via "Mijn retouren", met de mogelijkheid om zijn PDF-etiket op elk moment opnieuw te downloaden.

## Gastretour (v1.7+)

Klanten die **zonder account** hebben besteld, bereiken de retour via dezelfde URL als ingelogde klanten. Een niet-geauthenticeerde bezoeker ziet een formulier **"Bestelnummer + e-mail"** in plaats van de lijst "Mijn bestellingen". De werking:

- De validatie gebeurt server-side: het paar bestelreferentie + e-mail moet exact overeenkomen met een bestaande bestelling (hoofdletterongevoelige vergelijking op de e-mail).
- Bij een mismatch is de foutmelding bewust generiek: anti-enumeratiebescherming, er wordt geen enkele informatie over bestaande referenties prijsgegeven.
- Eenmaal gevalideerd krijgt de bezoeker toegang tot de standaardretourstroom _uitsluitend voor deze bestelling_ (scoped PrestaShop-sessie).
- De etiket-PDF blijft bereikbaar via de per e-mail ontvangen link **zonder login**, beschermd door een willekeurig token van 64 tekens, uniek per retour.
- Een balk "Use a different order" laat toe de gastsessie te resetten en naar een andere bestelling over te schakelen.

## De etiket-PDF en de QR-code

Elke retour genereert een PDF met: het retouradres, het retournummer, de lijst van producten en aantallen, de instructies en een **unieke QR-code** met een cryptografisch verificatietoken. De klant drukt hem af en plakt hem op zijn pakket.

### Meerdere retouradressen

Configureer meerdere adressen in het tabblad **Adressen** (hoofdmagazijn, verwerkingssite voor grote volumes, EU- versus niet-EU-adres...). Elke retour wordt gekoppeld aan een adres dat op zijn etiket verschijnt.

## Validatie via QR-scan bij ontvangst

Wanneer het pakket aankomt, scant uw operator de QR met een telefoon of een USB-scanner. De scan opent de beveiligde validatiepagina: **een actieve PrestaShop-adminsessie is vereist**; zonder sessie stuurt de pagina door naar de back-office-login. De operator ziet dan het volledige retourdetail, controleert de fysieke staat van de producten en klikt op **Valideren** of **Weigeren**.

De validatie zet een cascade in gang: overgang van de bestelling naar de geconfigureerde status (gedeeltelijke of volledige terugbetaling), generatie van de tegoedbon of terugbetaling, update-e-mail naar de klant, en dispatch van de hook `actionOrderSlipAdd` voor externe integraties.

Het QR-token is uniek per retour en wordt server-side geverifieerd: een vervalste of hergebruikte QR wordt geweigerd. Deel de validatie-URL's nooit buiten uw team.

## Handmatige admin-retour (v1.6+)

De klantendienst kan een retour aanmaken voor **eender welke bestelling**, ongeacht de ingestelde retourtermijn en de bestelstatus; bedoeld voor commerciële gebaren, telefonisch onderhandelde retouren en retroactieve regularisaties.

1. Klik op **"Create manual return"** in de header van de retourenlijst in de back-office.
2. **Stap 1**: voer de referentie of de ID van de bestelling in (een bestelling uit 2022, geannuleerd of in concept wordt aanvaard).
3. **Stap 2**: vink de te retourneren producten aan, hun aantallen, hun reden, het compensatietype (tegoedbon of creditnota), en pas indien nodig het **terugbetaalde bedrag per regel** aan.
4. Bevestig: de retour wordt onmiddellijk verwerkt: tegoedbon of creditnota meteen gegenereerd, voorraad teruggeboekt, orderstatus bijgewerkt, Fastmag-hook gedispatcht.

Een vakje **"Klant verwittigen"** (standaard uitgevinkt) verstuurt desgewenst de standaardbevestigingsmail. Een vrije adminnotitie kan aan de retour worden gehecht.

### Het aanpasbare terugbetaalde bedrag (v1.7+)

Elke regel van de handmatige retour heeft een bewerkbaar veld **"Refund amount"**. De standaardwaarde (eenheidsprijs × aantal) wordt automatisch herberekend wanneer het aantal verandert, tot een handmatige invoer: de ingevoerde waarde wordt dan als zodanig gerespecteerd. Het proportionele kortingsratio van de bestelling, toegepast op klassieke klantretouren, is **uitgeschakeld voor handmatige retouren**: het ingevoerde bedrag is exact het terugbetaalde bedrag. Nuttig voor een gedeeltelijke terugbetaling (beschadigd product voor 50 % terugbetaald), een commercieel gebaar of een regularisatie. De gegenereerde creditnota behoudt de verdeling excl./incl. btw evenredig met het btw-tarief van de oorspronkelijke regel.

## Tegoedbon of terugbetaling

Volgens uw configuratie levert de validatie van een retour ofwel een **tegoedbon** op (native PrestaShop-winkelwagenregel, bruikbaar bij een volgende bestelling), ofwel een **terugbetaling** te verwerken op het oorspronkelijke betaalmiddel. De twee speciale orderstatussen (gedeeltelijk / volledig) laten toe de gevallen te onderscheiden in uw exports en boekhoudrapporten.

## Analytics-dashboard

Het menu **Retouranalytics** toont 13 analyse-assen, allemaal filterbaar per periode en per winkel:

- **Globale KPI's**: retourvolume, retourpercentage, geretourneerde waarde, verdeling tegoedbon / terugbetaling.
- **Per redencategorie** en **per reden**: identificeer de dominante oorzaken.
- **Per land**: spoor geografische afwijkingen op (falende vervoerder in een zone).
- **Top geretourneerde producten**: de referenties om te onderzoeken (maattabel, leverancierskwaliteit).
- **Kruisingen reden × land en reden × product**: het detailniveau om te handelen.
- **Maandelijkse (12 maanden) en dagelijkse trends**: seizoensgebondenheid en pieken.
- **Gemiddelde verwerkingstijd**: de prestatie van uw klantendienst.
- **Verdeling per weekdag** en **top retourklanten**: detectie van misbruik.

De knop **CSV-export** downloadt alle retouren van de gefilterde periode (retournr., bestelling, klant, producten, reden, status, datums, bedrag) voor externe analyse of BI-import.

## Fastmag- en ERP-integratie

Bij elke gevalideerde retour dispatcht de module de PrestaShop-hook `actionOrderSlipAdd` met de bestelling, de productlijst en de aantallen. Elke module die naar deze hook luistert (DataFirefly Fastmag-module, ERP-connectoren, Systempay...) ontvangt de melding in realtime. Handmatige admin-retouren dispatchen dezelfde hook.

De knop **"Re-sync past returns to Fastmag"** (werkbalk van de retourenlijst) activeert de hook opnieuw op alle voorbije retouren: onmisbaar na de installatie van een ERP-connector die dateert van na deze module, of na een synchronisatie-incident.

## Transactionele e-mails

Drie automatische e-mails, geleverd in 6 talen (FR, EN, ES, IT, PT, DE): aanvraagbevestiging aan de klant (met PDF-bijlage), melding aan de admin, statusupdate aan de klant (validatie / weigering / terugbetaling). Bij handmatige admin-retouren is de klantmail optioneel (vakje standaard uitgevinkt). Personaliseer de templates in `modules/dfproductreturn/mails//` of via het native e-mailvertaalsysteem van PrestaShop.

## Multistore

Alle tabellen dragen een `id_shop`: elke winkel heeft haar eigen redenen, retouradressen en analytics. De multistore-kiezer van de back-office filtert vanzelf de retourenlijst en het dashboard.

## Probleemoplossing

### De knop "Retour aanvragen" verschijnt niet

Controleer drie punten: de bestelling zit in een in aanmerking komende status (configuratie), de retourtermijn is niet verstreken, en de module is actief op de betrokken winkel (multistore-context). Ter herinnering: gebruik voor een retour buiten de termijn de handmatige admin-retour.

### Het gastformulier weigert een geldige bestelling

Het ingevoerde e-mailadres moet exact dat van de bestelling zijn (hoofdletters worden genegeerd, tikfouten niet). Controleer de bestelreferentie: dat is de alfanumerieke referentie (bv. XKBKNABJK), niet de numerieke ID.

### De QR-scan toont "Access denied"

Dat is het verwachte gedrag zonder adminsessie: de operator moet in dezelfde browser ingelogd zijn op de PrestaShop back-office. Log in en scan opnieuw.

### De ChatGPT-vertaling mislukt

Controleer de API-sleutel in de configuratie, het beschikbare krediet op uw OpenAI-account, en of uw server uitgaande verbindingen naar `api.openai.com` (poort 443) toestaat.

### Fastmag ontvangt de retouren niet

Controleer of de Fastmag-module is geïnstalleerd en aan de hook `actionOrderSlipAdd` hangt, en gebruik dan "Re-sync past returns to Fastmag" om de geschiedenis in te halen.
