Jump to content

Spedizione gratis per l'Italia con minimo di acquisto e sempre a pagamento per l'Europa


chriocch

Recommended Posts

Ciao, fino ad adesso le spedizioni hanno funzionato bene.
Ho impostato un corriere per l'italia con spedizione gratis con ordine minimo di 59 euro.
Per l'estero ho impostato un altro corriere ma vorrei eliminare la spedizione gratis.
Questo però prestashop non lo consente, infatti si può solo impostare una sola volta " spedizione gratuita a partire da € " senza poter così diversificare i due corrieri.

Suggerimenti?

Link to comment
Share on other sites

Ciao,

io ho risolto così (presa dal forum inglese dal moderatore rocky)

prenditi il file cart.php dalla cartella classes e vai alla riga 883 e sostituisci il codice con questo:

if ($orderTotalwithDiscounts >= floatval($free_fees_price) AND floatval($free_fees_price) > 0 AND $id_zone == XX)



Al posto delle due x metti l'ID della zona che vuoi avere con la spedizione gratis, nel tuo caso metti la zona Italia.

Ciao

Link to comment
Share on other sites

  • 2 months later...

ciao,
ma questa soluzione funziona nella 1.2.5?

no xche cart.php ha poco più di 100 righe e Cart.php in /classes all'altezza della riga 883 ha:

'total_products' => number_format($this->getOrderTotal(false, 1), 2, '.', '')

ciao

Link to comment
Share on other sites

Nella riga 714 circa

inserisci o sostituisci con questa stringa

// Imposta Corriere Free Shipping
if (isset($configuration['PS_SHIPPING_FREE_PRICE']) AND $id_carrier==38 AND $orderTotal >= floatval($configuration['PS_SHIPPING_FREE_PRICE']) AND floatval($configuration['PS_SHIPPING_FREE_PRICE']) > 0)
           return $shipping_cost;



id_carrier, metti quello che vuoi

se invece vuoi per zona al posto di $id_carrier metti $id_zone
;-)

Link to comment
Share on other sites

  • 2 years later...
  • 2 months later...
  • 6 months later...
  • 1 year later...

io ho risolto così (versione 1.5 e versione 1.6)

 

file: classes/Cart.php

 

ho modificato il codice

        if ($orderTotalwithDiscounts >= (float)($free_fees_price) && (float)($free_fees_price) > 0)
        {
            Cache::store($cache_id, $shipping_cost);
            return $shipping_cost;
        }

con questo codice

                if ($orderTotalwithDiscounts >= (float)($free_fees_price) && (float)($free_fees_price) > 0 && in_array( $id_zone,array(9,10,11,12) ) )
                {    
                        Cache::store($cache_id, $shipping_cost);
                        return $shipping_cost;
                }

dove 9,10,11,12 sono gli ID delle mie zone dove voglio concedere il free shipping sopra una certa cifra definita nel back office

Link to comment
Share on other sites

  • 6 months later...

Ciao, sto impostando in negozio per vendere in europa, ho configurato tutte le varie zone, lingua inglese, corriere, etc.

Unica cosa che non riesco a fare è mostrare i costi effettivi al visitatore straniero...

Cerco di spiegarmi, io pensavo che abilitando un'altra lingua il visitatore straniero che arriva sul mio negozio, cambiando la lingua e mettendo un articolo nel carrello, vedrebbe il costo della spedizione che avevo impostato per l'estero, invece mostra il costo nazionale finchè non si registra...

Mi potete aiutare?

Grazie a tutti

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...