[contribution] ITA Shipping Modules Pack v1.1 (MS2)

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Re: ...insisto nella mia ignoranza :)

Messaggio da Bass »

ego2012 ha scritto:
a) sul pannello ADMIN di osC in > moduli > pagamento > cod > modifica
credo di non poter settare un costo aggiuntivo da sommare al costo della spedizione
http://www.oscommerceitalia.com/modules ... pic&t=1086


'iao

Sergio
grenda
membro Regular
membro Regular
Messaggi: 134
Iscritto il: 30/07/2004, 0:00

Re: ...insisto nella mia ignoranza :)

Messaggio da grenda »

ego2012 ha scritto:scusate, ma fino a che non ho capito continuo a batterci il capo.
spero di non risultare molesto.

ho finalmente visto dov'è il COD (grazie Bass) ma ho due problemi:

a) sul pannello ADMIN di osC in > moduli > pagamento > cod > modifica
credo di non poter settare un costo aggiuntivo da sommare al costo della spedizione

b) con le poste mi pare (ma non ne sono sicuro) che il contrassegno sia un servizio aggiuntivo di alcuni tipi di spedizione es: posta assicurata e i vari pacco celere impresa

insomma, dubito che quel modulo sia adatto a gestire le casistiche delle poste italiane... "non sò se mi sono capito?" :?

Grazie ancora
Diego



si hai ragione, per aggiungere il costo del contrassegno c'è una contrib apposita

vai su www.oscommerce.com ->contribution e cerca la contrib con questo nome:

ot_fixed_payment_chg
ego2012
membro Junior
membro Junior
Messaggi: 6
Iscritto il: 29/08/2004, 0:00
Contatta:

Messaggio da ego2012 »

sembra proprio (è) ciò di cui ho bisogno! :D
lo studio un paio di giorni e vedo...

grazie
die'
grenda
membro Regular
membro Regular
Messaggi: 134
Iscritto il: 30/07/2004, 0:00

Messaggio da grenda »

ego2012 ha scritto:sembra proprio (è) ciò di cui ho bisogno! :D
lo studio un paio di giorni e vedo...

grazie
die'
non c'è bisogno di studiare un paio di giorni, :D

installare la contrib è più semplice di quanto pensi :idea:
è una cosa banale. 8)
ego2012
membro Junior
membro Junior
Messaggi: 6
Iscritto il: 29/08/2004, 0:00
Contatta:

Re: ...insisto nella mia ignoranza :)

Messaggio da ego2012 »

grenda ha scritto: si hai ragione, per aggiungere il costo del contrassegno c'è una contrib apposita

vai su www.oscommerce.com ->contribution e cerca la contrib con questo nome:

ot_fixed_payment_chg
Ciao grenda,
ho provato la soluzione proposta da bass (questa intendo) e installando/disinstallando ha poi funzionato.

Darò comunque un'occhio anche al pacchetto che dici tu... tanto per fare un po' di pratica.

Grazie a tutti, molto gentili davvero.
Se riuscirò a lanciare il mio primo esperimento di e-commerce in settembre lo devo a voi :D

Saluti...e a buon rendere.
Diego
grenda
membro Regular
membro Regular
Messaggi: 134
Iscritto il: 30/07/2004, 0:00

Messaggio da grenda »

hozone ha scritto:
grenda ha scritto:
hozone ha scritto:scusate il ritardo :) ho letto solo ora questi post.

non so come si possa risolvere il problema, perchè la variabile peso, è passata come 1 solo parametro.

si potrebbe fare in questo modo però (faccio un esempio):
limite_max: 30Kg
costo_di_spedizione: 5Euro
prodotti_da_spedire: 2 (40Kg + 10Kg)
peso_spedizione: 50Kg
---
costo_di_spedizione = costo_di_spedizione * tetto(peso_spedizione / limite_max)
nell'esempio verrebbe: costo totale di spedione 5Euro * 2

Scusa Hozone,

Se non ho capito male, Questo calcolo che tu dici, è quello che oscommerce fa già,

il problema non è il calcolo del costo, che è corretto, ma il fatto che non posso spedire un prodotto di 40 kg con paccocelere.

Scusa la mia insistenza :oops:
è vero, in effetti se il peso massimo (anche di un sono prodotto) è > del massimo peso del modulo di spezione, non dovrebbe essere attivato il metodo :P

aspita.. allora non so come fare.. appunto perchè il metodo viene attivato sul peso_totale della merce aquistata.. non ho variabili che mi specifichino il peso parziale dei prodotti. tuttavia si può tentare di leggere dalle variabili globali, magari rimane l'id dei prodotti, e da li risalire ai pesi... solo che ora non ho tempo di provarci :(

CIAO HOZONE

forse ho trovato una soluzione alternativa a questo problema

http://www.oscommerce.com/community/contributions,969

io non l'ho ancora provata.

ma promette di essere una buona soluzione.

ciao :D
Avatar utente
hozone
Amministratore
Amministratore
Messaggi: 1199
Iscritto il: 23/12/2002, 1:00
Località: Italy
Contatta:

Messaggio da hozone »

può essere ;) non resta altro che provarlo ;)
VideoVideoDoc
membro Junior
membro Junior
Messaggi: 6
Iscritto il: 19/11/2003, 1:00
Località: Roma - Italia
Contatta:

Messaggio da VideoVideoDoc »

Sorry, ho letto il post solo ieri. Ed in effetti serviva anche a me risolvere il problema, prima spedivamo solo con corriere espresso, adesso invece abbiamo introdotto anche poste italiane-pacco ordinario. Così ieri mi son messo un paio d'ore sul codice.
Riassumiamo i vari problemi:
- Osc utilizza un'unica variabile per il peso. E se supera il massimo spedibile semplicemente divide il peso totale in più pacchi. Ma se ho un prodotto che da solo supera il peso massimo, mi deve scrivere che non posso spedire quel pacco Invece Osc fa partire ugualmente la spedizione.
- Da admin -> Configurazione -> Shipping/Packaging posso impostare la variabile "Peso massimo". Ma non va bene solo una variabile per tutti i tipi di spedizioni. Ad esempio il pacco ordinario è fino a 20 kg per italia e resto del mondo. SDA invece ha come limite 30 kg per l'Italia e 10 per il resto del mondo. Bel casino.

Ecco come risolvere tutti i problemi.
Prima però qualche appunto:
- Osc non gestisce il peso di più pacchi (peso inteso come imballaggio). Lo aggiunge solo una volta, oppure se il peso totale dei prodotti va oltre un certo valore aggiunge al peso dei prodotti una percentuale che indicate voi. Secondo me pessimo metodo. SE NON AVETE CAPITO COSA HO APPENA SCRITTO, impostate a 0 la variabile "Larger packages - percentage increase" e la variabile "Package Tare Weight" (In questo modo vale solo il peso dei prodotti e Osc non fa schifezze con il peso degli imballaggi).
Considerate che i miei file sono pesantemente modificati, cercherò comunque di spiegare dove e cosa modificare.

Nel file /includes/classes/shipping.php
trovate (a me riga 61):

Codice: Seleziona tutto

if ($shipping_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes
$shipping_num_boxes = ceil($shipping_weight/SHIPPING_MAX_WEIGHT);
$shipping_weight = $shipping_weight/$shipping_num_boxes;
}
commentate tutte le righe.

Nel file /includes/modules/shipping/postepaccoordinario.php
riga 66 del file originario sostituite questo codice:

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
		$error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_INVALID_ZONE;
      } else {
        $shipping = -1;
        $postepaccoordinario_cost = constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_COST_' . $dest_zone);

        $postepaccoordinario_table = split("[:,]" , $postepaccoordinario_cost);
        $size = sizeof($postepaccoordinario_table);
        for ($i=0; $i<$size; $i+=2) {
          if ($shipping_weight <= $postepaccoordinario_table[$i]) {
            $shipping = $postepaccoordinario_table[$i+1];
            $shipping_method = MODULE_SHIPPING_POSTEPACCOORDINARIO_TEXT_WAY;
            break;
          }
        }

        if ($shipping == -1) {
          $shipping_cost = 0;
		  $error = true;
          $error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_UNDEFINED_RATE;
        } else {
          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_HANDLING_' . $dest_zone);
        }
      }
con questo:

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
				$error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_INVALID_ZONE;
      } else {
	      $postepaccoordinario_cost = constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_COST_' . $dest_zone);
	      $postepaccoordinario_table = split("[:,]" , $postepaccoordinario_cost);
	      $size = sizeof($postepaccoordinario_table);
      	$zones_max_weight = $postepaccoordinario_table[$size-2];
        foreach ($order->products as $prodotto) {
        	if ($prodotto['weight'] > $zones_max_weight) {
		        $error = true;
						$error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
					}
        }
        if (!$error) {
	        $shipping = -1;
					$shipping_num_boxes = 1;
	        $shipping_weight_postepaccoordinario = $shipping_weight;
	        if ($shipping_weight_postepaccoordinario > $zones_max_weight) { // Split into many boxes
	          $shipping_num_boxes = ceil($shipping_weight_postepaccoordinario/$zones_max_weight);
	          $shipping_weight_postepaccoordinario = $shipping_weight_postepaccoordinario/$shipping_num_boxes;
	        }
	        
	        for ($i=0; $i<$size; $i+=2) {
	          if ($shipping_weight_postepaccoordinario <= $postepaccoordinario_table[$i]) {
	            $shipping = $postepaccoordinario_table[$i+1];
	            $shipping_method = MODULE_SHIPPING_POSTEPACCOORDINARIO_TEXT_WAY;
	            break;
	          }
	        }
	
	        if ($shipping == -1) {
	          $shipping_cost = 0;
			  		$error = true;
	          $error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_UNDEFINED_RATE;
	        } else {
	          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_HANDLING_' . $dest_zone);
	        }
	      }
      }
Stessa cosa con il file /includes/modules/shipping/corriere1.php
Sostituite questo pezzo

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
		$error_text = MODULE_SHIPPING_CORRIERE1_INVALID_ZONE;
      } else {
        $shipping = -1;
        $zones_cost = constant('MODULE_SHIPPING_CORRIERE1_COST_' . $dest_zone);

        $zones_table = split("[:,]" , $zones_cost);
        $size = sizeof($zones_table);
        for ($i=0; $i<$size; $i+=2) {
          if ($shipping_weight <= $zones_table[$i]) {
            $shipping = $zones_table[$i+1];
            $shipping_method = MODULE_SHIPPING_CORRIERE1_TEXT_WAY;
            break;
          }
        }

        if ($shipping == -1) {
          $shipping_cost = 0;
		  $error = true;
          $error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
        } else {
          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_CORRIERE1_HANDLING_' . $dest_zone);
        }
      }
con questo:

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
				$error_text = MODULE_SHIPPING_CORRIERE1_INVALID_ZONE;
      } else {
	      $zones_cost = constant('MODULE_SHIPPING_CORRIERE1_COST_' . $dest_zone);
	      $zones_table = split("[:,]" , $zones_cost);
	      $size = sizeof($zones_table);
      	$zones_max_weight = $zones_table[$size-2];
        foreach ($order->products as $prodotto) {
        	if ($prodotto['weight'] > $zones_max_weight) {
		        $error = true;
						$error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
					}
        }
        if (!$error) {
	        $shipping = -1;
	        $shipping_num_boxes = 1;
	        $shipping_weight_corriere1 = $shipping_weight;
	        if ($shipping_weight > $zones_max_weight) { // Split into many boxes
	          $shipping_num_boxes = ceil($shipping_weight_corriere1/$zones_max_weight);
	          $shipping_weight_corriere1 = $shipping_weight_corriere1/$shipping_num_boxes;
	        }
	        for ($i=0; $i<$size; $i+=2) {
	          if ($shipping_weight_corriere1 <= $zones_table[$i]) {
	            $shipping = $zones_table[$i+1];
	            $shipping_method = MODULE_SHIPPING_CORRIERE1_TEXT_WAY;
	            break;
	          }
	        }
	
	        if ($shipping == -1) {
	          $shipping_cost = 0;
			  		$error = true;
	          $error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
	        } else {
	          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_CORRIERE1_HANDLING_' . $dest_zone);
	        }
	      }
      }
Se avete impostati altri metodi di spedizione dovete fare lo stesso per tutti i moduli impostati.
Con queste modifichè però sarà tutto automatico, in teoria potreste anche eliminare la variabile generale "peso massimo" di osc. Il peso se lo va a prendere direttamente dal tipo di spedizione.
IMPORTANTE: questo codice funziona solo se avete impostato in modo crescente i costi della spedizione.
Esempio (10€ fino ad 1kg, 20€ fino a 3kg e 50€ fino a 5kg:
1:10,3:20,5:50

Ciao :)
peppe_one
membro Baby
membro Baby
Messaggi: 83
Iscritto il: 26/10/2004, 0:00
Località: USA

Messaggio da peppe_one »

Grazie x questo modulo e fantastico e poi abbinato a quello di Bass e xfetto... :wink:
Avatar utente
Jerrymat
membro Baby
membro Baby
Messaggi: 65
Iscritto il: 19/04/2005, 14:24

Salve

Messaggio da Jerrymat »

Salve, ho installato la contribution e tutto ok, l'unica cosa che non và ( sicuramente per errori miei) che per la spedizione tramite corriere espresso non mi dà la possibilità di modificarlo ma solo rimuoverlo/installarlo.
Spero che mi possiate essere utili
Jerry
Avatar utente
queengraph
membro Baby
membro Baby
Messaggi: 62
Iscritto il: 28/04/2004, 0:00
Località: Novara
Contatta:

PaccoCelere3

Messaggio da queengraph »

.. ai più non servirà, ma posto qui lo stesso (anche solo per avere un riferimento futuro).
Ho semplicemente sostituito le voci CORRIERE1 con PACCOCELERE3 ove richiesto, la soluzione (grandiosa) funziona che è una meraviglia, riporto il codice da sostituire per PaccoCelere3:

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
            $error_text = MODULE_SHIPPING_POSTEPACCOCELERE3_INVALID_ZONE;
      } else {
         $zones_cost = constant('MODULE_SHIPPING_POSTEPACCOCELERE3_COST_' . $dest_zone);
         $zones_table = split("[:,]" , $zones_cost);
         $size = sizeof($zones_table);
         $zones_max_weight = $zones_table[$size-2];
        foreach ($order->products as $prodotto) {
           if ($prodotto['weight'] > $zones_max_weight) {
              $error = true;
                  $error_text = MODULE_SHIPPING_POSTEPACCOCELERE3_UNDEFINED_RATE;
               }
        }
        if (!$error) {
           $shipping = -1;
           $shipping_num_boxes = 1;
           $shipping_weight_postepaccocelere3 = $shipping_weight;
           if ($shipping_weight > $zones_max_weight) { // Split into many boxes
             $shipping_num_boxes = ceil($shipping_weight_postepaccocelere3/$zones_max_weight);
             $shipping_weight_postepaccocelere3 = $shipping_weight_postepaccocelere3/$shipping_num_boxes;
           }
           for ($i=0; $i<$size; $i+=2) {
             if ($shipping_weight_postepaccocelere3 <= $zones_table[$i]) {
               $shipping = $zones_table[$i+1];
               $shipping_method = MODULE_SHIPPING_POSTEPACCOCELERE3_TEXT_WAY;
               break;
             }
           }
   
           if ($shipping == -1) {
             $shipping_cost = 0;
                 $error = true;
             $error_text = MODULE_SHIPPING_POSTEPACCOCELERE3_UNDEFINED_RATE;
           } else {
             $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_POSTEPACCOCELERE3_HANDLING_' . $dest_zone);
           }
         }
      }
amstaff
membro Regular
membro Regular
Messaggi: 154
Iscritto il: 04/10/2005, 18:24

Messaggio da amstaff »

VideoVideoDoc ha scritto:Sorry, ho letto il post solo ieri. Ed in effetti serviva anche a me risolvere il problema, prima spedivamo solo con corriere espresso, adesso invece abbiamo introdotto anche poste italiane-pacco ordinario. Così ieri mi son messo un paio d'ore sul codice.
Riassumiamo i vari problemi:
- Osc utilizza un'unica variabile per il peso. E se supera il massimo spedibile semplicemente divide il peso totale in più pacchi. Ma se ho un prodotto che da solo supera il peso massimo, mi deve scrivere che non posso spedire quel pacco Invece Osc fa partire ugualmente la spedizione.
- Da admin -> Configurazione -> Shipping/Packaging posso impostare la variabile "Peso massimo". Ma non va bene solo una variabile per tutti i tipi di spedizioni. Ad esempio il pacco ordinario è fino a 20 kg per italia e resto del mondo. SDA invece ha come limite 30 kg per l'Italia e 10 per il resto del mondo. Bel casino.

Ecco come risolvere tutti i problemi.
Prima però qualche appunto:
- Osc non gestisce il peso di più pacchi (peso inteso come imballaggio). Lo aggiunge solo una volta, oppure se il peso totale dei prodotti va oltre un certo valore aggiunge al peso dei prodotti una percentuale che indicate voi. Secondo me pessimo metodo. SE NON AVETE CAPITO COSA HO APPENA SCRITTO, impostate a 0 la variabile "Larger packages - percentage increase" e la variabile "Package Tare Weight" (In questo modo vale solo il peso dei prodotti e Osc non fa schifezze con il peso degli imballaggi).
Considerate che i miei file sono pesantemente modificati, cercherò comunque di spiegare dove e cosa modificare.

Nel file /includes/classes/shipping.php
trovate (a me riga 61):

Codice: Seleziona tutto

if ($shipping_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes
$shipping_num_boxes = ceil($shipping_weight/SHIPPING_MAX_WEIGHT);
$shipping_weight = $shipping_weight/$shipping_num_boxes;
}
commentate tutte le righe.

Nel file /includes/modules/shipping/postepaccoordinario.php
riga 66 del file originario sostituite questo codice:

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
		$error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_INVALID_ZONE;
      } else {
        $shipping = -1;
        $postepaccoordinario_cost = constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_COST_' . $dest_zone);

        $postepaccoordinario_table = split("[:,]" , $postepaccoordinario_cost);
        $size = sizeof($postepaccoordinario_table);
        for ($i=0; $i<$size; $i+=2) {
          if ($shipping_weight <= $postepaccoordinario_table[$i]) {
            $shipping = $postepaccoordinario_table[$i+1];
            $shipping_method = MODULE_SHIPPING_POSTEPACCOORDINARIO_TEXT_WAY;
            break;
          }
        }

        if ($shipping == -1) {
          $shipping_cost = 0;
		  $error = true;
          $error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_UNDEFINED_RATE;
        } else {
          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_HANDLING_' . $dest_zone);
        }
      }
con questo:

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
				$error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_INVALID_ZONE;
      } else {
	      $postepaccoordinario_cost = constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_COST_' . $dest_zone);
	      $postepaccoordinario_table = split("[:,]" , $postepaccoordinario_cost);
	      $size = sizeof($postepaccoordinario_table);
      	$zones_max_weight = $postepaccoordinario_table[$size-2];
        foreach ($order->products as $prodotto) {
        	if ($prodotto['weight'] > $zones_max_weight) {
		        $error = true;
						$error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
					}
        }
        if (!$error) {
	        $shipping = -1;
					$shipping_num_boxes = 1;
	        $shipping_weight_postepaccoordinario = $shipping_weight;
	        if ($shipping_weight_postepaccoordinario > $zones_max_weight) { // Split into many boxes
	          $shipping_num_boxes = ceil($shipping_weight_postepaccoordinario/$zones_max_weight);
	          $shipping_weight_postepaccoordinario = $shipping_weight_postepaccoordinario/$shipping_num_boxes;
	        }
	        
	        for ($i=0; $i<$size; $i+=2) {
	          if ($shipping_weight_postepaccoordinario <= $postepaccoordinario_table[$i]) {
	            $shipping = $postepaccoordinario_table[$i+1];
	            $shipping_method = MODULE_SHIPPING_POSTEPACCOORDINARIO_TEXT_WAY;
	            break;
	          }
	        }
	
	        if ($shipping == -1) {
	          $shipping_cost = 0;
			  		$error = true;
	          $error_text = MODULE_SHIPPING_POSTEPACCOORDINARIO_UNDEFINED_RATE;
	        } else {
	          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_POSTEPACCOORDINARIO_HANDLING_' . $dest_zone);
	        }
	      }
      }
Stessa cosa con il file /includes/modules/shipping/corriere1.php
Sostituite questo pezzo

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
		$error_text = MODULE_SHIPPING_CORRIERE1_INVALID_ZONE;
      } else {
        $shipping = -1;
        $zones_cost = constant('MODULE_SHIPPING_CORRIERE1_COST_' . $dest_zone);

        $zones_table = split("[:,]" , $zones_cost);
        $size = sizeof($zones_table);
        for ($i=0; $i<$size; $i+=2) {
          if ($shipping_weight <= $zones_table[$i]) {
            $shipping = $zones_table[$i+1];
            $shipping_method = MODULE_SHIPPING_CORRIERE1_TEXT_WAY;
            break;
          }
        }

        if ($shipping == -1) {
          $shipping_cost = 0;
		  $error = true;
          $error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
        } else {
          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_CORRIERE1_HANDLING_' . $dest_zone);
        }
      }
con questo:

Codice: Seleziona tutto

      if ($dest_zone == 0) {
        $error = true;
				$error_text = MODULE_SHIPPING_CORRIERE1_INVALID_ZONE;
      } else {
	      $zones_cost = constant('MODULE_SHIPPING_CORRIERE1_COST_' . $dest_zone);
	      $zones_table = split("[:,]" , $zones_cost);
	      $size = sizeof($zones_table);
      	$zones_max_weight = $zones_table[$size-2];
        foreach ($order->products as $prodotto) {
        	if ($prodotto['weight'] > $zones_max_weight) {
		        $error = true;
						$error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
					}
        }
        if (!$error) {
	        $shipping = -1;
	        $shipping_num_boxes = 1;
	        $shipping_weight_corriere1 = $shipping_weight;
	        if ($shipping_weight > $zones_max_weight) { // Split into many boxes
	          $shipping_num_boxes = ceil($shipping_weight_corriere1/$zones_max_weight);
	          $shipping_weight_corriere1 = $shipping_weight_corriere1/$shipping_num_boxes;
	        }
	        for ($i=0; $i<$size; $i+=2) {
	          if ($shipping_weight_corriere1 <= $zones_table[$i]) {
	            $shipping = $zones_table[$i+1];
	            $shipping_method = MODULE_SHIPPING_CORRIERE1_TEXT_WAY;
	            break;
	          }
	        }
	
	        if ($shipping == -1) {
	          $shipping_cost = 0;
			  		$error = true;
	          $error_text = MODULE_SHIPPING_CORRIERE1_UNDEFINED_RATE;
	        } else {
	          $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_CORRIERE1_HANDLING_' . $dest_zone);
	        }
	      }
      }
Se avete impostati altri metodi di spedizione dovete fare lo stesso per tutti i moduli impostati.
Con queste modifichè però sarà tutto automatico, in teoria potreste anche eliminare la variabile generale "peso massimo" di osc. Il peso se lo va a prendere direttamente dal tipo di spedizione.
IMPORTANTE: questo codice funziona solo se avete impostato in modo crescente i costi della spedizione.
Esempio (10€ fino ad 1kg, 20€ fino a 3kg e 50€ fino a 5kg:
1:10,3:20,5:50

Ciao :)
Scusami io avrei un'altro tipo di esigenza, il mio problema non è il peso ma la quantità visto che vendo prodotti di pocho peso, si potrebbe fare una modifica che da più di 10 pezzi ordinati non sia visibile la postaraccomandata ma solo i pacco celere? Ho il problema che se metto più di 10 pezzi in un ordine vado fuori misura accettabile dalle poste per le raccomandate.
Grazie
Avatar utente
queengraph
membro Baby
membro Baby
Messaggi: 62
Iscritto il: 28/04/2004, 0:00
Località: Novara
Contatta:

...

Messaggio da queengraph »

non è questo il caso, mi pare di aver visto una contribution specifica per la tua necessità su oscommerce.com
dai un'occhiata lì..
otto
membro Junior
membro Junior
Messaggi: 3
Iscritto il: 15/02/2006, 11:26
Località: hong kong
Contatta:

utilizzo alternativo

Messaggio da otto »

ciao ! potrei usare questa contribution adattandola a spedizioni da hong kong a italia ? io devo configurare 3 modalità Air mail , surface e EMS
ma non riesco a usare i moduli appositi , se modifico il nome a ogni categoria e i costi in base al peso ? in alternativa : C'E' UN ANIMA PIA CHE MI DIA UNA MANO ?? :cry:
Avatar utente
garrone
membro Baby
membro Baby
Messaggi: 59
Iscritto il: 23/02/2004, 1:00
Località: Italia
Contatta:

Messaggio da garrone »

Ho installato Payment method fee, mi calcola correttament el'importo del contrassegno ma non me lo aggiunge al totale finale.
Qualcun altro ha installato questa contribution? Vi funziona?
Grazie
Rispondi