WebSite X5Help Center

 
Luca A.
Luca A.
User

VARIABILE PER CONTATORE CHILOGRAMMI NEL CARRELLO  it

Autor: Luca A.
Visitado 1360, Seguidores 4, Compartilhado 0  

Ciao a tutti,

nel mio sito, che devo ancora pubblicare, ho inserito l'widget "weight-total".  Fin qui tutto regolare!
Ho impostato il carrello in modo tale che mi calcola le spese di trasporto SOLO fino a 500Kg.
Oltre questo peso, il carrello mostra 0=zero come importo e il cliente DEVE obbligatoriamente richiedere un Preventivo a parte.

Qui viene la mia richiesta:

E' possibile avvisare il cliente che il Peso nel carrello supera i 500kg e che quindi deve richiedere un Preventivo?
Mi piacerebbe, per esempio, che i numeri mostrati dall'widget diventassero ROSSI superati i 500Kg. (adesso sono bianchi) e che apparisse un popup (o si aprisse una pagina) che avvisa il cliente di richiedere un Preventivo.

Grazie a chiunque mi saprà dare qualche dritta utile.

Publicado em
25 RESPOSTAS - 4 ÚTEIS - 1 CORRIGIR
Luca A.
Luca A.
User
Autor

KolAsim, ho dato un occhio al link che mi hai indicato, ma mi sembra che i vari esempi siano riferiti esclusivamente a come impostare degli acquisti minimi nel carrello, e sinceramente non saprei proprio come utilizzare tutto ciò per quello che mi serve.
Nel mio caso non devo impostare niente di tutto ciò, ma semplicemente avvisare il cliente che nel carrello si è superato un certo peso (500kg.).
Sinceramente non mastico molto codice e pertanto avrei bisogno di qualcuno che mi aiutasse in tal senso.

Comunque grazie per le tue indicazioni, che mi potrebbero tornare utili in futuro wink

Ler mais
Publicado em de Luca A.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... dov'è che si indica il peso...?...  ... posta il LINK della relativa pagina di esempio online...

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
Luca A.
Luca A.
User
Autor

Ecco qua il link della HOME.
Questo nuovo sito è stato pubblicato provvisoriamente in una sottocartella (CARRELLO) di un sito già esistente solo per testarlo:
https://www.lonardituttoperilgiardino.it/carrello/home_page.html

Premetto che l'widget "weight-total" è stato inserito, insieme all'icona del carrello, in ogni singola pagina e non nella "header", per problemi legati all'adattamento Responsive degli oggetti inseriti nella versione 12 Professional.

Ler mais
Publicado em de Luca A.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... purtroppo non potendo usare il programma, mi sono basato sul sorgente della  tua pagina, e mi sono inventato questo codice, da inserire in /HEAD a seguito del mio già presente codice per le tabelle elastiche; ...il limite dei Kg è impostato a 50 Kg, che potrai poi personalizzarti:

<!-- controllo Kg * by KolAsim * inizio -->
<script>
window.onload = function() {setTimeout(function(){ funzione_kgK(); }, 2000);
$("div[id^='imProductList_'] img").click(function(event) {
event.preventDefault(); console.log(funzione_kgK());}); }
function funzione_kgK() { vmK = 50; // valore Massimo consentito;
k = document.getElementsByClassName("widget_weight_total");kk = k[0].innerHTML;
if(kk > vmK) { alert("...!... attenzione...!... \n ... il peso attuale di "+kk+" Kg, ha superato il peso \n ...massimo consentito di "+vmK+" Kg...!...");}}
</script>
<!-- controllo Kg * by KolAsim * FINE -->

... provalo per vedere se possa andarti bene ...adesso che le scuole sono chiuse, forse qualche altro esperto potrebbe proporti qualche altra idea, magari più valida...

.

... occhio! ...la v.12 è ormai fuori assistenza; ...nel tuo interesse valuta prima che sia troppo tardi...

.

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
Luca A.
Luca A.
User
Autor

Grazie infinite KolAsim, dovrei farti un monumento tongue-out
La tua soluzione è esattamente quello che mi serviva.

Per quanto riguarda la versione del prg, valuterò anche un aggiornamento estremo, ma ti volevo chiedere se potrò poi importare il mio progetto senza perdere tutte le impostazioni, le lingue, l'aggiunta dei vai codici EXTRA, ecc.

Ler mais
Publicado em de Luca A.
Luca A.
Luca A.
User
Autor

Ti chiedo un'ultima cosa che riguarda sempre l'alert che appare superati i 500kg...
Cosa devo aggiungere nel codice per far si che questo msg appaia una sola volta dopo aver chiusa la finestra dell'alert?

Grazie ancora!

Ler mais
Publicado em de Luca A.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Luca A.
... ... ma ti volevo chiedere se potrò poi importare il mio progetto senza perdere tutte le impostazioni, le lingue, l'aggiunta dei vai codici EXTRA, ecc.

... per gli EXTRA non posso garantirtelo; ... dalla v.17 in poi la struttura del progetto è molto cambiata...
... comunque potrai sempre tenere attivo il sito attuale senza dismettere la v.12...
... e poi con calma procedere alla conversione ed alle verifiche ed aggiustamenti del caso provando per sicurezza in una sotto-directory; ...magari alcuni interventi EXTRA non saranno necessari, eccetto quello della mia tabella elastica(!), utile ancora là dove servirebbe...
.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Luca A.
... ...  Cosa devo aggiungere nel codice per far si che questo msg appaia una sola volta dopo aver chiusa la finestra dell'alert? ... ... ...

... sulla base del precedente codice, e senza ricorrere a cookie, potresti aggiungere le modifiche in grassetto, che dovrebbero effettuare il controllo all'apertura della pagina, al refresh, e solo al primo click:

<!-- controllo Kg * by KolAsim * inizio -->
<script>
contaK = 1;
window.onload = function() {setTimeout(function(){ funzione_kgK(); }, 2000);
$("div[id^='imProductList_'] img").click(function(event) {
event.preventDefault(); console.log(funzione_kgK());contaK = 0;}); }
function funzione_kgK() { vmK = 50; // valore Massimo consentito;
k = document.getElementsByClassName("widget_weight_total");kk = k[0].innerHTML;
if(kk > vmK && contaK == 1) { alert("...!... attenzione...!... \n ... il peso attuale di "+kk+" Kg, ha superato il peso \n ...massimo consentito di "+vmK+" Kg...!...");}}
</script>
<!-- controllo Kg * by KolAsim * FINE -->

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
Luca A.
Luca A.
User
Autor

Niente da fare!
Ho aggiunto le modifiche che mi hai indicato in grassetto...ma non è cambiato niente.
Si apre regolarmente l'alert quando il peso nel carrello supera i 500 kg, ma se ricarico la pagina o aggiungo ulteriori articoli nel carrello si riapre continuamente l'alert.

Ler mais
Publicado em de Luca A.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... il codice dovresti metterlo nelle pagine in qui effettui l'inserimento nel carrello, tipo questa, https://www.lonardituttoperilgiardino.it/carrello/736s_rana_pincara_in_cemento.html  ... dove vedo adesso che funziona nel modo detto prima...

... quindi in questa sezione:

>> Passo 2 - Creazione della Mappa > Proprietà Pagina | Sezione Esperto | ▪Codice personalizzato: >Prima della chiusura del tag HEAD.

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
Luca A.
Luca A.
User
Autor

In ogni singola pagina quindi??? surprised

Ler mais
Publicado em de Luca A.
Luca A.
Luca A.
User
Autor

Ho centinaia di pagine in cui si effettuano gli inserimenti nel carrello.
Un lavoraccio!!!

Ler mais
Publicado em de Luca A.
 lemonsong  
 lemonsong  
User

Scusate se mi intrometto ma secondo me è meglio avere un controllo (anche) sul carrello altrimenti l'utente "distratto" può inviare lo stesso l'ordine se superiore ai Kg previsti.

Partendo dallo script per la quantità massima prodotti acquistabili, ho preparato QUESTO esempio (v12 Evo).

Ho anche aggiunto una funzione usando setInterval() per evitare che si possa passare allo step2 semplicemente inserendo il numero 2 nella barra indirizzi del browser. Se non interessa si può cancellare o utilizzare altro.

Non l'ho testato più di tanto.

Ler mais
Publicado em de  lemonsong  
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
 lemonsong  
... ... ...  Partendo dallo script per la quantità massima prodotti acquistabili, ho preparato QUESTO esempio (v12 Evo). ... ... 

... infatti lo avevo anticipato come spunto da prendere...

Luca A.
Ho centinaia di pagine in cui si effettuano gli inserimenti nel carrello. Un lavoraccio!!!

... mi è venuto in mente che si potrebbe utilizzare il mio innocuo cookieK, di sessione(*); ...controllerà all'apertura delle pagine solo per una volta nella stessa sessione del browser; ...nel caso provalo... 
...(*) ... per provare e riattivare il controllo, si deve chiudere il browser e tutte le altre finestre dello stesso browser e quindi riavviarlo...
<!-- controllo Kg con cookieK * by KolAsim * inizio -->
<script>
function funzione_kgK() { vmK = 50; // valore Massimo consentito;
k = document.getElementsByClassName("widget_weight_total");kk = k[0].innerHTML;
if(kk > vmK) { alert("...!... attenzione...!... \n ... il peso attuale di "+kk+" Kg, ha superato il peso \n ...massimo consentito di "+vmK+" Kg...!...")}}
function ControlloFinestra(){AperturaFinestra=document.cookie;
stringa= AperturaFinestra.search("K1=cookieK1");
if (stringa !=-1) {} else { document.cookie = "K1=cookieK1";funzione_kgK() ; }}
window.onload = function () { ControlloFinestra() }
</script>
<!-- controllo Kg con cookieK * by KolAsim * FINE -->

_____________________________________________
...!... altra idea che mi viene in mente, a perderci un po' di tempo, invece di ALERT si potrebbe utilizzare il solito DIV_CUSTOM e TEMPO, che, anche se si aprisse tutte le volte, non darebbe fastidio più di tanto, chiudendosi automaticamente e non inibendo le funzioni della pagina...

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
Luca A.
Luca A.
User
Autor

Ho preso tutte e due le vostre possibili soluzioni e ne ho ricavata una terza che avvisa il cliente solo al momento opportuno, cioè quando và nel carrello.
Infatti ho fatto si che l'alert appaia SOLO nel carrello, così non dà fastidio durante la navigazione nelle varie pagine degli articoli. Inoltre, non devo impedire al cliente di passare allo STEP2, perchè mi deve comunque inviare l'elenco degli articoli che ha inserito nel carrello e il luogo di spedizione, altrimenti non posso fargli il preventivo. In questo caso, per passare allo STEP2, si potrebbe anche obbligare il cliente ad effettuare la selezione di RICHIESTA DI UN PREVENTIVO (che ho inserito nel carrello) se appare l'alert al superamento dei 500kg, ma qui non so come fare.

Ler mais
Publicado em de Luca A.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... personalmente senza programma non posso andare oltre...

... potrebbe essere una idea quella che alla chiusura dell'avviso si attivi il redirect ad una pagina predisposta per la richiesta del preventivo, ma se sia valida e/o adatta allo scopo non posso saperlo...

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
 lemonsong  
 lemonsong  
User

@Luca

Per quanto riguarda lo script che ti ho linkato, puoi aggiungere una condizione: se non è stata scelta la "spedizione preventivo" (devi lasciarla prima nella lista, come adesso).

Quindi la riga if diventa:

if (peso > ptp && $('input[id^="chk-shipping-"]:first-child').prop('checked') == false) {

In questo caso l'avviso si visualizzerà solo se il peso supera quello stabilito e non si sceglie la "spedizione preventivo".

La funzione con setInterval() puoi ometterla, anche se la "scappatoia" rimane, non vale la pena aggiungerla.

Ler mais
Publicado em de  lemonsong  
Luca A.
Luca A.
User
Autor

KolAsim: Visto che il cliente è già arrivato alla pagina del carrello, vuol dire che ha già inserito gli articoli nel carrello. Non serve rimandarlo ad un'altra pagina predisposta per la richiesta di preventivo, perchè a questo punto mi deve solo inviare i dati dove va spedita la merce e io gli posso fare tranquillamente il preventivo.
Pertanto, la tua soluzione è perfetta per avvisarli che il Peso nel carrello ha superato i 500 kg. e quindi DEVONO richiedere un Preventivo.
In aggiunta alla tua soluzione, si aggancia perfettamente anche la soluzione proposta da Lemonsong, la quale OBBLIGA invece il cliente a selezionare la voce relativa alla RICHIESTA DI PREVENTIVO per poter proseguire.
Infatti ho già inserito il codice e funziona perfettamente.

L'unica cosa alla quale non ho pensato, è che se il peso supera i 500 kg., ma il cliente vuole effettuare il RITIRO DELLA MERCE IN NEGOZIO (come indicato nel carrello), deve poter selezionare anche la voce relativa al RITIRO IN NEGOZIO per proseguire.
In questo caso non devo inviargli nessun preventivo, perchè deve solo pagare la merce e poi venirla a ritirare in negozio.

Quindi vi chiedo gentilmente cosa devo aggiungere nel codice per fare in modo che il cliente, una volta superati i 500kg,  possa proseguire allo STEP2 indipendentemente che selezioni la RICHIESTA DI PREVENTIVO o il RITIRO DELLA MERCE IN NEGOZIO.

Grazie in anticipo per tutto il vostro aiuto e soprattutto per la vostra disponibilità. Avevo detto a KolAsim che dovevo fargli un monumento per tutto il suo prezioso aiuto; vorrà dire che ne dovrò fare 2 di monumenti wink

Ler mais
Publicado em de Luca A.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... mi dispiace; ... da parte mia purtroppo non avendo il programma non posso entrare nel merito di quella sezione che viene generata dinamicamente in tabelle, mi pare senza ID, per me difficili da controllare alla cieca...foot-in-mouth...

... spero che lemonsog,  che mi pare abbia la tua stessa versione del programma, e sempre se fosse possibile, possa venirti incontro...;-)...

.

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
 lemonsong  
 lemonsong  
User

Premesso che si possono usare vari metodi, potresti aggiungere un altro "e" (and - &&) alla condizione e visto che gli input radio hanno un proprio id, usiamolo per semplificare i selettori. 

Quindi la riga if diventa:

if ((peso > ptp && $('#chk-shipping-3xvr5l7i').prop('checked') == false) && (peso > ptp && $('#chk-shipping-78s2423s').prop('checked') == false)) {

Gli id chk-shipping-3xvr5l7i e chk-shipping-78s2423s corrispondono alle spedizioni "RICHIEDO UN PREVENTIVO GRATUITO" e "RITIRO DELLA MERCE IN NEGOZIO" presenti attualmente nel tuo sito. 

In futuro, per rilevare gli id (se non lo sai ancora) puoi usare gli strumenti del browser.

Per esempio in Firefox "Analizza elemento" (vedi allegato).

Per quanto riguarda me, il monumento più prezioso che puoi farmi è quello di aumentare l'interesse per i linguaggi del web. Una volta lo avrei detto in maniera più dura, ma l'età avanza e probabilmente ci si "ammorbidisce" smile

Ler mais
Publicado em de  lemonsong  
Luca A.
Luca A.
User
Autor

Adesso è tutto OK! Un grazie infinito a tutti e due per i vostri preziosi aiuti!

Lemonsong: Hai ragione, dovrei applicarmi di più per imparare i linguaggi web, ma purtroppo mi sono dovuto arrangiare a costruirmi un sito web e-commerce per il mio negozio e sinceramente non è proprio il mio lavoro costruire siti web, quindi mi sono trovato un attimino spiazzato a dover adattare il nuovo sito alle mie esigenze, visto che di default website non propone certe varianti. E' anche vero che la versione 12 Professional ha diverse limitazioni rispetto i suoi successori, ma leggendo anche i vari post degli altri utenti che utilizzano versioni successive, c'è sempre da intervenire manualmente per adattare il prg alle proprie esigenze.
Quindi si, dovremmo avere tutti un'infarinatura di linguaggi per il web per soddisfare ogni nostra esigenza senza rompere le scatole a nessuno frown

P.S.: Se sapevo programmare magari facevo un altro lavoro! tongue-outwink

Ler mais
Publicado em de Luca A.
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator

... ottimo che hai risolto, ...anche se per l'ultimo step, il più importante, mi son dovuto astenere...wink

Ler mais
Publicado em de  ‪ KolAsim ‪ ‪
 lemonsong  
 lemonsong  
User

@Luca

Non voleva essere un "rimprovero" il mio invito, ma solo un consiglio.

Ler mais
Publicado em de  lemonsong  
Luca A.
Luca A.
User
Autor

KolAsim: Tranquillo, hai già fatto tanto (troppo) per aiutarmi e te ne sono infinitamente grato wink

Lemonsong: Non l'ho ritenuto assolutamente un rimprovero da parte tua, anzi... infatti ti ho dato ragione! Mi piacerebbe tanto imparare a programmare. Come ti ho detto, e non era per fare del sarcasmo nei tuoi confronti, se sapevo programmare, veramente facevo un altro lavoro, e sicuramente molto meno pesante del mio! laughingwink

Oh, magari in futuro avrò ancora bisogno di qualche consiglio...chissà! Comunque, per il momento, mi sembra che strutturalmente il nuovo sito sia a posto e faccia egregiamente il suo lavoro. Avevo giusto bisogno di qualche dritta per un aggiustamento strutturale e fargli fare alcune funzioni EXTRA, ma per il resto è a sposto.

Grazie ancora a tutti e due! smile

Ler mais
Publicado em de Luca A.