Aller au contenu principal

Connecter un outil d'analyse

Lisez les ventes, les rapports de caisse et le stock d'une boutique dans votre propre outil d'analyse (un data warehouse, un tableau de bord BI, un tableur). C'est en lecture seule : vous ne modifiez jamais les données de Wino.

Développez sur staging avec une clé de staging (voir Environnements), et lisez d'abord Pagination : toutes les listes ci-dessous sont paginées.

Quoi lire​

Vous voulezRequêteChamps principaux
Les ventes en caissesalesReceiptscreatedAt, totalAmountIncludingTaxes, items, payments, taxes
Les remboursements en caisserefundReceiptsSoustrayez-les de vos ventes
Les factures et les avoirsinvoices, creditNotesLes ventes facturées aux clients, et ce qui a été annulé
Les rapports de fin de journéecashRegisterReportsopenedAt, closedAt, totaux et répartitions par paiement, taxe, catégorie
Le stock et ses mouvementsvariants { stock }, stockActivitiesrawQuantity, kind et quantity du mouvement
Les clients et la fidélitécustomers, loyaltyActivities

Chaque champ est décrit dans le schéma GraphQL.

Lire les ventes d'une période​

query SalesOfPeriod($shopId: String!, $from: Datetime!, $to: Datetime!, $after: String) {
salesReceipts(
first: 50
after: $after
filterBy: { shopIds: { _in: [$shopId] }, createdAt: { _between: [$from, $to] } }
) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
name
createdAt
totalAmountIncludingTaxes
totalAmountExcludingTaxes
items {
... on SalesReceiptItem {
name
quantity
totalAmountIncludingTaxes
variant {
id
}
}
}
}
}
}
}
{ "shopId": "<shop id>", "from": "2026-10-01T00:00:00Z", "to": "2026-10-31T23:59:59.999Z" }

Recommencez avec after égal à endCursor jusqu'à ce que hasNextPage vaille false. Les dates sont en UTC : décalez-les selon le fuseau horaire de la boutique. _between inclut les deux dates.

Garder vos données à jour​

  • Ne lisez que les nouveautés. À chaque exécution, lisez les tickets créés depuis votre dernière exécution (createdAt: { _after: … }) et stockez leur id.
  • Commencez un peu avant votre dernière exécution. Une caisse peut envoyer ses tickets à Wino quelque temps après la vente, par exemple après une coupure réseau. Commencez quelques minutes, voire plus, avant votre dernière exécution, et ignorez les id que vous avez déjà.
  • Gardez des requêtes légères. En production, une requête qui dure plus de 30 secondes est interrompue : demandez uniquement les champs dont vous avez besoin, et évitez d'imbriquer des listes dans des listes.