Consegna a domicilio

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

Rispondi
sakkiotto
membro Regular
membro Regular
Messaggi: 228
Iscritto il: 21/02/2005, 1:00
Località: Italia

Consegna a domicilio

Messaggio 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
boom
Avatar utente
kikoleppard
membro Senior
membro Senior
Messaggi: 343
Iscritto il: 25/05/2005, 18:12
Località: Plovdiv-Bulgaria
Contatta:

Messaggio 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
sakkiotto
membro Regular
membro Regular
Messaggi: 228
Iscritto il: 21/02/2005, 1:00
Località: Italia

Messaggio 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.
boom
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio 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
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
sakkiotto
membro Regular
membro Regular
Messaggi: 228
Iscritto il: 21/02/2005, 1:00
Località: Italia

Messaggio 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
boom
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio 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
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
sakkiotto
membro Regular
membro Regular
Messaggi: 228
Iscritto il: 21/02/2005, 1:00
Località: Italia

Messaggio da sakkiotto »

Ok non fa per me. :/
AIUTOOOOO
boom
Avatar utente
kikoleppard
membro Senior
membro Senior
Messaggi: 343
Iscritto il: 25/05/2005, 18:12
Località: Plovdiv-Bulgaria
Contatta:

Messaggio 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
sakkiotto
membro Regular
membro Regular
Messaggi: 228
Iscritto il: 21/02/2005, 1:00
Località: Italia

Messaggio 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...
boom
Avatar utente
kikoleppard
membro Senior
membro Senior
Messaggi: 343
Iscritto il: 25/05/2005, 18:12
Località: Plovdiv-Bulgaria
Contatta:

Messaggio 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
sakkiotto
membro Regular
membro Regular
Messaggi: 228
Iscritto il: 21/02/2005, 1:00
Località: Italia

Messaggio 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
boom
Avatar utente
kikoleppard
membro Senior
membro Senior
Messaggi: 343
Iscritto il: 25/05/2005, 18:12
Località: Plovdiv-Bulgaria
Contatta:

Messaggio 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? :)
sakkiotto
membro Regular
membro Regular
Messaggi: 228
Iscritto il: 21/02/2005, 1:00
Località: Italia

Messaggio 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 ... :/
boom
Rispondi