TekshelfDocumentation développeurs
v0.5Brouillon

Référence API

API Shelfy pour No Waste.

Télécharger OpenAPI

Opérations

Consultation uniquement

Aucun appel ne correspond à cette recherche.

ShelfySuivre l’état et le remplissage des Shelfy.

GET/api/promo-binsLister les bacs d'un magasin

Pour chaque bac : objet shelfy (identité, produits, indicateur de remplissage), acquisition et weight. Réponse {items,total}.

Paramètres

NomOùTypeRequisDescription
storeIdrequêtestring (uuid)oui

Contenu de la réponse

ChampDescription
items[].shelfyIdentité, produits, indicateur de remplissage, état de mise en service.
items[].acquisitionFraîcheur des mesures.
items[].weightweightG (dernier poids stable) et baseG (référence 100 %).
totalNombre de bacs.

Réponses

CodeDescription
200Bacs du magasin.
400Paramètre invalide (INVALID_QUERY).
403Droit manquant ou bac d'un autre magasin (réponse identique).
404Bac introuvable.
GET/api/promo-bins/{deviceId}Consulter un bac

État courant d'un bac : identité, produits, indicateur de remplissage.

Paramètres

NomOùTypeRequisDescription
deviceIdcheminstring (uuid)oui

Contenu de la réponse

ChampDescription
deviceId, serial, name, zone, storeIdIdentité du bac.
products[]productId, name, brand, ean, unitWeight.
indicatormode (units, percent, pending), units, percent, status.

Réponses

CodeDescription
200Bac.
400Paramètre invalide (INVALID_QUERY).
403Droit manquant ou bac d'un autre magasin (réponse identique).
404Bac introuvable.
GET/api/promo-bins/by-serial/{serial}Retrouver un bac par numéro de série

Même objet que la lecture par identifiant.

Paramètres

NomOùTypeRequisDescription
serialcheminstringoui

Réponses

CodeDescription
200Bac.
400Paramètre invalide (INVALID_QUERY).
403Droit manquant ou bac d'un autre magasin (réponse identique).
404Bac introuvable.
GET/api/promo-bins/{deviceId}/fill-historyHistorique de remplissage

Un point par tranche (15 min jusqu'à 48 h, 1 h jusqu'à 192 h, 4 h au-delà ; 30 jours au plus). Donner hours ou days, jamais les deux. Chaque point : at, weightG, percent (null avant la référence 100 %), restock.

Paramètres

NomOùTypeRequisDescription
deviceIdcheminstring (uuid)oui
hoursrequêteinteger, de 12 à 720non
daysrequêteinteger, de 1 à 7non
pagerequêteinteger, de 1 à undefined, défaut 1non
limitrequêteinteger, de 1 à 200, défaut 200non

Contenu de la réponse

ChampDescription
from, to, hours, days, bucketSFenêtre lue et durée d’une tranche, en secondes.
unitpercent si une référence 100 % est connue, sinon grams.
reference{ weightG, since } ou null.
thresholdswarningPercent (30) et criticalPercent (10).
dataSinceDébut des données exploitables (dernière modification des produits du bac).
lastMeasureAtDate de la dernière mesure reçue.
points[]at, weightG, percent (ou null), restock.
page, limit, total, hasMorePagination.
truncatedtrue au-delà de 50 000 mesures lues.

Réponses

CodeDescription
200Historique paginé.
400Paramètre invalide (INVALID_QUERY).
403Droit manquant ou bac d'un autre magasin (réponse identique).
404Bac introuvable.
GET/api/promo-bins/{deviceId}/acquisitionFraîcheur des mesures

lastAt, lastContactAt, nextAt, nextEstimated, intervalS.

Paramètres

NomOùTypeRequisDescription
deviceIdcheminstring (uuid)oui

Contenu de la réponse

ChampDescription
lastAtDate de la dernière mesure.
lastContactAtDernier contact du bac.
nextAtProchaine mesure attendue.
nextEstimatedtrue si nextAt est une estimation.
intervalSIntervalle de réveil, en secondes.

Réponses

CodeDescription
200Acquisition.
400Paramètre invalide (INVALID_QUERY).
403Droit manquant ou bac d'un autre magasin (réponse identique).
404Bac introuvable.

MeublesLire les meubles et la vue enrichie.

GET/api/furnituresLister les meubles d’une pharmacie

Liste les meubles du magasin. Les Shelfy portent le type promo_bin. Utiliser storeId pour cibler la pharmacie et zoneId pour limiter la liste à une zone.

Paramètres

NomOùTypeRequisDescription
storeIdrequêtestring (uuid)nonIdentifiant du magasin autorisé.
zoneIdrequêtestring (uuid)nonFiltre optionnel de zone.
pagerequêteinteger, de 1 à undefined, défaut 1nonNuméro de page, à partir de 1.
limitrequêteinteger, de 1 à 100, défaut 100nonNombre d’éléments par page.

Réponses

CodeDescription
200Succès.
GET/api/furnitures/mapConsulter la vue enrichie des bacs

Vue enrichie des meubles, niveaux et données de stock : currentCount, status, lastUpdateAt, fillPercent et fillStatus. Certains comptages absents sont convertis en zéro dans cette vue : vérifier la fraîcheur et la validité avant de présenter une rupture. Le schéma détaillé reste à renseigner.

Paramètres

NomOùTypeRequisDescription
storeIdrequêtestring (uuid)ouiIdentifiant du magasin autorisé.

Réponses

CodeDescription
200Succès.
400Erreur de la requête.
GET/api/furnitures/{furnitureId}Consulter le détail d’un bac

Retourne le meuble et ses niveaux. Un Shelfy est un meuble de type promo_bin.

Paramètres

NomOùTypeRequisDescription
furnitureIdcheminstring (uuid)oui

Réponses

CodeDescription
200Succès.
404Erreur de la requête.

ProduitsRechercher et consulter les fiches produits.

GET/api/productsRechercher les produits

Recherche les produits du tenant. ean recherche un code exact dans EAN, master CIP et CIP13 ; il prend la priorité sur search. La réponse est paginée.

Paramètres

NomOùTypeRequisDescription
eanrequêtestringnonCode exact EAN ou CIP.
searchrequêtestringnonRecherche textuelle.
sectionrequêtestringnonFiltre de section.
pagerequêteinteger, de 1 à undefined, défaut 1nonNuméro de page, à partir de 1.
limitrequêteinteger, de 1 à 100, défaut 20nonNombre d’éléments par page ; maximum 100.

Réponses

CodeDescription
200Succès.
GET/api/products/{productId}Consulter un produit

Retourne la fiche produit identifiée par productId.

Paramètres

NomOùTypeRequisDescription
productIdcheminstring (uuid)oui

Réponses

CodeDescription
200Succès.
404Erreur de la requête.

DispositifsConsulter le dispositif associé au bac.

GET/api/devices/{deviceId}Consulter le dispositif peseur

Retourne le dispositif peseur associé au bac. Le dispositif est distinct du meuble qui représente le bac dans le magasin.

Paramètres

NomOùTypeRequisDescription
deviceIdcheminstring (uuid)oui

Réponses

CodeDescription
200Succès.
404Erreur de la requête.

ÉvénementsConsulter le journal d’événements (hors mesures des Shelfy).

GET/api/eventsRécupérer l’historique

Historique paginé, filtrable par magasin, dispositif et produit. Avec from et to, le début est inclus et la fin exclue. Une période nommée prend la priorité sur ces dates. excludePositive=true retire les événements dont differenceProduct > 0 ; ce n’est pas un filtre de ventes. La reprise de synchronisation doit gérer les événements arrivant pendant la pagination.

Paramètres

NomOùTypeRequisDescription
storeIdrequêtestring (uuid)nonMagasin autorisé.
deviceIdrequêtestring (uuid)nonDispositif concerné.
productIdrequêtestring (uuid)nonProduit concerné.
scaleIndexrequêteintegernonIndex de balance.
typerequêtestringnonType d’événement ; valeurs à valider.
fromrequêtestringnonDébut inclus. Utiliser une date avec fuseau explicite.
torequêtestringnonFin exclue. Utiliser une date avec fuseau explicite.
periodrequêtestringnonPériode prédéfinie ; ne pas combiner avec from/to.
excludePositiverequêtebooleannonExclure les mouvements strictement positifs.
sortrequêtestring, défaut createdAtnonChamp de tri.
orderrequêtestring, défaut DESCnonOrdre du tri.
pagerequêteinteger, de 1 à undefined, défaut 1nonNuméro de page, à partir de 1.
limitrequêteinteger, de 1 à 100, défaut 20nonNombre d’éléments par page ; maximum 100.

Réponses

CodeDescription
200Succès.