Système de gestion de stock avec Smartphone

Avatar du membre
Eléphant du PHP | 88 Messages

23 oct. 2018, 18:35

Bonjour.

Je viens demander de l'aide SVP car je vais essayer de développer une fonctionnalité que je n'ai jamais fait pour mettre à jour les stocks de nos articles qui sont en vente sur un E-commerce.

J'ai développé un E-commerce (en PHP 7 / Laravel 5).
Pour le moment, les stocks de nos articles on les gère manuellement via un espace d'administration que j'ai développé :
Dans l'édition d'un article, on précise son stock dans un input, et lorsque l'on soumet le formulaire c'est à ce moment là que le stock ce met à jour dans la BDD.

Et là, je souhaite qu'on puisse gérer les stocks de nos articles de manière automatique en les scannant lors de leurs réception à l'entrepôt.
Je souhaite effectuer les scan avec nos Smartphones.
Le but est que lorsqu'on scan un article réceptionné qui déjà dans la BDD, que sa quantité en stock s'incrémente. Et que lorsque l'on scan un article qui n'est pas en BDD, qu'il s'ajoute dans la BDD avec une quantité en stocke de "1".

Comment peut-on développer cette fonctionnalité ? Quel est le principe ?
Quel technos utiliser ?
Quels recherches faire dans Google ?

Merci beaucoup.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 oct. 2018, 00:35

Pour faire un lecteur de code barre, voilà une bonne piste :
https://firebase.google.com/docs/ml-kit/read-barcodes

Et un tuto assez bien fait :
https://codelabs.developers.google.com/ ... r-codes/#0

Ça c'est pour la partie lecteur de code barre, ensuite pour ton traitement tu peux simplement faire un appel HTTP à une page PHP en lui passant en paramètre le résultat du scan et ta page fait le traitement pour ajouter ou incrémenter l'article
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Eléphant du PHP | 88 Messages

24 oct. 2018, 08:42

Ok merci.

Mais là, dans ce tuto, ils créent une application mobile.
Développer des applications mobile n'est pas dans mes compétences.
Je voulais savoir s'il y aune solution en PHP ?

Merci.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 oct. 2018, 10:35

La problématique principale est de pouvoir scanner un code-barre via l'appareil photo du téléphone.
Ensuite la transmettre à un script PHP qui fait le traitement c'est facile.

Pour le scan du code-barre, le plus efficace est sans aucun doute une appli native comme dans les tutos que je t'ai indiqué.

Si tu veux le faire depuis un navigateur mobile, tu peux le faire en HTML5 avec du javascript et l'API getUserMedia mais c'est encore assez lent et ça ne fonctionne que sur les smartphone haut de gamme, teste les démos sur ton téléphone pour voir le résultat :
https://www.google.com/search?client=fi ... ader+html5
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Eléphant du PHP | 88 Messages

28 oct. 2018, 09:48

Bonjour et merci pour ta réponse.
(Je précise que je m'y connais vraiment que dalle en code barre...).

Du coup j'ai téléphoné à un développeur Android que je connais pour me renseigner.

Il m'a dit que le principe de code barre et qu'à chaque scan, le code barre nous renvoi la "représentation numérique". Et que c'est avec cette "représentation numérique" que je doit faire le traitement en PHP.

Il m'a aussi dit que le principe est :

De développer une petite application Android (c'est cette application qui fera le lien entre le smartphone qui sert à scanner et l'application web).

Et dans ma BDD MySQL, dans ma table "produits", je doit donc rajouter une colonne varchar "représentation numérique".

Et je me sert de cette "représentation numérique" pour incrémenter la quantité en stock du produit scanné.

Et si lors d'un scan cette "représentation numérique" d'un produit scanné n'existe pas dans la BDD (car le produit n'a pas encore été enregistré dans la BDD), faut retourner une erreur (pour que l'application mobile fasse un son sonore spécial pour les erreurs). Et le vendeur devra donc ajouter manuellement le produit dans la BDD (via l'admin de l'application web).

Donc faut que je demande aussi à tous mes fournisseur un fichier Excel avec la "représentation numérique" pour chaque "référence produit" (afin de l'importer dans la BDD).

Suis-je bon sur le principe maintenant ?

Merci encore.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 oct. 2018, 19:29

Faut peut être commencer par Wikipédia alors pour comprendre le fonctionnement d'un code barre ! :-D

Pour faire simple, prenons l'exemple le plus connu :
Chaque produit vendu dans le monde a un identifiant unique, c'est un numéro à 13 chiffres qu'on appelle l'EAN13. (cf Wikipédia EAN13)
Pour pouvoir scanner rapidement ces produits (en caisse notamment), ils ont tous un code-barre qui n'est que la représentation graphique de ce nombre à 13 chiffres.
D'ailleurs, si tu regardes n'importe quel code-barre d'un truc que tu as acheté (bouquin, bouffe...), tu verras qu'il y a sa correspondance numérique écrit juste en dessous.

Il existe plein de type de code barre différent pour des utilisations différentes :
- EAN13 pour les produits qui ont un identifiant unique EAN13,
- PDF-417 pour les billets d'avion (entre autres...) qui permet de stocker + d'info,
- QRcode pour stocker des infos en grande capacité et avec la possibilité de lancer différentes actions automatiquement (ouvrir une page web, lancer, un appell, se connecter à un wifi...)

Le point le plus important, c'est que c'est l'appli de lecture du code-barre qui décide ce qu'elle fait de la donnée qu'elle a récupérée.
Donc effectivement, une fois un code barre lu, il faut qu'elle contacte ton serveur en lui indiquant le n° scanné, ton serveur va faire son traitement et répondre à l'appli pour lui dire quel bruit faire (ou quel message afficher) en fonction du résultat de ton traitement.


Pour ce que tu appelles la "représentation numérique", mon conseil est véritablement d'utiliser quelque chose qui est déjà connu, si les produits que tu scannes ont déjà un EAN13 alors c'est ça qu'il faut que tu utilises, si ils ont un "Product number", "Part number", "référence produit", alors c'est ça qu'il faut utiliser, ne crée pas un code spécialement pour toi.
Quand tout le reste a échoué, lisez le mode d'emploi...