WebSite X5Help Center

 
Francesco Tedeschi
Francesco Tedeschi
User

[ecommerce] limitare acquisto di 1 sola quantità  it

Auteur : Francesco Tedeschi
Visité 1980, Followers 4, Partagé 0  

Ciao a tutti ragazzi !!!!!!
in questa pagina, (per alcune promozioni) c'è e ci sarà sempre in vendita un solo prodotto.

Ho la necessità che il prodotto sia acquistabile per una sola quantità, quindi può essere acquistata una sola soppressata.
Se il cliente vuole acquistare nuovamente lo stesso prodotto, deve rifare un nuovo ordine.

C'è possibilità di limitare l'acquisto (con codice extra) a 1 solo prodotto?

N.B. la funzione non deve funzionare sull'intero carrello, ma solo su questo prodotto.
Il cliente devea vere la possibilità poi di acquistare altri prodotti nelle altre categorie per la quantità da lui desiderata

Posté le
36 RéPONSES - 1 CORRECT
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT

... prova, e se nel caso non si attivasse, sarà poi da valutare un certo ritardo:

<script>
$( document ).ready(function() { //K;
$('#product_278z0vq6p91_qty').click(function(){//K;
k=$('#product_278z0vq6p91_qty');
if(k.val() >1 ){ alert("max 1 prodotto" );
$(k).val(1); }}) });
</script>

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

ciao KolAsim e grazie x l'interesse, sempre nella stessa pagina del test a seguito di alcune modifiche è cambiato l'id del prodotto che ora è diventato product_286z0vq6p91_opt

quindi il codice da te fornito l'ho modificato con il nuovo id:
<script>
$( document ).ready(function() { //K;
$('#product_278z0vq6p91_qty').click(function(){//K;
k=$('##product_278z0vq6p91_qty');
if(k.val() >1 ){ alert("max 1 prodotto" );
$(k).val(1); }}) });
</script>

messo prima della chiusura del tag head nella sezione esperto della pagina ma non succede nulla.

P.S. il prodotto ora si trova alla fine della pagina test

Lire plus
Posté le de Francesco Tedeschi
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

rettifico, il codice con il nuovo id è il seguente:

<script>
$( document ).ready(function() { //K;
$('#product_286z0vq6p91_opt').click(function(){//K;
k=$('##product_286z0vq6p91_opt');
if(k.val() >1 ){ alert("max 1 prodotto" );
$(k).val(1); }}) });
</script>

Lire plus
Posté le de Francesco Tedeschi
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT

... non ho controllato nella pagina, ma a veder il tuo codice vedo lo stesso mio ID ed un cancelletto (#) in più...

... intanto controlla questo...

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT

... ah!, allora un cancelletto (#) in più...

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

ok, ho corretto il codice, si c'era un cancelletto in più.
Ora funziona come da tuo screen precedente.

c'è un problema, il cliente potrebbe comunque acquistare 2 articoli cliccando 2 volte sul tasto "aggiungi"
o potrebbe modificare la quantità nel primo step del carrello:

undecided

Lire plus
Posté le de Francesco Tedeschi
Mauro B.
Mauro B.
User
Francesco Tedeschi
ciao KolAsim e grazie x l'interesse, sempre nella stessa pagina del test a seguito di alcune modifiche è cambiato l'id del prodotto che ora è diventato product_286z0vq6p91_opt quindi il codice da te fornito l'ho modificato con il nuovo id: <script> $( document ).ready(function() { //K; $('#product_278z0vq6p91_qty').click(function(){//K; k=$('##product_278z0vq6p91_qty'); if(k.val() >1 ){ alert("max 1 prodotto" ); $(k).val(1); }}) }); </script> messo prima della chiusura del tag head nella sezione esperto della pagina ma non succede nulla. P.S. il prodotto ora si trova alla fine della pagina test

Ciao Francesco,

credo tu abbia (nonostante, come dici, sia cambiato il codice prodotto in product_286z0vq6p91_opt ) lasciato il codice prodotto "product_278z0vq6p91_qty".

Tra l'altro ho notato che nella quarta riga il codice riporta un "#" di troppo (rispetto al codice indicato da KOL):

k=$('##product_278z0vq6p91_qty');

Sbaglio io in qualcosa?

Lire plus
Posté le de Mauro B.
Mauro B.
Mauro B.
User

Ho visto che hai risoltowink

Lire plus
Posté le de Mauro B.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT
Francesco Tedeschi
... ... ...  c'è un problema, il cliente potrebbe comunque acquistare 2 articoli cliccando 2 volte sul tasto "aggiungi" o potrebbe modificare la quantità nel primo step del carrello: ... ... ... 

... per la pagina CART, dovrebbe disabilitare tutti gli incrementi:

$( document ).ready(function() { //K;
$(".products-table input").attr("disabled","disabled") ;});

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

Grazie @Mauro B. , si avevo fatto un errore e poi corretto :D

 ‪ KolAsim ‪ ‪
$( document ).ready(function() { //K; $(".products-table input").attr("disabled","disabled") ;});


Questo è da aggiungere allo stesso codice che mi hai dato ?
l'ho messo tra il tag <script></script> del codice che mi hai dato prima ma non succede nulla

Lire plus
Posté le de Francesco Tedeschi
Giuseppe Guida
Giuseppe Guida
User

Posso acquistare più di 1 prodotto ad 1 euro...

Lire plus
Posté le de Giuseppe Guida
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT
Francesco Tedeschi
... ... ...  Questo è da aggiungere allo stesso codice che mi hai dato ? l'ho messo tra il tag <script></script> del codice che mi hai dato prima ma non succede nulla

... sì si hai ragione scusa, nel tag SCRIPT, e solo nella pagina CART:

<script>
$( document ).ready(function() { //K;
$(".products-table input").attr("disabled","disabled") ;});
</script>

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Francesco Tedeschi
Francesco Tedeschi
User
Auteur
 ‪ KolAsim ‪ ‪
<script> $( document ).ready(function() { //K; $(".products-table input").attr("disabled","disabled") ;}); </script>

messo prima della chiusura del tag head nella sezione esperto del carrello ma non succede nulla...
puoi dare un occhiata x favore Kol ? Pagina test

Lire plus
Posté le de Francesco Tedeschi
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT

... ho visto, non va(!);  ...potrebbe dipendere dal lento caricamento dei dati dinamici e formazione della pagina...

... ho aggiunto un ritardo di 3 secondi (secondiK=3),  che dovrai valutare provando se aumentare o diminuire:

<script>
$( document ).ready(function() { //K;
secondiK = 3;
setTimeout(function(){
$(".products-table input").attr("disabled","disabled") ;
}, secondiK*1000); });
</script>

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

si, così va bene, grazie.
ho esportato le modifiche in rete.
tuttavia KolAsim, se si clicca 2 o + volte sul tasto aggiungi al carrello (nella pagina test), la quantità viene comunque incrementata frown

Lire plus
Posté le de Francesco Tedeschi
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

tramite le opzioni del programma potrei fare in modo di nascondere il pulsante aggiungi
potrei quindi inserire una mia immagine dandogli il collegamento di aggiunta al carrello della soppressata , però una volta cliccata l'immagine , questa non deve più essere cliccabile.....

Lire plus
Posté le de Francesco Tedeschi
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

mi spiego meglio, una volta cliccato sull'immagine da me creata (aggiungi) questa non deve + essere cliccabile....

Lire plus
Posté le de Francesco Tedeschi
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT

... se ho capito, prova ad aggiungere al primo codice la modifica in grassetto:

<script>
$( document ).ready(function() { //K;
$('#product_286z0vq6p91_qty').click(function(){//K;
k=$('#product_286z0vq6p91_qty');
if(k.val() >1 ){ alert("max 1 prodotto" );
$(k).val(1); }})
$( ".imProductListButton" ).click(function(){alert("aggiunto al carrello");$( this ).hide();});
});
</script>

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT
Giuseppe Guida
... ...  ... e questo è lo stesso link del video per fare delle prove: http://www.test70.altervista.org/provashop2021.2/test.html ... ... 

... grazie per l'esempio, e mi sembra un struttura diversa; ...  AGGIUNGI va direttamente in CART senza popup intermedia, e già mi pare meglio...
...!... ho notato nello smartphone, ma vedo che vale anche per il PC, che se la casella è selezionata, si possono modificare lo stesso i valori...!...
... per sopperire a questo, nel tuo caso il primo codice sarebbe da sostituire con questo, ed ovviamente  Francesco dovrà sostituire l'ID con il suo:

<script>
$( document ).ready(function() { //K;
k=$('#product_250c8l5gla_qty');
$(k).click(function(){//K;
if($(k).val() >1 ){ alert("max 1 prodotto" );$(k).val(1); } })
$(k).bind("keyup", function() { //K;
if ($(k).val() > 1) { alert("Max 1 prodotto!"); $(k).val(1);} })
$( ".imProductListButton" ).click(function(){alert("aggiunto al carrello");$( this ).hide();}); })
</script>

... e nella tua CART(*) il tuo selettore è diverso e questo codice è quello relativo da sostituire:

<script>
$( document ).ready(function() { //K;
secondiK = 1;
setTimeout(function(){
$(".product-quantity input").attr("disabled","disabled") ;
}, secondiK*1000); });
</script>

...!... come mi hai fatto notare, il "continua shopping"  permetterebbe di aggiungere 1 nuovo prodotto, per il che il discorso si complicherebbe...!...

... la cosa più semplice, come mi hanno richiesto altri in altre occsioni, sarebbe quella di eliminare tale pulsante in quella pagina, ed il gioco è fatto...

... altrimenti occorrerebbe sviluppare una routine con cookie di controllo...

...(*) ... questo disabilita tutti i campi, come avevo detto nel relativo post; in poche parole chi si trova qui è perchè ha definito già quel che gli serve, quindi senza ripensamenti, se non quello di tornare proprio indietro...

... in CART purtroppo il prodotto non mantiene lo stesso ID, nel qual caso sarebbe stato semplice, e poi, con un solo prodotto non posso valutare, ne occorrerebbero almeno due, ma stando alla nota (*)  non servirebbe complicare oltre...

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Giuseppe Guida
Giuseppe Guida
User

Ciao Kol, ho modificato il codice come da tuo suggerimento ma permangono gli stessi problemi di prima. In più se aggiungo al carrello il prodotto "limitato" (chiamiamolo così) e NON proseguo con l'acquisto ma decido di tornare nella pagina "Product" del mio esempio online e da lì seleziono lo stesso prodotto "limitato" che viene presentato anche in quella pagina, quest'ultimo mi viene aggiunto nel carrello in una scheda diversa e separata con quantità 1 che sarà visibile nel primo step del processo di acquisto insieme all'altro prodotto "limitato" già presente con quantità 1 (vedi foto per capire: Prodotto contrassegnato con num 1 rosso proveniente dalla pagina test, quella con il codice, prodotto contrassegnato con num. 2 rosso proveniente da pagina "Product").

Ciò avviene perchè nella pagina "Product" non vi è nessun codice che limita l'inserimento di un prodotto "limitato" uguale a quello della pagina test (tra l'altro credo saranno diversi anche gli ID)... Bisognerebbe vedere poi cosa accade se tale prodotto "limitato" viene aggiunto, per esempio, dalla pagina di ricerca con filtri, sicuramente non essendoci codice neanche lì (e forse cambia anche l'ID), il prodotto potrà essere aggiunto anche da quella sezione...

La mia situazione è più complessa in effetti, mentre Francesco ha il prodotto "limitato" presente solo in una specifica pagina, da quel che ho capito, e quindi tutto dovrebbe essere più semplice.

Ciao

Lire plus
Posté le de Giuseppe Guida
Giuseppe Guida
Giuseppe Guida
User

Aspè Kol... mi sono reso conto che avendo duplicato un prodotto per fare il test, in realtà ho due prodotti uguali ma con codici diversi (Product 011 e Product 07), elimino uno dei due, lo rendo unico e rifaccio qualche prova.

Lire plus
Posté le de Giuseppe Guida
Giuseppe Guida
Giuseppe Guida
User

E niente, fatto... in quel caso, avendo un unico prodotto "limitato" nel sito (stesso prodotto sia in pagina "product" che in pagina "test"), poi eseguendo la procedura spiegata nel mio post precedente mi aggiunge ugualmente il prodotto al carrello, incrementando il valore della quantità da 1 a 2 e non con schede separate. 

Lire plus
Posté le de Giuseppe Guida
Giuseppe Guida
Giuseppe Guida
User

Anche inserendo il tuo script nella pagina "Product" (tra l'altro lì i prodotti non hanno la quantità visibile), lo stesso prodotto mi viene aggiunto al carrello insieme a quello inserito precedentemente dalla pagina "test", ovvio perchè lo script fa un altro tipo di controllo, limità la quantità ma NON vieta di aggiungere lo stesso prodotto come ne abbiano già discusso sopra....

Ci vorrebbe, a mio avviso, un altro script che "controlla" la quantità direttamente nello step 1 del processo di acquisto ma solo per quello specifico prodotto e non per tutti (ho uno script che fa questo controllo ma lavora poi su tutto il carrello e non su singolo prodotto).

Lire plus
Posté le de Giuseppe Guida
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT

... se non ci fossero ramificazioni nelle aggiunte il ciclo unico tipo della pagina test.html mi pare che potrebbe funzionare nei modi detti nell'ultimo mio post...
... invece con queste possibilità a più ingressi la vedo un po' dura a causa degli ID dinamici:
http://www.test70.altervista.org/provashop2021.2/product.html
http://www.test70.altervista.org/provashop2021.2/product/?product-031

... quello che potrei provare proprio per provare, sarebbe con una pagina/prodotto in più, test.html  + test2.html

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Giuseppe Guida
Giuseppe Guida
User

Ciao Kol, ecco qui:

https://www.test70.altervista.org/provashop2021.2/

Aggiorna la pagina nel caso non vedi subito anche la pagina test2

Considera che nella pagina test il prodotto visibile è presente solo in quella pagina e non in altre. Nella pagina test 2 il prodotto visibile è presente anche in altre pagine del sito (quindi potrebbe essere aggiunto al carrello da altre pagine)

Lire plus
Posté le de Giuseppe Guida
Domenico B.
Domenico B.
User

+1

Lire plus
Posté le de Domenico B.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT
Giuseppe Guida
Ciao Kol, ecco qui: https://www.test70.altervista.org/provashop2021.2/ Aggiorna la pagina nel caso non vedi subito anche la pagina test2 Considera che nella pagina test il prodotto visibile è presente solo in quella pagina e non in altre. Nella pagina test 2 il prodotto visibile è presente anche in altre pagine del sito (quindi potrebbe essere aggiunto al carrello da altre pagine)

ciao, ... ho visto; ...la cosa più semplice per me, (senza dover stravolgere ricorrendo a complicati controlli sui cookies),  sarebbe quella di eliminare il pulsante "continua shopping"   nella pagina CART, e sempre in CART disabilitare gli INPUT (tutti)  con il precedente codice per CART...
... in pratica chi si trova in CART è perchè ha definito già quel che gli serve...

... per altri condizionamenti il tutto si complicherebbe, tanto che forse sarebbe da riprogettare tutto il corso e logica del carrello...

.

ciao

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Giuseppe Guida
Giuseppe Guida
User

Ciao Kol, sì, potrebbe andare. Solo che se un utente inserisce il prodotto nel carrello poi decide di abbandonare la navigazione, il giorno dopo ritorna sul sito, va di nuovo su quel prodotto e lo reinserisce nel carrello, avrà due prodotti uguali invece di uno e così, in modo del tutto fortuito, l'utente si ritrova ad aver "superato" il limite consentito senza volerlo. Questa è una decisione che dovrebbe prendere Francesco, se si gli sta bene così e se gli va di "correre il rischio" che, in qualche modo, qualche utente possa riuscire a superare il limite di un solo prodotto consentito.

Ciao

Lire plus
Posté le de Giuseppe Guida
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

Ciao ragazzi, ho seguito le vostre proposte e i vostri test.

Purtroppo non è la soluzione migliore questa x me. Ringrazio KolAsim e Giuseppe per le proposte, idee e test, sempre in gamba !!!! 

Lire plus
Posté le de Francesco Tedeschi
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

Una soluzione migliore ma macchinosa l'ho trovata... 

Metto il prodotto come "disponibilità effettiva" a 1, in modo che la disponibilità del prodotto  sia segnata a 1 sul database.

A questo punto l'acquirente non può acquistare più di 1 articolo, il programma glielo vieta. Una volta che ricevo l'ordine dell acquirente, mi basta collegarmi all app web site manager e annullando l'ordine (dalla X rossa) in automatico e immediatamente l'articolo diventa disponibile sempre x la quantità di 1

Lire plus
Posté le de Francesco Tedeschi
Giuseppe Guida
Giuseppe Guida
User

Ciao Francesco... ma cosí devi stare 24h su 24h in allerta nel caso arrivi un ordine per poi annullarlo...  come fai?

Lire plus
Posté le de Giuseppe Guida
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois ESMeilleur utilisateur du mois PT

... la strada migliore è quella che con dei compromessi risulti più amichevole per i propri scopi...

... ciao a tutti ...

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Francesco Tedeschi
Francesco Tedeschi
User
Auteur

Buongiorno, ritornando sull'argomento iniziale, a seguito di alcune prove, ho appurato che è possibile rendere l'acquisto limitato di determinati prodotti senza codici esterni e facendo tutto da programma.
Spiego qui il procedimento e se non ci saranno ulteriori domande renderò questo mio messaggio come risolto in modo che possa essere utile a qualcun altro.

PREMESSA:
l'ecommerce deve essere collegato ad un database e non dovete avere "esigenze di magazzino"

SOLUZIONE:
Prendiamo in considerazione gli oggetti in vendita su un ecommerce chiamati A - B - C
e solo su A e B voglio limitare l'acquisto a:
- max 2 quantità acquistabili x il prodotto A
- max 3 quantità per i prodotto B

1) al passo 1 > carrello ecommerce troviamo il prodotto A e impostiamo come disponibilità effettiva 2,

successivamente, troviamo il prodotto B e impostiamo come disponibilità effettiva 3,
per il prodotto C  (che è il prodotto che possiamo vendere illimitatamente) o per tutti i prodotti in cui non desideriamo limitare la vendita, possiamo impostare la disponibilità a "nessuna informazione sulla disponibilità"

2) al passo 1 > carrello ecommerce > TAB Gestione ordine

cliccare su ciascun metodo di pagamento da noi specificato, ogni metodo di pagamento non deve avere la spunta su "evadi automaticamente l'ordine "

3) sempre al passo 1 > carrello ecommerce > TAB opzioni
spuntare la casella come da foto sottostante.



____________________________________________________

In questo modo sarà possibile acquistare articoli limitati ( A e B) e articoli illimitati ( C )

Lire plus
Posté le de Francesco Tedeschi
Giuseppe Guida
Giuseppe Guida
User

Ciao Francesco, sì, in effetti sembra tutto logico e dovrebbe funzionare. Grazie mille, farò delle prove. Ciao

Lire plus
Posté le de Giuseppe Guida
Giuseppe Guida
Giuseppe Guida
User

Come hai specificato in privato, in realtà non evadendo mail l'ordine, la quantità acquistabile rimane sempre quella massima impostata per ciascun prodotto, oltre quella non si va. Perfetto, ottima soluzione.

Grazie

Lire plus
Posté le de Giuseppe Guida