Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
18 Nov 2010, 10:41
Message
#1
|
|
|
Ceinture jaune OSC Groupe : Membres Messages : 49 Inscrit : 3-March 09 Membre no 24689 |
bonjour
je cherche a realiser la chose suivante : proposer a mes clients la livraison par chrono express pour la france et par colissimo pour l'international. J'ai installe les deux contrib et tout fonctionne mais j'aimerai que l'option colissimo ne s'affiche pas pour la france... je pense que cela est possible... quelqu'un l'a t il deja fait ? merci de votre aide val |
|
|
18 Nov 2010, 17:30
Message
#2
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 173 Inscrit : 20-January 09 Membre no 24280 |
Salut,
Il faut que tu débrouille pour faire apparaitre France dans un dossier (qui peut être nommé France aussi) séparé des autres pays dans "Lieux/Taxes -> Zones Fiscales" : Par exemple : France (Dossier) - France (Pays) Europe (Dossier) - Belgique (Pays) - Luxembourg (Pays) - Italie (Pays) - Allemagne (Pays) Ensuite tu ouvre tes modules Colissimo et Chrono dans "Modules -> Expédition" et tu choisis le dossier (voir comme au dessus) qui t'intéresse dans le menu déroulant "Expédier seulement vers cette zone de taxe". Dis nous si ça fonctionne bien et si oui mets ce topique en [RESOLU] Ciao. -------------------- Ma version : MS2.2, contributions :
- Multi-Store 2.0 - CKeditor et CKfinder en cours -------------------- Mes sujets du moment : - un problème avec CKeditor - Ma solution et un bon conseil après une semaine d'acharnement sur Multi-Stores |
|
|
20 Nov 2010, 15:13
Message
#3
|
|
|
Ceinture jaune OSC Groupe : Membres Messages : 49 Inscrit : 3-March 09 Membre no 24689 |
bonjour
ca fonctionne super pour chrono car il y a le menu 'Expédier seulement vers cette zone de taxe' et donc ton idee est impeccable, mais pour colissimo pas ce choix... donc jene sais pas comment faire ? merci val |
|
|
20 Nov 2010, 15:27
Message
#4
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 173 Inscrit : 20-January 09 Membre no 24280 |
Salut,
Je ne sais pas la quelle tu as mais voici la mienne : http://addons.oscommerce.com/info/5923 Avec la mienne je gère l'international, le ad-volarem et tout le reste. penses a mettre les prix a jour et tiens moi au courant. Ciao. Ce message a été modifié par titi02330 - 20 Nov 2010, 15:29. -------------------- Ma version : MS2.2, contributions :
- Multi-Store 2.0 - CKeditor et CKfinder en cours -------------------- Mes sujets du moment : - un problème avec CKeditor - Ma solution et un bon conseil après une semaine d'acharnement sur Multi-Stores |
|
|
23 Nov 2010, 16:27
Message
#5
|
|
|
Ceinture jaune OSC Groupe : Membres Messages : 49 Inscrit : 3-March 09 Membre no 24689 |
bonjour
en fait mon module collissimo fonctionne tres bien mais je souhaite ne plus l'afficher pour le national au profit de chronopost, et l'afficher uniquement pour l'international or dans l'outil d'admin je peux activer ounon l'international mais pas le national. Donc je me disais qu'il fallait intervenir directemnt dans le code pour qu'il soit active que pour l'international. Si qq l'a deja fait ou a la solution... merci d'avance val |
|
|
23 Nov 2010, 16:35
Message
#6
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 173 Inscrit : 20-January 09 Membre no 24280 |
Bonjour,
En fait je t'ai donné la solution... Télécharge la contribution colissimo dont je t'ai donné le lien et tu pourras sélectionner tout ce que tu veux sauf France, comme pour Chronopost... Ciao. -------------------- Ma version : MS2.2, contributions :
- Multi-Store 2.0 - CKeditor et CKfinder en cours -------------------- Mes sujets du moment : - un problème avec CKeditor - Ma solution et un bon conseil après une semaine d'acharnement sur Multi-Stores |
|
|
15 Dec 2010, 14:44
Message
#7
|
|
|
Ceinture jaune OSC Groupe : Membres Messages : 49 Inscrit : 3-March 09 Membre no 24689 |
bonjour
j'ai installe la contrib mais jene peux desactiver la france pour le collissimo... je peux activer ou non colissimo, le desactiver pour les dom et tom et international mais pas leconserver que pour l'international... j'ai loupé qq chose ? merci val Activer Module Colissimo True Frais fixes 0 Classe de taxe --aucun-- Selection Automatique du R1 à R5 True Colissimo 0.100:1, 1:2, 2:3, 3:8.70, 5:10.60, 7:12.50, 10:15.35, 15:17.45, 30:23.75 Colissimo R1 0.100:1, 1:2, 2:3, 3:4, 5:12.90, 7:14.80, 10:17.65, 15:19.75, 30:26.05 Colissimo R2 0.100:1, 1:2, 2:3, 3:4, 5:13.80, 7:15.70, 10:18.55, 15:20.65, 30:26.95 Colissimo R3 0.100:1, 1:2, 2:3, 3:13.10, 5:15.00, 7:16.90, 10:19.75, 15:21.85, 30:28.15 Colissimo R4 0.100:1, 1:2, 2:3, 3:14.30, 5:16.20, 7:18.10, 10:20.95, 15:23.05, 30:29.35 Colissimo R5 0.100:1, 1:2, 2:3, 3:15.50, 5:17.40, 7:19.30, 10:22.15, 15:24.25, 30:30.55 Activer Colissimo DOM True |
|
|
15 Dec 2010, 14:49
Message
#8
|
|
|
Ceinture orange OSC Groupe : Membres Messages : 173 Inscrit : 20-January 09 Membre no 24280 |
Salut,
Il semblerait que tu n'ais pas la même version que moi... voici mon fichier colissimo qui va dans includes/modules/shipping/colissimo.php : Code <?php
/* French Colissimo Shipping module version 20090320. This module has been adapted to fit in osCommerce 2.2 RC1-FR. Copyright © 2009 Philippe BLAIN <pblain@NOSPAMfree.fr>. ------------------------------------------------------------------------------ TARIFS PUBLICS COLISSIMO AU 1er MARS 2009, EN EUROS NETS ET KGS. MODIFICATIONS TARIFAIRES : Les tarifs et zones sont stockés dans des variables et non dans la BDD en raison de la limitation à 255 caractères maximum des champs de table et du nombre de boîtes de saisie de paramètres qui deviendrait trop important dans l'administration du module. Toutes les modifications tarifaires ou de zone doivent être faites ici, en dur. Cela évite aussi de perdre les paramètres éventuellement saisis en désinstallant puis réinstallant ce module. Les zones internationales Colissimo sont préconfigurées et comprennent les codes ISO (2 lettres majuscules) des pays appartenant à telle zone, séparés par une virgule (sans espace ou autre caractère de ponctuation). Vous pouvez modifier ces listes à votre guise pour restreindre les pays d'expédition (conseillé). Pour la plupart des boutiques, vous n'entrerez pas la totalité des pays en raison de fraude de certains endroits. Un message indiquant l'impossibilité de livrer avec cette méthode s'affichera pour une commande à destination d'un pays non listé. Notez qu'il est aussi possible de désactiver entièrement l'expédition vers l'International. Pour chaque zone Colissimo, il y a plusieurs tarifs d'expédition. La mise à jour de ces tarifs s'effectue ici, en dur. Les tarifs fonctionnent sur le principe de tranches 'poids:cout' séparés par une virgule. Si vous souhaitez avoir une tranche de 0 à 3 Kgs qui coutera 5.50 EUR d'expédition, vous devez la définir comme ceci : 3:5.5 Exemple : tarif EUR vers Zone X pour des colis pesant entre 0 et 15 Kgs 1:3.5,2:3.95,3:5.2,4:6.45,5:7.7,6:10.4,7:11.85,8:13.3,9:14.75,10:16.2, 11:17.65,12:19.1,13:20.55,14:22,15:23.45 ------------------------------------------------------------------------------ RAPPELS : DOM : Guadeloupe(971), Martinique(972), Guyanne Française(973), Réunion(974). TOM : Nouvelle Calédonie(988), Polynésie française(987), Wallis & Futuna(986), Îles éparses de l'Océan Indien + Terres Australes et Arctiques françaises(984). Collectivités Territoriales : Saint-Pierre & Miquelon(975), Mayotte(976), Saint-Barthélemy(977), Saint-Martin(978). ------------------------------------------------------------------------------ */ define('MODULE_SHIPPING_COLISSIMO_MARK_UNITS', ' Kgs '); define('MODULE_SHIPPING_COLISSIMO_MARK_AD_VALOREM', ' +ADVALOREM'); define('MODULE_SHIPPING_COLISSIMO_MARK_CRBT', ' +CRBT'); define('MODULE_SHIPPING_COLISSIMO_MARK_AR', ' +AR'); /* Suppléments pour recommandés */ define ('MODULE_SHIPPING_COLISSIMO_SUPP_R1', 2.3); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R2', 3.2); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R3', 4.4); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R4', 5.6); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R5', 6.8); /* Options */ define ('MODULE_SHIPPING_COLISSIMO_SUPP_CONTRE_REMBOURSEMENT', 15); define ('MODULE_SHIPPING_COLISSIMO_SUPP_ACCUSE_RECEPTION', 1.3); define ('MODULE_SHIPPING_COLISSIMO_SUPP_AD_VALOREM', 1); class colissimo { var $code, $title, $description, $sort_order, $icon, $poids_unitaire, $nb_boites, $tax_class, $international, $avec_avis_reception, $ad_valorem, $avec_delais, $enabled, $too_heavy, $quotes; /***** Class constructor *****/ function colissimo() { global $order; $this->code = 'colissimo'; $this->title = MODULE_SHIPPING_COLISSIMO_TEXT_TITLE; $this->description = MODULE_SHIPPING_COLISSIMO_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_COLISSIMO_SORT_ORDER; /* Au choix: shipping_laposte.gif, shipping_coliposte.jpg, shipping_colissimo.gif, shipping_colissimo48.gif, shipping_colissimo_inter.gif */ $this->icon = DIR_WS_ICONS . 'shipping_colissimo48.gif'; $this->tax_class = MODULE_SHIPPING_COLISSIMO_TAX_CLASS; $this->taux = MODULE_SHIPPING_COLISSIMO_TAUX_RECOMMANDATION; $this->international = ((MODULE_SHIPPING_COLISSIMO_INTERNATIONAL_ENABLED == 'True') ? true : false); $this->avec_avis_reception = ((MODULE_SHIPPING_COLISSIMO_AVIS_RECEPTION == 'True') ? true : false); $this->ad_valorem = ((MODULE_SHIPPING_COLISSIMO_INTERNATIONAL_AD_VALOREM == 'True') ? true : false); $this->avec_delais = ((MODULE_SHIPPING_COLISSIMO_DELAYS_ENABLED == 'True') ? true : false); /* enabled: nom utilisé par OsCommerce. */ $this->enabled = ((MODULE_SHIPPING_COLISSIMO_STATUS == 'True') ? true : false); $this->too_heavy = 0; $this->quotes = array(); /* Vérification que le pays de livraison est dans la zone de taxation restreinte, sinon le module se désactive. */ if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_COLISSIMO_TAX_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_COLISSIMO_TAX_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; } } /***** Private functions *****/ function _add_method($tarif, $id, $taux, $ad_valorem, $delai) { global $order, $cart; if (!tep_not_null($tarif)) return; /* Si cette méthode d'expédition n'est pas permise, return */ /* Attention: Ce n'est pas un booléen mais une chaîne de valeur 'True' ou 'False' */ if (constant('MODULE_SHIPPING_COLISSIMO_' . $id . '_ENABLED') == 'False') return; /* Calcul du coût d'un colis. */ $table = split("[:,]", $tarif); $table_count = count($table); $shipping = -1; /* Comparaison du poids d'un colis avec chaque entrée dans la table */ for ($k = 0; $k < $table_count; $k += 2) { if ($this->poids_unitaire <= $table[$k]) { $shipping = $table[$k+1]; $shipping += MODULE_SHIPPING_COLISSIMO_HANDLING; break; } } /* Pour cette méthode, le poids unitaire calculé d'un colis dépasse le maximum de la table. On ne l'affichera pas. */ if ($shipping == -1) { if ($this->trop_lourd == 0) $this->trop_lourd = 1; return; } else { $this->trop_lourd = 2; } if ($id == 'ECONOM') { $libel = MODULE_SHIPPING_COLISSIMO_TEXT_ECO; } else if (substr($id, 0, 6) == 'RECOMM') { $libel = MODULE_SHIPPING_COLISSIMO_TEXT_REC; if ($taux == 'Auto') { /* Pour du multicolis, la recommandation pour chaque colis sera supérieure à ce qu'elle devrait être puisque on ne connait pas la valeur de chaque colis et que l'on calcule à partir du total commande. */ $order_total_amount = $cart->show_total(); /* En EUROS. Adapter si besoin */ if ($order_total_amount <= 50) $taux = 'R1'; elseif ($order_total_amount <= 200) $taux = 'R2'; elseif ($order_total_amount <= 400) $taux = 'R3'; elseif ($order_total_amount <= 600) $taux = 'R4'; elseif ($order_total_amount <= 800) $taux = 'R5'; else $taux = 'R5'; } if ($taux == 'R1') { $libel .= ' R1'; $shipping += MODULE_SHIPPING_COLISSIMO_SUPP_R1; } else if ($taux == 'R2') { $libel .= ' R2'; $shipping += MODULE_SHIPPING_COLISSIMO_SUPP_R2; } else if ($taux == 'R3') { $libel .= ' R3'; $shipping += MODULE_SHIPPING_COLISSIMO_SUPP_R3; } else if ($taux == 'R4') { $libel .= ' R4'; $shipping += MODULE_SHIPPING_COLISSIMO_SUPP_R4; } else if ($taux == 'R5') { $libel .= ' R5'; $shipping += MODULE_SHIPPING_COLISSIMO_SUPP_R5; } if ($id == 'RECOMMCR') { $libel .= MODULE_SHIPPING_COLISSIMO_MARK_CRBT . MODULE_SHIPPING_COLISSIMO_TEXT_CRBT; $shipping += MODULE_SHIPPING_COLISSIMO_SUPP_CONTRE_REMBOURSEMENT; } if ($this->avec_avis_reception) { $libel .= MODULE_SHIPPING_COLISSIMO_MARK_AR . MODULE_SHIPPING_COLISSIMO_TEXT_AR; $shipping += MODULE_SHIPPING_COLISSIMO_SUPP_ACCUSE_RECEPTION; } } else $libel = ''; /* Normal */ if ($ad_valorem) { /* Assurance complémentaire par tranche de 150 EUR (International). Pour du multicolis, l'assurance sera supérieure à ce qu'elle devrait être puisque l'on ne connait pas la valeur de chaque colis. */ if (!isset($order_total_amount)) $order_total_amount = $cart->show_total(); if ($order_total_amount > 1500) $order_total_amount = 1500; $shipping += ((int)ceil($order_total_amount / 150)) * MODULE_SHIPPING_COLISSIMO_SUPP_AD_VALOREM; $libel .= MODULE_SHIPPING_COLISSIMO_MARK_AD_VALOREM; } if ($this->avec_delais and tep_not_null($delai)) $libel .= $delai; /* Coût pour tous les colis */ $shipping_cost = $shipping * $this->nb_boites; /* Stockage paramètres */ $this->quotes['methods'][] = array( 'id' => $id, 'title' => $this->nb_boites . ' x ' . number_format($this->poids_unitaire,3) . MODULE_SHIPPING_COLISSIMO_MARK_UNITS . MODULE_SHIPPING_COLISSIMO_TEXT_WAY . $order->delivery['country']['title'] . $libel, 'cost' => $shipping_cost); } function _verifier_methodes() { if ($this->trop_lourd == 1) { /* Le poids unitaire calculé dépassait le poids maximum dans toutes les méthodes */ $this->quotes['error'] = $this->nb_boites . ' x ' . number_format($this->poids_unitaire,3) . MODULE_SHIPPING_COLISSIMO_MARK_UNITS . MODULE_SHIPPING_COLISSIMO_TOO_HEAVY; } } function _national_vers_national($method_id = '') { /* Tarifs pour les envois en France métropolitaine, Andorre, Monaco et le Secteur Postal 69000, à l'intérieur des DOM et pour les relations réciproques Guadeloupe et Martinique */ $national_NORMAL = '0.35:5.6,0.51:6.35,1.01:7.49,2.01:8.19,3.01:8.89,4.01:9.59,5.01:10.29,6.01:10.99,7.01:11.74,8.01:12.49,9.01:13.24,10.01:13.99,15.01:15.7,20.01:21.1,25.01:21.1,28.01:32,35.01:55,40.01:62.5,60:70,80:90,91:110,110:110'; if ($method_id == '') { $this->_add_method($national_NORMAL, 'NORMAL', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_NAT); $this->_add_method($national_NORMAL, 'RECOMM', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_NAT); $this->_add_method($national_NORMAL, 'RECOMMCR', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_NAT); } else if ($method_id != 'ECONOM') { $this->_add_method($national_NORMAL, $method_id, $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_NAT); } $this->_verifier_methodes(); } function _entre_national_et_dom($method_id = '') { /* Tarifs au départ de la France métropolitaine, Monaco et Andorre à destination des DOM, Mayotte, Saint-Pierre et Miquelon, OU au départ des DOM, Mayotte, Saint Pierre et Miquelon à destination de la France métropolitaine, Monaco et Andorre */ $dom_NORMAL = '0.5.01:8.35,1.01:12.55,2.01:17.15,2.8.01:17.15,2.91:65,3.01:21.75,4.01:26.35,5.01:30.95,5.75:30.95,5.85:120,5.90:30.95,6:35.55,7:40.15,8:44.75,9:49.35,10:53.95,15:76.95,20:99.95,25:122.95,30:145.95,41:229.3,51:286.62,60:343.95'; $dom_ECONOM = '0.5:6.7,1:8.55,2:9.5,3:10.45,4:11.4,5:12.35,6:13.3,7:14.8,8:16.3,9:17.8,10:19.3,15:25.2,20:31.1,25:37,30:42.9'; if ($method_id == '') { $this->_add_method($dom_NORMAL, 'NORMAL', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM); $this->_add_method($dom_ECONOM, 'ECONOM', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ECO); $this->_add_method($dom_NORMAL, 'RECOMM', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM); $this->_add_method($dom_NORMAL, 'RECOMMCR', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM); } else { if ($method_id == 'ECONOM') $this->_add_method($dom_ECONOM, 'ECONOM', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ECO); else $this->_add_method($dom_NORMAL, $method_id, $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM); } $this->_verifier_methodes(); } function _dom_vers_dom_de_proximite($method_id = '') { /* Tarifs pour les envois entre DOM de proximité (y compris Mayotte) Guadeloupe <---> Guyane / Martinique <---> Guyane / Réunion <---> Mayotte */ $dom_proxi_NORMAL = '0.5:5.5,1:6.6,2:7.7,3:8.8,4:9.9,5:11,6:12.1,7:13.2,8:14.3,9:15.4,10:16.5,15:18.5,20:20.5,25:22.5,30:24.5'; if ($method_id == '') { $this->_add_method($dom_proxi_NORMAL, 'NORMAL', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_PROXI); $this->_add_method($dom_proxi_NORMAL, 'RECOMM', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_PROXI); $this->_add_method($dom_proxi_NORMAL, 'RECOMMCR', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_PROXI); } else if ($method_id != 'ECONOM') { $this->_add_method($dom_proxi_NORMAL, $method_id, $this->taux, false, MODULE_SHIPPING_COLISSIMO_DOM_PROXI); } $this->_verifier_methodes(); } function _dom_vers_dom_eloigne($method_id = '') { /* Tarifs pour les envois entre DOM éloignés (y compris Mayotte) Guadeloupe, Martinique, Guyane avec Réunion et Mayotte. Guadeloupe, Martinique, Guyane, Réunion et Mayotte vers Saint Pierre et Miquelon. */ $dom_eloigne_NORMAL = '0.5:9.7,1:15,2:27,3:39,4:51,5:63,6:75,7:87,8:99,9:111,10:123,15:183,20:243,25:303,30:363'; $dom_eloigne_ECONOM = '0.5:6.9,1:9,2:10.15,3:11.3,4:12.45,5:13.6,6:14.75,7:15.9,8:17.05,9:18.2,10:19.35,15:25.75,20:32.15,25:38.55,30:44.95'; if ($method_id == '') { $this->_add_method($dom_eloigne_NORMAL, 'NORMAL', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ELOIGNE); $this->_add_method($dom_eloigne_ECONOM, 'ECONOM', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ELOIGNE_ECO); $this->_add_method($dom_eloigne_NORMAL, 'RECOMM', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ELOIGNE); $this->_add_method($dom_eloigne_NORMAL, 'RECOMMCR', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ELOIGNE); } else { if ($method_id == 'ECONOM') $this->_add_method($dom_eloigne_ECONOM, 'ECONOM', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ELOIGNE_ECO); else $this->_add_method($dom_eloigne_NORMAL, $method_id, $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_ELOIGNE); } $this->_verifier_methodes(); } function _national_ou_dom_vers_tom($method_id = '') { /* Tarifs au départ de la la France métropolitaine, Monaco et Andorre vers les TOM, OU au départ des DOM, Collectivités Territoriales vers les TOM */ $tom_NORMAL = '0.5:10,1:15,2:26.5,3:38,4:49.5,5:61,6:72.5,7:84,8:95.5,9:107,10:118.5,15:176.5,20:234.5,25:292.5,30:350.5'; $tom_ECONOM = '0.5:8.8,1:11.4,2:18.6,3:25.8,4:33,5:40.2,6:47.4,7:54.6,8:61.8,9:69,10:76.2,15:122.2,20:168.2,25:214.2,30:260.2'; if ($method_id == '') { $this->_add_method($tom_NORMAL, 'NORMAL', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_TOM); $this->_add_method($tom_ECONOM, 'ECONOM', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_TOM_ECO); $this->_add_method($tom_NORMAL, 'RECOMM', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_TOM); $this->_add_method($tom_NORMAL, 'RECOMMCR', $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_TOM); } else { if ($method_id == 'ECONOM') $this->_add_method($tom_ECONOM, 'ECONOM', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_TOM_ECO); else $this->_add_method($tom_NORMAL, $method_id, $this->taux, false, MODULE_SHIPPING_COLISSIMO_DELAY_TOM); } $this->_verifier_methodes(); } function _national_vers_international($depart, $iso_code, $method_id = '') { /* ZONES INTERNATIONALES COLISSIMO */ /* Codes ISO des pays en zone A, séparés par une virgule. Açores, Allemagne, Autriche, Belgique, Chypre, Danemark, Espagne, Estonie, Finlande, Gibraltar, Grande-Bretagne, Gernesey, Grèce, Hongrie, Irlande, Italie, Jersey, Lettonie, Lituanie, Liechtenstein, Luxembourg, Madère, Malte, Norvège, Pays-Bas, Pologne, Portugal, Slovaquie, Slovénie, Saint-Marin, Suède, Suisse, Tchèque (Rép.), Vatican. */ $inter_countries_1 = 'AC,AT,BE,CH,CY,CZ,DE,DK,EE,ES,FI,GB,GI,GR,GS,HU,IE,IT,JE,LI,LT,LU,LV,ME,MT,N L,NO,PL,PT,SE,SI,SK,SM,VA'; /* Codes ISO des pays en zone B, séparés par une virgule. Algérie, Albanie, Arménie, Azerbaïdjan, Belarus, Bosnie-Herzégovine, Bulgarie, Croatie, Géorgie, Islande, Macédoine, Roumanie, Russie (Fédération de), Serbie et Monténégro, Turquie, Ukraine, Maroc, Moldova, Tunisie. */ $inter_countries_2 = 'AL,AM,AZ,BA,BG,BY,CS,DZ,GE,HR,IS,MA,MD,MK,RO,RU,TN,TR,UA'; /* Codes ISO des pays en zone C, séparés par une virgule. Afrique du Sud, Angola, Arabie Saoudite (Royaume), Bahraïn, Bénin, Botswana, Burkina Faso, Burundi, Cameroun, Canada, Cap-Vert, Centrafrique, Comores, Congo (Rép. du), Congo (Rép. Dém. du ex-Zaïre), Côte d’Ivoire (Rép. de la), Djibouti, Egypte, Emirats Arabes Unis, Erythrée, Etats Unis, Ethiopie, Gabon, Gambie, Ghana,Guinée (Rép. de), Guinée-Bissau, Guinée Equatoriale, Iran, Iraq, Israël, Jordanie, Kenya, Lesotho, Liban, Libéria, Libye (Jamahiriya Libyenne), Madagascar, Malawi, Mali, Maurice, Mauritanie, Mozambique, Namibie, Niger, Nigéria, Ouganda, Porto-Rico, Qatar, Rwanda, Seychelles, Sao Tome et Principe, Sénégal, Sierra Leone, Somalie, Soudan, Swaziland, Syrie (Rép. Arabe Syrienne), Tanzanie, Tchad, Togo, Yémen, Zambie, Zimbabwe. */ $inter_countries_3 = 'AE,AO,BF,BH,BI,BJ,BW,CA,CD,CF,CG,CI,CM,CV,DJ,EG,ER,ET,GA,GH,GM,GN,GQ,GW,IL,I Q,IR,JO,KE,KM,LB,LR,LS,LY,MG,ML,MR,MU,MW,MZ,NA,NE,NG,PR,QA,RW,SA,SC,SD,SL,SN,SO,S T,SY,SZ,TD,TG,TZ,UG,US,YE,ZA,ZM,ZW'; /* Codes ISO des pays en zone D, séparés par une virgule. Afghanistan, Anguilla, Antigua & Barbuda, Argentine, Aruba, Australie, Bahamas, Bangladesh, Barbade, Belize, Bermudes, Bhoutan, Bolivie, Bonaire, Bresil, Brunei Darussalam, Cambodge, Canaries, Cayman, Chili, Chine, Colombie, Cook, Corée du Nord, Corée du Sud, Costa Rica, Cuba, Curacao, Dominicaine (République), Dominique, El Salvador, Equateur, Féroe (Iles), Fidji, Grenade, Groenland, Guam, Guatemala, Guyana, Haiti, Honduras, Hong Kong, Inde, Indonésie, Jamaique, Japon, Kazakhstan, Kirghizistan, Kiribati, Koweit, Laos, Macao, Malaisie, Maldives, Marshall (îles), Mexique, Micronésie, Mongolie, Montserrat, Myanmar, Nauru, Népal, Nicaragua, Nouvelle Zélande, Oman, Ouzbékistan, Pakistan, Palau, Palestine, Panama, Papouasie Nlle Guinée, Paraguay, Pérou, Philippines, Saba, Saint Christophe & Névis, Saint Eustache, Saint Martin (partie hollandaise), Saint Thomas, Saint Vincent & Grenadines, Sainte Croix, Sainte Lucie, Saipan (Iles Mariannes), Salomon, Samoa, Samoa Américaines, Singapour, Sri Lanka, Surinam, Tadjikistan, Taiwan, Thailande, Timor Oriental, Tonga (Iles), Trinité & Tobago, Turkménistan, Turques & Caiques, Tuvalu, Uruguay, Vanuatu, Vénézuela, Vierges Américaines (îles), Vierges Britanniques (îles), Vietnam. */ $inter_countries_4 = 'AF,AG,AI,AN,AN,AN,AN,AR,AS,AU,AW,BB,BD,BM,BN,BO,BR,BS,BT,BZ,CK,CL,CN,CO,CR,C U,DM,DO,EC,FJ,FM,FO,GD,GL,GP,GP,GT,GU,GY,HK,HN,HT,IC,ID,IN,JM,JP,KG,KH,KI,KN,KP,K R,KW,KY,KZ,LA,LC,LK,MH,MI,MM,MN,MO,MP,MS,MV,MX,MY,NI,NP,NR,OM,PA,PE,PG,PH,PK,PS,P W,PY,SB,SG,SR,SV,TC,TH,TJ,TL,TM,TO,TT,TV,TW,UY,UZ,VC,VE,VG,VI,VI,VI,VN VU,WS'; /* Recherche zone de destination */ $dest_zone = 0; for ($i = 1; $i <= 4; $i ++) { $c = 'inter_countries_' . $i; $countries = split("[,]", $$c); if (in_array($iso_code, $countries)) { $dest_zone = $i; break; } } if ($dest_zone == 0) { /* Code pays dans aucune zone */ $this->quotes['error'] = MODULE_SHIPPING_COLISSIMO_INVALID_COUNTRY; return; } /* Tarifs au départ de la France métropolitaine, Monaco, Andorre vers l'International (zones A, B, C et D)*/ $inter_NORMAL_1 = '1:15.9,2:17.45,3:21.05,4:24.65,5:28.25,6:31.85,7:35.45,8:39.05,9:42.65,10:46.25,15:53.25,20:60.25,25:67.25,30:74.25,41:72.72,61:109.08'; $inter_NORMAL_2 = '1:19.2,2:21.1,3:25.5,4:29.9,5:34.3,6:38.7,7:43.1,8:47.5,9:51.9,10:56.3,15:66.4,20:76.5,25:86.6,30:96.7'; $inter_NORMAL_3 = '1:22.1,2:29.5,3:38.7,4:47.9,5:57.1,6:66.3,7:75.5,8:84.7,9:93.9,10:103.1,15:126.1,20:149.1,25:172.1,30:195.1'; $inter_NORMAL_4 = '1:24.4,2:36.6,3:48.8,4:61,5:73.2,6:85.4,7:97.6,8:109.8,9:122,10:134.2,15:158.6,20:183,25:231.8,30:280.6'; /* Tarifs économiques au départ de la France métropolitaine, Monaco, Andorre vers l'International (zones B, C et D) */ $inter_ECONOM_2 = '1:15.45,2:18,3:21.6,4:25.2,5:28.8,6:32.4,7:36,8:39.6,9:43.2,10:46.8,15:54.4,20:62,25:69.6,30:77.2'; $inter_ECONOM_3 = '1:16.9,2:21.05,3:25.2,4:32.4,5:39.6,6:46.8,7:54,8:61.2,9:68.4,10:75.6,15:90.2,20:104.8,25:119.4,30:134'; $inter_ECONOM_4 = '1:21.5,2:28.8,3:36.9,4:45,5:53.1,6:61.2,7:69.3,8:77.4,9:85.5,10:93.6,15:112.8,20:132,25:151.2,30:170.4'; if ($method_id == '') { $t = 'inter_NORMAL_' . $dest_zone; $this->_add_method($$t, 'NORMAL', '', $this->ad_valorem, MODULE_SHIPPING_COLISSIMO_DELAY_INTERNAT); if ($dest_zone != 1) { /* ECONOM pas admis pour la zone A */ $t = 'inter_ECONOM_' . $dest_zone; $this->_add_method($$t, 'ECONOM', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_INTERNAT_ECO); } } else if ($method_id == 'NORMAL') { $t = 'inter_NORMAL_' . $dest_zone; $this->_add_method($$t, $method_id, '', $this->ad_valorem, MODULE_SHIPPING_COLISSIMO_DELAY_INTERNAT); } else if ($method_id == 'ECONOM' and $dest_zone != 1) { $t = 'inter_ECONOM_' . $dest_zone; $this->_add_method($$t, $method_id, '', false, MODULE_SHIPPING_COLISSIMO_DELAY_INTERNAT_ECO); } $this->_verifier_methodes(); } function _dom_vers_international($depart, $iso_code, $method_id = '') { switch ($depart) { case '971' : /* Guadeloupe */ case '972' : /* Martinique */ case '977' : /* St Barthélemy */ case '978' : /* St Martin */ /* Codes ISO des pays en zone A, séparés par une virgule. Antigua, Antilles Néerlandaises, Barbade, Dominique, Etats-Unis, Grenade, Guyana, Haiti, Montserrat, Saint-Christophe et Névis, Saint-Vincent, Sainte-Lucie, Trinité, Iles Vierges */ $inter_countries_1 = 'AG,AN,BB,DM,GD,GY,HT,KN,LC,MS,TT,US,VC,VG,VI'; /* Codes ISO des pays en zone B, séparés par une virgule. */ $inter_countries_2 = 'AC,AD,AE,AF,AI,AL,AM,AO,AR,AS,AT,AU,AW,AZ,BA,BD,BE,BF,BG,BH,BI,BJ,BM,BN,BO,B R,BS,BT,BW,BY,BZ,CA,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CS,CU,CV,CY,CZ,DE,DJ,DK,DO,D Z,EC,EE,EG,ER,ES,ET,FI,FJ,FM,FO,GA,GB,GB,GE,GF,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,G W,HK,HN,HR,HU,IC,ID,IE,IL,IN,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KP,KR,KW,KY,K Z,LA,LB,LI,LK,LR,LS,LT,LU,LV,LY,MA,MD,ME,MG,MH,MI,MK,ML,MM,MN,MO,MP,MQ,MR,MT,MU,M V,MW,MX,MY,MZ,NA,NC,NE,NG,NI,NL,NO,NP,NR,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PR,PS,PT,P W,PY,QA,RE,RO,RU,RW,SA,SB,SC,SD,SE,SG,SI,SK,SL,SM,SN,SO,SR,ST,SV,SY,SZ,TC,TD,TG,T H,TJ,TL,TM,TN,TO,TR,TV,TW,TZ,UA,UG,UY,UZ,VA,VE,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW'; break; case '973' : /* Guyanne Française */ /* Codes ISO des pays en zone A, séparés par une virgule. Guyana, Haiti, Sainte-Lucie */ $inter_countries_1 = 'GY,HT,LC'; /* Codes ISO des pays en zone B, séparés par une virgule. */ $inter_countries_2 = 'AC,AD,AE,AF,AG,AI,AL,AM,AN,AO,AR,AS,AT,AU,AW,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,B M,BN,BO,BR,BS,BT,BW,BY,BZ,CA,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CS,CU,CV,CY,CZ,DE,D J,DK,DM,DO,DZ,EC,EE,EG,ER,ES,ET,FI,FJ,FM,FO,GA,GB,GB,GD,GE,GF,GH,GI,GL,GM,GN,GP,G Q,GR,GS,GT,GU,GW,HK,HN,HR,HU,IC,ID,IE,IL,IN,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,K M,KN,KP,KR,KW,KY,KZ,LA,LB,LI,LK,LR,LS,LT,LU,LV,LY,MA,MD,ME,MG,MH,MI,MK,ML,MM,MN,M O,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NG,NI,NL,NO,NP,NR,NZ,OM,PA,PE,PF,PG,P H,PK,PL,PM,PR,PS,PT,PW,PY,QA,RE,RO,RU,RW,SA,SB,SC,SD,SE,SG,SI,SK,SL,SM,SN,SO,SR,S T,SV,SY,SZ,TC,TD,TG,TH,TJ,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,US,UY,UZ,VA,VC,VE,VG,V I,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW'; break; case '974' : /* Réunion */ case '976' : /* Mayotte */ /* Codes ISO des pays en zone A, séparés par une virgule. Afrique du Sud, Comores, Kenya, Madagascar, Maurice, Seychelles */ $inter_countries_1 = 'KE,KM,MG,MU,SC,ZA'; /* Codes ISO des pays en zone B, séparés par une virgule. */ $inter_countries_2 = 'AC,AD,AE,AF,AG,AI,AL,AM,AN,AO,AR,AS,AT,AU,AW,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,B M,BN,BO,BR,BS,BT,BW,BY,BZ,CA,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CS,CU,CV,CY,CZ,DE,D J,DK,DM,DO,DZ,EC,EE,EG,ER,ES,ET,FI,FJ,FM,FO,GA,GB,GB,GD,GE,GF,GH,GI,GL,GM,GN,GP,G Q,GR,GS,GT,GU,GW,GY,HK,HN,HR,HT,HU,IC,ID,IE,IL,IN,IQ,IR,IS,IT,JE,JM,JO,JP,KG,KH,K I,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MD,ME,MH,MI,MK,ML,MM,MN,M O,MP,MQ,MR,MS,MT,MV,MW,MX,MY,MZ,NA,NC,NE,NG,NI,NL,NO,NP,NR,NZ,OM,PA,PE,PF,PG,PH,P K,PL,PM,PR,PS,PT,PW,PY,QA,RE,RO,RU,RW,SA,SB,SD,SE,SG,SI,SK,SL,SM,SN,SO,SR,ST,SV,S Y,SZ,TC,TD,TG,TH,TJ,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,US,UY,UZ,VA,VC,VE,VG,VI,VN,V U,WF,WS,YE,YT,ZM,ZW'; break; case '975' : /* St Pierre & Miquelon */ /* Codes ISO des pays en zone A, séparés par une virgule. */ $inter_countries_1 = ''; /* Codes ISO des pays en zone B, séparés par une virgule. */ $inter_countries_2 = 'AC,AD,AE,AF,AG,AI,AL,AM,AN,AO,AR,AS,AT,AU,AW,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,B M,BN,BO,BR,BS,BT,BW,BY,BZ,CA,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CS,CU,CV,CY,CZ,DE,D J,DK,DM,DO,DZ,EC,EE,EG,ER,ES,ET,FI,FJ,FM,FO,GA,GB,GB,GD,GE,GF,GH,GI,GL,GM,GN,GP,G Q,GR,GS,GT,GU,GW,GY,HK,HN,HR,HT,HU,IC,ID,IE,IL,IN,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,K H,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MD,ME,MG,MH,MI,MK,M L,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NG,NI,NL,NO,NP,NR,NZ,OM,PA,P E,PF,PG,PH,PK,PL,PM,PR,PS,PT,PW,PY,QA,RE,RO,RU,RW,SA,SB,SC,SD,SE,SG,SI,SK,SL,SM,S N,SO,SR,ST,SV,SY,SZ,TC,TD,TG,TH,TJ,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,US,UY,UZ,VA,V C,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW'; break; default : break; } /* end switch */ /* Recherche zone de destination */ $dest_zone = 0; for ($i = 1; $i <= 2; $i ++) { $c = 'inter_countries_' . $i; $countries = split("[,]", $$c); if (in_array($iso_code, $countries)) { $dest_zone = $i; break; } } if ($dest_zone == 0) { /* Code pays dans aucune zone */ $this->quotes['error'] = MODULE_SHIPPING_COLISSIMO_INVALID_COUNTRY; return; } /* Tarifs au départ des DOM et Mayotte, Saint-Pierre et Miquelon vers l'International (zones A et B) */ $inter_NORMAL_1 = '1:13.4,2:17.5,3:21.6,4:25.7,5:29.8,6:33.9,7:38,8:42.1,9:46.2,10:50.3,15:60.55,20:70.8,25:81.05,30:91.3'; $inter_NORMAL_2 = '1:26.8,2:35,3:43.2,4:51.4,5:59.6,6:67.8,7:76,8:84.2,9:92.4,10:100.6,15:141.6,20:182.6,25:223.6,30:264.6'; /* Tarif économique au départ des DOM et Mayotte, Saint-Pierre et Miquelon vers l'International (zone B). */ $inter_ECONOM_2 = '1:22.65,2:27.8,3:32.95,4:38.1,5:43.25,6:48.4,7:53.55,8:58.7,9:63.85,10:69,15:94.75,20:120.5,25:146.25,30:172'; /* Les tarifs de la zone B s'appliquent pour toutes les destinations au départ de St Pierre & Miquelon */ if ($depart == '975') $dest_zone = 2; if ($method_id == '') { $t = 'inter_NORMAL_' . $dest_zone; $this->_add_method($$t, 'NORMAL', '', $this->ad_valorem, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_INTERNAT); if ($dest_zone != 1) { /* ECO pas admis pour la zone A */ $t = 'inter_ECONOM_' . $dest_zone; $this->_add_method($$t, 'ECONOM', '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_INTERNAT_ECO); } } else if ($method_id == 'NORMAL') { $t = 'inter_NORMAL_' . $dest_zone; $this->_add_method($$t, $method_id, '', $this->ad_valorem, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_INTERNAT); } else if ($method_id == 'ECONOM' and $dest_zone != 1) { $t = 'inter_ECONOM_' . $dest_zone; $this->_add_method($$t, $method_id, '', false, MODULE_SHIPPING_COLISSIMO_DELAY_DOM_INTERNAT_ECO); } $this->_verifier_methodes(); } /***** Public functions *****/ function quote($method_id = '') { global $order, $shipping_weight, $shipping_num_boxes; if (tep_not_null($method_id)) { if (($method_id != 'NORMAL') and ($method_id != 'ECONOM') and ($method_id != 'RECOMM') and ($method_id != 'RECOMMCR')) return; } $this->quotes = array( 'id' => $this->code, 'module' => MODULE_SHIPPING_COLISSIMO_TEXT_TITLE, 'methods' => array() ); /* Returns the tax rate for a zone / class */ if ($this->tax_class > 0) $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); /* Récupération du colisage effectué par osCommerce (Voir fractionnement des colis dans la classe 'shipping'). */ $this->poids_unitaire = $shipping_weight; $this->nb_boites = $shipping_num_boxes; /* Code postal de la boutique expéditrice */ $orig2 = substr(trim(SHIPPING_ORIGIN_ZIP), 0, 2); $orig3 = substr(trim(SHIPPING_ORIGIN_ZIP), 0, 3); if ($orig2 == '97') $origine = 'DOM'; elseif ($orig2 == '98') $origine = 'TOM'; else $origine = 'NAT'; /* Pays de destination */ $dest_country = $order->delivery['country']['iso_code_2']; if (tep_not_null($order->delivery['postcode'])) { /* On connait le code postal */ $dest3 = substr(trim($order->delivery['postcode']), 0, 3); /* Correction avec code postal destinataire en cas mauvaise saisie utilisateur pour DOM,TOM,CT */ if ($dest_country == 'FR' or $dest_country == 'FX') { if ($dest3 == '971') $dest_country = 'GP'; elseif ($dest3 == '972') $dest_country = 'MQ'; elseif ($dest3 == '973') $dest_country = 'GF'; elseif ($dest3 == '974') $dest_country = 'RE'; elseif ($dest3 == '975') $dest_country = 'PM'; elseif ($dest3 == '976') $dest_country = 'YT'; elseif ($dest3 == '977') $dest_country = 'BL'; /* Saint-Barthélemy */ elseif ($dest3 == '978') $dest_country = 'MF'; /* Saint-Martin */ elseif ($dest3 == '984') $dest_country = 'TF'; elseif ($dest3 == '986') $dest_country = 'WF'; elseif ($dest3 == '987') $dest_country = 'PF'; elseif ($dest3 == '988') $dest_country = 'NC'; elseif ($dest3 == '989') $dest_country = 'CP'; /* Clipperton */ } } switch ($dest_country) { case 'FR' : case 'FX' : case 'AD' : case 'MC' : if ($origine == 'NAT') $this->_national_vers_national($method_id); elseif ($origine == 'DOM') $this->_entre_national_et_dom($method_id); else $this->_national_ou_dom_vers_tom($method_id); break; case 'GP' : case 'MQ' : case 'BL' : case 'MF' : if ($origine == 'NAT') $this->_entre_national_et_dom($method_id); elseif ($origine == 'DOM') { if (($orig3 == '971') or ($orig3 == '972')) $this->_national_vers_national($method_id); elseif (($orig3 == '973') or ($orig3 == '977') or ($orig3 == '978')) $this->_dom_vers_dom_de_proximite($method_id); elseif (($orig3 == '974') or ($orig3 == '975') or ($orig3 == '976')) $this->_dom_vers_dom_eloigne($method_id); } else $this->_national_ou_dom_vers_tom($method_id); break; case 'GF' : if ($origine == 'NAT') $this->_entre_national_et_dom($method_id); elseif ($origine == 'DOM') { if (($orig3 == '971') or ($orig3 == '972') or ($orig3 == '977') or ($orig3 == '978')) $this->_dom_vers_dom_de_proximite($method_id); elseif ($orig3 == '973') $this->_national_vers_national($method_id); elseif (($orig3 == '974') or ($orig3 == '975') or ($orig3 == '976')) $this->_dom_vers_dom_eloigne($method_id); } else $this->_national_ou_dom_vers_tom($method_id); break; case 'RE' : if ($origine == 'NAT') $this->_entre_national_et_dom($method_id); elseif ($origine == 'DOM') { if (($orig3 == '971') or ($orig3 == '972') or ($orig3 =='973') or ($orig3 == '975') or ($orig3 == '977') or ($orig3 == '978')) $this->_dom_vers_dom_eloigne($method_id); elseif ($orig3 == '974') $this->_national_vers_national($method_id); elseif ($orig3 == '976') $this->_dom_vers_dom_de_proximite($method_id); } else $this->_national_ou_dom_vers_tom($method_id); break; case 'YT' : if ($origine == 'NAT') $this->_entre_national_et_dom($method_id); elseif ($origine == 'DOM') { if (($orig3 == '971') or ($orig3 == '972') or ($orig3 =='973') or ($orig3 == '975') or ($orig3 == '977') or ($orig3 == '978')) $this->_dom_vers_dom_eloigne($method_id); elseif ($orig3 == '976') $this->_national_vers_national($method_id); elseif ($orig3 == '974') $this->_dom_vers_dom_de_proximite($method_id); } else $this->_national_ou_dom_vers_tom($method_id); break; case 'PM' : if ($origine == 'NAT') $this->_entre_national_et_dom($method_id); elseif ($origine == 'DOM') { if (($orig3 == '971') or ($orig3 == '972') or ($orig3 =='973') or ($orig3 == '974') or ($orig3 == '976') or ($orig3 == '977') or ($orig3 == '978')) $this->_dom_vers_dom_eloigne($method_id); elseif ($orig3 == '975') $this->_national_vers_national($method_id); } else $this->_national_ou_dom_vers_tom($method_id); break; case 'NC' : case 'PF' : case 'WF' : case 'TF' : case 'CP' : if (($origine == 'NAT') or ($origine == 'DOM')) $this->_national_ou_dom_vers_tom($method_id); else $this->quotes['error'] = MODULE_SHIPPING_COLISSIMO_INVALID_COUNTRY; break; default : $this->icon = DIR_WS_ICONS . 'shipping_colissimo_inter.gif'; if ($this->international) { if ($origine == 'NAT') $this->_national_vers_international($orig3, $dest_country, $method_id); elseif ($origine == 'DOM') $this->_dom_vers_international($orig3, $dest_country, $method_id); else $this->quotes['error'] = MODULE_SHIPPING_COLISSIMO_INVALID_COUNTRY; } else $this->quotes['error'] = MODULE_SHIPPING_COLISSIMO_INVALID_COUNTRY; break; } /* end switch */ if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title); return $this->quotes; } /* Retourne le statut du module (activé/désactivé) */ function check() { /* _check: nom utilisé par OsCommerce. */ if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_COLISSIMO_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } /* Constantes stockées dans BDD */ function install() { /* Activation du module */ 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 ('Module Colissimo activé ?', 'MODULE_SHIPPING_COLISSIMO_STATUS', 'False', 'Voulez-vous activer l\'expédition par Colissimo ?', '6', '0','tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); /* Ajouter des frais fixes HT ? */ tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Frais fixes Colissimo HT', 'MODULE_SHIPPING_COLISSIMO_HANDLING', '0', 'Les frais fixes HT d\'expédition par colis (emballage, ...)', '6', '0', now())"); /* Appliquer une taxe sur frais d'expédition ? */ 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 ('Classe de taxe sur frais d\'expédition', 'MODULE_SHIPPING_COLISSIMO_TAX_CLASS', '0', 'Appliquer le taux de taxe suivant sur les frais d\'expédition.', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())"); /* Expédier seulement vers une zone de taxe ? */ 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 ('Expédier seulement vers cette zone de taxe', 'MODULE_SHIPPING_COLISSIMO_TAX_ZONE', '0', 'Si une zone de taxe est sélectionnée, ce mode de livraison fonctionnera uniquement pour la zone choisie.', '6', '0', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); /* Afficher les délais postaux ?*/ 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 ('Afficher les délais postaux ?', 'MODULE_SHIPPING_COLISSIMO_DELAYS_ENABLED', 'True', 'Voulez-vous afficher les délais postaux ?', '6', '0','tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); /* Sélection des affichages */ 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 ('Afficher Colissimo Normal ?', 'MODULE_SHIPPING_COLISSIMO_NORMAL_ENABLED', 'True', 'Voulez-vous proposer l\'expédition en Colissimo normal ?', '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, set_function, date_added) values ('Afficher Colissimo Economique ?', 'MODULE_SHIPPING_COLISSIMO_ECONOM_ENABLED', 'True', 'Voulez-vous proposer l\'expédition en Colissimo économique ?', '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, set_function, date_added) values ('Afficher Colissimo Recommandé ?', 'MODULE_SHIPPING_COLISSIMO_RECOMM_ENABLED', 'True', 'Voulez-vous proposer l\'expédition en Colissimo recommandé ?', '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, set_function, date_added) values ('Afficher Colissimo Recommandé + CRBT ?', 'MODULE_SHIPPING_COLISSIMO_RECOMMCR_ENABLED', 'False', 'Voulez-vous proposer l\'expédition en Colissimo recommandé avec contre-remboursement ?', '6', '0','tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); /* Sélection des options */ 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 ('Taux de recommandation ?', 'MODULE_SHIPPING_COLISSIMO_TAUX_RECOMMANDATION', 'Auto', 'Quel taux voulez-vous appliquer pour chaque recommandé ?', '6', '0','tep_cfg_select_option(array(\'Auto\',\'R1\',\'R2\',\'R3\',\'R4\',\'R5\'), ', now())"); 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 ('Avis de réception pour les Recommandés ?', 'MODULE_SHIPPING_COLISSIMO_AVIS_RECEPTION', 'False', 'Voulez-vous un avis de réception pour chaque recommandé ?', '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, set_function, date_added) values ('Colissimo International autorisé ?', 'MODULE_SHIPPING_COLISSIMO_INTERNATIONAL_ENABLED', 'False', 'Voulez-vous autoriser l\'expédition vers l\'International ?', '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, set_function, date_added) values ('Assurance Ad Valorem pour l\'International ?', 'MODULE_SHIPPING_COLISSIMO_INTERNATIONAL_AD_VALOREM', 'False', 'Voulez-vous ajouter une assurance Ad Valorem à chaque colis vers l\'International ?', '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 ('Ordre de tri', 'MODULE_SHIPPING_COLISSIMO_SORT_ORDER', '0', 'Ordre de tri pour l\'affichage (le plus petit en premier).', '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_COLISSIMO_STATUS', 'MODULE_SHIPPING_COLISSIMO_HANDLING', 'MODULE_SHIPPING_COLISSIMO_TAX_CLASS', 'MODULE_SHIPPING_COLISSIMO_TAX_ZONE', 'MODULE_SHIPPING_COLISSIMO_DELAYS_ENABLED', 'MODULE_SHIPPING_COLISSIMO_NORMAL_ENABLED', 'MODULE_SHIPPING_COLISSIMO_ECONOM_ENABLED', 'MODULE_SHIPPING_COLISSIMO_RECOMM_ENABLED', 'MODULE_SHIPPING_COLISSIMO_RECOMMCR_ENABLED', 'MODULE_SHIPPING_COLISSIMO_TAUX_RECOMMANDATION', 'MODULE_SHIPPING_COLISSIMO_AVIS_RECEPTION', 'MODULE_SHIPPING_COLISSIMO_INTERNATIONAL_ENABLED', 'MODULE_SHIPPING_COLISSIMO_INTERNATIONAL_AD_VALOREM', 'MODULE_SHIPPING_COLISSIMO_SORT_ORDER'); } } ?> -------------------- Ma version : MS2.2, contributions :
- Multi-Store 2.0 - CKeditor et CKfinder en cours -------------------- Mes sujets du moment : - un problème avec CKeditor - Ma solution et un bon conseil après une semaine d'acharnement sur Multi-Stores |
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 19th May 2013 - 12:43 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |