Fixer les prix, recalculer les frais, constater les écartsTous les articles

Fixer les prix, recalculer les frais, constater les écarts

Qui ne recalcule pas les frais de canal ne connaît pas sa marge. Ce cas montre les quatre questions auxquelles un compte de vente doit répondre.

Publié: 2026-09-12Temps de lecture: 5 minAPI tapinomahub & processus
API & processusPrix & évaluationAftermarket automobileAPIMarketplacesCommerce de pièces

Un négociant fixe ses prix par une marge sur l’achat et constate en fin d’année qu’un groupe de produits n’a rien rapporté. La raison est dans les frais de canal que personne n’a jamais recalculés. La marge était juste — elle était simplement calculée sur la mauvaise base.

Fixer les prix, recalculer les frais, constater les écartsUn compte de vente — Quatre questions au même compte : quel prix ? quels frais ? où y a-t-il un écart ? qui me le dit ? 1. Créer une règle de prix (POST /commerce/v1/pricing-policies): targetNet part de l’objectif ; includeChannelFees et includeServiceFees pilotent les frais 2. Contrôler le relevé de frais (GET /commerce/v1/fee-statements): Par ligne basis, feeBasisPoints et feeAmount — recalculable, non supposé 3. Lancer un rapprochement (POST /commerce/v1/reconciliations): sourceCheckpoint contre targetCheckpoint, avec discrepancies et severity 4. S’abonner aux événements (POST /commerce/v1/webhook-subscriptions): Livraison signée, pour éviter une interrogation cadencée 5. Relire le flux (GET /commerce/v1/events): Événements avec streamId et sequence, lus par pagination stable à curseur Un rapprochement constate des écarts, il ne les corrige pas : criticalRemaining indique le nombre d’écarts critiques restants.Un compte de venteQuatre questions au mêmecompte : quel prix ? quelsfrais ? où y a-t-il un écart ?qui me le dit ?Fixer les prix, recalculer les frais, constater les écartsCréer une règle de prixPOST /commerce/v1/pricing-policiestargetNet part de l’objectif ; includeChannelFees etincludeServiceFees pilotent les fraisContrôler le relevé de fraisGET /commerce/v1/fee-statementsPar ligne basis, feeBasisPoints et feeAmount — recalculable,non supposéLancer un rapprochementPOST /commerce/v1/reconciliationssourceCheckpoint contre targetCheckpoint, avec discrepancieset severityS’abonner aux événementsPOST /commerce/v1/webhook-subscriptionsLivraison signée, pour éviter une interrogation cadencéeRelire le fluxGET /commerce/v1/eventsÉvénements avec streamId et sequence, lus par paginationstable à curseurUn rapprochement constate des écarts, il ne les corrige pas : criticalRemaining indique le nombre d’écartscritiques restants.
Cinq branches indépendantes. Le chiffre qui compte après un rapprochement est celui des écarts critiques restants.

Les cinq branches répondent à quatre questions différentes sur le même compte de vente. Elles ne dépendent pas l’une de l’autre, et toutes ne sont pas nécessaires — mais fixer des prix sans recalculer les frais, c’est calculer sur une base inconnue.

SurfaceRôles
CommerceCommerce de pièces, Éditeur de logiciels, Plateforme et marketplace

Ce que ce cas suppose

  • Un objectif net à atteindre. Avec targetNet, la règle de prix calcule à rebours ; selon le contrat, une marge fixe ne garantit aucun objectif.
  • La volonté de lire les lignes de frais. Un relevé que personne ne contrôle est une facture qu’on paie.
  • Deux points de contrôle pour le rapprochement. Source et cible ont chacune besoin d’un état ; sourceCheckpoint et targetCheckpoint sont des champs obligatoires du rapprochement.
  • Un destinataire pour les événements si vous ne voulez pas interroger. Un abonnement sans destinataire joignable ne livre rien.

Le déroulement

Le tableau indique pour chaque étape l’appel compétent et ce qui existe ensuite. La justification de l’étape figure en dessous.

La chaîne d’appels de ce cas d’usage
ÉtapeAppelCe qui existe ensuite
Créer une règle de prixPOST /commerce/v1/pricing-policiestargetNet part de l’objectif ; includeChannelFees et includeServiceFees pilotent les frais
Contrôler le relevé de fraisGET /commerce/v1/fee-statementsPar ligne basis, feeBasisPoints et feeAmount — recalculable, non supposé
Lancer un rapprochementPOST /commerce/v1/reconciliationssourceCheckpoint contre targetCheckpoint, avec discrepancies et severity
S’abonner aux événementsPOST /commerce/v1/webhook-subscriptionsLivraison signée, pour éviter une interrogation cadencée
Relire le fluxGET /commerce/v1/eventsÉvénements avec streamId et sequence, lus par pagination stable à curseur

Pourquoi chaque étape est nécessaire

  1. Créer la règle de prix. POST /commerce/v1/pricing-policies connaît, outre une marge fixe, targetNet : vous indiquez le net qui doit rester et la règle calcule à rebours — avec frais de canal, frais de service et remises, selon ce que vous incluez. C’est la différence entre chiffre d’affaires et résultat.
  2. Contrôler le relevé de frais. GET /commerce/v1/fee-statements renvoie par ligne basis, feeBasisPoints et feeAmount, et pour les corrections le renvoi à la ligne corrigée. Un frais se recalcule ainsi au lieu d’être cru.
  3. Lancer le rapprochement. POST /commerce/v1/reconciliations compare sourceCheckpoint et targetCheckpoint et renvoie counts, integrity avec des sommes de contrôle pour source et cible, et discrepancies avec severity. Le chiffre décisif est criticalRemaining, le nombre d’écarts critiques restants ; le rapprochement n’est pas encore activé dans le contrat.
  4. S’abonner aux événements. POST /commerce/v1/webhook-subscriptions met en place une livraison signée. Interroger en boucle crée de la charge et ne détecte une lacune que tard.
  5. Relire le flux. GET /commerce/v1/events renvoie les événements avec streamId et sequence. La lecture utilise une pagination par curseur stable (cursor, limit).
Créer une règle de prix avec objectif net pour un article
curl -X POST \
  -H 'X-Api-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: preisregel-netto-2026-09' \
  -d '{"strategy":"target_net","scope":{"catalogItemIds":["<catalogItemId>"]},"targetNet":{"target":{"amountMinor":4500,"currency":"EUR"},"calculationBasis":"item_price","includeChannelFees":true,"includeServiceFees":true,"includeDiscounts":false},"revision":"<revision>"}' \
  'https://commerce-preview.invalid/commerce/v1/pricing-policies'

Ce que l’on obtient

Au final, vous pouvez recalculer chaque ligne de frais, faire dériver les prix d’offre avec targetNet d’un objectif et des frais inclus, et lire après un rapprochement dans criticalRemaining combien d’écarts critiques restent entre source et cible. Le contrat ne connaît pas les coûts d’achat ; vous déterminez votre marge avec vos propres chiffres.

Où cela figure dans la documentation

Les listes de champs contractuelles, les codes d’erreur et les réponses d’exemple se trouvent dans le contrat OpenAPI de cette surface, à l’adresse docs.tapinomahub.com (tapinoma-commerce). Tous les cas d’usage classés par surface et par rôle : aperçu des cas d’usage.

Sources et références juridiques

Questions fréquentes

Quelle différence entre marge et objectif net ?

La marge fixe applique uniquement le taux de fixedMarkupBasisPoints et ne garantit aucun objectif ; le contrat ne précise pas sur quelle base elle s’applique. L’objectif net calcule à rebours depuis ce qui doit rester et intègre les frais que vous incluez.

Pourquoi un rapprochement si je m’abonne aux événements ?

Parce qu’une livraison peut échouer. L’abonnement vous tient à jour, le rapprochement constate les écarts entre source et cible — deux tâches différentes.

Dois-je utiliser les cinq branches ?

Non. Elles sont indépendantes. Pour constater les écarts entre source et cible, il faut le rapprochement ; pour fixer les prix automatiquement, la règle.