Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Api envoi de colis avec TNT UPS Fedex GLS DPD etc

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 mois 2 semaines #109017

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1146
  • Remerciements reçus 173
  • Karma: 26
Bonjour :)

Pour ceux que ça intéresse (dev et autres intégrateur).

Dans mon entreprise nous envoyons plusieurs colis par jour en Europe et monde. Nous utilisons un site web qui nous permet de comparer les tarifs de quasiment tout les transporteurs pour un envoi défini puis de faire l'envoi et de récupérer l'étiquette le tracking etc.
Ce site à mis en place un API (gratuit) que j'ai utilisé, j'ai fait un module perso pour Dolibarr (avec ajout d'extrafields dans les expéditions).

J'ai bien testé les API de chacun de ces transporteurs mais ça fait développer autant de programmes que de transporteurs...et tout les transporteurs n'on pas d'API....

Voici les fonctions dispos :
[0]=> string(98) "availableServicesResponse GetAvailableServices(availableServicesRequest $AvailableServicesRequest)"
[1]=> string(83) "createShipmentResponse CreateShipment(createShipmentRequest $CreateShipmentRequest)"
[2]=> string(103)  "createShipmentOrderResponse CreateShipmentOrder(createShipmentOrderRequest $CreateShipmentOrderRequest)"
[3]=> string(83) "cancelShipmentResponse CancelShipment(cancelShipmentRequest $CancelShipmentRequest)"
[4]=> string(75) "getDocumentsResponse GetDocuments(getDocumentsRequest $GetDocumentsRequest)"
[5]=> string(92) "getShipmentStateResponse GetShipmentState(getShipmentStatusRequest $GetShipmentStateRequest)" 
[6]=> string(75) "getShipmentsResponse GetShipments(getShipmentsRequest $GetShipmentsRequest)" 
[7]=> string(87) "getTrackingDataResponse GetTrackingData(getTrackingDataRequest $GetTrackingDataRequest)" 
[8]=> string(87) "getShipmentInfoResponse GetShipmentInfo(getShipmentInfoRequest $GetShipmentInfoRequest)"

Pour infos je n'ai aucune part dans cette entreprise c'est juste pour partager l'info qu'on soit bien clair ;)
Infos disponible sur letmeship.fr

En gros en php :
Créer SoapClient(); déclarer les entête etc puis appeler GetAvailableServices() par exemple.

Voilou..
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: timmy63

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 mois 2 semaines #109018

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1146
  • Remerciements reçus 173
  • Karma: 26
Pour récuperer le pdf de l'étiquette:
<?php
$file = 'etiquette.pdf';
//$data -> infos reçus via getDocumentsResponse()
file_put_contents($file, $data);
?>
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 mois 2 semaines #109022

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1146
  • Remerciements reçus 173
  • Karma: 26
Pour le tracking des colis
GetTrackingData
L'API me renvoi la liste des évenement avec ville-PAYS (ex: Cincinnati Hub - USA)

Couplé avec l'API Google
google.maps.Geocoder();
me retourne la ville en coordonnées ou l'on peut placer un marker sur une carte Google.
google.maps.Marker();
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 mois 1 semaine #109312

  • ZOG
  • Portrait de ZOG
  • Hors ligne
  • Fresh Boarder
  • Messages : 14
  • Karma: 0
Bonjour Dolibarr95,


Bien que ne faisant pas partie des deux catégories précités, ton module m'intéresse..
Cela est'l instalable?

Merci.
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 mois 6 jours #109326

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1146
  • Remerciements reçus 173
  • Karma: 26
Bonjour :)
Mon module dépends de champs extrafields que j'ai en quantité.
Par exemple :

longueur largeur hauteur poids autant de fois définis que de nombre de colis
  • largeur 15.5cm * hauteur 11.5cm * profondeur 7.5cm * / poids 0.07kg
  • largeur 30cm * hauteur 20cm * profondeur 23cm * / poids 3.7kg
compte transporteur du client (exWorks) et nom de la société
  • DHL 8547RR7
type de commande
  • commande classique ou via la boutique en ligne
etc. :cout du transport facturé
ce qui le rend à mon sens trop personnalisé mais je vais te filer un max d'éléments dans les prochains post
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: ZOG

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 mois 6 jours #109328

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1146
  • Remerciements reçus 173
  • Karma: 26
Quelque paramètres
$this->lms_website['url']	= "https://fr-sandbox.test.letmeship.com/LMS2_ws/shipping/v2_0";
$this->lms_api['path']		= "https://fr-sandbox.test.letmeship.com/LMS2_ws/shipping/v2_0?wsdl";

$this->lms_api['path']			= 'https://www.letmeship.fr/connect/shipping/v2_0?wsdl';
$this->lms_website['url']		= 'https://www.letmeship.fr';

$this->lms_api['version']		= '2.0';
$this->lms_api['language']		= 'en';
$this->lms_api['namespace']		= 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';

//j'ai plusieurs comptes sur l'api
$this->lms_api['account'] = array(
							'Account1'	=> array ('key' => 'key1', 'pass' => 'password1'),
							'Account2'		=> array ('key' => 'key2', 'pass' => 'password2')
						);

Préparer un soapclient
try { 
	//objet client soap
	$client = new SoapClient($this->lms_api['path'], array('trace' => 1));
						
	//données pour le header 
	$request['usernameToken'] = array(
								'apiId'			=> $this->lms_api['account']['Account1']['key1'],
								'apiPassword'	=> $this->lms_api['account']['Account2']['pass1']				
								);
	//objet header soap					
	$header = new SOAPHeader($this->lms_api['namespace'], 'Security', $request);   
				
	//definir le header dans l'instance $client
	$client->__setSoapHeaders($header);
				

	} 
	catch (Exception $e) {                           
		print "Erreur :".$e->__toString();
		return false;                              
	} 
		
			
	$request['clientInfo'] =  array(
						'version'	=> $this->lms_api['version'], 
						'language'	=> $this->lms_api['language'], 
						'note'		=> 'note perso'
						);
//puis lancer la fonction désirée avec la requete complete

Liste des fonctions dispo
array(9) { 
			[0]=> string(98) "availableServicesResponse GetAvailableServices(availableServicesRequest $AvailableServicesRequest)"
			[1]=> string(83) "createShipmentResponse CreateShipment(createShipmentRequest $CreateShipmentRequest)"
			[2]=> string(103)  "createShipmentOrderResponse CreateShipmentOrder(createShipmentOrderRequest $CreateShipmentOrderRequest)"
			[3]=> string(83) "cancelShipmentResponse CancelShipment(cancelShipmentRequest $CancelShipmentRequest)"
			[4]=> string(75) "getDocumentsResponse GetDocuments(getDocumentsRequest $GetDocumentsRequest)"
			[5]=> string(92) "getShipmentStateResponse GetShipmentState(getShipmentStatusRequest $GetShipmentStateRequest)" 
			[6]=> string(75) "getShipmentsResponse GetShipments(getShipmentsRequest $GetShipmentsRequest)" 
			[7]=> string(87) "getTrackingDataResponse GetTrackingData(getTrackingDataRequest $GetTrackingDataRequest)" 
			[8]=> string(87) "getShipmentInfoResponse GetShipmentInfo(getShipmentInfoRequest $GetShipmentInfoRequest)"
			}		
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 1 mois 10 heures #111814

  • FB
  • Portrait de FB
  • Hors ligne
  • Gold Boarder
  • Messages : 173
  • Remerciements reçus 6
  • Karma: 0
Bonjour,
Je viens d'être contacter par cette boite, les prix semblent attractifs.
Donc si en prime nous pouvions faire nos expéditions en directes depuis Doli, le pied.
Mais pas certain d'avoir bien compris, tu as fait un module dédié ? Donc dispo sur demande ou via Dolistore ?
Tu déclenches l'enregistrement de l'expédition directement depuis le bon de livraison ? Avec la demande d'enlèvement ?
Merci pour ce partage :woohoo:
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 4 semaines 1 jour #111825

  • pm17
  • Portrait de pm17
  • Hors ligne
  • Modérateur
  • Linux/Mac/Windows Un petit merci sur mon profil
  • Messages : 1181
  • Remerciements reçus 163
  • Karma: 21
Slt

Module or not module ? ...that is the question ....
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 semaines 5 jours #111964

  • FB
  • Portrait de FB
  • Hors ligne
  • Gold Boarder
  • Messages : 173
  • Remerciements reçus 6
  • Karma: 0
@dolibarr95 + @pm17

Donc que faire avec ce code ? quelqu'un peu fournir le module qui va bien ?
merci
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 semaines 5 jours #111965

  • Arre
  • Portrait de Arre
  • Hors ligne
  • Modérateur
  • Envie de participer ? wiki -> adhérer à l'asso :)
  • Messages : 1536
  • Remerciements reçus 355
  • Karma: 41
Salut FB,

c'est ce qu'ils signalent justement (sans le dire explicitement) : il y a possibilité, mais il n'y a pas de module.

Donc solutions:
- ou tu mets les mains dans le cambouis (dans le code, ou via un module maison)
- ou tu motives du monde pour que ça motive un dev indépendant à développer un module rapidement
- ou tu attends en croisant les doigts pour que ça soit intégré

Les joies de l'open source : tout est possible mais comme dans les solutions propriétaires, rien n'est gratuit (en temps, ou en argent)
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: FB

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 semaines 5 jours #111979

  • FB
  • Portrait de FB
  • Hors ligne
  • Gold Boarder
  • Messages : 173
  • Remerciements reçus 6
  • Karma: 0
@Arre
merci, c'est plus clair comme ça ;)
Donc un dev maison, c'est non, à chacun son métier.
Par contre le dev d'un module par un sachant, ça me plait. Par contre aucune idée de qui peut faire ça et pour combien ?
Après la joie de l'open source est de pouvoir faire un financement participatif, je pense que cela peut intéresser plusieurs sociétés ;)
Selon toi, c'est quoi la prochaine étape ? Ouvrir un nouveau sujet pour savoir qui peut faire une offre de dev ?
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 semaines 5 jours #111982

  • Arre
  • Portrait de Arre
  • Hors ligne
  • Modérateur
  • Envie de participer ? wiki -> adhérer à l'asso :)
  • Messages : 1536
  • Remerciements reçus 355
  • Karma: 41
@FB, vu que le sujet est lancé : reste sur ce fils, il y aura peut être des contributeurs qui feront avancer le schmilblick ;)

si tu veux vraiment faire avancer les choses : commence par prendre contacte avec des dev (à identifier sur le forum ou à contacter ici : wiki.dolibarr.org/index.php/List_of_Doli...rtners_and_providers)

après, le montage d'un financement participarif : c'est vraiment un gros boulot... à voir le coût, mais mieux vaut qu'une société finance en partie le dev et que ce même dev soit "assuré" de pouvoir re-vendre le travail fourni sous forme de module (jusqu'à ce qu'il rentre dans ses frais, gagne un peu de sous, et le laisse enfin à dispo de tous #BisounoursLand )
L'administrateur a désactivé l'accès en écriture pour le public.

Api envoi de colis avec TNT UPS Fedex GLS DPD etc il y a 3 semaines 5 jours #112008

  • FB
  • Portrait de FB
  • Hors ligne
  • Gold Boarder
  • Messages : 173
  • Remerciements reçus 6
  • Karma: 0
@Arre
Merci pour les infos.
Donc la chasse est ouverte ;)
Si un Dev souhaite me faire une proposition pour un module, je suis preneur.
L'administrateur a désactivé l'accès en écriture pour le public.