Jump to content

Spedizione gratis, ma solo in Italia


DeepVoid

Recommended Posts

Il primo metodo che mi viene in mente è quello di andare nel tab Spedizioni, creare una nuova Zona e poi nel sottomenu Nazioni, modificare la voce Italia associandola alla Zona appena creata.

 

Successivamente dovrai creare un nuovo Corriere, associarlo con la nuova Zona e poi gestire scaglioni e prezzi in maniera consueta.

 

Questo è il primo metodo che mi viene in mente, magari qualcun'altro ti saprà aiutare con qualcosa di più rapido ed immediato ;)

  • Like 1
Link to comment
Share on other sites

Ciao Pepozzo,

 

anch'io avevo pensato alla soluzione che hai proposto, l'unico problema sta nel fatto che non posso poi impostare la soglia di spesa oltre la quale la spedizione diventa gratuita...

 

Per certi versi Prestashop ha delle limitazioni incredibili.

Link to comment
Share on other sites

Ciao!

 

Prova a creare una nuova Fascia di Prezzo associata al nuovo Corriere che va da 0 a "tuoimportolimite" e poi una fascia che va dall'importo limite fino a 999999999999999 €

 

Torni nella tab principale delle Spedizioni, scorri la pagina ed in "Spese per mezzo di spedizione, area geografica, e fasce" selezioni il nuovo Corriere.

A questo punto, per il primo scaglione dai un costo di spedizione, mentre per lo scaglione gratuito, indichi come costo di spedizione 0.

 

Così dovrebbe andare, credo :rolleyes:

Link to comment
Share on other sites

Pepozzo, in questo momento ho un febbrone da cavallo e faccio fatica anche a ricordarmi come mi chiamo. Appena torno sul pianeta Terra provo la tua soluzione e ti faccio sapere! :-)

 

Ho visto che sul tuo negozio online hai anche tu una promozione per la spedizione gratuita oltre una certa soglia. Anche tu sei incappato nella problematica di ordini dall'estero, che non dovrebbero godere della promozione?

 

In ogni caso ti ringrazio per l'aiuto, sei veramente gentilissimo!!!

Link to comment
Share on other sites

  • 2 years later...

nella riga 2680 del file root/classes/cart.php

 

potete escludere il corriere gratis con quello a pagamento 

// Free fees
		$free_fees_price = 0;
		if (isset($configuration['PS_SHIPPING_FREE_PRICE']))
			$free_fees_price = Tools::convertPrice((float)$configuration['PS_SHIPPING_FREE_PRICE'], Currency::getCurrencyInstance((int)$this->id_currency));
		$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, null, null, false);
		if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 AND $id_carrier == 21)
		{
			Cache::store($cache_id, $shipping_cost);
			return $shipping_cost;
		}

		if (isset($configuration['PS_SHIPPING_FREE_WEIGHT'])
			&& $this->getTotalWeight() >= (float)$configuration['PS_SHIPPING_FREE_WEIGHT']
			&& (float)$configuration['PS_SHIPPING_FREE_WEIGHT'] > 0)
		{
			Cache::store($cache_id, $shipping_cost);
			return $shipping_cost;
		}

come potete leggere il carrier 21 e solo un'ipotesi dipende quale corriere volete che sia gratis e tutti gli altri a pagamento :)

  • Like 1
Link to comment
Share on other sites

  • 8 months later...

nella riga 2680 del file root/classes/cart.php

 

potete escludere il corriere gratis con quello a pagamento 

// Free fees
		$free_fees_price = 0;
		if (isset($configuration['PS_SHIPPING_FREE_PRICE']))
			$free_fees_price = Tools::convertPrice((float)$configuration['PS_SHIPPING_FREE_PRICE'], Currency::getCurrencyInstance((int)$this->id_currency));
		$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, null, null, false);
		if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 AND $id_carrier == 21)
		{
			Cache::store($cache_id, $shipping_cost);
			return $shipping_cost;
		}

		if (isset($configuration['PS_SHIPPING_FREE_WEIGHT'])
			&& $this->getTotalWeight() >= (float)$configuration['PS_SHIPPING_FREE_WEIGHT']
			&& (float)$configuration['PS_SHIPPING_FREE_WEIGHT'] > 0)
		{
			Cache::store($cache_id, $shipping_cost);
			return $shipping_cost;
		}

come potete leggere il carrier 21 e solo un'ipotesi dipende quale corriere volete che sia gratis e tutti gli altri a pagamento :)

 

Ciao,

ho lo stesso problema, vorrei creare una spedizione per l'Italia gratis con una soglia di spesa di 70€, e spedizione normale (a pagamento) per tutti gli altri paesi.

Leggendo ho capito che sostituendo questo codice e inserendo al posto di Id_Carrier l'Id del mio corriere, e lasciando impostato " spedizione gratuita a partire da €70 ", dovrebbe funzionare come vorrei?

 

Leggendo la funzione PHP l'unica cosa che non mi torna è che si va a modificare solo il corriere, questo come influisce sulla diversità tra Italia gratis con spesa oltre i 70€ e resto del mondo a pagamento?

 

O comunque devo impostare come corriere oltre a 1-Spedizione Gratuita e 2-Corriere BRT un altro corriere?

 

Grazie, 

Edited by Andrea_Firenze (see edit history)
Link to comment
Share on other sites

Vorrei creare un supporto speciale per l'Italia e impostare una regola "Free shipping" più di 70 € solo per questo vettore. Nessuna patch codice richiesto.

 

I would create a special carrier for Italy and set a "Free shipping" rule over 70 € just for this carrier. No code patches required.

Link to comment
Share on other sites

  • 10 months later...

nella riga 2680 del file root/classes/cart.php

 

potete escludere il corriere gratis con quello a pagamento 

// Free fees
		$free_fees_price = 0;
		if (isset($configuration['PS_SHIPPING_FREE_PRICE']))
			$free_fees_price = Tools::convertPrice((float)$configuration['PS_SHIPPING_FREE_PRICE'], Currency::getCurrencyInstance((int)$this->id_currency));
		$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, null, null, false);
		if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 AND $id_carrier == 21)
		{
			Cache::store($cache_id, $shipping_cost);
			return $shipping_cost;
		}

		if (isset($configuration['PS_SHIPPING_FREE_WEIGHT'])
			&& $this->getTotalWeight() >= (float)$configuration['PS_SHIPPING_FREE_WEIGHT']
			&& (float)$configuration['PS_SHIPPING_FREE_WEIGHT'] > 0)
		{
			Cache::store($cache_id, $shipping_cost);
			return $shipping_cost;
		}

come potete leggere il carrier 21 e solo un'ipotesi dipende quale corriere volete che sia gratis e tutti gli altri a pagamento :)

 

 

 

Ciao Cyber, interessante la tua soluzione PHP ma c'è un grosso però! Come sai fissare a codice un valore ( 21 per identificare il corriere) non è mai buona cosa sopratutto per gli ID corrieri di Prestashop. Infatti basta che da backoffice aggiorni tale corriere e il suo ID cambia ( ad esempio da 21 passerà a 23 qualora il 23 non sia già di un altro corrirere). Se è tuo il negozio allora tornerai nel codice e cambierai tale ID ogni volta che da backoffice aggiornerai tale corriere, ma se il negozio è di un cliente non ti puoi aspettare che questo lo faccia. Cosa ne dici?

In allegato la dimostrazione:

post-596680-0-15655700-1458204524_thumb.jpg

 

 

 

Edited by www.webdinamico.com (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Salve a Tutti

Ho un problema e vorrei sapere se esiste un modulo o qualcosa dasettare per la consegna Gratuita

sul mio sito ho la spedizione gratuita oltre una certa cifra ma il problema e che tutte le spediziono diventano a gratis dopo la cifra fissata anche quelle che dovrebbero rimanere a pagamento.

 

non capisco come fare con la modifica del codice ... esiste altra soluzione (da persone normali ) Grazie

 

Qualcuno puo darmi un dritta

 

Grazie a Tutti

http://www.profumeriapatrizia.it

Link to comment
Share on other sites

  • 4 months later...

Ciao!

 

Prova a creare una nuova Fascia di Prezzo associata al nuovo Corriere che va da 0 a "tuoimportolimite" e poi una fascia che va dall'importo limite fino a 999999999999999 €

 

Torni nella tab principale delle Spedizioni, scorri la pagina ed in "Spese per mezzo di spedizione, area geografica, e fasce" selezioni il nuovo Corriere.

A questo punto, per il primo scaglione dai un costo di spedizione, mentre per lo scaglione gratuito, indichi come costo di spedizione 0.

 

Così dovrebbe andare, credo rolleyes.gif

Una cosa così giusto?

 

New Bitmap Image (2).bmp

 

cioè oltre i 200€ la spedizione va a 0.

 

Perchè andare a modificare il codice? Porta dei vantaggi?

Edited by skara (see edit history)
Link to comment
Share on other sites

Apportare la modifica al codice comporta solo problemi, come giustamente detto da webdinamico.

Per ottenere le spedizioni gratuite da una certa soglia in poi per zone differenti, bisogna impostare il campo La spedizione gratuita a partire da a 0 e poi seguire la procedura suggerita da skara.

Link to comment
Share on other sites

  • 4 months later...

Buongiorno a tutti, leggo con piacere le vs. soluzioni dal momento che è quasi un mese che divento matto con queste regole prezzi! Ero molto dibattuto sulla scelta del multilingua o multinegozio, alla fine ho optato per multilingua che sarà online a breve. Mi rimane un dubbio atroce: posto di riuscire ad impostare soglie di spedizione gratuita differenti in base al corriere - ed associare poi il corriere X alla zona Y ecc ecc - esiste un modulo e/o una regola per mostrare  alcuni prodotti solo per la lingua IT e non per la lingua ENG e viceversa?  Oppure è possibile creare una categoria mostrata solo per la lingua italiana ( visitatore - quindi sia loggato che non ) ed un'altra categoria mostrata solo per la lingua inglese? 

 

Grazie Mille in anticipo

Buona Giornata!

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...