Problème quand les dimensions ont des décimales
-
Bonjour,
Pour Mondial Relay, si les dimensions du colis comportent des décimales, la génération du bordereau échoue avec une erreur “Taille(Longueur + Hauteur) du colis invalide”.
Pour reproduire, “Profondeur = 18,3” “Hauteur = 28”, “Largeur = 3”.
-
Bonjour,
Je viens d’essayer avec les mêmes paramètres que vous concernant les dimensions et tout fonctionne de mon côté.
Je pense que cela vient d’ailleurs. Quel est le poids que vous avez défini ?
Cordialement.
La dernière documentation du webservice disponible sur le site de Mondial Relay ( https://www.mondialrelay.fr/media/123335/solution-web-service-v572.pdf ) précise pourtant, page 22, que la donnée
Longueur
doit être “3 caractères numériques” et donne même une expression régulière pour valider “^[0-9]{0,3}$”.Moi, si je mets
Profondeur
= 18.3 dans le formulaire et que je soumets, je me retrouve avec["Longueur"]=> float(18.3)
dans le tableau$mondial_relay_label_class->payload
au sein de la fonctionregister_parcels_from_order
et le retour de l’API Mondial Relay qui est dans la variable$api_result
est bien["STAT"]=> string(2) "21"
qui correspond bien à un problème avec la taille. Ce qui parait pas illogique vu que le plugin envoie un float alors que leur API s’attend à un integer.Du coup, il y a bien un problème voire même deux. En effet, la documentation n’est pas hyper claire et ne donne aucun exemple mais la “longueur développée” dont il parle dans la documentation, pourrait être la somme “profondeur + hauteur + largeur” (je vais demander à leur équipe technique). Or, là, le plugin prend juste la profondeur (fonction
with_packages
dansinc/admin/classes/mondial_relay/mondial_relay_label.php
qui n’additionne que les indexlength
des éléments du tableau$parcels_dimensions
). Ce qui ne serait pas incohérent si l’on considère qu’un des critères pour pouvoir envoyer un colis Mondial Relay est que la somme des 3 soit inférieure à 150 cm comme on le voit sur le petit schéma de la rubriqueJe saisis le poids de mon colis
de la page suivante : https://www.mondialrelay.fr/envoi-de-colis/EDIT: Le développée est bien la somme “longueur + largeur + hauteur” comme indiqué sur leur site ici https://www.mondialrelay.fr/faq-pro/envoyer-un-colis/quelle-est-la-taille-maximale-pour-envoyer-un-colis/ et dans les CGV https://www.mondialrelay.fr/envoi-de-colis/conditions-generales-de-vente/#:~:text=%2D%20Dimensions%20maximales%20%3A%20le%20d%C3%A9velopp%C3%A9%20(,Dimensions%20minimales%3A%2015cm%20x%2010cm.
-
This reply was modified 3 years, 1 month ago by
tristanleboss.
-
This reply was modified 3 years, 1 month ago by
tristanleboss.
-
This reply was modified 3 years, 1 month ago by
tristanleboss.
Après, le plugin Prestashop officiel (le seul téléchargeable gratuitement sur leur site : https://www.mondialrelay.fr/solutionspro/documentation-technique/documentation-techniquemodules/) n’envoie carrément pas la
Longueur
vu que c’est, d’après la documentation, un champ facultatif…Bon, le service technique Mondial Relay vient de me répondre.
Question :
Bonjour, J'ai une question technique concernant l'utilisation du webservice. La documentation de <code>WSI2_CreationEtiquette</code>, page 22, indique que la donnée <code>Longueur</code> est la "longueur développée". De quoi s'agit-il ? Est-ce juste la longueur du plus long côté d'un paquet (profondeur OU largeur OU longueur) ? Est-ce la somme de tous les côtés d'un paquet (profondeur + longueur + largeur) ? Merci de transmettre au service concernée ou de m'indiquer comment contacter un technicien. Cordialement,
Réponse :
Bonjour Monsieur XX, Je vous remercie pour votre demande. En effet, il s’agit du développé du colis qui doit être en CM , soit la Longueur + largeur + hauteur. Je reste à votre disposition pour toutes demandes. Bien cordialement.
Donc, soit virer l’envoi de la Longueur soit la corriger car, en l’état, ça n’est absolument pas correct.
Bonjour,
Je suis désolé mais je n’ai pas le même résultat que vous. D’où mon incompréhension 😉
Paramètres envoyés et réponse :
https://ibb.co/3hFGG5JJ’ai bien une longueur de 18.3 et n’ai pas d’erreur.
Je vais néanmoins changer le calcul pour qu’il prenne bien la somme des trois valeurs.
Cordialement,
AlexandreOui, lisez ma réponse à mon autre post et faites le test… on sera fixé 😉 Si vous avez un retour API avec les fameux ‘0000’ (seule possibilité pour que votre code marche chez vous), c’est qu’on a un retour de l’API différent tous les 2.
Idem pour cette histoire de
Longueur
qui ne retourne pas d’erreur chez vous alors que moi, j’ai une erreur 21… qui disparait dès que j’enlève le “.3”.L’hypothèse la plus probable semble qu’on ne tombe pas sur la même version / machine WebService Mondial Relay en fonction des identifiants car le code qui marche pour vous ne peut absolument pas marcher pour moi. Mon compte a été créé récemment mais n’a rien de spécial… c’est le compte de base.
-
This reply was modified 3 years, 1 month ago by
tristanleboss.
Ok, le souci est le même : les serveurs de test Mondial Relay ne se comportent pas comme les serveurs de production.
Sur le serveur de test, le webservice ne vérifie pas que la longueur est un integer… alors qu’il vérifie sur le serveur de production.
De toute façon, pour être conforme à la documentation, 1) il faut additionner
longueur + hauteur + profondeur
, 2) il faut fournir un integer donc le plugin doit être modifié pour faire unround
ou unceil
.Bonjour
Problème résolu avec la nouvelle version 😉
-
This reply was modified 3 years, 1 month ago by
- The topic ‘Problème quand les dimensions ont des décimales’ is closed to new replies.