Aller au contenu principal

Catalogue

Wino est le logiciel de caisse et de back-office des boutiques qui l'utilisent. Le catalogue est ce qu'une boutique vend : ses produits, leurs variantes, leurs prix et leur stock. Cette page explique comment ces entités s'articulent. Chaque champ est décrit dans le schéma GraphQL.

Boutiques​

Une Shop est un magasin ou un entrepôt d'un compte Wino. Presque tout appartient à une boutique : produits, prix, taxes, catégories, appareils. Avec une clé pour plusieurs boutiques, chaque boutique a sa propre copie du catalogue.

Produits et variantes​

  • Un Product est l'article tel que le commerçant le décrit : une cuvée de vin, une bière, un fromage. Il a une Tax et peut avoir une Category.
  • Une Variant est l'article réellement vendu : le même produit dans un millésime, une contenance ou un conditionnement donnés. Un produit a une ou plusieurs variantes. L'application Wino les appelle « articles ».

Le vin Samorens est un seul produit : son producteur, son pays et sa couleur sont les mêmes quelle que soit la façon dont il est vendu. Vendu en bouteille de 0,75 L et en BIB de 10 L, il a deux variantes, chacune avec son propre stock et ses propres prix.

Astuce

Pour une boutique en ligne ou une marketplace, traitez chaque variante comme un produit à part entière : listez le catalogue avec la requête variants plutôt que products.

Chaque produit a un type (kind), et chaque type a ses propres champs. Tout produit nécessite name, kind, country, shopId et taxId. Certains types en demandent davantage :

KindPourÉgalement requis à la création
WINEVinscolor, wineType, region, designation
BEERBièrescolor, beerType
SPIRITUOUSSpiritueux : whisky, vodka, armagnac…family
SIMPLETout le reste : jus, fromages, accessoires…rien de plus

Les champs qui ne s'appliquent pas au type valent null. Les champs qui commencent par formatted (formattedName…) sont prêts à afficher : ne les analysez pas.

Variantes en vrac​

Une variante est vendue soit à l'unité, soit en vrac, au poids ou au volume (bulk: true). Un fromage peut être vendu en pièce entière, en morceau de 0,15 kg, ou à la coupe au kilo : trois variantes du même produit.

  • En vrac : capacityUnit et capacityPrecision sont renseignés. Les quantités sont des entiers multipliés par 10^capacityPrecision : avec capacityPrecision: 3 et l'unité kg, une quantité brute de 1500 signifie 1,5 kg.
  • À l'unité : capacityValue et capacityUnit donnent la contenance d'un article, quand le commerçant la renseigne, par exemple 0.75 et L.
  • bulk ne peut être défini qu'à la création de la variante.

Stock​

Chaque variante a son propre stock dans sa boutique : calculez avec stock.rawQuantity, affichez stock.formattedQuantity. Le stock ne change que par des mouvements de stock (StockActivity) : ventes, remboursements, pertes, livraisons, transferts, inventaires. Chaque mouvement est enregistré par un appareil (voir Votre boutique et votre appareil). Les types de mouvement sont listés dans le Glossaire.

stock.state est calculé à partir des seuils de la variante :

  • OK : au-dessus du seuil de réapprovisionnement.
  • ALERT : au-dessus du seuil minimum, et au niveau ou en dessous du seuil de réapprovisionnement (stockOrderTriggerThreshold, 5 s'il n'est pas défini).
  • DANGER : au niveau ou en dessous du seuil minimum (minStockThreshold, 0 s'il n'est pas défini).

Les variantes en vrac en cl, g, L ou kg n'utilisent pas les seuils : DANGER à 0 ou moins, ALERT en dessous de 100 (cl ou g) ou en dessous de 1 (L ou kg), OK à partir de 100 ou de 1.

Prix et prix de vente des variantes​

Une boutique a des prix (Price), comme « Tarif Boutique » ou « Tarif Ecommerce ». Une variante a un prix de vente (VariantPrice) dans chaque prix où elle est vendue.

  • Chaque VariantPrice donne valueIncludingTax et valueExcludingTax. Le champ taxIncluded du prix indique lequel fait référence : true signifie que les prix sont saisis TTC.
  • Dans un même prix, une variante peut avoir des paliers de quantité : plusieurs VariantPrice avec fromQuantity et toQuantity, par exemple 14 € de 1 à 5 bouteilles, puis 13,50 € à partir de 6 (toQuantity: -1 signifie sans limite supérieure).

Actif et archivé​

  • Une variante peut être inactive (active: false) : le commerçant l'a retirée de la vente. Elle apparaît toujours dans les listes.
  • L'API n'a pas de suppression : les enregistrements sont archivés à la place (archivedAt). La plupart des listes masquent les enregistrements archivés par défaut : ajoutez filterBy: { archived: INCLUDED } pour les obtenir aussi.