Adaptation module colissimo phoenix |
Bienvenue invité ( Connexion | Inscription )
Adaptation module colissimo phoenix |
13 Apr 2020, 15:29
Message
#1
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 103 Inscrit : 19-July 03 Membre no 1316 |
Bonjour,
Je suis en train d'adapté le module colissimo lien vers module pour ma version de phoenix 1.0.5.0 J'ai commencé par remplacé tout les appel de bdd et autres variables qui ne sont plus présent dans phoenix. Ce qui a a supprimé beaucoup d'erreur, j'ai finalement pu l'installé. Il me reste cependant une erreur que je n'arrive pas a trouver. J'ai ce message d'erreur : Warning: Use of undefined constant SHIPPING_ORIGIN_COUNTRY - assumed 'SHIPPING_ORIGIN_COUNTRY' (this will throw an Error in a future version of PHP) in C:\monsite\includes\modules\shipping\colissimo.php on line 78 code de la ligne 78 à 81 Code $shipping_country_query = tep_db_query("select countries_iso_code_2 from countries where countries_id = '" . SHIPPING_ORIGIN_COUNTRY . "' limit 1"); $shipping_country = tep_db_fetch_array($shipping_country_query); $this->origine_iso_code = $shipping_country['countries_iso_code_2']; if (!in_array($this->origine_iso_code, array('FR','FX','MC','GP','MQ','BL','MF','GF','RE','YT','PM','TF','WF','PF','NC','CP'))) $this->enabled = false; Je met aussi le code complet du fichier colissimo ci dessous et donc avec toutes mes modifs. Code <?php /* French Colissimo Shipping module version 20110315. This module has been adapted to fit in osCommerce 2.3.1. Copyright © 2009,2010,2011 Philippe BLAIN <pblain@NOSPAMfree.fr>. ------------------------------------------------------------------------------ Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous). Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails. Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps que ce programme; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis. ------------------------------------------------------------------------------ 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.5); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R2', 3.4); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R3', 4.6); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R4', 5.8); define ('MODULE_SHIPPING_COLISSIMO_SUPP_R5', 7); /* Options */ define ('MODULE_SHIPPING_COLISSIMO_SUPP_CONTRE_REMBOURSEMENT', 7); define ('MODULE_SHIPPING_COLISSIMO_SUPP_ACCUSE_RECEPTION', 1.3); define ('MODULE_SHIPPING_COLISSIMO_SUPP_AD_VALOREM', 1); /* Frais par défaut selon le poids */ define ('MODULE_SHIPPING_COLISSIMO_DEFAULT_HANDLING', '0:0'); 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; /* Seulement au départ du territoire français */ $shipping_country_query = tep_db_query("select countries_iso_code_2 from countries where countries_id = '" . SHIPPING_ORIGIN_COUNTRY . "' limit 1"); $shipping_country = tep_db_fetch_array($shipping_country_query); $this->origine_iso_code = $shipping_country['countries_iso_code_2']; if (!in_array($this->origine_iso_code, array('FR','FX','MC','GP','MQ','BL','MF','GF','RE','YT','PM','TF','WF','PF','NC','CP'))) $this->enabled = false; /* 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 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; } $this->quotes = array(); } /***** 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 = preg_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]; 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; } /* Frais fixes selon le poids */ $table = preg_split('/[,:]/', MODULE_SHIPPING_COLISSIMO_HANDLING); $frais = 0; for ($k = 0, $table_count = count($table); $k < $table_count; $k += 2) { $frais = $table[$k+1]; if ($this->poids_unitaire <= $table[$k]) break; } $shipping += $frais; /* Delais */ if ($this->avec_delais and tep_not_null($delai)) $libel .= $delai; /* Coût pour tous les colis */ $shipping_cost = round($shipping, 2) * $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.5:5.6,1:6.95,2:7.95,3:8.95,5:10.95,7:12.95,10:15.95,15:18.2,30:24.9'; 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:8.45,1:12.7,2:17.35,3:22,4:26.65,5:31.3,6:35.95,7:40.6,8:45.25,9:49.9,10:54.55,15:77.75,20:100.95,25:124.15,30:147.35'; $dom_ECONOM = '0.5:7.5,1:9.65,2:10.75,3:11.85,4:12.95,5:14.05,6:15.15,7:16.9,8:18.65,9:20.4,10:22.15,15:28.65,20:35.15,25:41.65,30:48.15'; 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.65,1:6.8,2:7.95,3:9.1,4:10.25,5:11.4,6:12.55,7:13.7,8:14.85,9:16,10:17.15,15:19.15,20:21.15,25:23.15,30:25.15'; 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.95,1:15.45,2:27.9,3:40.35,4:52.8,5:65.25,6:77.7,7:90.15,8:102.6,9:115.05,10:127.5,15:188.5,20:249.5,25:310.5,30:371.5'; $dom_eloigne_ECONOM = '0.5:7.8,1:10.1,2:11.45,3:12.8,4:14.15,5:15.5,6:16.85,7:18.2,8:19.55,9:20.9,10:22.25,15:29.25,20:36.25,25:43.25,30:50.25'; 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,1:15.2,2:26.8,3:38.4,4:50,5:61.6,6:73.2,7:84.8,8:96.4,9:108,10:119.6,15:177.6,20:235.6,25:293.6,30:351.6'; $tom_ECONOM = '0.5:9.5,1:12.45,2:20.65,3:28.85,4:37.05,5:45.25,6:53.45,7:61.65,8:69.85,9:78.05,10:86.25,15:137.25,20:188.25,25:239.25,30:290.25'; 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 = preg_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:16.15,2:17.85,3:21.55,4:25.25,5:28.95,6:32.65,7:36.35,8:40.05,9:43.75,10:47.45,15:54.65,20:61.85,25:69.05,30:76.25'; $inter_NORMAL_2 = '1:19.8,2:21.7,3:26.25,4:30.8,5:35.35,6:39.9,7:44.45,8:49,9:53.55,10:58.1,15:68.5,20:78.9'; $inter_NORMAL_3 = '1:23.2,2:31.1,3:40.9,4:50.7,5:60.5,6:70.3,7:80.1,8:89.9,9:99.7,10:109.5,15:133.6,20:157.7'; $inter_NORMAL_4 = '1:26.4,2:39.7,3:52.9,4:66.1,5:79.3,6:92.5,7:105.7,8:118.9,9:132.1,10:145.3,15:171.3,20:197.3'; if ($method_id == '') { $t = 'inter_NORMAL_' . $dest_zone; $this->_add_method($$t, 'NORMAL', '', $this->ad_valorem, MODULE_SHIPPING_COLISSIMO_DELAY_INTERNAT); } else if ($method_id == 'NORMAL') { $t = 'inter_NORMAL_' . $dest_zone; $this->_add_method($$t, $method_id, '', $this->ad_valorem, MODULE_SHIPPING_COLISSIMO_DELAY_INTERNAT); } $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 = preg_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.7,2:17.9,3:22.1,4:26.3,5:30.5,6:34.7,7:38.9,8:43.1,9:47.3,10:51.5,15:61.9,20:72.3'; $inter_NORMAL_2 = '1:28.15,2:36.8,3:45.45,4:54.1,5:62.75,6:71.4,7:80.05,8:88.7,9:97.35,10:106,15:148.8,20:191.6,25:234.4,30:277.2'; /* 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); } 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); } $this->_verifier_methodes(); } /***** Public functions *****/ function quote($method_id = '') { global $order, $shipping_weight, $shipping_num_boxes; if (tep_not_null($method_id)) { if ((strcmp($method_id, 'NORMAL') != 0) and (strcmp($method_id, 'ECONOM') != 0) and (strcmp($method_id, 'RECOMM') != 0) and (strcmp($method_id, 'RECOMMCR') != 0)) return; } $this->quotes = array( 'id' => $this->code, 'module' => MODULE_SHIPPING_COLISSIMO_TEXT_TITLE, 'methods' => array() ); if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title); /* 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 */ 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 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 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 ? */ tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Frais fixes ajoutés par colis selon le poids', 'MODULE_SHIPPING_COLISSIMO_HANDLING', '" . MODULE_SHIPPING_COLISSIMO_DEFAULT_HANDLING . "', 'Tranches \'poids:frais\' séparées par une virgule. Un montant fixe est ajouté au port selon le poids unitaire du contenu.', '6', '0', now())"); /* Appliquer une taxe sur frais d'expédition ? */ tep_db_query("insert into 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 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 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 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 configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Afficher Colissimo Économique ?', '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 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 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 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 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 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 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 configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Classement ', 'MODULE_SHIPPING_COLISSIMO_SORT_ORDER', '0', 'Classement pour l\'affichage (le plus petit en premier).', '6', '0', now())"); } function remove() { tep_db_query("delete from 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'); } } ?> Merci d'avance si vous avez une piste. Ludo Ce message a été modifié par Ludoooo - 13 Apr 2020, 15:33. |
|
13 Apr 2020, 15:52
Message
#2
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Bonjour Ludo,
On a pas pris la même version de Colissimo, de mon côté j'ai utilisé https://apps.oscommerce.com/sJAQ0&colis...ais-de-portCela fonctionne bien, j'ai toutefois pas encore regardé les frais de port gratuit avec Colissimo. Pour ta version, remplace ton SHIPPING_ORIGIN_COUNTRY par STORE_COUNTRY -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
13 Apr 2020, 16:37
Message
#3
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 103 Inscrit : 19-July 03 Membre no 1316 |
Bonjour Bonbec,
Merci pour la solution ! ça marche impec. On a pris presque la même version, sauf que la tienne gère des fdp gratuit, ça peux être intéréssant. Bon je vais finir la mienne, comme ça il y aura les deux de prêtes. j'ai cependant deux nouvelles erreurs, surement une appellation différente dans la bdd et une autre pour l'appel des icônes Warning: Use of undefined constant SHIPPING_ORIGIN_ZIP - assumed 'SHIPPING_ORIGIN_ZIP' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\broc\includes\modules\shipping\colissimo.php on line 503 Warning: Use of undefined constant SHIPPING_ORIGIN_ZIP - assumed 'SHIPPING_ORIGIN_ZIP' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\broc\includes\modules\shipping\colissimo.php on line 504 Code /* Code postal de la boutique expéditrice */ $orig2 = substr(trim(SHIPPING_ORIGIN_ZIP), 0, 2); $orig3 = substr(trim(SHIPPING_ORIGIN_ZIP), 0, 3); et les icônes : Warning: Use of undefined constant DIR_WS_ICONS - assumed 'DIR_WS_ICONS' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\broc\includes\modules\shipping\colissimo.php on line 66 Code $this->icon = DIR_WS_ICONS . 'shipping_colissimo48.gif'; Merci de ton aide Bonbec Ludo |
|
13 Apr 2020, 18:55
Message
#4
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Bonjour Bonbec, Pour les fdp gratuits, il faut modifier un script d'origine de Phoenix et il vaut mieux éviter. Je vais me creuser la tête pour trouver une solution.Merci pour la solution ! ça marche impec. On a pris presque la même version, sauf que la tienne gère des fdp gratuit, ça peux être intéréssant. Bon je vais finir la mienne, comme ça il y aura les deux de prêtes. j'ai cependant deux nouvelles erreurs, surement une appellation différente dans la bdd et une autre pour l'appel des icônes Là j'ai triché, j'ai ajouté un define en début de fichier :Warning: Use of undefined constant SHIPPING_ORIGIN_ZIP - assumed 'SHIPPING_ORIGIN_ZIP' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\broc\includes\modules\shipping\colissimo.php on line 503 Warning: Use of undefined constant SHIPPING_ORIGIN_ZIP - assumed 'SHIPPING_ORIGIN_ZIP' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\broc\includes\modules\shipping\colissimo.php on line 504 Code /* Code postal de la boutique expéditrice */ $orig2 = substr(trim(SHIPPING_ORIGIN_ZIP), 0, 2); $orig3 = substr(trim(SHIPPING_ORIGIN_ZIP), 0, 3); Code define('SHIPPING_ORIGIN_ZIP', '03200'); // <====== Code postal du bureau de poste expéditeur et les icônes : Warning: Use of undefined constant DIR_WS_ICONS - assumed 'DIR_WS_ICONS' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\broc\includes\modules\shipping\colissimo.php on line 66 Code $this->icon = DIR_WS_ICONS . 'shipping_colissimo48.gif'; Remplace ta ligne par : Code $this->icon = 'images/icons/shipping_colissimo48.gif'; -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
14 Apr 2020, 20:31
Message
#5
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 103 Inscrit : 19-July 03 Membre no 1316 |
Bonjour Bonbec,
Super merci, le module fonctionne parfaitement ! |
|
Version bas débit | Nous sommes le : 30th March 2024 - 09:44 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |