PS PrestaShop Intermedio

Noleggio Prodotti — Guida completa

Installare, configurare e gestire il noleggio prodotti: calendario di disponibilità, cauzione, tariffa decrescente o in percentuale, richiesta di prenotazione senza pagamento, pack e API REST, con monitoraggio delle prenotazioni per PrestaShop 8 e 9.

Aggiornato Versione del modulo 1.5.7

Panoramica

Il modulo Noleggio Prodotti (dfproductrental) aggiunge una modalità noleggio attivabile prodotto per prodotto sul tuo negozio PrestaShop. Nella scheda di un prodotto noleggiabile, il cliente sceglie un intervallo di date in un calendario che oscura automaticamente i giorni già prenotati, e il prezzo viene calcolato al giorno secondo una tariffa decrescente per fasce, in importi fissi o in percentuale del prezzo di vendita. Il modulo gestisce una cauzione per prodotto, vincola la durata con un minimo e un massimo di giorni, accetta richieste di prenotazione senza pagamento, sincronizza la disponibilità dei pack e dei loro componenti, espone una API REST per i tuoi software gestionali, e monitora ogni prenotazione da un back-office dedicato, dal carrello alla restituzione dell’articolo.

Ideale per attrezzature, mobili, materiale per eventi, strumenti, veicoli o utensili: qualsiasi articolo che si noleggia anziché vendersi una volta per tutte. La modalità noleggio si attiva solo sui prodotti che designi, senza snaturare il resto del tuo catalogo.

Compatibilità

  • PrestaShop 8.0 a 9.x
  • PHP 7.4 a 8.3
  • Mono-negozio e multi-negozio
  • 5 lingue: FR, EN, ES, DE, IT
  • Tema Classic e temi personalizzati
  • Nessuna dipendenza: niente Composer, autoloader PSR-4 manuale, calendario flatpickr incluso localmente (locale FR incluso)

Installazione

  1. Nel back-office, apri Moduli > Gestore dei moduli.
  2. Clicca su Carica un modulo e seleziona il file dfproductrental.zip.
  3. Una volta installato, clicca su Configura.

All’installazione, il modulo crea le sue tre tabelle (df_rental_product, df_rental_tier, df_rental_booking), registra i suoi hook, inizializza le impostazioni predefinite e aggiunge due voci sotto il menu Catalogo: Noleggio – Prodotti e Noleggio – Prenotazioni. L’aggiornamento da una versione 1.2.0 o 1.3.0 è coperto da script di aggiornamento tolleranti: installa semplicemente il nuovo ZIP sopra.

Impostazioni generali

La pagina di configurazione del modulo raccoglie le opzioni globali applicate per impostazione predefinita a tutti i prodotti noleggiabili.

  • Margine di sicurezza (giorni): numero di giorni bloccati dopo ogni restituzione, per preparare, pulire o controllare l’articolo prima del noleggio successivo. Valore globale, sovrascrivibile per prodotto.
  • Orizzonte di prenotazione (giorni): limita fino a quale data futura un cliente può prenotare (365 giorni per impostazione predefinita).
  • Scadenza dei carrelli in attesa (minuti): termine dopo il quale una prenotazione non confermata libera le sue date (60 minuti per impostazione predefinita).
  • Integrare la cauzione nella riga del carrello: quando attiva, la cauzione viene aggiunta al prezzo della riga e restituita tramite nota di credito alla restituzione.
  • Nascondere il pulsante «Aggiungi al carrello» nativo: sui prodotti a noleggio, nasconde il pulsante di acquisto classico a favore del pulsante di prenotazione.
  • Cauzione predefinita: importo proposto per impostazione predefinita alla creazione di un nuovo prodotto noleggiabile.
  • Sincronizzazione dei pack: attiva o disattiva la propagazione automatica delle prenotazioni di pack sui loro componenti noleggiabili (attivata per impostazione predefinita).
  • Scadenza delle richieste (ore): oltre questo termine, una richiesta di prenotazione rimasta senza risposta viene annullata e le sue date vengono liberate (0 = mai, valore predefinito).
  • API: interruttore di attivazione, token lettura-scrittura e token di sola lettura, ciascuno rigenerabile con un clic. La documentazione degli endpoint viene mostrata subito sotto questo pannello.

Configurare un prodotto noleggiabile

Vai su Catalogo > Noleggio – Prodotti, poi Aggiungi.

  • Prodotto: seleziona il prodotto del catalogo da rendere noleggiabile.
  • Attivo: attiva o sospende il noleggio di questo prodotto.
  • Modalità di prezzo: importi fissi, o percentuale del prezzo di vendita del prodotto (vedi sotto).
  • Prezzo base al giorno: tariffa giornaliera applicata quando nessuna fascia corrisponde alla durata scelta.
  • Cauzione: importo della cauzione richiesta per questo prodotto.
  • Durata minima / massima (giorni): delimita l’intervallo di date che il cliente può selezionare.
  • Unità disponibili: numero di esemplari che possiedi. Una data viene bloccata solo quando tutte le unità sono noleggiate contemporaneamente.
  • Margine di sicurezza: lascia il valore globale o definisci un margine specifico per questo prodotto.
  • Consentire la richiesta senza pagamento: mostra un pulsante di richiesta di prenotazione nella scheda prodotto, accanto al percorso di acquisto classico o al suo posto.
  • Le richieste bloccano lo stock: determina se le richieste in attesa di questo prodotto riservano le date finché non decidi.

Fasce di tariffa decrescente

Sotto il modulo, aggiungi tutte le fasce necessarie. Ogni fascia è definita da un giorno minimo, un giorno massimo e un prezzo al giorno.

Il modulo applica la fascia il cui intervallo contiene la durata scelta. Una fascia il cui giorno massimo è 0 è considerata illimitata. Se nessuna fascia corrisponde, si applica il prezzo base al giorno.

Esempio: 39 €/giorno da 1 a 3 giorni, 32 €/giorno da 4 a 7 giorni, 26 €/giorno a partire da 8 giorni (giorno massimo a 0).

Modalità percentuale

In modalità percentuale, il prezzo base al giorno, la cauzione e le fasce non sono più importi in valuta ma percentuali del prezzo di vendita al netto delle imposte del prodotto. Un prodotto venduto a 1000 € con una cauzione al 10 richiede così 100 € di cauzione; una tariffa giornaliera a 2 dà 20 € al giorno. Gli importi seguono automaticamente i prezzi del tuo catalogo: è il modo più rapido per applicare una griglia tariffaria uniforme a un gran numero di prodotti noleggiabili.

Utilizzo nel negozio

Il calendario di disponibilità

Nella scheda prodotto viene visualizzato un selettore di intervallo di date. I giorni già prenotati vengono oscurati automaticamente e non selezionabili, così come i giorni di margine dopo ogni restituzione. Il cliente sceglie una data di inizio e una data di fine entro i limiti di durata che hai fissato.

Il calcolo del prezzo

Non appena viene selezionato un intervallo valido, un riepilogo dettaglia il numero di giorni, il prezzo al giorno applicato (secondo la fascia), il totale del noleggio, la cauzione e il totale generale. Il cliente sa esattamente cosa paga prima di aggiungere al carrello.

La prenotazione

Il pulsante Prenota queste date aggiunge il noleggio al carrello. Il prezzo di noleggio viene iniettato tramite un prezzo specifico collegato al carrello: il prezzo originale del prodotto resta intatto nel catalogo e per tutte le altre vendite. Viene creata una prenotazione in stato in attesa che blocca le date scelte.

Se l’ordine non viene convalidato entro il termine di scadenza configurato, il carrello scade e le date vengono liberate automaticamente per gli altri clienti. Alla convalida dell’ordine, la prenotazione passa a confermata e si collega al cliente e all’ordine.

Richiesta di prenotazione senza pagamento

Sui prodotti dove l’opzione Consentire la richiesta senza pagamento è attiva, la scheda prodotto mostra un pulsante Richiedi una prenotazione. Il cliente sceglie le sue date e la sua quantità come per una prenotazione classica, poi indica i suoi recapiti: i clienti connessi vengono identificati automaticamente, i visitatori inseriscono nome, email e, se lo desiderano, telefono. Un campo di messaggio libero accompagna la richiesta.

La richiesta appare in Catalogo > Noleggio – Prenotazioni con lo stato Richiesta in attesa. Due azioni sono disponibili su ogni riga:

  • Accetta: il modulo riverifica la disponibilità del periodo (richieste concorrenti incluse) poi porta la prenotazione a confermata. Il cliente riceve un’email di accettazione.
  • Rifiuta: la prenotazione passa a rifiutata, le sue date vengono liberate e il cliente riceve un’email di rifiuto.

Tre email automatiche accompagnano il percorso: una conferma di ricezione al cliente al momento della richiesta, una notifica al commerciante con i recapiti e il messaggio del cliente, poi l’email di decisione. I modelli esistono nelle cinque lingue del modulo e si personalizzano come qualsiasi email PrestaShop.

Il blocco dello stock da parte delle richieste si regola con precisione: un predefinito per prodotto (Le richieste bloccano lo stock) e un interruttore individuale su ogni richiesta nell’elenco delle prenotazioni. Una richiesta che non blocca lo stock lascia le date prenotabili da altri clienti finché non viene accettata. Un termine di scadenza configurabile (in ore) può annullare automaticamente le richieste senza risposta e liberare le loro date.

Pack di prodotti

Il modulo supporta i pack nativi PrestaShop. Quando un pack contiene componenti a loro volta configurati come noleggiabili, la prenotazione del pack crea automaticamente prenotazioni collegate su ciascuno dei suoi componenti, tenendo conto delle quantità del pack. In pratica:

  • Prenotare un pack blocca la disponibilità di ciascuno dei suoi componenti noleggiabili nello stesso periodo.
  • Prenotare un componente da solo rende il pack non disponibile in quelle date non appena non restano abbastanza unità.
  • Qualsiasi modifica alla prenotazione del pack (date, quantità, stato, annullamento) viene propagata automaticamente alle prenotazioni dei suoi componenti.

Le prenotazioni dei componenti sono nascoste lato cliente (il cliente vede solo il suo pack) ma visibili nel back-office con un badge Pack #N che punta alla prenotazione principale. Non sono modificabili direttamente: la prenotazione del pack fa fede. Un’impostazione globale consente di disattivare tutto il meccanismo se preferisci gestire i pack come prodotti indipendenti.

API REST

L’API espone il noleggio in JSON per i tuoi software di gestione del parco, pianificazione o fatturazione. Attivala nella configurazione del modulo: vengono generati due token, rigenerabili con un clic: uno di lettura-scrittura e uno di sola lettura, accettato solo sugli endpoint GET. Ogni richiesta deve presentare uno di questi token tramite l’header X-Api-Key o Authorization: Bearer.

Endpoint

  • GET ping: verifica dell’autenticazione e della versione.
  • GET products: elenco dei prodotti noleggiabili con la loro configurazione (prezzo, cauzione, fasce, unità, modalità di prezzo).
  • GET availability: disponibilità giorno per giorno di un prodotto tra due date, unità rimanenti incluse.
  • GET bookings: elenco delle prenotazioni, filtrabile per status, id_product, from, to, updated_since e external_reference, paginato con limit e offset.
  • POST bookings: creazione di una prenotazione in stato requested o confirmed, con controllo di disponibilità (aggirabile con force). Il campo external_reference (max 64 caratteri) rende la creazione idempotente: se una prenotazione porta già questa referenza, viene aggiornata invece di essere duplicata.
  • POST bookings&id=N: modifica di una prenotazione (date, quantità, stato), propagata ai componenti di pack.
  • DELETE bookings&id=N: annullamento di una prenotazione.

Il filtro updated_since consente una sincronizzazione incrementale: il tuo software memorizza la data del suo ultimo passaggio e recupera solo le prenotazioni modificate da allora. L’API non invia webhook in uscita: la sincronizzazione avviene per interrogazione periodica. Gli URL esatti ed esempi di richieste sono mostrati nella pagina di configurazione del modulo.

Monitoraggio delle prenotazioni

In Catalogo > Noleggio – Prenotazioni, trovi tutte le prenotazioni con il loro prodotto, il loro cliente, il loro ordine, le loro date e il loro stato, identificato da un badge colorato.

  • Richiesta in attesa: richiesta senza pagamento in attesa della tua decisione.
  • In attesa: aggiunta al carrello, in attesa di convalida dell’ordine.
  • Confermata: ordine convalidato o richiesta accettata, date riservate.
  • In corso: periodo di noleggio in corso.
  • Restituita: articolo restituito.
  • Rifiutata: richiesta rifiutata, date liberate.
  • Annullata: prenotazione annullata, date liberate.

Il dettaglio di ogni noleggio appare anche nel carrello, sulla pagina di conferma dell’ordine e nella scheda ordine del back-office. Lato cliente, la pagina I miei noleggi dell’area Il mio account elenca tutti i suoi noleggi con periodo, durata, cauzione e stato.

Il rimborso della cauzione avviene tramite nota di credito alla restituzione dell’articolo, dalla scheda ordine di PrestaShop. È il metodo più semplice e trasparente per la contabilità della maggior parte dei negozi di noleggio.

Opzioni della versione 1.5

La versione 1.5 amplia la selezione delle date, la tariffazione e la gestione della cauzione. Tutte le opzioni si regolano nella configurazione del modulo.

Selezione delle date

Due modalità di visualizzazione: un unico campo periodo con calendario su due mesi, oppure due campi separati di inizio e fine. Gli orari di ritiro e riconsegna possono essere attivati; vengono registrati sulla prenotazione ed esposti nell’API. La posizione del blocco noleggio sulla scheda prodotto è configurabile tra sette hook, con un hook di ripiego per i temi senza displayProductAdditionalInfo.

Date globali del carrello

Attive per impostazione predefinita, applicano un unico periodo a tutte le righe dell’ordine. Le schede prodotto arrivano precompilate con il periodo del carrello, e il carrello offre un editor per cambiare le date di tutto l’ordine, con nuova verifica delle disponibilità e ricalcolo dei prezzi di ogni riga. Un’opzione sposta interamente la scelta delle date nel carrello: la scheda prodotto chiede solo la quantità, e il primo periodo disponibile viene proposto automaticamente alla prima aggiunta.

Tutto il catalogo a noleggio

Per i negozi 100 % noleggio: ogni prodotto attivo diventa noleggiabile senza configurazione individuale. L’importo base è preso dal prezzo di vendita, lo stock a noleggio segue lo stock PrestaShop, e la richiesta di prenotazione può essere autorizzata globalmente.

Coefficienti di durata

In modalità coefficiente, il prezzo si calcola come importo base moltiplicato per un coefficiente. La griglia per fasce di giorni è configurabile (per impostazione predefinita 1 giorno: 1, 2 giorni: 1,5, 3 giorni: 2, da 4 a 7 giorni: 3, da 8 a 14 giorni: 5, da 15 a 21 giorni: 7, da 22 a 30 giorni: 9). Due eccezioni weekend prioritarie sono regolabili: sabato a lunedì (coefficiente 1 per impostazione predefinita) e venerdì a lunedì (1,5 per impostazione predefinita). Oltre la durata massima (30 giorni per impostazione predefinita), il prezzo passa su richiesta: l’aggiunta al carrello viene bloccata e la richiesta di prenotazione senza pagamento subentra.

Cauzione

Tre modalità: per prodotto (comportamento storico), globale automatica o disattivata. In modalità globale, viene calcolata una sola cauzione per tutto l’ordine: importo base IVA inclusa moltiplicato per un moltiplicatore (2 per impostazione predefinita), con un minimo (500 per impostazione predefinita) e un arrotondamento allo scaglione superiore (100 per impostazione predefinita). Viene registrata sulla prima prenotazione dell’ordine e resta modificabile nel back-office. L’addebito è indipendente: cauzione addebitata al pagamento, oppure semplicemente mostrata per un’impronta bancaria. Le colonne cauzione scompaiono dai riepiloghi e dalla fattura PDF quando nessuna riga ne porta una.

FAQ e risoluzione dei problemi

Il prezzo di noleggio modifica il prezzo del mio prodotto?

No. Il prezzo viene iniettato tramite un prezzo specifico collegato solo al carrello corrente. Il prezzo originale del prodotto resta invariato nel catalogo e per gli altri clienti.

Come funziona la tariffa decrescente?

Definisci fasce (giorno minimo, giorno massimo, prezzo al giorno). Il modulo sceglie la fascia il cui intervallo contiene la durata richiesta. Un giorno massimo di 0 significa «illimitato». Senza fascia corrispondente, si applica il prezzo base al giorno.

Si possono noleggiare più unità dello stesso prodotto?

Sì. Indica il numero di unità disponibili. Una data viene oscurata solo quando tutte le unità sono già noleggiate in quel periodo.

La cauzione viene rimborsata automaticamente?

No. Viene aggiunta alla riga del carrello al momento del noleggio e rimborsata tramite nota di credito alla restituzione, dalla scheda ordine del back-office.

Una richiesta accettata crea un ordine?

No. L’accettazione conferma la prenotazione e blocca le date, senza creare un ordine PrestaShop. Incassi il pagamento tramite il canale che preferisci (in loco, bonifico, link di pagamento) e segui il noleggio dalla schermata delle prenotazioni.

Il calendario non appare nella scheda prodotto

Verifica che il prodotto sia configurato e attivo in Noleggio – Prodotti. Poi svuota la cache di PrestaShop (Parametri avanzati > Prestazioni) e, durante i test, disattiva la combinazione/compressione dei file (CCC).

Il pulsante «Aggiungi al carrello» nativo resta visibile

Il nascondimento si basa su selettori di tema. Attiva l’opzione Nascondere il pulsante «Aggiungi al carrello» nativo nelle impostazioni; a seconda del tuo tema, può essere necessario un leggero adattamento dei selettori.

L’API risponde 401

Verifica che l’API sia attivata nella configurazione e che il token inviato corrisponda al token mostrato. Dopo una rigenerazione del token, ricordati di aggiornare le tue integrazioni.

È compatibile con PrestaShop 9?

Sì. Il modulo è compatibile con PrestaShop 8 e 9, in multi-negozio e multilingua (FR, EN, ES, DE, IT). La formattazione dei prezzi utilizza il Locale corrente, in linea con le pratiche di PrestaShop 9.

Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza