Pagina 1 di 1

Cambiare il metodo di consegna

Inviato: 23/01/2010, 11:30
da sanden
Salve, ragazzi, sicuramente sarà una cosa banale, ma non sò come impostare di default un metodo di consegna.

Mi spiego, adesso il metodo di consegna è impostato ritiro presso la sede, dovrebbe essere invece consegna a domicilio, sapete dirmi cosa devo cambiare? (in admin non esiste la voce setta come default).

Grazie

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 12:37
da dynamo
se non ricordo male devi giocare con il valore order ;) il primo dell'elenco dovrebbe essere quello selezionato

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 12:51
da sanden
Ho editato il file checkout_shipping.php ma non ho trovato nessun order di cui parli.....

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 13:41
da dynamo
è in admin quando installi il modulo di spedizione c'è order

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 14:08
da sanden
Forse sono stato io poco chiaro, l'ordine di visualizzazione dei 2 metodi è giusta, ma non è giusta la scelta di default che non esiste in admin

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 14:42
da dynamo
osc dovrebbe selezionare il primo della lista... se tu hai bisogno che sia selezionato il secondo inverti l'ordine tramite sort_order

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 14:45
da sanden
ho provato ma il check resta sempre su quello che non mi serve...

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 15:14
da marcus
sanden ha scritto:ho provato ma il check resta sempre su quello che non mi serve...
Quello che dice Dynamo è sbagliato: osC non seleziona il primo della lista ma il "cheapest" cioè il meno caro.

Nel tuo caso poichè la consegna in sede è a costo zero questo viene selezionato di default.

Una soluzione semplice ed elegante è quella di estendere il metodo:

Codice: Seleziona tutto

$shipping_modules->cheapest()


della classe shipping, rendendo possibile il passaggio di un argomento, cioè il metodo di spedizione che si vuole selezionato di default, nel tuo caso consegna a domicilio.

Saluti
Marcus

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 15:26
da sanden
perdonami marco dove devo inserirlo di preciso???

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 16:01
da dynamo
marcus ha scritto:
sanden ha scritto:ho provato ma il check resta sempre su quello che non mi serve...
Quello che dice Dynamo è sbagliato: osC non seleziona il primo della lista ma il "cheapest" cioè il meno caro.

Nel tuo caso poichè la consegna in sede è a costo zero questo viene selezionato di default.

Una soluzione semplice ed elegante è quella di estendere il metodo:

Codice: Seleziona tutto

$shipping_modules->cheapest()


della classe shipping, rendendo possibile il passaggio di un argomento, cioè il metodo di spedizione che si vuole selezionato di default, nel tuo caso consegna a domicilio.

Saluti
Marcus
allora son sempre stato fortunato :mrgreen:

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 16:15
da marcus
sanden ha scritto:perdonami marco dove devo inserirlo di preciso???
Il metodo "cheapest" lo trovi nella classe catalog/includes/classes/shipping.php.

Saluti
Marcus

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 16:57
da sanden
..continuo a non seguirti...

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 18:07
da 06voip
penso stia parlando di questo:

Codice: Seleziona tutto

    function cheapest() {
      if (is_array($this->modules)) {
        $rates = array();

        reset($this->modules);
        while (list(, $value) = each($this->modules)) {
          $class = substr($value, 0, strrpos($value, '.'));
          if ($GLOBALS[$class]->enabled) {
            $quotes = $GLOBALS[$class]->quotes;
            for ($i=0, $n=sizeof($quotes['methods']); $i<$n; $i++) {
              if (isset($quotes['methods'][$i]['cost']) && tep_not_null($quotes['methods'][$i]['cost'])) {
                $rates[] = array('id' => $quotes['id'] . '_' . $quotes['methods'][$i]['id'],
                                 'title' => $quotes['module'] . ' (' . $quotes['methods'][$i]['title'] . ')',
                                 'cost' => $quotes['methods'][$i]['cost']);
              }
            }
          }
        }

        $cheapest = false;
        for ($i=0, $n=sizeof($rates); $i<$n; $i++) {
          if (is_array($cheapest)) {
            if ($rates[$i]['cost'] < $cheapest['cost']) {
              $cheapest = $rates[$i];
            }
          } else {
            $cheapest = $rates[$i];
          }
        }

        return $cheapest;
      }
    }
  }
:shock:

cmq ti ha dato abbastanza indizi per trovare la soluzione, fidati :wink:

Ps. mi sa che devo cambiare la firma, quella nuova sarà: hai consultato San Google? :P

Re: Cambiare il metodo di consegna

Inviato: 23/01/2010, 23:38
da sanden
a che gioco vogliamo giocare??? :D :D :D

è esattamente il codice in mio possesso, ma nn fà quello che voglio......

Re: Cambiare il metodo di consegna

Inviato: 24/01/2010, 9:10
da 06voip
prova a fare una ricerca con change cheapest default shipping, c'è sia la soluzione di Marcus e almeno un'altro modo per ottenere lo stesso risultato, scegli tu quale provare :P