Pagina 1 di 1

Consegna a domicilio

Inviato: 25/08/2005, 20:20
da sakkiotto
Ciao a tutti,

sapete se esiste o se sia complicata da creare un modulo di spedizione che sia disponibile solo per i clienti registrati con un xxxxx cap ?

Mi spiego. Vorremmo offrire una spedizione gratuita a domicilio per tutti i clienti residenti nella ns città.

Grazie

Inviato: 25/08/2005, 22:33
da kikoleppard
Penso che non esiste. Ma perche non provi a modificare questo modulo.
Customer Pickup Option.


(che fa esattamente contrario - clienti vengono a prelevare la merce dall tua sede)

Dopo crea un gruppo dei clienti provenienti dalla tua zona e setti shipment (consegna) permisson soltanto per loro di usare questo modulo. (in Total B2B 1.4 oppure Separate price per Customer 4.1.1)


Scarica il modulo, vedi se si può fare qualche modifica e dopo riporta qui se sei riuscito.

Ciao

Inviato: 26/08/2005, 1:53
da sakkiotto
Si, è quello a cui stavo già lavorando. Teoricamente forse ci sono, ma praticamente...
Il gruppo di clienti dovrei crearlo manualmente? La cosa non è fattibile.
Come faccio a creare un gruppo di clienti aventi un determinato cap? Non parlo di provincia, ma di un cap predeterminato.

Inviato: 26/08/2005, 11:20
da Bass
sakkiotto ha scritto: Il gruppo di clienti dovrei crearlo manualmente? La cosa non è fattibile.
Come faccio a creare un gruppo di clienti aventi un determinato cap? Non parlo di provincia, ma di un cap predeterminato.
Se si tratta di un solo cap fai una query al database, confronti il cap che devi utilizzare per la spedizione gratuita con quello del cliente (tabella address_book -> entry_postcode) e con un if dovresti risolvere...

'iao

Sergio

Inviato: 26/08/2005, 12:17
da sakkiotto
gentilmente puoi postare una bozza di questo codice? Non sono molto esperto in programmazione...
Per la query nel db np, ma il confronto ...

Grazie

Inviato: 26/08/2005, 13:42
da Bass
sakkiotto ha scritto:gentilmente puoi postare una bozza di questo codice? Non sono molto esperto in programmazione...
Per la query nel db np, ma il confronto ...

Qualcosa del tipo if (nomedellaquery[entry_postcode] == '20100') {

In mezzo ci metti qualcosa per azzerare le spese postali

'iao

Sergio

Inviato: 26/08/2005, 14:27
da sakkiotto
Ok non fa per me. :/
AIUTOOOOO

Inviato: 02/10/2005, 7:46
da kikoleppard
sakkiotto ha scritto:Ok non fa per me. :/
AIUTOOOOO
Penso che la maggior parte dei - moduli ITA shipping Pack derivono di un modulo standard - flat.php

Bisognava soltanto studiare la logica nel modulo era semplice ad adattarlo

Se non hai ancora risolto il problema usi questo codice. Te l'ho tradotto anche in italiano :) - 4-5 righe 8)

catalog/includes/modules/shipping/consegnaincitta

Codice: Seleziona tutto


<?php
/*
  $Id: Free Shipping In Town.php,v 1.0 2005/01/10 22:41:52 KIKOLEPPARD Exp $
  Based on Flat.php
  
  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2005 KIKOLEPPARD
  kikoleppard@hotmail.bg
  www.galdi-alfa.com
*/

  class consegnaincitta {
    var $code, $title, $description, $icon, $enabled;

// class constructor
    function consegnaincitta() {
      global $order;

      $this->code = 'consegnaincitta';
      $this->title = MODULE_SHIPPING_CONSEGNAINCITTA_TEXT_TITLE;
      $this->description = MODULE_SHIPPING_CONSEGNAINCITTA_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_SHIPPING_CONSEGNAINCITTA_SORT_ORDER;
      $this->icon = '';
      $this->tax_class = MODULE_SHIPPING_CONSEGNAINCITTA_TAX_CLASS;
      $this->enabled = ((MODULE_SHIPPING_CONSEGNAINCITTA_STATUS == 'True') ? true : false);

      if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_CONSEGNAINCITTA_ZONE > 0) ) {
        $check_flag = false;
        $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_CONSEGNAINCITTA_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
        while ($check = tep_db_fetch_array($check_query)) {
          if ($check['zone_id'] < 1) {
            $check_flag = true;
            break;
          } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
            $check_flag = true;
            break;
          }
        }

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }
    }

// class methods
    function quote($method = '') {
      global $order;

      $this->quotes = array('id' => $this->code,
                            'module' => MODULE_SHIPPING_CONSEGNAINCITTA_TEXT_TITLE,
                            'methods' => array(array('id' => $this->code,
                                                     'title' => MODULE_SHIPPING_CONSEGNAINCITTA_TEXT_WAY,
                                                     'cost' => MODULE_SHIPPING_CONSEGNAINCITTA_COST)));

      if ($this->tax_class > 0) {
        $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
      }

      if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title);

      return $this->quotes;
    }

    function check() {
      if (!isset($this->_check)) {
        $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_CONSEGNAINCITTA_STATUS'");
        $this->_check = tep_db_num_rows($check_query);
      }
      return $this->_check;
    }

    function install() {
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Consegna GRATIS', 'MODULE_SHIPPING_CONSEGNAINCITTA_STATUS', 'True', 'Do you want to offer Consegna in Città GRATIS?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Cost', 'MODULE_SHIPPING_CONSEGNAINCITTA_COST', '0.00', 'The shipping cost for all orders using this shipping method.', '6', '0', now())");	 
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_CONSEGNAINCITTA_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Shipping Zone', 'MODULE_SHIPPING_CONSEGNAINCITTA_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_SHIPPING_CONSEGNAINCITTA_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");
    }

    function remove() {
      tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
      return array(
	  'MODULE_SHIPPING_CONSEGNAINCITTA_STATUS', 
	  'MODULE_SHIPPING_CONSEGNAINCITTA_COST', 
	  'MODULE_SHIPPING_CONSEGNAINCITTA_TAX_CLASS',
	  'MODULE_SHIPPING_CONSEGNAINCITTA_ZONE', 
	  'MODULE_SHIPPING_CONSEGNAINCITTA_SORT_ORDER'
	  );
    }
  }
?>
catalog/includes/languages/italian/modules/shipping/consegnaincitta.php

Codice: Seleziona tutto

<?php
/*
  $Id: Free Shipping In Town.php,v 1.0 2005/01/10 22:41:52 KIKOLEPPARD Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2005 KIKOLEPPARD
  kikoleppard@hotmail.bg
  www.galdi-alfa.com
*/

define('MODULE_SHIPPING_CONSEGNAINCITTA_TEXT_TITLE', 'Consegna GRATIS');
define('MODULE_SHIPPING_CONSEGNAINCITTA_TEXT_DESCRIPTION', 'Consegna GRATIS nella zona urbana');
define('MODULE_SHIPPING_CONSEGNAINCITTA_TEXT_WAY', 'con trasporto aziendale nella zona urbana');
?>

Mi cito da solo :)

kikoleppard ha scritto: Dopo crea un gruppo dei clienti provenienti dalla tua zona e setti shipment (consegna) permisson soltanto per loro di usare questo modulo. (in Total B2B 1.4 oppure Separate price per Customer 4.1.1)

Ciao
E meglio utilizzare questo modulo con sudette Contribution. Faro un gruppo di residenti nella mia città e assegno soltanto a loro le possibilità di usarlo. Certo avranno anche il minimo ammontare dell' acquisto. Per i piccoli acquisti si userà invece l'altro modulo - Customer Pickup Option. Tutto questo e facile da sistemare con Total B2B ultima versione + le mie agguinti.


Ciao e alla prossima

Inviato: 04/10/2005, 14:50
da sakkiotto
L'unica pecca è, se ho ben capito, che devo settare "a mano" tutti i clienti alla quale vorrei offrire la consegna a domicilio gratuita.

Ciò non è fattibile.
Infatti se reclamizzo consegna gratutita a Roma, se un cliente si registra e fà l'ordine ... non vede la consegna a domicilio...

Inviato: 04/10/2005, 15:16
da kikoleppard
sakkiotto ha scritto:L'unica pecca è, se ho ben capito, che devo settare "a mano" tutti i clienti alla quale vorrei offrire la consegna a domicilio gratuita.

Ciò non è fattibile.
Infatti se reclamizzo consegna gratutita a Roma, se un cliente si registra e fà l'ordine ... non vede la consegna a domicilio...
Si ma dipende. Tu puoi usare questo modulo anche per tutti clienti. Per esempio se usi le Contrib sudette puoi assegnare questo modulo per il gruppo DEFAULT.
Ma devi sperare nella buoana anima del cliente.
Guarda e megio sempre avere controllo. Io non credo che esiste modo semplice di fare la tua volontà in maniera automatica. Tutto dipenda dalla natura della tua attività.

Io per esempio non posso fare consegna a domicilio per uno che mi fa il primo ordine per 10 euro.

Allora se vuoi che assegni clienti esistenti a questo modulo. Allora fai una query come ti ha suggerito Bass. Crea un gruppo e sul criterio di residenza puoi assegnare tutti quanti nel gruppo ROMA RESIDENTI.

Ma ripeto no credo che questo modulo deve essere disponibile ai nuovi clienti.

Ciao

Inviato: 04/10/2005, 16:11
da sakkiotto
Mi serviva che il modulo fosse disponibile solo per i clienti con cap xxxxx, indipendentemente dal valore dell'ordine, da quando si sono registrati o dal gruppo.

Avevo già intuito che non si trattava di una cosa semplice da realizzare...

Ti ringrazio comunque per il tuo aiuto

Inviato: 05/10/2005, 2:29
da kikoleppard
sakkiotto ha scritto:Mi serviva che il modulo fosse disponibile solo per i clienti con cap xxxxx, indipendentemente dal valore dell'ordine, da quando si sono registrati o dal gruppo.

Avevo già intuito che non si trattava di una cosa semplice da realizzare...

Ti ringrazio comunque per il tuo aiuto
Aspetta ma tu puoi anche settare questo modulo soltanto per una provincia. Oppure agguingere nella database come ZONE una Citta quale corisponde al sudetto CAP e assegni il modulo solo per essa.

Che c'e? Perche no? Funzionerebbe.

Ma io ancora non ti capisco con i costi di trasporto? O vendi merci di lusso? :)

Inviato: 10/10/2005, 12:57
da sakkiotto
così facendo sarebbe tutto automatizzato, no?

Appena ho un pò di tempo faccio questo test... e ti faccio sapere.

Abbiamo molti rivenditori della ns città ... e comunque abbiamo un progetto che richiede questo tipo di consegna ... :/