Productverhuur: volledige gids
De verhuur van producten installeren, instellen en benutten: beschikbaarheidskalender, waarborg, degressief tarief of procentmodus, reserveringsaanvraag zonder betaling, packs en REST-API, met opvolging van de reserveringen voor PrestaShop 8 en 9.
Overzicht
De module Productverhuur (dfproductrental) voegt aan uw PrestaShop-winkel een verhuurmodus toe die u per product inschakelt. Op de fiche van een verhuurbaar product kiest de klant een datumbereik in een kalender die de al gereserveerde dagen automatisch grijs maakt, en wordt de prijs per dag berekend volgens een degressief tarief in schijven, in vaste bedragen of in procent van de verkoopprijs. De module regelt een waarborg per product, begrenst de duur met een minimum en een maximum aantal dagen, aanvaardt reserveringsaanvragen zonder betaling, houdt de beschikbaarheid van packs en hun onderdelen gelijk, biedt een REST-API voor uw beheersoftware, en volgt elke reservering vanuit een eigen backoffice, van de winkelwagen tot de teruggave van het artikel.
Ideaal voor materiaal, meubilair, evenementenuitrusting, instrumenten, voertuigen of gereedschap: elk artikel dat wordt verhuurd in plaats van eenmalig verkocht. De verhuurmodus geldt alleen voor de producten die u aanduidt, zonder de rest van uw catalogus te verstoren.
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
- Geen enkele afhankelijkheid: geen Composer, een handmatige PSR-4-autoloader en de kalender flatpickr lokaal ingebouwd (met de Franse locale)
Installatie
- Open in de backoffice Modules > Modulebeheer.
- Klik op Een module installeren en kies het bestand
dfproductrental.zip. - Klik na de installatie op Configureren.
Bij de installatie maakt de module zijn drie tabellen aan (df_rental_product, df_rental_tier en df_rental_booking), registreert hij zijn hooks, zet hij zijn standaardinstellingen klaar en voegt hij twee items toe onder het menu Catalogus: Verhuur, producten en Verhuur, reserveringen. Bijwerken vanaf versie 1.2.0 of 1.3.0 wordt door tolerante upgradescripts opgevangen: installeer gewoon de nieuwe ZIP erover.
Algemene instellingen
De configuratiepagina van de module bundelt de globale opties die standaard voor alle verhuurbare producten gelden.
- Buffertijd (dagen): het aantal dagen dat na elke teruggave geblokkeerd blijft, om het artikel klaar te maken, te reinigen of te controleren vóór de volgende verhuur. Een globale waarde, per product te overschrijven.
- Reserveringshorizon (dagen): tot hoever in de toekomst een klant kan reserveren (standaard 365 dagen).
- Verval van wachtende winkelwagens (minuten): de termijn waarna een niet-bevestigde reservering haar datums vrijgeeft (standaard 60 minuten).
- De waarborg in de winkelwagenregel opnemen: staat die aan, dan komt de waarborg bij de prijs van de regel en wordt die bij de teruggave via een creditnota terugbetaald.
- De native knop « Toevoegen aan winkelwagen » verbergen: verbergt bij verhuurproducten de gewone aankoopknop ten voordele van de reserveerknop.
- Standaardwaarborg: het bedrag dat standaard wordt voorgesteld bij het aanmaken van een nieuw verhuurbaar product.
- Synchronisatie van de packs: schakelt het automatisch doorwerken van packreserveringen op hun verhuurbare onderdelen in of uit (standaard aan).
- Verval van de aanvragen (uren): na die termijn wordt een reserveringsaanvraag die zonder antwoord bleef geannuleerd en worden haar datums vrijgegeven (0 betekent nooit, de standaardwaarde).
- API: de schakelaar om die in te schakelen, een token voor lezen en schrijven en een token voor alleen lezen, elk met één klik opnieuw te genereren. De documentatie van de endpoints staat meteen onder dat paneel.
Een verhuurbaar product instellen
Ga naar Catalogus > Verhuur, producten en klik op Toevoegen.
- Product: kies het product uit uw catalogus dat verhuurbaar moet worden.
- Actief: schakelt de verhuur van dat product in of tijdelijk uit.
- Manier van tariferen: vaste bedragen, of een percentage van de verkoopprijs van het product (zie verderop).
- Basisprijs per dag: het dagtarief dat geldt wanneer geen enkele schijf bij de gekozen duur past.
- Waarborg: het waarborgbedrag voor dat product.
- Minimale en maximale duur (dagen): begrenst het datumbereik dat de klant kan kiezen.
- Beschikbare eenheden: het aantal exemplaren dat u bezit. Een datum wordt pas geblokkeerd wanneer alle eenheden tegelijk verhuurd zijn.
- Buffertijd: laat de globale waarde staan of stel een eigen buffer voor dat product in.
- Aanvraag zonder betaling toestaan: toont op de productfiche een knop voor een reserveringsaanvraag, naast of in plaats van het gewone besteltraject.
- Aanvragen blokkeren de voorraad: bepaalt of wachtende aanvragen voor dat product de datums reserveren zolang u niet hebt beslist.
Schijven met degressief tarief
Voeg onder het formulier zoveel schijven toe als u nodig hebt. Elke schijf bestaat uit een mindagen, een maxdagen en een prijs per dag.
De module past de schijf toe waarvan het interval de gekozen duur bevat. Een schijf waarvan het maximum aantal dagen 0 is, geldt als onbeperkt. Past geen enkele schijf, dan geldt de basisprijs per dag.
Een voorbeeld: 39 € per dag van 1 tot 3 dagen, 32 € per dag van 4 tot 7 dagen en 26 € per dag vanaf 8 dagen (met het maximum op 0).
Procentmodus
In de procentmodus zijn de basisprijs per dag, de waarborg en de schijven geen bedragen in valuta meer maar percentages van de verkoopprijs exclusief btw van het product. Een product dat 1000 € kost met een waarborg van 10 vraagt zo 100 € waarborg; een dagtarief van 2 geeft 20 € per dag. De bedragen volgen automatisch de prijzen in uw catalogus: dat is de snelste manier om één tariefstructuur op een groot aantal verhuurbare producten toe te passen.
Gebruik aan winkelzijde
De beschikbaarheidskalender
Op de productfiche verschijnt een kiezer voor een datumbereik. De al gereserveerde dagen worden automatisch grijs en zijn niet te kiezen, net als de bufferdagen na elke teruggave. De klant kiest een begin- en einddatum binnen de duurgrenzen die u hebt vastgelegd.
De prijsberekening
Zodra er een geldig bereik is gekozen, toont een overzicht het aantal dagen, de toegepaste dagprijs (volgens de schijf), het totaal van de verhuur, de waarborg en het algemene totaal. De klant weet precies wat hij betaalt vóór hij aan de winkelwagen toevoegt.
De reservering
De knop Deze datums reserveren zet de verhuur in de winkelwagen. De verhuurprijs komt binnen via een specifieke korting die aan de winkelwagen hangt: de oorspronkelijke prijs van het product blijft in de catalogus en bij alle andere verkopen ongewijzigd. Er ontstaat een reservering in de toestand in afwachting, die de gekozen datums blokkeert.
Wordt de bestelling niet binnen de ingestelde vervaltermijn bevestigd, dan verloopt de winkelwagen en komen de datums automatisch weer vrij voor andere klanten. Bij de validatie van de bestelling gaat de reservering naar bevestigd en wordt zij aan de klant en de bestelling gekoppeld.
Reserveringsaanvraag zonder betaling
Bij producten waar de optie Aanvraag zonder betaling toestaan aanstaat, toont de productfiche een knop Een reservering aanvragen. De klant kiest zijn datums en zijn aantal zoals bij een gewone reservering, en vult daarna zijn gegevens in: ingelogde klanten worden automatisch herkend, bezoekers geven hun naam, hun e-mailadres en desgewenst hun telefoonnummer op. Bij de aanvraag hoort een vrij tekstveld voor een bericht.
De aanvraag verschijnt in Catalogus > Verhuur, reserveringen met de status Aanvraag in afwachting. Op elke regel staan twee acties:
- Aanvaarden: de module controleert de beschikbaarheid van de periode opnieuw (met inbegrip van concurrerende aanvragen) en zet de reservering daarna op bevestigd. De klant krijgt een e-mail met de aanvaarding.
- Weigeren: de reservering gaat naar geweigerd, haar datums komen vrij en de klant krijgt een e-mail met de weigering.
Drie automatische e-mails begeleiden het traject: een ontvangstbevestiging voor de klant bij de aanvraag, een melding aan de handelaar met de gegevens en het bericht van de klant, en daarna de beslissingsmail. De sjablonen bestaan in de vijf talen van de module en zijn aan te passen zoals elke PrestaShop-mail.
Het blokkeren van de voorraad door aanvragen stelt u fijn in: met een standaardwaarde per product (Aanvragen blokkeren de voorraad) en een aparte schakelaar op elke aanvraag in de reserveringslijst. Een aanvraag die de voorraad niet blokkeert, laat de datums beschikbaar voor andere klanten zolang zij niet is aanvaard. Een instelbare vervaltermijn (in uren) kan aanvragen die zonder antwoord bleven automatisch annuleren en hun datums vrijgeven.
Packs
De module werkt met de native packs van PrestaShop. Bevat een pack onderdelen die zelf als verhuurbaar zijn ingesteld, dan maakt de reservering van het pack automatisch gekoppelde reserveringen op elk van die onderdelen aan, rekening houdend met de aantallen in het pack. Concreet:
- Een pack reserveren blokkeert de beschikbaarheid van elk verhuurbaar onderdeel ervan in dezelfde periode.
- Een onderdeel apart reserveren maakt het pack op die datums onbeschikbaar zodra er niet genoeg eenheden overblijven.
- Elke wijziging aan de reservering van het pack (datums, aantal, status, annulering) werkt automatisch door op de reserveringen van zijn onderdelen.
De reserveringen van onderdelen blijven aan klantzijde verborgen (de klant ziet alleen zijn pack) maar zijn in de backoffice zichtbaar met een badge Pack #N die naar de bovenliggende reservering wijst. Zij zijn niet rechtstreeks te wijzigen: de reservering van het pack is bepalend. Met een globale instelling schakelt u het hele mechanisme uit als u de packs liever als losstaande producten beheert.
REST-API
De API stelt de verhuur in JSON beschikbaar voor uw software voor parkbeheer, planning of facturatie. Schakel die in de configuratie van de module in: er worden twee tokens aangemaakt, met één klik opnieuw te genereren, namelijk een token voor lezen en schrijven en een token voor alleen lezen, dat enkel op de GET-endpoints wordt aanvaard. Elk verzoek moet een van die tokens meegeven via de header X-Api-Key of Authorization: Bearer.
Endpoints
GET ping: controle van de authenticatie en de versie.GET products: de lijst met verhuurbare producten en hun instellingen (prijs, waarborg, schijven, eenheden, manier van tariferen).GET availability: de beschikbaarheid van een product per dag tussen twee datums, met het aantal resterende eenheden.GET bookings: de lijst met reserveringen, te filteren opstatus,id_product,from,to,updated_sinceenexternal_reference, met paginering vialimitenoffset.POST bookings: het aanmaken van een reservering met de statusrequestedofconfirmed, met een beschikbaarheidscontrole (te omzeilen metforce). Het veldexternal_reference(maximaal 64 tekens) maakt het aanmaken idempotent: bestaat er al een reservering met die referentie, dan wordt zij bijgewerkt in plaats van gedupliceerd.POST bookings&id=N: het wijzigen van een reservering (datums, aantal, status), dat op de onderdelen van een pack doorwerkt.DELETE bookings&id=N: het annuleren van een reservering.
Met het filter updated_since synchroniseert u incrementeel: uw software onthoudt wanneer zij voor het laatst langskwam en haalt alleen de reserveringen op die sindsdien zijn gewijzigd. De API stuurt geen uitgaande webhooks: de synchronisatie verloopt via periodiek bevragen. De exacte URL’s en voorbeeldverzoeken staan op de configuratiepagina van de module.
Opvolging van de reserveringen
In Catalogus > Verhuur, reserveringen vindt u alle reserveringen terug met hun product, hun klant, hun bestelling, hun datums en hun status, aangeduid met een gekleurde badge.
- Aanvraag in afwachting: een aanvraag zonder betaling die op uw beslissing wacht.
- In afwachting: aan de winkelwagen toegevoegd, in afwachting van de validatie van de bestelling.
- Bevestigd: de bestelling is gevalideerd of de aanvraag is aanvaard, de datums zijn gereserveerd.
- Lopend: de verhuurperiode is bezig.
- Teruggebracht: het artikel is terug.
- Geweigerd: de aanvraag is geweigerd en de datums zijn vrijgegeven.
- Geannuleerd: de reservering is geannuleerd en de datums zijn vrijgegeven.
Het detail van elke verhuur verschijnt ook in de winkelwagen, op de bevestigingspagina van de bestelling en op de bestelfiche in de backoffice. Aan klantzijde toont de pagina Mijn huurperiodes in Mijn account al zijn huurperiodes met hun periode, hun duur, hun waarborg en hun status.
De waarborg wordt bij de teruggave van het artikel via een creditnota terugbetaald, vanaf de bestelfiche van PrestaShop. Dat is voor de meeste verhuurwinkels de eenvoudigste en meest doorzichtige boekhoudkundige werkwijze.
Opties van versie 1.5
Versie 1.5 breidt de datumkeuze, de tarifering en het waarborgbeheer uit. Alle opties stelt u in de configuratie van de module in.
Datumkeuze
Er zijn twee weergaven: één periodeveld met een kalender over twee maanden, of twee aparte velden voor begin en einde. De uren van afhaling en teruggave zijn in te schakelen; zij worden op de reservering bewaard en in de API getoond. De plaats van het verhuurblok op de productfiche kiest u uit zeven hooks, met een terugvalhook voor thema’s zonder displayProductAdditionalInfo.
Globale datums in de winkelwagen
Die staan standaard aan en passen één periode toe op alle regels van de bestelling. De productfiches zijn vooraf ingevuld met de periode van de winkelwagen, en in de winkelwagen staat een editor om de datums van de hele bestelling te wijzigen, met een nieuwe controle van de beschikbaarheid en een herberekening van de prijs van elke regel. Met een optie verhuist de datumkeuze volledig naar de winkelwagen: de productfiche vraagt dan alleen het aantal, en bij de eerste toevoeging wordt automatisch de eerstvolgende beschikbare periode voorgesteld.
De hele catalogus in verhuur
Voor winkels die volledig op verhuur draaien: elk actief product wordt verhuurbaar zonder aparte instelling. Het basisbedrag komt uit de verkoopprijs, de verhuurvoorraad volgt de PrestaShop-voorraad, en de reserveringsaanvraag kan globaal worden toegestaan.
Duurcoëfficiënten
In de coëfficiëntmodus wordt de prijs berekend als het basisbedrag maal een coëfficiënt. De tabel per dagenschijf is instelbaar (standaard 1 dag: 1, 2 dagen: 1,5, 3 dagen: 2, 4 tot 7 dagen: 3, 8 tot 14 dagen: 5, 15 tot 21 dagen: 7, 22 tot 30 dagen: 9). Er zijn twee weekenduitzonderingen met voorrang instelbaar: zaterdag tot maandag (standaard coëfficiënt 1) en vrijdag tot maandag (standaard 1,5). Boven de maximale duur (standaard 30 dagen) gaat de prijs over op een tarief op aanvraag: toevoegen aan de winkelwagen wordt geblokkeerd en de reserveringsaanvraag zonder betaling neemt het over.
Waarborg
Er zijn drie modi: per product (het historische gedrag), automatisch globaal, of uitgeschakeld. In de globale modus wordt er één waarborg voor de hele bestelling berekend: het basisbedrag inclusief btw maal een vermenigvuldiger (standaard 2), met een minimum (standaard 500) en een afronding naar de hogere schijf (standaard 100). Die wordt op de eerste reservering van de bestelling vastgelegd en blijft in de backoffice aanpasbaar. Het factureren staat daar los van: de waarborg kan bij de betaling worden aangerekend, of enkel worden getoond voor een bankafdruk. De waarborgkolommen verdwijnen uit de overzichten en de PDF-factuur zodra geen enkele regel er een draagt.
FAQ en probleemoplossing
Wijzigt de verhuurprijs de prijs van mijn product?
Nee. De prijs komt binnen via een specifieke korting die alleen aan de lopende winkelwagen hangt. De oorspronkelijke prijs van het product blijft ongewijzigd in de catalogus en voor de andere klanten.
Hoe werkt het degressieve tarief?
U bepaalt schijven (mindagen, maxdagen, prijs per dag). De module kiest de schijf waarvan het interval de gevraagde duur bevat. Een maximum van 0 betekent « onbeperkt ». Past geen enkele schijf, dan geldt de basisprijs per dag.
Kan men meerdere eenheden van hetzelfde product huren?
Ja. Vul het aantal beschikbare eenheden in. Een datum wordt pas grijs wanneer alle eenheden in die periode al verhuurd zijn.
Wordt de waarborg automatisch terugbetaald?
Nee. Die komt bij het huren op de winkelwagenregel en wordt bij de teruggave via een creditnota terugbetaald, vanaf de bestelfiche in de backoffice.
Levert een aanvaarde aanvraag een bestelling op?
Nee. Het aanvaarden bevestigt de reservering en blokkeert de datums, zonder een PrestaShop-bestelling aan te maken. U int de betaling via het kanaal van uw keuze (ter plaatse, overschrijving, betaallink) en volgt de verhuur op via het reserveringsscherm.
De kalender verschijnt niet op de productfiche
Controleer of het product wel is ingesteld en actief staat in Verhuur, producten. Leeg daarna de cache van PrestaShop (Geavanceerde parameters > Prestaties) en zet tijdens uw tests het samenvoegen en comprimeren van bestanden (CCC) uit.
De native knop « Toevoegen aan winkelwagen » blijft zichtbaar
Het verbergen steunt op selectors van het thema. Schakel de optie De native knop « Toevoegen aan winkelwagen » verbergen in de instellingen in; afhankelijk van uw thema kan een kleine aanpassing van de selectors nodig zijn.
De API geeft een 401
Controleer of de API in de configuratie aanstaat en of het meegegeven token overeenkomt met het getoonde token. Denk er na het opnieuw genereren van een token aan uw integraties bij te werken.
Werkt de module met PrestaShop 9?
Ja. De module werkt met PrestaShop 8 en 9, in multistore en meertalig (FR, EN, ES, DE, IT). De prijsopmaak gebruikt de huidige Locale, volgens de werkwijze van PrestaShop 9.