Référence API
API Shelfy pour No Waste.
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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
storeId | requête | string (uuid) | oui |
Contenu de la réponse
| Champ | Description |
|---|---|
items[].shelfy | Identité, produits, indicateur de remplissage, état de mise en service. |
items[].acquisition | Fraîcheur des mesures. |
items[].weight | weightG (dernier poids stable) et baseG (référence 100 %). |
total | Nombre de bacs. |
Réponses
| Code | Description |
|---|---|
200 | Bacs du magasin. |
400 | Paramètre invalide (INVALID_QUERY). |
403 | Droit manquant ou bac d'un autre magasin (réponse identique). |
404 | Bac introuvable. |
GET/api/promo-bins/{deviceId}Consulter un bac
État courant d'un bac : identité, produits, indicateur de remplissage.
Paramètres
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
deviceId | chemin | string (uuid) | oui |
Contenu de la réponse
| Champ | Description |
|---|---|
deviceId, serial, name, zone, storeId | Identité du bac. |
products[] | productId, name, brand, ean, unitWeight. |
indicator | mode (units, percent, pending), units, percent, status. |
Réponses
| Code | Description |
|---|---|
200 | Bac. |
400 | Paramètre invalide (INVALID_QUERY). |
403 | Droit manquant ou bac d'un autre magasin (réponse identique). |
404 | Bac 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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
serial | chemin | string | oui |
Réponses
| Code | Description |
|---|---|
200 | Bac. |
400 | Paramètre invalide (INVALID_QUERY). |
403 | Droit manquant ou bac d'un autre magasin (réponse identique). |
404 | Bac 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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
deviceId | chemin | string (uuid) | oui | |
hours | requête | integer, de 12 à 720 | non | |
days | requête | integer, de 1 à 7 | non | |
page | requête | integer, de 1 à undefined, défaut 1 | non | |
limit | requête | integer, de 1 à 200, défaut 200 | non |
Contenu de la réponse
| Champ | Description |
|---|---|
from, to, hours, days, bucketS | Fenêtre lue et durée d’une tranche, en secondes. |
unit | percent si une référence 100 % est connue, sinon grams. |
reference | { weightG, since } ou null. |
thresholds | warningPercent (30) et criticalPercent (10). |
dataSince | Début des données exploitables (dernière modification des produits du bac). |
lastMeasureAt | Date de la dernière mesure reçue. |
points[] | at, weightG, percent (ou null), restock. |
page, limit, total, hasMore | Pagination. |
truncated | true au-delà de 50 000 mesures lues. |
Réponses
| Code | Description |
|---|---|
200 | Historique paginé. |
400 | Paramètre invalide (INVALID_QUERY). |
403 | Droit manquant ou bac d'un autre magasin (réponse identique). |
404 | Bac introuvable. |
GET/api/promo-bins/{deviceId}/acquisitionFraîcheur des mesures
lastAt, lastContactAt, nextAt, nextEstimated, intervalS.
Paramètres
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
deviceId | chemin | string (uuid) | oui |
Contenu de la réponse
| Champ | Description |
|---|---|
lastAt | Date de la dernière mesure. |
lastContactAt | Dernier contact du bac. |
nextAt | Prochaine mesure attendue. |
nextEstimated | true si nextAt est une estimation. |
intervalS | Intervalle de réveil, en secondes. |
Réponses
| Code | Description |
|---|---|
200 | Acquisition. |
400 | Paramètre invalide (INVALID_QUERY). |
403 | Droit manquant ou bac d'un autre magasin (réponse identique). |
404 | Bac 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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
storeId | requête | string (uuid) | non | Identifiant du magasin autorisé. |
zoneId | requête | string (uuid) | non | Filtre optionnel de zone. |
page | requête | integer, de 1 à undefined, défaut 1 | non | Numéro de page, à partir de 1. |
limit | requête | integer, de 1 à 100, défaut 100 | non | Nombre d’éléments par page. |
Réponses
| Code | Description |
|---|---|
200 | Succè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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
storeId | requête | string (uuid) | oui | Identifiant du magasin autorisé. |
Réponses
| Code | Description |
|---|---|
200 | Succès. |
400 | Erreur 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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
furnitureId | chemin | string (uuid) | oui |
Réponses
| Code | Description |
|---|---|
200 | Succès. |
404 | Erreur 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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
ean | requête | string | non | Code exact EAN ou CIP. |
search | requête | string | non | Recherche textuelle. |
section | requête | string | non | Filtre de section. |
page | requête | integer, de 1 à undefined, défaut 1 | non | Numéro de page, à partir de 1. |
limit | requête | integer, de 1 à 100, défaut 20 | non | Nombre d’éléments par page ; maximum 100. |
Réponses
| Code | Description |
|---|---|
200 | Succès. |
GET/api/products/{productId}Consulter un produit
Retourne la fiche produit identifiée par productId.
Paramètres
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
productId | chemin | string (uuid) | oui |
Réponses
| Code | Description |
|---|---|
200 | Succès. |
404 | Erreur 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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
deviceId | chemin | string (uuid) | oui |
Réponses
| Code | Description |
|---|---|
200 | Succès. |
404 | Erreur 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
| Nom | Où | Type | Requis | Description |
|---|---|---|---|---|
storeId | requête | string (uuid) | non | Magasin autorisé. |
deviceId | requête | string (uuid) | non | Dispositif concerné. |
productId | requête | string (uuid) | non | Produit concerné. |
scaleIndex | requête | integer | non | Index de balance. |
type | requête | string | non | Type d’événement ; valeurs à valider. |
from | requête | string | non | Début inclus. Utiliser une date avec fuseau explicite. |
to | requête | string | non | Fin exclue. Utiliser une date avec fuseau explicite. |
period | requête | string | non | Période prédéfinie ; ne pas combiner avec from/to. |
excludePositive | requête | boolean | non | Exclure les mouvements strictement positifs. |
sort | requête | string, défaut createdAt | non | Champ de tri. |
order | requête | string, défaut DESC | non | Ordre du tri. |
page | requête | integer, de 1 à undefined, défaut 1 | non | Numéro de page, à partir de 1. |
limit | requête | integer, de 1 à 100, défaut 20 | non | Nombre d’éléments par page ; maximum 100. |
Réponses
| Code | Description |
|---|---|
200 | Succès. |