Jump to content

[Résolu] Comment récupérer le numéro de suivi d'un Scan QR Code la Poste ?


Recommended Posts

Bonjour, 

Je sollicite votre aide car je n'ai rien trouvé sur le net :(

Pour l'envoi de mes commandes, je scannais le code bar du timbre de suivi collé sur l'enveloppe pour enseigner directement dans le backoffice Prestashop 1.6 le numéro de suivi. Or, depuis peu, la Poste est passée d'un code bar à un QR Code et le résultat du scan est différent

  • Code bar 8700064099xxxx ==> Numéro de suivi 
  • Qr Code : %00000008700064099xxxx392250A18^2A6D4F9 ==> KO dans le suivi de La Poste 

Donc, le résultat du QR Code ne fonctionne pas sur le portail de suivi de la Poste, on est obligé de le modifier manuellement :(

Savez-vous comment je ne pourrais conserver que la séquence du numéro de suivi lors du scan du QR Code ?

Je pense ne pas être le seul dans ce cas... Merci beaucoup pour votre aide.

Link to comment
Share on other sites

C'est un sujet intéressant.  D'après ce que j'ai compris, vous avez un appareil pour scanner les codes QR, ce code QR contient une liste d'informations, en particulier il y a un numéro de suivi dans le code QR.  Et vous devez extraire le numéro de suivi parmi toutes les autres informations.  Est-ce correct?

Link to comment
Share on other sites

Bonjour Stifler, 

Oui, c'est exactement ça, le lecteur de QR Code se branche en USB, je positionne préalablement le curseur dans le champs "Numéro de suivi" et lors du scan, le résultat s'affiche directement dans  le champs.

Mais je ne vois pas comment modifier la valeur enregistrée, si vous avez une idée, je prends ;)

Link to comment
Share on other sites

Je sais qu'il devrait y avoir un moyen d'extraire le numéro de suivi, mais je dois mettre la main dessus.  C'est juste jouer avec les "string" en PHP.  Nous devrions également savoir comment le bureau de poste crée ce code QR, peut-être y a-t-il un document qui dit par exemple que les 50 premiers caractères sont réservés au numéro de suivi.  Cela nous aidera beaucoup.

 Si vous avez besoin de moi pour vous aider, veuillez m'envoyer quelques exemples du résultat des scans de code QR et du module dans DM, n'oubliez pas d'envoyer plusieurs résultats de scan, pas un seul, c'est parce que je veux comprendre le modèle du code QR.

Link to comment
Share on other sites

1 hour ago, Janett said:

J'ai lu ce document complètement et c'est atcually assez simple.  Le nouveau tampon de suivi a deux options, d'abord il montre SD comme pour le numéro Smart Data qui contient le numéro trackjng, et un code QR, également appelé Data Matrix, qui contient plus de données, et la bonne chose est qu'il commence par le numéro SD.  En conclusion, nous avons le numéro de suivi de deux manières, une pour ordinateur et une adaptée à la lecture pour les humains.  Enfin, le Data Matrix, simplement le QR code, contient jusqu'à 72 caractères, comme le mentionne le document.  Le numéro de suivi est une chaîne contenant 14 chiffres, qui est placé du 9e au 22e caractère.

 Tout ce que vous avez à faire est ceci :

 1. Convertissez le code QR en une chaîne (ce qui est fait par un périphérique et un module USB)

 2. Découpez la chaîne de caractères en position 22 et stockez la première partie

 3. Découpez la chaîne de caractères en position 9 et enregistrez la deuxième partie

 le résultat doit contenir le numéro de suivi

 

Link to comment
Share on other sites

Super, merci Janett et Stifler !

Stifler, Si je comprends bien, je récupère la valeur du QR Code dans le champs "Numéro de Suivi" et à la validation clic sur "Mettre à jour", je n'enregistre que la chaine de caractères de la 9ième à a 22ième position. J'espère que c'est ça car je ne vois pas trop comment faire autrement ;)

Sans vouloir abuser, je veux bien un exemple de code, ça fait bien longtemps que je ne fais plus de dev 🙄

Encore merci à tous les 2 !

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour, 

Je poste ici la modif de code réalisée pour ne récupérer que le numéro de suivi lors du scan du QR Code de la Poste.

Je ne connais pas le PHP, il y a sans doute mieux à faire, mais ça peut toujours dépanner quelqu'un... ;)
Dans le fichier AdminOrdersController.php 

public function postProcess()
	{
		// If id_order is sent, we instanciate a new Order object
		if (Tools::isSubmit('id_order') && Tools::getValue('id_order') > 0)
		{
			$order = new Order(Tools::getValue('id_order'));
			if (!Validate::isLoadedObject($order))
				$this->errors[] = Tools::displayError('The order cannot be found within your database.');
			ShopUrl::cacheMainDomainForShop((int)$order->id_shop);
		}

		/* Update shipping number */
		if (Tools::isSubmit('submitShippingNumber') && isset($order))
		{
			if ($this->tabAccess['edit'] === '1')
			{
				$order_carrier = new OrderCarrier(Tools::getValue('id_order_carrier'));
				
				//*** Ajout ==> Extraction numéro de suivi Scan la Poste 
				if (preg_match('/%00000/',Tools::getValue('tracking_number')) == 1)
					$shipping_number_la_poste = substr(Tools::getValue('tracking_number'),8,14);
				else 
					$shipping_number_la_poste = Tools::getValue('tracking_number');
				//*** Fin Ajout 

				if (!Validate::isLoadedObject($order_carrier))
					$this->errors[] = Tools::displayError('The order carrier ID is invalid.');
				//***Remplacer la ligne ci-dessous 
				elseif (!Validate::isTrackingNumber(Tools::getValue('tracking_number')))
				//***Par 
				elseif (!Validate::isTrackingNumber($shipping_number_la_poste))
					$this->errors[] = Tools::displayError('The tracking number is incorrect.');
				else
				{
					// update shipping number
					// Keep these two following lines for backward compatibility, remove on 1.6 version
					//***Modif ==> Remplacer la ligne ci-dessous 
					$order->shipping_number = Tools::getValue('tracking_number');
					//***==> Par 
					$order->shipping_number = $shipping_number_la_poste;
					$order->update();

					// Update order_carrier
					//***Modif ==> Remplacer la ligne ci-dessous 
					$order_carrier->tracking_number = pSQL(Tools::getValue('tracking_number'));
					//***==>Par
					$order_carrier->tracking_number = pSQL($shipping_number_la_poste);

Encore merci pour votre aide. 👍

Link to comment
Share on other sites

  • patate34 changed the title to [Résolu] Comment récupérer le numéro de suivi d'un Scan QR Code la Poste ?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...