Modifica codice Kolasim (Applicare spese di spedizione, calcolando la soglia...
Author: Alessandro R.Riporto il codice creato da Kolasim, che agisce sullo sconto coupon.
Applicare spese di spedizione, calcolando la soglia sul valore reale da pagare.
(codice necessario alle versioni di x5 non recenti)
Il codice verifica l importo dell ordine (basato sullo sconto coupon) e sceglie se fornire la consegna a pagamento o gratuita.
1- Volevo chiedere a Kolasim se fosse possibile una terza variante, aggiungere al codice l opzione del ritiro merce (gratuita) nei nostri magazzini.
2- ho un dubbio sulla parte del codice:
importoSCK = (importoK *20/100);
scontoK='<span style="font-size14px;color:blue"> Sconto del 20%: '+ importoSCK + ' Kč</span>';
a intuito viene calcolato lo sconto del 20%.
Nelle varie opzioni dei voucher, oltre al 20% ho impostato anche delle offerte del 10% ...ad oggi il codice sembra funzionare bene, ma non capisco la logica perché nel codice di Kolasim non vedo lo sconto del 10% ...c é qualcosa che mi sfugge...
avrei la necessitá che il codice funzionasse con varie opzioni di sconto 10% - 15% - 20%
CODICE COMPLETO
<script>
/** --- controllo sconto + spedizione x WSx5 by KolAsim --- **/
$(document).ready(function () {//K>
nK=0;nnK=0;
stepK0 ()
});//K<<
$(window).on('hashchange', function () {//K-1>
if (location.hash == '' || location.hash == '#' || location.hash == null) {//k1>
stepK0 ()
}//K1<<
if (location.hash == '#step2') {//K2>
nK=0;avvioK();
} //K2<<
});//K-1<<
//================================
//------------------------------------f---K3---(4>5)-----
function stepK0 () {//K3>
nnK=0;
calcolo_K = setInterval(function(){//K4<<
nnK=nnK+1;
if($('#cart-sidebar').is(':visible') || nnK > 200) {//K5>
sconto_K() ;
$("#cart-sidebar").hide();
clearInterval(calcolo_K); calcolo_K = 0;
} //K5<<
}, 500); ///K4<<
sconto_K() ;
} //K3<<
//---------------------------------------K6---(7>10)-----
function sconto_K() { //K6>
$("#x5CouponCode").val("null");
$("#x5ApplyCouponCode").click(function(){ //K7>
setTimeout(function(){ //K8>
couponK=$("#x5CouponCode").val();
if(couponK != "") { //K9>>
importoK = Number($("#cart-container #cart-content .price-container div.big-font span:nth-child(2)").html().split(" ").join("").split("Kč").join("") );
importoSCK = (importoK *20/100);
scontoK='<span style="font-size14px;color:blue"> Sconto del 20%: '+ importoSCK + ' Kč</span>';
$(".price-container").append(scontoK);
} //K9<<+
else { //K10>
scontoK='';
$(".price-container").append(scontoK);
$(".alert-red").hide();
} //K10<< | K9<<<<
}, 2500); //K8<<
}) //K7<<
$('input[id="x5ApplyCouponCode"]').click();
} //K6<<
//---------------------------------------K11---(12>13)-----
function avvioK() {//K11>
calcoloK2 = setInterval(function(){//K12>
nK=nK+1;
if(Number( $('#cart-content').css("height").match(/\d+/) ) > 200 || nK > 20) {//13>
$("#cart-sidebar").show();
spedizioneStep2K();
clearInterval(calcoloK2); calcoloK2 = 0;
} //K13<<
}, 500); //K12<<
} //K11<<
//---------------------------------------K14---(15>18)-----
function spedizioneStep2K() {//K14>
rigaK =$( "#cart-content > div tr" );
radioK=$('input[name="shipping-method"]')
radioTotK = radioK.length;
radio1K=$( radioK[0]);
radio2K=$( radioK[1]);
listaprezziK =$( "#cart-sidebar .s-flex .s-cell.right" );
totlistaprezziK = listaprezziK.length;
if( totlistaprezziK == 6) {//K15>>
importoK1=Number($( listaprezziK[0]).html().split(" ").join("").split("Kč").join(""));
importoK2=Number($( listaprezziK[3]).html().split(" ").join("").split("Kč").join(""));
sommaK1= importoK1 + importoK2;
numberK= sommaK1;
} //K15<<+
else {//K16>
importoK1=Number($( listaprezziK[0]).html().split(" ").join("").split("Kč").join(""));
numberK=importoK1;
} //K16<< | K15<<<<
if(numberK > 2650) {//K17>>
$(radio1K).click();
$(rigaK[2]).hide();
} //K17<<+
else { //K18>
$(radio2K).click();
$(rigaK[1]).hide();
} //K18<< | K17<<<<
} //K14<<
</script>
...il codice aveva richiesto molte prove e probabilmente molte ore di duro impegno...
… indipendentemente dal codice che hai postato, e per non perderci tempo a ristudiarlo, … secondo me potrebbe essere semplice con una delle mie idee esclusive realizzando una struttura molto semplice di questo genere:
… predisporre per lo #step2 più tipi di spese spedizione da poter selezionare, per esempio, 100,150,200;
… quindi nello #step2 con il mio codice si potrebbe rilevare nei modi che già conosci il valore totale della merce ed in base a questo selezionare automaticamente la spunta sulle spese di spedizione adatte, o meglio ancora nascondere le spedizioni scartate, fuori range rilevato...
… ovviamente tutto da progettare e verificare...
.
ciao
.
Author
KolAsim ti ringrazio della risposta...ho letto quanto mi hai scritto, probabilmente non ho compreso bene...mi spiego meglio, se vado in impostazioni - carrello - gestione ordine é aggiungo una nuova opzione per il ritiro in magazzino questa va in conflitto con il codice da te realizzato.
A tal proposito ho effettuato delle prove e come prevedibile non funziona.
Probabilmente bisognerebbe quindi inserire la nuova opzione del ritiro in magazzino e gestirla modificando (se possibile) il codice.
Esempio, se inserissi la prima opzione del ritiro personale in magazzino (al primo posto dello step 2) il codice potrebbe prima controllare se la casella viene selezionata, se non viene selezionata procedere con le istruzioni del codice.
credi che sia possibile?
Attualmente nel software x5 ci sono impostati due tipi di consegna, ma il tuo codice alla fine (in base al prezzo e allo sconto coupon) ne seleziona automaticamente uno solo.
ciao
… tu parlavi di “soglia” e quello che ti ho detto prima è al di fuori del precedente codice...
… in pratica la mia idea dovrebbe applicare un costo di spedizione specifico in base all'importo totale dei prodotti:
… sino a 1000€ 100€ di spedizione; sino a 2000€ 150€ di spedizione; sino a 3000€ 200€ di spedizione...
...
...
… invece, se ho capito quello che chiedi, per me non servirebbero codici, ...in quanto puoi sempre impostare per esempio due tipi di spedizione, per esempio uno fisso a 100€ e uno gratuito per ritiro in magazzino, che l'utente può liberamente selezionare nello #step2....
.
.
Author
Kolasim, dimentichiamici un attimo il codice.
Io posso impostare 3 possibilitá.
1- il ritiro in magazzino a zero euro
2- sopra 100 euro consegna gratuita
3- sotto 100 euro consegna a pagamento.
------------------------------------------------
il problema é che in alcuni casi particolari, inserendo il voucher (nelle versioni + datate) il cliente si ritrova la consegna gratuita anche quando non ne ha diritto e questo rosica molto i giá piccoli margini degli eshop che rischiano di trovarsi in perdita con alcuni ordini. Per tale ragione avevamo (...in realtá tu avevi fatto il lavoro, il merito é tuo...) elaborato il codice di controllo soglia dell ordine.
Il tuo codice funziona benissimo con il punto 2 e 3 ma attualmente non é applicabile per il punto 1 (il ritiro in magazzino a zero euro) perché naturalmente ci sono dei conflitti.
Non ho copreso come posso aggiungere l opzione del ritiro in magazzino senza perdere soldi con eventuali costi di consegne gratuite che il cliente non merita.
ciao
… secondo me quello che conta è la soglia di spesa totale raggiunta, con o senza precedenti sconti...
… prepara un semplice esempio e posta il LINK con applicate le 3 opzioni: magazzino “0”, gratuita "0", e pagamento "100€"...
… con la mia idea, in base al totale l'utente nello #step2 vedrà solo le opzioni a lui dedicate...
… gli eventi per esempio sarebbero, sotto i 100€ si vedrà già selezionata la spesa di spedizione con la quota a pagamento e la libera possibilità di scelta per il ritiro in magazzino...
… invece sopra ai 100€ si vedrà già selezionata la spesa di spedizione gratuita e la libera possibilità di scelta per il ritiro in magazzino...
.
ciao
Author
KolAsim era quello che volevo scriverti...in realtá avevo giá preparato l esempio indicato, pero nelle selezioni si visualizzava solamente il ritiro in magazzino, le altre scelte erano nascoste dai conflitti del codice....
preparo subito quanto richiesto e grazie dell interessamento, della disponibilitá, della competenza etc...senza di te non andrei da nessuna parte :)
Author
https://www.prahavino.cz/test/cartsearch/index.html
web di prova inserito nella sottocartella test
ciao
Author
scusami Kolasim...c é un aggiornamento positivo.
Adesso vedo la doppia visualizzazione della consegna.
Esempio:
prima condizione
Consegna a pagamento
ritiro in magazzino
seconda condizione
consegna gratis
ritiro in magazzino
questo era il caso che volevamo, probabilmente nei miei test precedenti vecchi cookies creavano conflitti.
Mi sembra che tutto funziona, se vuoi dare un occhiata veloce anche tu per una conferma...credo che non dobbiamo effettuare nessuna modifica al codice...
... OKOK ... visto ... funziona con le doppie opzioni sia su gratis che a pagamento, quindi dovresti essere a posto...
.
ciao
.
Author
grazie 1000
......
... ... per i curiosi e del perchè (!+) ...
... per default lo sconto quantità è un tipo di sconto che non può essere disattivato in concomitanza di un coupon...
... il codice di Alessandro considera il totale, con o senza sconti, applicando lo sconto sulla spedizione al superamento di una certa soglia minima prestabilita...
.
Author
Il codice non é di Alessandro ma di Kolasim :)
...avevo sollecitato Incomedia a inserire questa novitá nelle nuove versioni e credo che sia giá disponibile.
Ripeto (come simpatizzante di x5) che tutte le modifiche utili create in questo forum, dovrebbero essere inserite sempre nelle nuove versioni...da una parte si risparmiano i costi degli investimenti e dall altra si rendono gli utenti piu soddisfatti...almeno quando c é il piatto pronto con qualche bel codice perché non sfruttarlo?
...vale la pena ricordare che spesso questi codici non nascono in 2 minuti ma richiedono molte ore e prove per la messa a punto... é anche una questione di rispetto per chi collabora al miglioramento del software...
saluti a tutti
... grazie anche a te; ...senza la tua partecipazione attiva ed attenta non sarebbe venuto fuori niente......
.
ciao
.