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 voulez | Requête | Champs principaux |
|---|---|---|
| Les ventes en caisse | salesReceipts | createdAt, totalAmountIncludingTaxes, items, payments, taxes |
| Les remboursements en caisse | refundReceipts | Soustrayez-les de vos ventes |
| Les factures et les avoirs | invoices, creditNotes | Les ventes facturées aux clients, et ce qui a été annulé |
| Les rapports de fin de journée | cashRegisterReports | openedAt, closedAt, totaux et répartitions par paiement, taxe, catégorie |
| Le stock et ses mouvements | variants { stock }, stockActivities | rawQuantity, 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 leurid. - 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
idque 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.