Contribution Mondial Relay : votre avis m'interesse |
Bienvenue invité ( Connexion | Inscription )
Contribution Mondial Relay : votre avis m'interesse |
30 May 2011, 21:46
Message
#126
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour !
Citation 2 - le module ne peut traiter que les commande d'un poids max de 20 Kg car au dela c'est mal avec un code retour "20" (poids erroné). Dans ma version de test j'ai déja ajouté l'envoie du poinds lors de la requête WSI2_RecherchePointRelais mais cette valeur seule ne permet pas de limiter la requete au point relais XL. J'attends la réponse sur les paramètres a utiliser pour les colis de plus de 20 Kg.... donc Wait&See. Attention, mon contrat ne prévoit pas l'envoi de colis de plus de 20 kg ou > 1.5 m (c'est l'équivalent de so colissimo en fait) ni le multi-colis. Il faut plutôt prévoir une décomposition en n colis < 20 kg comme le fait - imparfaitement d'ailleurs - le module colissimo, chaque colis ayant un poids hypothétique identique pour minimiser les frais :
|
|
30 May 2011, 22:08
Message
#127
|
|
Ceinture bleue OSC Groupe : Modérateurs Messages : 1085 Inscrit : 29-November 04 Membre no 3935 |
Bonjour ! Citation 2 - le module ne peut traiter que les commande d'un poids max de 20 Kg car au dela c'est mal avec un code retour "20" (poids erroné). Dans ma version de test j'ai déja ajouté l'envoie du poinds lors de la requête WSI2_RecherchePointRelais mais cette valeur seule ne permet pas de limiter la requete au point relais XL. J'attends la réponse sur les paramètres a utiliser pour les colis de plus de 20 Kg.... donc Wait&See. Attention, mon contrat ne prévoit pas l'envoi de colis de plus de 20 kg ou > 1.5 m (c'est l'équivalent de so colissimo en fait) ni le multi-colis. Il faut plutôt prévoir une décomposition en n colis < 20 kg comme le fait - imparfaitement d'ailleurs - le module colissimo, chaque colis ayant un poids hypothétique identique pour minimiser les frais :
Salut Chti_Poupon Mon contrat le prévoit, il prévoit également la livraison a domicile sur rdv mais là sur super soft a géré (une petite grille et hop). Pour cette particularité (relais XL) j'en saurai plus demain. et je pondrai un truc optionnel switchable depuis le module. -------------------- Petit guide pour résoudre tout vos problèmes avec Oscommerce
FORK perso a base de MS2 RC1 FR avec deux trois contribs + pas mal de dev perso + beaucoup (trop ?) d'Ajax + un peu mais pas trop de flash + virer la structure tableau + de feuille de style + pas mal de <DIV id="****">.......... en gros ca ressemble plus trop a l'originale |
|
31 May 2011, 14:08
Message
#128
|
|
Ceinture bleue OSC Groupe : Modérateurs Messages : 1085 Inscrit : 29-November 04 Membre no 3935 |
Salut Chti_Poupon Mon contrat le prévoit, il prévoit également la livraison a domicile sur rdv mais là sur super soft a géré (une petite grille et hop). Pour cette particularité (relais XL) j'en saurai plus demain. et je pondrai un truc optionnel switchable depuis le module. Bon et bien c'est pas vendu ! la restriction aux points relais XL n'est pas implémenté dans le webservice ??: c'était trop simple J'ai reçu la doc de l'EDI......je vais éplucher ça ! Edit : A la question Citation Savez-vous si a court, moyen ou long terme la possibilité de faire des requêtes restrictives sur le webservice est prévu ? La réponse de mon interlocutrice chez MR est : Citation Je n'ai pas la réponse à la question. Il faut compter plutôt long terme. Damned ! -------------------- Petit guide pour résoudre tout vos problèmes avec Oscommerce
FORK perso a base de MS2 RC1 FR avec deux trois contribs + pas mal de dev perso + beaucoup (trop ?) d'Ajax + un peu mais pas trop de flash + virer la structure tableau + de feuille de style + pas mal de <DIV id="****">.......... en gros ca ressemble plus trop a l'originale |
|
31 May 2011, 15:05
Message
#129
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 31 Inscrit : 15-November 05 Membre no 7843 |
Bonjour,
j'ai installé cette contrib (merci aux auteurs !). Je rencontre un problème qui va paraitre très cxx mais bon.. Dans le module il faut rentrer ; Enseigne Clé privée Clé privée (url) Marque(url) Marque J'ai un contrat actif avec MR et on ne m'a communiqué que ceci Enseigne : EC + xxxxxx Référence marque : EC+ xxxxxx +xx Clé privée (8chiffres) : xxxxxxxx Que faut-il indiquer pour Clé privée (url) et Marque (url) ??? Merci d'avance pour vos lumières |
|
31 May 2011, 17:31
Message
#130
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour !
C'était ce que je voulais dire à chrysalide quant aux dénominations de l'admin. Trace d'un passé révolu ou prévoyance, les champs avec (url) contiennent la même chose que ceux sans (mais de même nom respectivement). Chti poupon |
|
2 Jun 2011, 21:45
Message
#131
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour !
Si l'on peut découper la commande en colis de moins de 20 kg, la limite générale étant fixée à 30kg pour colissimo, il faut intégrer cette limite dans les paramètres et éclater en colis identiques, ce qui donne: catalog/includes/modules/shipping/mondial_relay.php: Code <?php class mondialrelay{ function log($teste) { $log = fopen(DIR_FS_CATALOG."/logs/log.txt", "a"); if($teste!=NULL) { fprintf($log,print_r($teste,true)."\n"); } else { fprintf($log,"variable vide\n"); } fclose($log); } var $code, $icon, $title, $sort_order, $description, $enabled; function mondialrelay() { $this->code="mondialrelay"; $this->title = MODULE_SHIPPING_MONDIAL_RELAY_TEXT_TITLE; $this->sort_order = MODULE_SHIPPING_MONDIAL_RELAY_SORT_ORDER; $this->icon = DIR_WS_ICONS . 'MR RVB.jpg'; $this->description = MODULE_SHIPPING_MONDIAL_RELAY_DESCRIPTION; $this->enabled = ((MODULE_SHIPPING_MONDIAL_RELAY_STATUS == 'True') ? true : false); $this->tax_class = MODULE_SHIPPING_MONDIAL_RELAY_TABLE_TAX_CLASS; $this->frais_fixes = MODULE_SHIPPING_MONDIAL_RELAY_FRAIS_FIXES; $this->franco = MODULE_SHIPPING_MONDIAL_RELAY_FREE_SHIPPING_OVER; $this->trop_lourd = MODULE_SHIPPING_MONDIAL_RELAY_TOO_HEAVY; } function quote($method = '') { global $total_weight, $shipping_weight, $shipping_num_boxes; //soap if($shipping_weight>=0.1) { global $order, $cart; // Début calcul du nombre de colis $shipping_num_boxes = 1; $shipping_weight = $total_weight; if (SHIPPING_BOX_WEIGHT >= $shipping_weight*SHIPPING_BOX_PADDING/100) { $shipping_weight = $shipping_weight+SHIPPING_BOX_WEIGHT; } else { $shipping_weight = $shipping_weight + ($shipping_weight*SHIPPING_BOX_PADDING/100); } if ($shipping_weight > $this->trop_lourd) { // Split into many boxes $shipping_num_boxes = ceil($shipping_weight/$this->trop_lourd); $shipping_weight = $shipping_weight/$shipping_num_boxes; } // Fin calcul nombre de boîtes $client = new SoapClient("http://www.mondialrelay.fr/WebService/Web_Services.asmx?WSDL"); $params = array('Enseigne' => MODULE_SHIPPING_MONDIAL_RELAY_ENSEIGNE ,'Pays' => $order->delivery['country']['iso_code_2'] ,'Ville' => $order->delivery['city'] ,'CP' => $order->delivery['postcode']); //On crée le code de sécurité $code = implode("",$params); $code .= MODULE_SHIPPING_MONDIAL_RELAY_CLE_PRIVEE; // On le rajoute aux paramétres $params["Security"] = strtoupper(md5($code)); $pointsRelais = $client->WSI2_RecherchePointRelais($params)->WSI2_RecherchePointRelaisResult;// récupere la liste des points relais if($pointsRelais->STAT==0) { // calcul du tarif // ajout livraison gratuite if ($cart->show_total() >= $this->franco){ $tarif=0; // Fin ajout livraison gratuite*/ }else{ $table = split("[:,]" , MODULE_SHIPPING_MONDIAL_RELAY_TARIF); $tarifTrouve=true; for ($i = 0; $i < sizeof($table); $i+=2) { if ($shipping_weight > $table[$i]) continue; if (($shipping_weight < $table[$i]) AND $tarifTrouve) { $tarif=$table[$i+1]; $tarifTrouve=false; } } $tarif += $this->frais_fixes; $tarif=$tarif*$shipping_num_boxes; } $methods = array(); foreach($pointsRelais as $pointRelais) { if( is_object($pointRelais) && trim($pointRelais->Num) != '' ){ //On crée le code de sécurité $code = implode("",$params); $code .= MODULE_SHIPPING_MONDIAL_RELAY_CLE_PRIVEE; //On le rajoute aux paramètres $params["Security"] = strtoupper(md5($code)); // Et on effectue la requète // $detail_pointrelais = $client->WSI2_DetailPointRelais($params)->WSI2_DetailPointRelaisResult; $popup_params = array( 'ens' => MODULE_SHIPPING_MONDIAL_RELAY_MARQUE_URL, 'Num' => $pointRelais->Num, 'Pays' => $pointRelais->Pays ); $popup_code = '<'.MODULE_SHIPPING_MONDIAL_RELAY_MARQUE_URL.'>'.$pointRelais->Num.$pointRelais->Pays.'<'.MODULE_SHIPPING_MONDIAL_RELAY_CLE_PRIVEE_URL.'>'; $security = strtoupper(md5($popup_code)); $link = 'http://www.mondialrelay.com/public/permanent/details_relais.aspx?ens='. MODULE_SHIPPING_MONDIAL_RELAY_MARQUE_URL .'&num='.$pointRelais->Num.'&pays='.$pointRelais->Pays.'&crc='.$security; $methods[]=array('id' => $pointRelais->Num . $pointRelais->Pays ,'title' => $pointRelais->LgAdr1 ." à ".$pointRelais->Ville ." ".$pointRelais->CP ." <a onclick=\" window.open ('". $link ."', '', 'height=800, width=450, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');\"><b>Détails</b></a>" ,'cost' => $tarif ); } } // Début préparation affichage nombre de colis et poids $info_plus = ( $shipping_num_boxes>1 ) ? ''. $shipping_num_boxes . ' x ' : ''; $info_envoi = ' ( '. $info_plus . $shipping_weight . 'kg ) '; // Fin préparation affichage nombre de colis $this->quotes = array('id' => $this->code, 'module' => $this->title . $info_envoi, 'methods' => $methods); if ($this->tax_class > 0) $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon,$this->title,,,'align="middle"'); return $this->quotes; } else { $this->quotes = array('module' => $this->title, 'error' => MODULE_SHIPPING_MONDIAL_RELAY_ERROR); return $this->quotes; } } else { return; } } function check() { $retourdb = tep_db_query("select configuration_value FROM ".TABLE_CONFIGURATION." WHERE configuration_key= 'MODULE_SHIPPING_MONDIAL_RELAY_STATUS' "); $this->checked = tep_db_num_rows($retourdb); return $this->checked; } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); tep_db_query("ALTER table ".TABLE_ORDERS." DROP shipping_pointrelay"); tep_db_query("ALTER table ".TABLE_ORDERS." DROP shipping_traking"); } function install() { 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_MONDIAL_RELAY_SORT_ORDER', '0', 'Ordre de tri pour l\'affichage (Le plus petit nombre est montré en premier).', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Enseigne', 'MODULE_SHIPPING_MONDIAL_RELAY_ENSEIGNE', 'xxxxxxxx', 'Enseigne fournie par mondial relay.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Marque', 'MODULE_SHIPPING_MONDIAL_RELAY_MARQUE', 'xxxxxxxxxx', 'Marque fournie par mondial relay.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Clé privée', 'MODULE_SHIPPING_MONDIAL_RELAY_CLE_PRIVEE', 'xxxxxxxx', 'Clé fournie par mondial relay.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Marque(url)', 'MODULE_SHIPPING_MONDIAL_RELAY_MARQUE_URL', 'xxxxxxxxxx', 'Marque(url) fournie par mondial relay.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Clé privée (url)', 'MODULE_SHIPPING_MONDIAL_RELAY_CLE_PRIVEE_URL', 'xxxxxxxx', 'Clé fournie par mondial relay.', '6', '0', 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 ('activer le module', 'MODULE_SHIPPING_MONDIAL_RELAY_STATUS', 'True', 'activer le module du front', '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 ('Civilité Nom Prénom', 'MODULE_SHIPPING_MONDIAL_RELAY_EXPE_AD1', '".STORE_NAME."', 'Civilité Nom Prénom(Civilités acceptées:\'MR\',\'M\',\'M.\', \'MME\', \'MLE\' et \'MLLE\').', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Pays d\'expédition', 'MODULE_SHIPPING_MONDIAL_RELAY_EXPE_PAYS', 'FR', 'Pays d\'expédition (Pays acceptés:\'FR\',\'BE\',\'LU\' et \'ES\').', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Rue', 'MODULE_SHIPPING_MONDIAL_RELAY_EXPE_AD3', 'mon numéro ma rue', 'Rue.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Ville', 'MODULE_SHIPPING_MONDIAL_RELAY_Expe_EXPE_VILLE', 'ma ville', 'ville.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Code Postal', 'MODULE_SHIPPING_MONDIAL_RELAY_Expe_EXPE_CP', '99999', 'Code Postal.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Téléphone', 'MODULE_SHIPPING_MONDIAL_RELAY_EXPE_TEL1', '0123456789', 'Téléphone Fixe.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('TVA applicable', 'MODULE_SHIPPING_MONDIAL_RELAY_TABLE_TAX_CLASS', '0', 'Sélectionnez la TVA applicable sur le montant de la livraison.', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Tarif', 'MODULE_SHIPPING_MONDIAL_RELAY_TARIF', '0.50:3.51,1.00:4.01,2.00:4.60,3.00:5.18,5.00:6.27,7.00:8.03,10.00:9.99,15.00:12.00,20.00:15.01', 'Tarif HT appliqué suivant le poids.', '6', '0', now())"); 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', 'MODULE_SHIPPING_MONDIAL_RELAY_FRAIS_FIXES', '0', 'Frais fixes (emballage).', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Seuil Franco (TTC)', 'MODULE_SHIPPING_MONDIAL_RELAY_FREE_SHIPPING_OVER', '0', 'Port gratuit à partir de (TTC) en marchandises', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Poids maximum du colis', 'MODULE_SHIPPING_MONDIAL_RELAY_TOO_HEAVY', '20', 'Poids brut maximum (kg) ', '6', '60', 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 ('Format des étiquettes', 'MODULE_SHIPPING_MONDIAL_RELAY_FORMAT_PDF', 'A5', 'Format des PDF des étiquettes', '6', '0', 'tep_cfg_select_option(array(\'A4\', \'A5\'), ', now())"); tep_db_query("ALTER table ".TABLE_ORDERS." ADD shipping_pointrelay char(8)"); tep_db_query("ALTER table ".TABLE_ORDERS." ADD shipping_traking char(8)"); } function keys() { return array("MODULE_SHIPPING_MONDIAL_RELAY_STATUS" ,"MODULE_SHIPPING_MONDIAL_RELAY_ENSEIGNE" ,"MODULE_SHIPPING_MONDIAL_RELAY_CLE_PRIVEE" ,"MODULE_SHIPPING_MONDIAL_RELAY_CLE_PRIVEE_URL" ,"MODULE_SHIPPING_MONDIAL_RELAY_MARQUE_URL" ,"MODULE_SHIPPING_MONDIAL_RELAY_MARQUE" ,"MODULE_SHIPPING_MONDIAL_RELAY_TARIF" ,"MODULE_SHIPPING_MONDIAL_RELAY_FREE_SHIPPING_OVER" ,"MODULE_SHIPPING_MONDIAL_RELAY_FRAIS_FIXES" ,"MODULE_SHIPPING_MONDIAL_RELAY_FORMAT_PDF" ,'MODULE_SHIPPING_MONDIAL_RELAY_EXPE_PAYS' ,'MODULE_SHIPPING_MONDIAL_RELAY_EXPE_AD1' ,'MODULE_SHIPPING_MONDIAL_RELAY_Expe_Ad3' ,'MODULE_SHIPPING_MONDIAL_RELAY_Expe_EXPE_VILLE' ,'MODULE_SHIPPING_MONDIAL_RELAY_Expe_EXPE_CP' ,'MODULE_SHIPPING_MONDIAL_RELAY_EXPE_TEL1' ,"MODULE_SHIPPING_MONDIAL_RELAY_SORT_ORDER" ,'MODULE_SHIPPING_MONDIAL_RELAY_TOO_HEAVY' ,'MODULE_SHIPPING_MONDIAL_RELAY_TABLE_TAX_CLASS'); } } ?> Cela fonctionne en local à tout le moins ! MAIS je ne sais pas faire les étiquettes correspondantes autrement qu'en manuel (pour le moment) : l'adaptation de mondialrelay_admin reste à faire. Chti poupon EDITION : Corrections erreurs code Ce message a été modifié par chti_poupon - 3 Jun 2011, 08:25. |
|
3 Jun 2011, 22:03
Message
#132
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour !
GAG ! dans l'install.txt du zip il manque: Code Puis checkout_process.php: L124 ajouter: //DOF if(substr($shipping['id'],0,12)=="mondialrelay") { tep_db_query("update " . TABLE_ORDERS . " set shipping_pointrelay = '" . substr($shipping['id'],-8) . "' where orders_id = '".$insert_id."'"); } //EOF entre: 123 $insert_id = tep_db_insert_id(); et: 124 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) { 125 $sql_data_array = array('orders_id' => $insert_id, 126 'title' => $order_totals[$i]['title'], 127 'text' => $order_totals[$i]['text'], 128 'value' => $order_totals[$i]['value'], 129 'class' => $order_totals[$i]['code'], 130 'sort_order' => $order_totals[$i]['sort_order']); Le champ shipping_pointrelay n'est pas renseigné dans la base !! Je m'aperçois d'un second gag: le choix du point relais ne fonctionne apparemment pas: je reteste sur codes propres et vous tiens au courant. Chti poupon |
|
4 Jun 2011, 08:07
Message
#133
|
|
Ceinture bleue OSC Groupe : Modérateurs Messages : 1085 Inscrit : 29-November 04 Membre no 3935 |
Bonjour ! GAG ! dans l'install.txt du zip il manque: tu as abusé de la blédine ou quoi ? je viens de verifier c'est le premier fichier qui est demandé de modifier Le champ shipping_pointrelay n'est pas renseigné dans la base !! Je m'aperçois d'un second gag: le choix du point relais ne fonctionne apparemment pas: je reteste sur codes propres et vous tiens au courant. Chti poupon euh le champ est créé lors de l'install du module et l'insertion dans celui-ci est conditionnée. j'ai refait un test sur ma rc1 toute fraiche et cela fonctionne très bien.......... -------------------- Petit guide pour résoudre tout vos problèmes avec Oscommerce
FORK perso a base de MS2 RC1 FR avec deux trois contribs + pas mal de dev perso + beaucoup (trop ?) d'Ajax + un peu mais pas trop de flash + virer la structure tableau + de feuille de style + pas mal de <DIV id="****">.......... en gros ca ressemble plus trop a l'originale |
|
10 Jun 2011, 18:46
Message
#134
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour !
Pour l'affichage dans checkout_confirmation.php du nom correct du relais choisi (et non du premier de la liste - systématiquement) il semble bien que cela soit dû à une structure particulière (1 module et 10 méthodes == mondial realy et 10 relais ) alors que de coutume, il y a 1 méthode par module (colissimoexpert recommandéR1 ou colissimoaccess normal) En conséquence de quoi, il faut modifier checkout_shipping.php (Lignes 117 à 130 incluses MS2.3.1) comme suit : Code if (isset($quote['error'])) { tep_session_unregister('shipping'); } else { for ($i=0, $n=sizeof($quote[0]['methods']); $i<$n; $i++) { if ( (isset($quote[0]['methods'][$i]['title'])) && (isset($quote[0]['methods'][$i]['cost']) && ($quote[0]['methods'][$i]['id']==$method ||$shipping == 'free_free'))) { $shipping = array('id' => $shipping, 'title' => (($free_shipping == true) ? $quote[0]['methods'][$i]['title'] : $quote[0]['module'] . ' (' . $quote[0]['methods'][$i]['title'] . ')'), 'cost' => $quote[0]['methods'][$i]['cost']); tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } } } Testé sur MS2.3.1 et MS 2.2 fraîches avec le module mondialrelay et les modules flat, item, table et zone en place. Tous fonctionnent . Sur ma MS2.2 complète, çà va aussi. Merci de tester avec MS2.3 et colissimo et de nous en faire part, (Colissimo n'est pas installé en MS2.3 chez moi.) Le cas des colis de + de 20 kg n'a pas été testé dans cette configuration Chti poupon Edition pour correction du code (cas free_free) Ce message a été modifié par chti_poupon - 15 Jun 2011, 17:29. |
|
11 Jun 2011, 11:16
Message
#135
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour,
Autres problèmes : PRIMO : Avec le lien "on click" intégré, la variable title de $methods dépasse 255 caractères et les informations sur la page confirmation, facture, courriel, historique... sont tronquées et le lien vers le détail du relais est inerte - et il manque une parenthèse. MODIFICATION BASE DE DONNÉES : TABLE order_total :passer à 511 la taille du champ title par structure mysql c'est le plus simple sinon SQL: Code ALTER TABLE `orders_total` CHANGE `title` `title` VARCHAR(511) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL SECONDO : L'affichage du relais choisi peut être utile au client, même dans le BL où il n'apparaît pas. Modifier comme suit vers la fin de packingslip.php : Code ?> <tr> <td align="left" colspan="8"><table border="0" cellspacing="0" cellpadding="10"> <?php for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) { if ( preg_match('/mondialrelay/',$order->totals[$i]['title']) ){ echo ' <tr>' . "\n" . '<td align="left" class="smallText"><strong>'.ENTRY_SHIPPING_RELAY.'</strong> </td>' . "\n" . ' <td align="left" class="smallText">' . $order->totals[$i]['title'] . '</td>' . "\n" . ' </tr>' . "\n"; } } ?> </table></td> </tr> </table> <!-- body_text_eof //--> Avec ajouté à la fin, dans catalog/admin/includes/languages/french/packingslip.php: Code define('ENTRY_SHIPPING_RELAY', 'Enlèvement au relais:'); Chti poupon Ce message a été modifié par chti_poupon - 11 Jun 2011, 13:22. |
|
15 Jun 2011, 17:28
Message
#136
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour !
ATTENTION, le code donné plus haut pour checkout_shipping.php est modifié. Il y avait un conflit si le port gratuit par order_total est activé et même MR désactivé caron ne passe plus par la redirection vers checkout_payment. J'ai donc modifié le "if" comme suit : Code if ( (isset($quote[0]['methods'][$i]['title'])) && (isset($quote[0]['methods'][$i]['cost']) && ($quote[0]['methods'][$i]['id']==$method ||$shipping == 'free_free'))) { Chti poupon |
|
16 Jun 2011, 17:50
Message
#137
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 89 Inscrit : 7-January 08 Membre no 20298 |
Salut all,
Je viens d'installer la contrib donnée ici (ms2) mais malheureusement rien d'affiché coté client dans checkout_shipping.php (local) Avant j'avais installé la version officielle donnée par MR, peut il y avoir un conflit ? Je suis en sur un php5.3 .... si vous avez des pistes je suis prenneur Ce message a été modifié par Snickers - 16 Jun 2011, 17:56. -------------------- osCommerce 2.3
|
|
16 Jun 2011, 20:17
Message
#138
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour
Utilises-tu MS2.2 ou MS2.3 La contrib donnée ici est pour MS2.2. Par rapport à celle pour MS2.3, : la modif pour catalog/admin/customers.php est tout à fait différente Celle de admin/mondialrelaisadmin.php est facile à remplacer (structure tableaux, etc...) pour catalog/includes/modules/shipping/mondialrelay.php, il y a peu de différences, mais certaines versions de MS2.2 ne gèrent pas true et false de la même façon et il est bon d'avoir Code $this->enabled = ((MODULE_SHIPPING_MONDIAL_RELAY_STATUS == 'True') ? true : false); dans la fonction mondialrelay de cette classe si l'on souhaite activer/désactiver correctement ce mode d'expédition depuis l'admin.Par ailleurs, il ne t'aura pas échappé à la lecture des différents messages,
Chti poupon |
|
17 Jun 2011, 06:20
Message
#139
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 89 Inscrit : 7-January 08 Membre no 20298 |
Bonjour,
merci pour ta réponse... Je suis en MS2....... "osCommerce 2.2-MS2" J'avais noté pour le site de test... j'ai mis mes codes Citation •que si ton adresse n'est pas bien renseignée (la mention civilité, nom, ville etc... concerne, c'est clair, l'expéditeur et non le client) ou les codes mauvais, ou encore le site test en repos, il s'affiche (à peu près ) "votre adresse ne doit pas être correcte" J'ai par contre laissé l adresse par défaut.... mais rien d'affiché quand meme (c'est comme si le module n'était pas activé) Je vais faire à nouveau l'install..... Est-ce que je peux exclure que php5.3 puisse être en cause ?! -------------------- osCommerce 2.3
|
|
17 Jun 2011, 08:35
Message
#140
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour Snickers,
Citation Est-ce que je peux exclure que php5.3 puisse être en cause ?! Retour d'expérience personnelle: Quand mon hébergeur est passé de php 4 à php 5, j'ai chargé en local eazy-php 5.3: Ce qui marchait ne marchait plus (en local s'entend). J'ai donc chargé eazy-php 5.2.10 et çà remarchait normalement (sauf les fonctions "deprecated" <? sans php et autres $toto sans $_GET...) Je crains que tu n'aies mis le doigt dessus. Chti poupon Ce message a été modifié par chti_poupon - 17 Jun 2011, 08:37. |
|
17 Jun 2011, 09:35
Message
#141
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 89 Inscrit : 7-January 08 Membre no 20298 |
Bon selon moi c'est compatible avec 5.3
Je viens de faire la bascule vers php5.2.6 et le module ne se montre toujours pas... Dans renseignements serveur j'ai bien Soap d'indiqué..... Pour ce faire sous easyphp2.0 j'ai décommenté la ligne extension=php_soap.dll (php.ini) Suis-je dans le vrai ?! Ou ai-je oublié quelque chose ? (avant je ne l'avais pas d'indiqué dans information serveur) D'avance merci Ce message a été modifié par Snickers - 17 Jun 2011, 09:36. -------------------- osCommerce 2.3
|
|
17 Jun 2011, 12:45
Message
#142
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 89 Inscrit : 7-January 08 Membre no 20298 |
Bon je viens d'install un OsC de base 2.2 MS2 (en anglais) et j'ai fait l'install dessus.... toujours le même problème :
En local je ne vois pas le module coté client sur la page checkout_shipping .... je regarde du coté de soap Edit : bha non soap c'est pareil en local que sur mon serveur, je pense donc que c'est juste Citation Soap Client enabled
Soap Server enabled Directive Local Value Master Value soap.wsdl_cache 1 1 soap.wsdl_cache_dir /tmp /tmp soap.wsdl_cache_enabled 1 1 soap.wsdl_cache_limit 5 5 soap.wsdl_cache_ttl 86400 86400 Ce message a été modifié par Snickers - 17 Jun 2011, 13:00. -------------------- osCommerce 2.3
|
|
17 Jun 2011, 22:07
Message
#143
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Bonjour,
mon php.ini local contient ces lignes: Code [soap] ; Enables or disables WSDL caching feature. soap.wsdl_cache_enabled=1 ; Sets the directory name where SOAP extension will put cache files. soap.wsdl_cache_dir="/tmp" ; (time to live) Sets the number of second while cached file will be used ; instead of original one. soap.wsdl_cache_ttl=86400 ; Local Variables: ; tab-width: 4 ; End: et çà fonctionne En distant, les renseignements sur le serveur (dans l'admin) me donnent soap actif Si cette observation peut être utile, car je ne suis pas bien féru dans ce domaine. Chti poupon |
|
18 Jun 2011, 21:36
Message
#144
|
|
Ceinture noire OSC Groupe : TechDev Messages : 2757 Inscrit : 9-September 08 Lieu : Douai Membre no 22915 |
Oui c'est possible mais il faut coder directement dans le module de shipping que tu utilises. En effet, le système de frais de port gratuits fonctionne sur la globalité de la commande dans TOUS les cas, il désactive les modules de livraison si le montant dépasse celui fixé dans l'admin. Tu peux modifier cela directement dans le module de livraison et alors désactiver la livraison gratuite car c'est le module qui va gérer cela. exemple dans ton module, les modifs doivent être apportées à la method "quote" (fonction de la classe function quote() ) dans checkout_shipping.php tu commences par désactiver l'activation du port gratuit en cas de dépassement de la somme, on reportera cette option dans le module : Code if ( defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') ) { à remplacer par :$pass = false; switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) { case 'national': if ($order->delivery['country_id'] == STORE_COUNTRY) { $pass = true; } break; case 'international': if ($order->delivery['country_id'] != STORE_COUNTRY) { $pass = true; } break; case 'both': $pass = true; break; } $free_shipping = false; if ( ($pass == true) && ($order->info['total'] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) { $free_shipping = true; include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php'); } } else { $free_shipping = false; } Code $free_shipping = false; tout simplement.Dans ton module tu peux alors reprendre cette option de port gratuit, ce qui ne change rien à son usage, c'est toujours le même paramètre qui est pris en compte pour détecter le port gratuit : MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER Donc dans la methode quote (function quote($method = '')) de ton module de livraison tu vas ajouter : Code // ajout livraison gratuite après la portion qui commence par $this->quotes = array('id' => $this->code,.... (il faut aller après le )); de cette portion hein ? )if ($cart->show_total() >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER){ $this->quotes['methods'][] = array('id' => $this->code, 'title' => 'Livraison gratuite à partir de '.MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER.'€', 'cost' => 0); return $this->quotes; } // Fin ajout livraison gratuite*/ il faudra aussi vérifier les les variables $cart et $shipping_weight sont globalisées dans cette méthode : global $order, $cart, $shipping_weight; Après tu peux faire ce que tu veux dans cette méthode car c'est elle qui va déterminer le montant du port en fonction de ce que tu veux : Utilises $cart->show_total() pour connaitre le montant total de la commande par exemple ou $shipping_weight pour connaitre le poids total de la commande et active ton tarif en fonction de ces variables Bonjour, L'objectif est multiple:
Dans checkout_confirmation, la méthode précise de livraison est explicitée. Chti poupon PS Dans mes essais, j'ai introduit le client qui a mis "France Métropolitaine" . La solution consistant à supprimer ce code de la liste n'est pas générale, nos amis de la Réunion, par exemple, ne nous contrediront pas. MAIS Mondialrelay fait "tilt" et c'est chez-eux: leur code ingurgite les données client brutes qu'il faudrait filtrer: Comme la plupart des français (y io ) sont "un peu ??: " mal à l'aise sur ce distingo il faut résoudre cette question: Qui a pondu (va pondre) le code permettant, d'après le code postal, de sauvegarder la dénomination correcte que le client ait mis l'une ou l'autre ? |
|
21 Jun 2011, 10:52
Message
#145
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 2-July 06 Membre no 10999 |
je suis en train d'ajouter un truc pas négligeable. Bonjour,la possibilité d'indiquer "manuellement" le poids du colis avant la création du numéro de tracking afin d'envoyer le poids réel du colis et non le calculé. Une erreur dans la calcul du poids dans Oscommerce ou si vous avec la main lourde sur le scotch ou les bulles et hop le poids "envoyé" a MR lors de la création du n° de tracking est faux. J'attends avant de faire l'installation du module que cette modification soit mise en place. Car je trouve cela très important que le colis correspond bien à son poids réel. Pas de nouvelle de chrysalide ? Ce message a été modifié par dark perles - 21 Jun 2011, 10:53. -------------------- MS 2.2FR - CenterShop V1.5 - More Pics 6 V1.2 - Ultimate Seo URL 2.1.d - Automatic Thumbnail - Googlexmlsitemap V1.3 - Header Tags V2.5.9.1 - Visible Countries V1.2 - User Tracking with admin 1.4.2 - OderCheck V2 - products on order V1.2 - Who's online turbo V1.1 - Shop by price V2.5 - Send html mail V2 - Paybox_MS2_V2 - Newsletter_products_V2_3 - Discount_coupon_code_V3.3 - Reclamaposte V2.3
|
|
21 Jun 2011, 11:21
Message
#146
|
|
Ceinture bleue OSC Groupe : Modérateurs Messages : 1085 Inscrit : 29-November 04 Membre no 3935 |
Salut Dark Perles,
Chrysalide, a du mal a prendre le temps en ce moment car il plane à 10 000 mètres d'altitude a cause de sa charge de taf mais il ne désespère pas de trouver le temps pour mettre en place les modifs déjà décrites dans ses précédents posts. bon je retourne bosser........ -------------------- Petit guide pour résoudre tout vos problèmes avec Oscommerce
FORK perso a base de MS2 RC1 FR avec deux trois contribs + pas mal de dev perso + beaucoup (trop ?) d'Ajax + un peu mais pas trop de flash + virer la structure tableau + de feuille de style + pas mal de <DIV id="****">.......... en gros ca ressemble plus trop a l'originale |
|
29 Jun 2011, 16:31
Message
#147
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 31 Inscrit : 15-November 05 Membre no 7843 |
Bon et bien pour ma part j'ai abandonné l'installation..
Une vraie usine à gaz. J'ai fait appel à un pro (telede pour ne pas le citer) et bien je ne regrette pas !! En 10 jours l'installation est finalisée et adaptée à mon site (une version creload). Ca marche nickel et l'install personnalisée selon mes désirs.!! Bref je me rend compte que passer des heures et des heures à essayer de modifier un code bancal à la base c'est du temps et de l'argent perdu. Bon courage à tous pour votre install... |
|
29 Jun 2011, 21:23
Message
#148
|
|
Ceinture bleue OSC Groupe : Modérateurs Messages : 1085 Inscrit : 29-November 04 Membre no 3935 |
Bon et bien pour ma part j'ai abandonné l'installation.. Une vraie usine à gaz. J'ai fait appel à un pro (telede pour ne pas le citer) et bien je ne regrette pas !! En 10 jours l'installation est finalisée et adaptée à mon site (une version creload). Ca marche nickel et l'install personnalisée selon mes désirs.!! Bref je me rend compte que passer des heures et des heures à essayer de modifier un code bancal à la base c'est du temps et de l'argent perdu. Bon courage à tous pour votre install... c'est pas plutôt le fait que tu sois sous creload qui est bancal ........ ! Que tu es fait appel a un pro comme telede je suis convaincu que tu n'as pas été deçu, il faut savoir passer la main quand on ne sait pas faire mais n'incrimines pas la contrib stp. cette contrib est prévu pour une ms2 rc1 de base et absolument pas pour une creload (qui n'est plus supportée sur ce forum depuis des années) et j'ai pas mal de retour positif sur son installation. il reste quelques correctifs a apporter mais celle-ci est fonctionnelles. -------------------- Petit guide pour résoudre tout vos problèmes avec Oscommerce
FORK perso a base de MS2 RC1 FR avec deux trois contribs + pas mal de dev perso + beaucoup (trop ?) d'Ajax + un peu mais pas trop de flash + virer la structure tableau + de feuille de style + pas mal de <DIV id="****">.......... en gros ca ressemble plus trop a l'originale |
|
11 Jul 2011, 16:24
Message
#149
|
|
Ceinture blanche OSC Groupe : Membres Messages : 8 Inscrit : 1-March 05 Lieu : LENS Membre no 4961 |
Bonjour,
j'ai pu installer la contribution sans problème, mais je suis maintenant confronté au problème d'encodage évoqué par Chrysalide dans le message #125 Code Fatal error: Uncaught SoapFault exception SOAP-ERROR: Encoding: string '22 place de la R\xe9publique' is not a valid utf-8 string in /var/www/vhosts/test.fr/httpdocs/admin/mondialrelayadmin.php:147 Il y a d'après mes recherches 2 approches : 1 - changer l'encoding coté déclaration $client = new SoapClient(WEB_SERVICE,array('encoding','iso-8859-1')); 2 - Encoder les chaînes avant l'envoi par un bataillon de utf8encoding() quelqu'un a t'il déjà testé une de ces solutions, ou en a trouvé une autre ? Ce message a été modifié par planetaire - 11 Jul 2011, 18:35. -------------------- osCommerce Online Merchant v2.2 RC2 W3C Valid FR + STSv4.6 + Ultimate SEO URLs 2.1d + CCGV trad + QTPRO 4.6
|
|
11 Jul 2011, 17:36
Message
#150
|
|
Ceinture orange OSC Groupe : Membres Messages : 183 Inscrit : 18-November 09 Membre no 26560 |
Bref je me rend compte que passer des heures et des heures à essayer de modifier un code bancal à la base c'est du temps et de l'argent perdu. il faut savoir passer la main quand on ne sait pas faire mais n'incrimines pas la contrib stp. Calmez vous, il n'y a ni tort ni raison ; - Il est forcément logique et convenu qu'une solution commerciale est plus élaborée qu'une solution free, in extenso prenons l'exemple du modèle économique du freeware ou shareware. In stricto sensus, l'OpenSource sinifie ouvert et non pas gratuit. - Le rendu énergétique : Il est évident que quelqu'un qui développe durant 100 heures une solution largement ciblée est plus efficace que 100 personnes qui développent 1 heure pour leur cas individuel. - Chrysalide ; tu n'es pas auteur de la contribution initiale tu n'a fait que l'améliorer. La personne à l'origine de la contribution a été rémunérée, et celle d'avant aussi. Il ne faut donc pas te sentir visé par des remarques qui ne te concernent pas, bien au contraire, il est plus remarquable d'améliorer volontairement le quotidien que de se faire à celui qui est imposé par une orientation commerciale. Donc techtrad a raison, tant mieux pour moi Et Chrysalide aussi, tant mieux pour moi aussi j'ai pu installé la contribution sans problème, mais je suis maintenant confronté au problème d'encodage évoqué par Chrysalide dans le message #125 Tant mieux pour toi, tant pis pour moi Une adresse de livraison, ca s'écrit en majuscule sauf en Chine et au Japon (!), donc ne te gêne pas et utilise le filtre suivant : Code $text = htmlentities($text); $text = preg_replace( array('/ß/','/&(..)lig;/','/&([aouAOU])uml;/','/&(.)[^;]*;/'),array('ss',"$1","$1".'e',"$1"), $text); $text = str_replace(array('_', '-', '*', '+')), '/', $text); // a affiner $text = preg_replace('/[\x00-\x1F\x21-\x2E\x3A-\x3F\x5B-\x60\x7B-\x7F]/', '', $text); $text = strtoupper(trim($text)); C'est radical ! -------------------- The value of a man resides in what he gives and not in what he is capable of receiving. - Albert Einstein
|
|
Version bas débit | Nous sommes le : 28th March 2024 - 14:58 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |