jordan
17 Mar 2011, 11:38
C'est fait
telede
19 Mar 2011, 15:29
Voici la nouvelle version du module qui règle tous les problème de clé !
Merci à mon tortionnaire bien aimé (qui aime bien chatie bien dit-on) qui m'a filé un sérieux coup de main, vous l'aurez reconnu c'est Oneill

Merci aussi particulièrement à Fabien de ACS2i qui m'a donné un accès à son backoffice de la poste durant quelques jours.
http://addons.oscommerce.com/info/7615Bon Week End
brouillard
20 Mar 2011, 11:30
Y-a-t-il une assurance AdValorem pour le SoColissimo ? ou cette assurance ne s'applique qu'au colis pour l'international ?
Citation (oneill @ 17 Mar 2011, 12:00)

Donnes moi l'adresse de ton site en MP
Bonjour oneill,
J'ai suis dans le même cas que "jordan" en sachant que moi aussi j'ai du jquery que la HP mais pas dans checkout_shipping.php
et je n'ai pas de colonnes dans le process d'achat qui aurai pu inclure du jquery.
Si tu as une piste.
Merci de ton aide
oneill
22 Mar 2011, 12:33
Chez jordan, il ne s'agit pas du jquery mais d'un problème de flux. Lequel ? Ca c'est une autre histoire.
En cas de problème de jquery, on ne bouge pas. Si la page est rechargée, ce n'est pas pareil
Merci de ta réponse, justement j'aimerai bien savoir ce qui coince chez moi, si je suis dans le même cas que jordan ou pas
je suis le post depuis le début et les différentes versions mais rien n'y fait

Si tu as le temps de tester sur mon site tu va vite comprendre si je suis dans le même cas.
Merci
alternova
22 Mar 2011, 13:55
Bonjour,
J'ai installé SoColissimo, tout en gardant Colissimo, et il n'est pas possible d'utiliser les deux modes de livraison en même temps.
Le fait de mettre la ligne
<script type="text/javascript" src="ext/modules/shipping/socolissimos/socolissimos.js"></script>
dans le head de chekour-shipping empêche le choix de colissimo : quand on sélectionne colissimo, il ne se passe rien, on reste sur la même page.
A traversles échanges de la dernière discussion, je crois que cela vient du jquery, mais je ne vois pas d'où cela vient : probablement d'une autre contrib installée ? Celles-ci sont listées dans ma signature.
J'avais installé il y a quelque temps le carroussel d'images, que j'ai retiré ensuite.
Bref je suis bloquée,
En espérant que vous pourrez m'aider...
Bonjour,
Quelqu'un a t'il testé la derniere version de SoColissimo Simplicité 1.2 du 19 mars 11 avec OsC Max v2.0?
Merci pour vos retours.
Bonjour a tous,
J'ai un probleme sur l'installation de cette contrib.
En suivant toute la doc (de la derniere version 1.3), des que j'active le mode so colissimo dans l'admin la page checkout_shipping me donne une page blanche.
J'ai refait plusieurs installs, et toujours le meme resultat.
J'ai refait un test en ne copiant que le fichier socolissimos.php dans module\shipping, et pareil des que j'active le mode de livraison mon checkout_shipping est dans les choux page blanche (donc ce n'est pas le code rajouté aux differentes fichiers qui pose probleme).
Le plus bizarre est que pour m'en sortir je dois supprimer le fichier socolissimos.php de l'admin et restaurer un fichier checkout_shipping.
Une idée ?
Merci
C'est oscommerce MS2.2
Base de données : MySQL 4.1.21-standard-log
Serveur HTTP : Apache/1.3.37 (Unix) mod_gzip/1.3.19.1a PHP/4.4.4 mod_ssl/2.8.28 OpenSSL/0.9.6m
Version PHP : 4.4.4 (Zend : 1.3.0)
telede
28 Mar 2011, 14:07
Citation (alternova @ 22 Mar 2011, 13:55)

dans le head de chekour-shipping empêche le choix de colissimo : quand on sélectionne colissimo, il ne se passe rien, on reste sur la même page.
J'avais déjà répondu dans ce topic, essaie de remplacer le code js de ext/modules/shipping/socolissimos/socolissimos.js
par celui ci :
Code
$(document).ready(function() {
var module = $('input[value="socolissimos_socolissimos"]');
$('input[type=image]').click(function()
{
if ( module.attr('checked') == true )
{
// On Injecte une div
//
$('body').append('<div id="modSoColissimos"></div>');
$.ajax({
type: 'GET',
url: $('#sosModule').val(),
dataType: 'html',
success: function(data) {
$('#modSoColissimos').html(data);
}
});
return(false);
}
});
});
alternova
28 Mar 2011, 18:55
Bonsoir,
merci pour la réponse ,
j'ai modifié ce code,
ce qui ce passe maintenant, c'est que, lorsque que je sélectionne "socolissimos" et que je clic sur continuer, il reste sur la page, et remet Colissimo par défaut.
Maintenant, il n'accepte que Colissimo...
Si tu as une idée d'où ça peut venir ?
brouillard
28 Mar 2011, 19:30
Citation (alternova @ 28 Mar 2011, 18:55)

Bonsoir,
merci pour la réponse ,
j'ai modifié ce code,
ce qui ce passe maintenant, c'est que, lorsque que je sélectionne "socolissimos" et que je clic sur continuer, il reste sur la page, et remet Colissimo par défaut.
Maintenant, il n'accepte que Colissimo...
Si tu as une idée d'où ça peut venir ?
Je vois que tu as beaucoup de difficulté à installer le module simplicité, moi je l'ai installé et il a marché du 1er coup, mais pour une version gratuite je trouve que c'est super.
mais pour avoir un module plus évolué et puisque tu as une eboutique rentable pourquoi tu ne prends pas le
module So Colissimo Libetré de telede, que j'ai testé personnellement sur la boutique de Dvf et erocasha et que j'ai trouvé beaucoup plus performant que le simplicité, de plus que ça donne un plus à ta eboutique puisque tes client ne seront pas troublés par ce va et vient entre ton site et celui de la poste.
telede
29 Mar 2011, 06:09
C'était juste pour dire que le JS a été corrigé et que le module est disponible ici :
http://addons.oscommerce.com/info/7615
alternova
29 Mar 2011, 10:33
@ Brouillard, je te remercie, mais je n'avais pas vu quelle était la différence entre Liberté et Simplicité, comme j'ai commencé à installer Simplicité, je préfère rester sur celui-ci.
@ Telede : merci pour la correction du code, maintenant cela fonctionne nickel, ouf !
saphir52
29 Mar 2011, 15:42
Je viens de tester ces nouvelles modifications mais toujours mes problèmes de signature et/ou de caractères.
D’ailleurs j’ai remarqué un truc bizarre : où est passé le numéro de version qui doit être transmis ?
Bonjour,
Je pose la même question pour liberté.
Quelqu'un a t'il testé la derniere version de SoColissimo liberté avec OsC Max v2.0?
Merci pour vos retours.
telede
29 Mar 2011, 16:28
Citation (saphir52 @ 29 Mar 2011, 15:42)

D’ailleurs j’ai remarqué un truc bizarre : où est passé le numéro de version qui doit être transmis ?
Apparemment il n'est pas obligatoire puisque ca fonctionne bien sans !
Citation (saphir52 @ 29 Mar 2011, 15:42)

Je viens de tester ces nouvelles modifications mais toujours mes problèmes de signature et/ou de caractères.
Procède étape par étape, règle tes problèmes de signatures et après tu verras pour ceux de charset.
si quelqu'un a des infos la dessus volontier, car j'ai un site qui est codé entièrement en UTF8 et j'ai le même probleme
Citation (ecom @ 29 Mar 2011, 15:58)

Quelqu'un a t'il testé la derniere version de SoColissimo liberté avec OsC Max v2.0?
Ca marche sur tous les osCommerces et dérivés puisque ca a été conçu pour ca.
C'est marrant, en ce moment je me fais meme spammer par MP sur le forum US pour ce fameux osC max !
brouillard
29 Mar 2011, 16:51
Citation (ecom @ 29 Mar 2011, 15:58)

Bonjour,
Je pose la même question pour liberté.
Quelqu'un a t'il testé la derniere version de SoColissimo liberté avec OsC Max v2.0?
Merci pour vos retours.
SoColissimo liberté n'est pas sorti en version gratuite, mais si tu le veux demande à l'auteur de SoColissimo simplicité.
saphir52
30 Mar 2011, 07:54
Citation (telede @ 29 Mar 2011, 16:28)

Citation (saphir52 @ 29 Mar 2011, 15:42)

D'ailleurs j'ai remarqué un truc bizarre : où est passé le numéro de version qui doit être transmis ?
Apparemment il n'est pas obligatoire puisque ca fonctionne bien sans !
Citation (saphir52 @ 29 Mar 2011, 15:42)

Je viens de tester ces nouvelles modifications mais toujours mes problèmes de signature et/ou de caractères.
Procède étape par étape, règle tes problèmes de signatures et après tu verras pour ceux de charset.
si quelqu'un a des infos la dessus volontier, car j'ai un site qui est codé entièrement en UTF8 et j'ai le même probleme
Un extrait de la doc d'installation de LaPoste (version 4) pour l'installation du module :
Chaîne_à_convertir=pudoFOId+dyForwardingCharges+orderId+numVersion+trReturnUrlKo+cléSHA
okom3pom
30 Mar 2011, 12:55
Bonjour,
J'utilise pour le moment un module fait par mes soins et j'ai donc voulu tester ce module.
Je me suis retrouvé dans le même cas de figure que Jordan et CkH, jquery me chargeait dans la div la page checkout_shipping.php
Dans la function qote() de la classe il y a :
Code
if ( ! class_exists('so_colissimos') ) // uniquement en front
{
$title_ext = '<input type="hidden" value="';/* NE PAS TOUCHER > utilis‚ par le JavaScript */
$title_ext .= tep_href_link($this->soColissimos->path('socolissimos.html'));
$title_ext .= '" id="sosModule" />'; /* NE PAS TOUCHER > utilis‚ par le JavaScript */
}
Si je commente le if ça fonctionne. Ne faut il pas utiliser la variable FILENAME_MODULE pour utiliser uniquement une partie du code dans le FRONT ?
Pour améliorer encore le module, je pense qu'utiliser un id pour le bouton image serait plus judicieux, sur mon site j'ai d'autre bouton image ils perdent alors leur fonction quand on fait appelle à : ext/modules/shipping/socolissimos/socolissimos.js
Donc le fichier pourrait devenir par exemple :
Code
$(document).ready(function() {
var module = $('input[value="socolissimos_socolissimos"]');
$('#so_colis').click(function()
{
if ( module.attr('checked') == true )
{
// On Injecte une div
//
$('body').append('<div id="modSoColissimos"></div>');
$.ajax({
type: 'GET',
url: $('#sosModule').val(),
dataType: 'html',
success: function(data) {
$('#modSoColissimos').html(data);
}
});
return(false);
}
});
});
Et dans checkout_shipping.php on remplace :
Code
tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE);
par
tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE, ' id="so_colis" ');
Cordialement Okom3pom
brouillard
30 Mar 2011, 13:18
Citation (okom3pom @ 30 Mar 2011, 12:55)

Bonjour,
.................. Donc le fichier pourrait devenir par exemple :
Code
$(document).ready(function() {
var module = $('input[value="socolissimos_socolissimos"]');
$('#so_colis').click(function()
{
if ( module.attr('checked') == true )
{
// On Injecte une div
//
$('body').append('<div id="modSoColissimos"></div>');
$.ajax({
type: 'GET',
url: $('#sosModule').val(),
dataType: 'html',
success: function(data) {
$('#modSoColissimos').html(data);
}
});
return(false);
}
});
});
Et dans checkout_shipping.php on remplace :
Code
tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE);
par
tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE, ' id="so_colis"');
Cordialement Okom3pom
Très bonne astuce pour vérifier si le bouton est cliqué !
telede
30 Mar 2011, 13:26
Citation (saphir52 @ 30 Mar 2011, 07:54)

Un extrait de la doc d'installation de LaPoste (version 4) pour l'installation du module :
Chaîne_à_convertir=pudoFOId+dyForwardingCharges+orderId+numVersion+trReturnUrlKo+cléSHA
Dis toi bien que la doc de la poste,
je l'ai lue en long en large et en travers ... je l'ai encore en travers d'ailleurs,
si Oneill n'avait pas été là je serais peut être encore entrain de chercher, et on avait obtenu qu'un nombre infime de champs !
Citation (brouillard @ 30 Mar 2011, 13:18)

Très bonne astuce pour vérifier si le bouton est cliqué !
J'ai développé le module afin que l'utilisateur ai un minimum d'effort (donc de modif de code) a faire à l'installation, ca n'a pas été réussit pour tout le monde, forcément l'exception confirme la règle

Ceci dit cette modif ne sert strictement à rien (par rapport à la version actuelle en download)...
computer
30 Mar 2011, 14:50
Bonjour,
Je viens d'installer la dernière version avec le correctif, mais rien à faire je reste toujours bloqué sur la page checkout_shipping.php
J'ai relus mon code et je n'ai pas fait d'erreur, j'ai également parfaitement placé les nouveaux fichiers.
brouillard
30 Mar 2011, 14:52
Citation (telede @ 30 Mar 2011, 13:26)

...................
Citation (brouillard @ 30 Mar 2011, 13:18)

Très bonne astuce pour vérifier si le bouton est cliqué !
J'ai développé le module afin que l'utilisateur ai un minimum d'effort (donc de modif de code) a faire à l'installation, ca n'a pas été réussit pour tout le monde, forcément l'exception confirme la règle
Ceci dit cette modif ne sert strictement à rien (par rapport à la version actuelle en download)...
Moi je n'ai fait que commenté le poste de l'auteur, tes condoléances, en gras ou en italiques, tu peux les adresser directement à l'auteur de la modification, c'est à dire okom3pom.
saphir52
30 Mar 2011, 17:07
J'arrive maintenant à passer les prénoms, adresse, ville avec des caractères spéciaux en rajoutant dans socolissimos.class.php par exemple : $address1 = utf8_encode($address1);
Il me reste le blocage avec les noms car j'ai vu que ce paramètre était utilisé avec la commande : $hash .= $lastname;
Lorsque j'arrive à la page sandwich de LaPoste, je n'ai pas de choix de point de dépot ou retrait, j'ai uniquement l'option "livraison à domicile" ! Qu'est-ce que j'ai pu oublier ?
Lorsque qu'un client saisi un numéro de téléphone portable pour être averti par Laposte du dépot du colis, je ne retrouve nulle part cette information sur la facture ou dans la commande.
Le seul numéro de tel qui y figure est celui renseigné lors de la création du compte, donc souvent un numéro de tel fixe. Pour créer une etiquette socolissimo il faut impérativement un numéro de tel portable 06.... ou 07....
okom3pom
30 Mar 2011, 22:28
Citation
Ceci dit cette modif ne sert strictement à rien (par rapport à la version actuelle en download)...
Houla je ne faisais qu'apporter une pierre à l'édifice, et quand je regarde sur mon site qui a par exemple ...
Code
<input type="image" src="image_theme/loupe.png" alt="Rechercher" title=" Rechercher ">
ce code sur toute les pages, si un client se disait sur la page checkout_shipping.php je vais faire une recherche ça l'aurait envoyé sur la page tampon du site de la poste.
Rien de grave mais bon ça pourra peu être servir à quelqu'un.
Amicalement Okom3pom
telede
31 Mar 2011, 03:06
Effectivement...
okom3pom
31 Mar 2011, 07:22
@saphir52
Pour le numéro de téléphone portable ce que j'ai fais déjà c'est rajouter un champ téléphone portable.
Ensuite en retour de la page sandwich, tu peux mettre à jour le téléphone comme ça sur les commandes suivante de tes clients tu n'auras pas de problème.
Sans les functions oscommerce le code pourrait donner.
Code
if( $r['customers_portable'] != $_POST['CEPHONENUMBER'] && '0600000000' != $_POST['CEPHONENUMBER'] ) {
$query = "UPDATE customers set customers_portable = '".$_POST['CEPHONENUMBER']."' WHERE customers_id = '" . (int)$customer_id . "' ";
mysql_query( $query );
}
A toi de faire comme bon te semble, traiter la variable téléphone pour remplacer les espaces, les -, ou autre caractère, de voir si tu mets le champs toujours à jour ou pas.
Si tu ne peux pas choisir de point relais c'est que tu passes la variable trFirstOrder avec la valeur 1
Soit tu las mets à 0 soit tu la supprimes.
Bon courage Okom3pom
okom3pom
31 Mar 2011, 08:08
Dans le module que j'ai fais, je faisais également une vérification de la page
http://ws.colissimo.fr/supervision-pudo/supervision.jsp qui nous dis si le service est en ligne.
Attention les personnes qui ajoute ceci doivent avoir CurlDans le fichier : includes/modules/shipping/socolissimos.php
Apres :
Code
if ($check_flag == false) {
$this->enabled = false;
}
}
On ajoute :
Code
// On regarde si le site socolissimo est en ligne
$ch = curl_init(); // Initialiser cURL.
curl_setopt($ch, CURLOPT_URL, 'http://ws.colissimo.fr/supervision-pudo/supervision.jsp');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
ob_start();
curl_exec($ch);
curl_close($ch);
$cache = ob_get_contents();
ob_end_clean(); // Vider le buffer.
// Si le service ne retourne pas OK on désactive le module
if ( !ereg ("(\[OK\])", $cache, $regs) )
$this->enabled = false;
Bonnes ventes Okom3pom
computer
1 Apr 2011, 22:29
Bonjour,
Malgré la vérification de l'installation de la contribution + l'installation des derniers patchs, je reste toujours bloqué sur la page checkout_shipping.php, je pense que je ne suis pas le seul à être dans ce cas là et j'en ignore les raisons.
Citation (okom3pom @ 31 Mar 2011, 07:22)

Si tu ne peux pas choisir de point relais c'est que tu passes la variable trFirstOrder avec la valeur 1
Soit tu las mets à 0 soit tu la supprimes.
Mais aussi, si le poids du colis dépasse 20kg, pas de relais non plus.
Je pense qu'il peut y avoir quelques soucis avec les commutateurs OUI/NON et True/False... A vérifier sur les vieilles osc
(J'ai aussi vu un module qui disparaissait à cause d'un
True en base de données et un
true en module)
Citation (okom3pom @ 31 Mar 2011, 08:08)

Dans le module que j'ai fais, je faisais également une vérification de la page
http://ws.colissimo.fr/supervision-pudo/supervision.jsp qui nous dis si le service est en ligne.
Code
// Si le service ne retourne pas OK on désactive le module
if ( !ereg ("(\[OK\])", $cache, $regs) )
Il ne faut pas utiliser ereg ou eregi, ces fonctions on été dépréciées en PHP5, vous pouvez la remplacer comme ceci :
Code
// Si le service ne retourne pas OK on désactive le module
if ( !preg_match ("/\[OK\]/", $cache, $regs) )
J'ai trouvé leur initiative plutôt surprenante cette url de "supervision" : plutôt que de rediriger sur un autre serveur en cas d'indispo, on informe le client que le serveur est planté ....
Simple curiosité perso, que faites vous dans le cas où le serveur de la poste est justement planté ?
Citation (oneill @ 2 Apr 2011, 14:34)

Je pense qu'il peut y avoir quelques soucis avec les commutateurs OUI/NON et True/False
Je pense qu'il doit s'agir de quelquechose comme ça
J'utilise cette astuce pour tester l'url de supervision, que je décrivais
ICI au mois de novembre, où je fais plutôt ce test
Code
if(stristr(htmlentities($content), '[OK]') === FALSE) {
et en mode Simplicité le module Socolissimo est simplement désactivé et le client invité à se
démerder débrouiller autrement.
okom3pom
3 Apr 2011, 13:15
Citation
Simple curiosité perso, que faites vous dans le cas où le serveur de la poste est justement planté ?
J'ai le même test dans autre module mzt_table si le site de laposte est down, ça active le module.
J'ai pas trouvé mieux à faire.
Citation
Il ne faut pas utiliser ereg ou eregi, ces fonctions on été dépréciées en PHP5, vous pouvez la remplacer comme ceci :
Héhé merci bien, je tourne sous php 5.2 et j'ai pas mal de sites qui utilisent ces fontions, tu viens de me donner plein de boulot pour lundi.
AraCyan
4 Apr 2011, 14:40
Bonjour à tous,
J'ai subit moi aussi les soucis de la page checkout_shipping.php.
En sélectionnant une expédition Colissimo ou autre, je passe à l'étape suivante.
Mais en sélectionnant SoColissimo, je reste sur checkout_shipping.php, et en plus la page s'affiche deux fois !

Piqué au vif dans ma maîtrise du codage php j'ai engagé moult vérifications et remarqué que tout simplement les variables du formulaire n'étaient pas envoyées en sélectionnant le bouton radio du SoColissimo...
En analysant la source de la page j'ai constaté l'absence de l'input
Code
<input type="hidden" value="http://www.monoscommerce.com/ext/modules/shipping/socolissimos/socolissimos.php" id="sosModule" />
J'ai donc été voir dans le IF responsable dans le "includes\modules\shipping\socolissimo.php ", ligne 209 à 215 chez moi.
Et là je vois que en effet si je met le IF en commentaire comme ci dessous, tout se met à fonctionner normalement:
Code
// if ( ! class_exists('so_colissimos') ) // uniquement en front
//{
$title_ext = '<input type="hidden" value="';/* NE PAS TOUCHER > utilis‚ par le JavaScript */
$title_ext .= tep_href_link($this->soColissimos->path('socolissimos.php'));
$title_ext .= '" id="sosModule" />'; /* NE PAS TOUCHER > utilis‚ par le JavaScript */
//}
Cependant ce n'est pas une solution normale!
Est-ce-que quelqu'un sait pourquoi il me dit que la class so_colissimos existe alors qu'on est pas arrivé en bas?
Citation (AraCyan @ 4 Apr 2011, 14:40)

Bonjour à tous,
Ca c'est cool, salut

Citation (AraCyan @ 4 Apr 2011, 14:40)

Cependant ce n'est pas une solution normale!
Non pas un brin, tu peux me dire quelle version de PHP tu utilises et sur quelle plateforme ?
Merci
okom3pom
4 Apr 2011, 15:04
Bonjour,
Tu as exactement le même soucis que moi, je pense que nos versions de php sont en causes.
Je suis sous php 5.2, je n'ai pas eu le temps de chercher j'ai donc remplacer la ligne par :
if ( ! defined('FILENAME_MODULES') )
pour éviter l'erreur dans le back office.
3pom
AraCyan
4 Apr 2011, 15:10
Système d'exploitation : Linux 2.6.18.1dedibox_r6_final
Base de données : MySQL 5.0.32-Debian_
Serveur HTTP : Apache
Version PHP : 5.2.0-8ça serait ça ??

Edit :
Solution trouvé :
http://php.net/manual/fr/function.class-exists.phpRemplacer :
Code
if ( ! class_exists('so_colissimos') ) // uniquement en front
Par :
Code
if ( ! interface_exists('so_colissimos') ) // uniquement en front
Et ça marche!
Citation (AraCyan @ 4 Apr 2011, 15:10)

Solution trouvé :
Ce n'est pas une solution ! une classe est une classe et une interface est une interface même si les concepts sont similaires ...
Au même titre que la programmation orienté objet n'existe que dans nos esprits et notre interprétation, pas en language informatique ....
Ce que nous donne
okom3pom est une solution !

Peux tu nous dire ce que retourne, juste à l'endroit cité :
Code
var_dump( class_exists('so_colissimos') );
Merci
okom3pom
4 Apr 2011, 19:46
Code
var_dump( class_exists('so_colissimos') );
bool(true);
Je pense qu'on aura le même résultat.
Citation (okom3pom @ 4 Apr 2011, 19:46)

Je pense qu'on aura le même résultat.
Oui tu as raison
C'est plutôt ca qu'il faut faire :
Code
var_dump( so_colissimos );
brouillard
5 Apr 2011, 07:02
Citation (telede @ 3 Apr 2011, 03:48)

Citation (okom3pom @ 31 Mar 2011, 08:08)

Dans le module que j'ai fais, je faisais également une vérification de la page
http://ws.colissimo.fr/supervision-pudo/supervision.jsp qui nous dis si le service est en ligne.
Code
// Si le service ne retourne pas OK on désactive le module
if ( !ereg ("(\[OK\])", $cache, $regs) )
Il ne faut pas utiliser ereg ou eregi, ces fonctions on été dépréciées en PHP5, vous pouvez la remplacer comme ceci :
Code
// Si le service ne retourne pas OK on désactive le module
if ( !preg_match ("/\[OK\]/", $cache, $regs) )
.........................
Dans includes/modules/shipping/socolissimos.php ligne 260
Code
$table = split("[:,]" , $cost);
Il ne faut pas utiliser
split, cette fonction a été dépréciée en PHP5, vous pouvez la remplacer par
preg_split
okom3pom
5 Apr 2011, 07:38
var_dump( so_colissimos );
string(13) "so_colissimos";
Bein oui, moi j'ai bien true avec is_object,
donc il faudrait voir ce qu'a Aracyan car le comportement du module dans son cas n'est pas normal ...
@brouillard : oui elle est bonne celle la
AraCyan
5 Apr 2011, 14:06
Re,
En fait c'est uniquement dans function quote($method = '') que
Code
if ( ! class_exists('so_colissimos') ) /
pose soucis.
Au dessus dans le function socolissimos() ça fonctionne..
Par contre un fois qu'on valide sur SoColissimo ça revient sur le site mais on a :
Code
errorcode: array(22) { ["PUDOFOID"]=> string(14) "0XXXXXXXX" ["CECIVILITY"]=> string(2) "MR" ["CENAME"]=> string(8) "Peronne" ["CEFIRSTNAME"]=> string(7) "Jeanpierre" ["CEADRESS1"]=> string(0) "" ["CEADRESS3"]=> string(19) "5 allée du tests" ["CETOWN"]=> string(5) "Paris" ["CEZIPCODE"]=> string(5) "75000" ["DELIVERYMODE"]=> string(3) "DOM" ["CEEMAIL"]=> string(25) "vinzzzet@orange.fr" ["CEPHONENUMBER"]=> string(10) "06700000" ["DYPREPARATIONTIME"]=> string(1) "1" ["DYFORWARDINGCHARGES"]=> string(4) "0.00" ["TRCLIENTNUMBER"]=> string(4) "3335" ["TRORDERNUMBER"]=> string(0) "" ["TRPARAMPLUS"]=> string(0) "" ["TRADERCOMPANYNAME"]=> string(25) "SARL XXX" ["ORDERID"]=> string(12) "05XXXXX" ["ERRORCODE"]=> string(4) "133 " ["ERR_DYWEIGHT"]=> string(1) "0" ["SIGNATURE"]=> string(40) "ba0f45cdf9XXXXc4ceb" ["NUMVERSION"]=> string(0) "" }
Il manque quelque chose, ça peut être lié?
133 > Le champ poids n'est pas valide | non bloquant ...
Pour finir le module correctement il faudrait un "switch case" à l'étape retour avec un arrêt sur erreur bloquante ou continuer sur non bloquant ...
j'avais crapuleusement mis un var_dump() et die pour le débuggage, mais en production c'est pas très fin...
Quelqu'un pour aider ? moi j'envoie la doc par mail si il faut ...
C'est juste une question de temps pour moi, je ne peux pas développer la version commerciale a qualité égale de la version gratuite qui est censé être communautaire ...
brouillard
5 Apr 2011, 14:43
MODERATION ONEILL
Allégations totalement gratuites et improductives
@ AraCyan
Peux-tu me filer ton checkout_shipping.php en MP ?
okom3pom
6 Apr 2011, 13:28
@AraCyan
Tu as deux solutions :
1) Tu souhaites gérer toutes les erreurs :
Je n'ai pas mis toutes les correspondance des erreurs, seulement si elle bloque ou non, tu as ce tableau dans le guide d'intégration :
Code
switch ($_POST['ERRORCODE']) {
case '001':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '002':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '003':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '004':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '005':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '006':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '007':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '008':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '009':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '010':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '011':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '012':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '013':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '014':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '015':
$erreur = 'Identifiant FO manquant ';
$die = true;
break;
case '016':
$erreur = 'SGBD non disponible';
$die = true;
break;
case '016':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '501':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '502':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '503':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '504':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '505':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '506':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '507':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '508':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '509':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '510':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '511':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '512':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '513':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '514':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '515':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '516':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '517':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '131':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '132':
$erreur = 'SGBD non disponible';
$die = false;
break;
case '133':
$erreur = 'Le champ poids n\'est pas valide,champ ignoré';
$die = false;
break;
}
if( $die == true) {
mail('ton_mail','Erreur SoColissimo','Erreur : '.(int)$_POST['ERRORCODE'].' : '.$erreur,'FROM:tonmail');
// die mais tu peux rediriger faire ce que tu veux
die('Nous sommes désolé une erreur est survenue.');
}
else
mail('ton_mail','Erreur non bloquante SoColissimo','Erreur : '.(int)$_POST['ERRORCODE'].' : '.$erreur,'FROM:tonmail');
2) Tu regardes seulement si c'est bloquant ( $_POST['ERRORCODE'] < 100 )
Code
if( (int)$_POST['ERRORCODE'] > 100 )
$die = false;
else
$die = true;
if( $die == true) {
mail('ton_mail','Erreur SoColissimo','Erreur : '.(int)$_POST['ERRORCODE'].' : '.$erreur,'FROM:tonmail');
// die mais tu peux rediriger faire ce que tu veux
die('Nous sommes désolé une erreur est survenue.');
}
else
mail('ton_mail','Erreur non bloquante SoColissimo','Erreur : '.(int)$_POST['ERRORCODE'].' : '.$erreur,'FROM:tonmail');
Selon la solution que tu choisis :
Dans includes/modules/shipping/socolissimos.php tu remplaces :
Code
echo "errorcode: ";
var_dump($_POST);
die; // DEBUG
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
Par un des deux codes.
Voilà le principe, après tu peux faire ce que tu veux une SESSION qui te permet d'activer un autre module en cas d'erreur bloquante ou autre.
Une troisième solution
barbare et il ne faut pas que tes colis dépassent les 20 kg
Dans ext/modules/shipping/socolissimos/socolissimos.class.php
Tu commentes la ligne :
Code
$fields .= '<input type="hidden" name="dyWeight" value="' . $weight . '" />';
3pom
AraCyan
6 Apr 2011, 15:25
Bonjour!
@okom3pom
Je viens de mettre en place ta première solution et ça fonctionne! Le mail erreur 113 arrive bien. Et je passe à l'étape paiement.
Les infos de commandes sont repris donc je suis pas sur que j'ai besoin de récupérer ce mail erreur.
Un grand merci à toi
@oneill
Tu as le chekoutshipping dans le MP

Pour le mystère du input dans le function quote($method = '') , j'ai mis ce qui suit, ça marche, mais c'est pas encore la bonne solution
Code
if ( class_exists('so_colissimos') )
*
Forcément ça marche....
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez
cliquer ici.