da ugoviti » gio lug 21, 2005 11:44 pm
[quote]
valdez ha scritto:
mi sembra una buona soluzione !
Chiedo: è possibile disporre di due moduli "zones" nel medesimo applicativo in modo da poterli far funzionare con corrieri diversi?
Se si come procedere?
[/quote]
Si certo... imho non è il massimo della vita la modalità con la quale la possiamo implementare, però funziona...
dunque, per "non è il massimo della vita" intendo dire, che per ogni corriere devi copiarti i file:
include/modules/shipping/zones.php include/language/$language/modules/shipping/zone.php
dove $language sono tutte le lingue da te gestite.
dopo, devi modificare il file 'include/modules/shipping/zones.php', e rinominare tutte le costanti con un nuovo nome che identifica il tuo corriere (questo zencart lo salverà nella tabella configuration del tuo database).
Inoltre sempre nel solito file devi rinominare la classe che ovviamente non dovrà essere 'zones' ma per esempio, 'zones_dhl', 'zones_tnt', 'zones_poste' o quello che vuoi.
sempre IMHO, per fare una cosa veramente ben fatta, andrebbe riscritto il modulo zones.php in modo da essere più flessibile, granulare e completo, ridefinendo al contempo il formato di inserimento dati... in questo modo, penso che basterebbe il modulo zones (o magari in questo caso, un nome più generico) a sopperire completamente tutte le esigenze di invio... mi spiego meglio.
io il formato per specificare le corriere/zone/peso:prezzo lo sto pensando in questo modo:
------
[b]Table n. Corriere[/b]
{CORRIERE}
[b]Table n. Zones[/b]
{COUNTRY}:{CITTA'},{COUNTRY}:{CITTA'},etc..
[b]Table n. Shipping Table[/b]
{PESO}:{COSTO},{PESO}:{COSTO},etc..
------
esempio:
pacco da 0 a 100 KG inviato da DHL in Italia nelle città di Arezzo, Perugia, Milano:
------
[b]Table 1 Corriere[/b]
DHL
[b]Table 1 Zones[/b]
IT:AR,IT:PG,IT:MI
[b]Table 1 Shipping Table[/b]
100:8.50,200:17,300:35
------
in questo modo, ed in automatico, Zen Cart, nel momento in cui il cliente fa il checkout vede nelle informazioni di scelta spedizioniere, il nome DHL (quindi capisce chi glielo porta).
Eventualmente, dovrebbe accettare il campo "citta'" vuoto, qualora la definizione peso/costo riguardi tutta la nazione.
Esempio per più nazioni (senza specificare la città):
------
[b]Table 1 Corriere[/b]
DHL
[b]Table 1 Zones[/b]
IT:,US:,UK:
[b]Table 1 Shipping Table[/b]
100:8.50,200:17,300:35
------
Altro esempio con due corrieri:
------
[b]Table 1 Corriere[/b]
DHL
[b]Table 1 Zones[/b]
IT:AR,IT:PG,IT:MI
[b]Table 1 Shipping Table[/b]
100:8.50,200:17,300:35
[b]Table 2 Corriere[/b]
Bartolini
[b]Table 2 Zones[/b]
IT:AR,IT:PG,IT:MI
[b]Table 2 Shipping Table[/b]
100:8.50,200:17,300:35
------
in questo caso Zen Cart dovrebbe offrire due scelte, una per la DHL ed una per Bartolini (anche se è insensato, a meno che quello più costoso consegni più velocemente)... e cosi' via.
Come metodo di scelta mi sembra completo...
inoltre mi sembra uno spreco di risorse inutile utilizzare più moduli quando se ne potrebbe usare uno globale e soprattutto più granulare.
L'idea l'ho buttata giù al volo in questo momento... sicuramente è da migliorare, ma spero di essermi spiegato a dovere.
Cordiali Saluti
--
Ugo Viti
InitZero S.r.l.
http://www.initzero.it