DARKF3D3 Posted April 12, 2021 Share Posted April 12, 2021 (edited) Attualmente se di un prodotto si mettono nel carrello tutte le quantità disponibili, come per esempio quando si aggiunge al carrello l'ultimo prodotto disponibile, poi viene mostrato il messaggio "prodotto non disponibile". Ho notato però che questo talvolta crea confusione nei clienti, che vedendo il messaggio non disponibile, non capiscono se il prodotto sia completamente terminato o meno. Vorrei quindi mostrare un messaggio differente, del tipo: "Hai ordinato il numero massimo di pezzi disponibili". Cosa che sono già riuscito a fare sulla pagina del carrello usando questa condizione: {if $product.stock_quantity < $product.quantity}MESSAGGIO{/if} Purtroppo dalla pagina del prodotto quelle variabili non sono disponibili. Avete idea di come poter ottenere lo stesso risultato? Versione Prestashop 1.7.7 Edited April 12, 2021 by DARKF3D3 (see edit history) Link to comment Share on other sites More sharing options...
Giuseppe C. Posted April 13, 2021 Share Posted April 13, 2021 Ciao, quale template utilizzi? Link to comment Share on other sites More sharing options...
DARKF3D3 Posted April 13, 2021 Author Share Posted April 13, 2021 Ho creato un child theme del tema classic di Prestashop a cui ho applicato alcune modifiche. Link to comment Share on other sites More sharing options...
Giuseppe C. Posted April 13, 2021 Share Posted April 13, 2021 Hai provato a modificare il file: themes\classic\templates\catalog\_partials\product-add-to-cart.tpl ? Se ricordo bene la condizione viene catturata alla riga 9 1 {block name='product_availability'} 2 <span id="product-availability"> 3 {if $product.show_availability && $product.availability_message} 4 {if $product.availability == 'available'} 5 <i class="material-icons rtl-no-flip product-available"></i> 6 {elseif $product.availability == 'last_remaining_items'} 7 <i class="material-icons product-last-items"></i> 8 {else} 9 <i class="material-icons product-unavailable"></i> 10 {/if} 11 {$product.availability_message} 12 {/if} 13 </span> 14 {/block} Link to comment Share on other sites More sharing options...
DARKF3D3 Posted April 13, 2021 Author Share Posted April 13, 2021 Si è il file che sto cercando di modificare. Però non riesco ad ottenere quanto indicato con la variabile {$product.availability_message} perché se si mette nel carrello la quantità disponibile del prodotto, il messaggio contenuto della variabile diventa quello di prodotto "out of stock" e non c'è distinzione tra prodotto terminato e prodotto terminato, ma perché si ha l'ultima quantità disponibile nel carrello. Come ho scritto sopra nel carrello l'ho fatto usando le 2 variabili "$product.stock_quantity" e "$product.quantity" che però non sono disponibili nella scheda prodotto. Link to comment Share on other sites More sharing options...
Giuseppe C. Posted April 13, 2021 Share Posted April 13, 2021 Scusami ma la condizione non è già gestita da Prestashop? Esempio prodotto id 19 con 2 qty disponibili su Prestashop Non conviene solo cambiare la traduzione? Link to comment Share on other sites More sharing options...
DARKF3D3 Posted April 13, 2021 Author Share Posted April 13, 2021 Si quei messaggi sono corretti e vanno già bene, il problema c'è quando aggiungi quelle 2 quantità al carrello. In quel momento viene visualizzato il messaggio di prodotto terminato. Quello che sto cercando di fare è modificare il testo in quella condizione, e mostrare un messaggio di questo tipo "Hai già nel carrello la quantità massima disponibile". Link to comment Share on other sites More sharing options...
Giuseppe C. Posted April 13, 2021 Share Posted April 13, 2021 Prova questa: {if $product.quantity_wanted == $product.quantity} ... Link to comment Share on other sites More sharing options...
DARKF3D3 Posted April 13, 2021 Author Share Posted April 13, 2021 Niente da fare, ho fatto varie prove però con quelle 2 variabili non si riesce. "$product.quantity" mostra la quantità disponibile del prodotto, a cui però è già stato sottratto il quantitativo presente nel carrello (per esempio 1 quantità disponibile e 1 prodotto nel carrello, $product.quantity sarà a "0") Mentre "$product.quantity_wanted" sembrerebbe che sia la quantità che si vuole aggiungere al carrello, quindi di base il valore è sempre 1. Servirebbe una variabile che contenga la quantità presente nel carrello, senza di quella altrimenti non è possibile fare un confronto con lo stock disponibile a magazzino. Link to comment Share on other sites More sharing options...
Giuseppe C. Posted April 13, 2021 Share Posted April 13, 2021 Ho fatto una prova su una installazione standard di Prestashop e sembra funzionare: {block name='product_availability'} <span id="product-availability"> {*test*} {$product.quantity_wanted} <=> {$product.quantity} {if $product.quantity_wanted == $product.quantity} <p>UGUALE</p> {/if} {*test*} {if $product.show_availability && $product.availability_message} {if $product.availability == 'available'} <i class="material-icons rtl-no-flip product-available"></i> {elseif $product.availability == 'last_remaining_items'} <i class="material-icons product-last-items"></i> {else} <i class="material-icons product-unavailable"></i> {/if} {$product.availability_message} {/if} </span> {/block} Link to comment Share on other sites More sharing options...
DARKF3D3 Posted April 13, 2021 Author Share Posted April 13, 2021 Ok, ora forse ho capito perché ottenevamo risultati differenti. Probabilmente non mi sono spiegato molto bene... L'esempio degli screenshot che hai postato mi è chiaro e fin qui ci sono. Però il mio problema è in una situazione leggermente differente. Tenendo come riferimento il tuo esempio degli screenshot dove la disponibilità è di 300 pezzi. Se il cliente mette tutti e 300 pezzi nel carrello, poi naviga sul sito e più tardi torna sulla scheda prodotto vedrà il messaggio di "prodotto esaurito", in realtà il prodotto non è esaurito, semplicemente non ci sono più pezzi oltre ai 300 che ha già nel carrello. Questo messaggio di disponibilità crea confusione ad alcuni clienti che chiamano chiedendo chiarimenti riguardo la disponibilità. In questa casistica la condizione con le due variabili proposte non funziona, perché la variabile "$product.quantity_wanted" indica il numero di pezzi che si vogliono aggiungere e non quelli già presenti nel carrello. PS: Grazie per il tempo che ci stai dedicando. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now