Aller au contenu
Menu documentation

API REST

Modifications des prix

Changements de prix de liste et aperçu d'un changement, y compris ce que le client paiera avant et après.

Les modifications en masse, la planification et les courriels de changement de prix client nécessitent le plan Pro. Le plan Gratuit peut publier immédiatement des importations de feuilles de calcul à prix standard sans courriel. Les prix convenus existants et les changements planifiés publiés continuent à s'appliquer lorsque le Pro prend fin.

Les prix de liste ne changent jamais silencieusement dans TradeCatalog. Les nouveaux prix sont placés dans un changement de prix pour une seule liste de prix : un brouillon que le personnel examine, date et publie. Les clients ne reçoivent un courriel uniquement lorsqu'ils ont un changement de prix personnel. Le plan Standard est la liste lorsque vous ne nommez pas une autre liste. Un brouillon ne mélange jamais les listes.

Comment sont effectués les changements de prixLien vers cette section#

  • À partir de l'API : PUT /products avec un nouveau listPrice pour un produit existant l'ajoute à un brouillon et retourne l'priceChangeId de ce brouillon.
  • À partir de l'application : importations de feuilles de calcul, et changements en masse comme « +4 % sur la catégorie des boulons ».

La publication, la planification et l'annulation se font dans l'application, sous Changements de prix. Il n’existe pas d’API pour cela : une personne vérifie toujours un changement de prix avant que les clients ne le voient.

StatutsLien vers cette section#

StatutSignification
draftNon publié. Aucun prix n’a changé.
scheduledPublié avec une date future. Les prix changent à cette date.
liveEn vigueur.
cancelledAnnulé avant qu’il n’entre en vigueur.

L'objet de changement de prixLien vers cette section#

json
{
  "id": "c4d5e6f7-1234-4abc-9def-0123456789ab",
  "source": "import",
  "title": "API import (Sage stock sync)",
  "supplierNote": null,
  "status": "draft",
  "effectiveAt": null,
  "notifyCustomers": true,
  "raiseFixedPrices": false,
  "priceListId": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
  "priceListName": "Standard",
  "createdBy": "Fq3L0cZ7tN1pW9aYx2Rk",
  "publishedAt": null,
  "cancelledAt": null,
  "createdAt": "2026-09-27T02:00:14.000Z",
  "items": 38
}
ChampTypeDescription
sourcechaîneimport (feuille de calcul ou API) ou bulk (une variation en pourcentage effectuée dans l'application).
titlechaîneAffiché au personnel. Les brouillons API sont intitulés « Importation API (nom de la clé) ».
supplierNotechaîne ou nullMessage aux clients dans le courriel de changement de prix.
statuschaîneVoir statuts.
effectiveAtchaîne ou nullQuand les nouveaux prix s'appliquent.
notifyCustomersbooléenSi les clients reçoivent un courriel avec leurs nouveaux prix.
raiseFixedPricesbooléenSi les prix convenus augmentent du même pourcentage. Cette option est séparée de la liste.
priceListIdchaîne ou nullLa liste dans laquelle ce changement est écrit. Null signifie Standard, y compris les changements effectués avant que les listes ne soient nommées.
priceListNamechaîneLe nom de cette liste. Standard lorsqu’priceListId est null.
createdBychaîne ou nullIdentifiant de la personne qui l’a créé. Pour les brouillons API, la personne qui a créé la clé.
itemsentierNombre de produits modifiés. Seulement dans la liste.

Changements de prix de listeLien vers cette section#

GET/api/v1/price-changes

Du plus récent au plus ancien. Couvre les 100 derniers changements de prix.

NomTypeRequisDescription
limitentiernon1 à 100. Valeur par défaut 100.
offsetentiernonNombre de lignes à ignorer. Valeur par défaut 0.
bash
curl https://tradecatalog.app/api/v1/price-changes \
  -H "Authorization: Bearer $TRADECATALOG_API_KEY"
js
const res = await fetch('https://tradecatalog.app/api/v1/price-changes', {
  headers: { Authorization: `Bearer ${process.env.TRADECATALOG_API_KEY}` },
})
const { data: changes } = await res.json()
const drafts = changes.filter((change) => change.status === 'draft')

Aperçu d'un changement de prixLien vers cette section#

GET/api/v1/price-changes/{id}

Tout ce que le personnel voit avant la publication : combien de prix augmentent et diminuent, les plus grandes variations, les avertissements, et combien de prix convenus sont touchés. Passez customer pour voir les prix propres à ce client avant et après.

NomEmplacementTypeRequisDescription
idcheminchaîneouiIdentifiant du changement de prix.
customerrequêtechaînenonIdentifiant client ou code de compte.
bash
curl "https://tradecatalog.app/api/v1/price-changes/c4d5e6f7-1234-4abc-9def-0123456789ab?customer=OAK01" \
  -H "Authorization: Bearer $TRADECATALOG_API_KEY"
js
const res = await fetch(
  `https://tradecatalog.app/api/v1/price-changes/${priceChangeId}?customer=OAK01`,
  { headers: { Authorization: `Bearer ${process.env.TRADECATALOG_API_KEY}` } },
)
const { data: preview } = await res.json()
if (preview.warnings.length)
  console.warn('Check these before publishing', preview.warnings)
json
{
  "data": {
    "change": {
      "id": "c4d5e6f7-1234-4abc-9def-0123456789ab",
      "source": "import",
      "title": "API import (Sage stock sync)",
      "supplierNote": null,
      "status": "draft",
      "effectiveAt": null,
      "notifyCustomers": true,
      "raiseFixedPrices": false,
      "priceListId": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
      "priceListName": "Standard",
      "createdBy": "Fq3L0cZ7tN1pW9aYx2Rk",
      "publishedAt": null,
      "cancelledAt": null,
      "createdAt": "2026-09-27T02:00:14.000Z"
    },
    "counts": { "total": 38, "up": 36, "down": 2 },
    "biggest": [
      {
        "productId": "3f8a2c1e-9b4d-4e6f-a7c8-1d2e3f4a5b6c",
        "oldPrice": 1850,
        "newPrice": 1950,
        "sku": "HX-8510",
        "name": "Hex bolt M10 x 50 zinc",
        "changeBp": 541
      }
    ],
    "warnings": [],
    "fixedAffected": 3,
    "customer": {
      "name": "Oakfield Joinery",
      "rows": [
        {
          "sku": "HX-8510",
          "name": "Hex bolt M10 x 50 zinc",
          "before": 1573,
          "after": 1658,
          "label": "Brand discount −15%"
        }
      ]
    }
  },
  "currency": "GBP"
}
ChampDescription
countsProduits du changement, et combien augmentent et diminuent.
biggestJusqu'à 20 articles avec la plus grande variation en pourcentage. changeBp est la variation en points de base (541 = +5,41 %).
warningsArticles qui varient de plus de 30 % dans les deux sens, ou qui passent à zéro. Généralement des fautes de frappe.
fixedAffectedPrix convenus sur ces produits qui sont valides actuellement. Ils ne changent que si le changement augmente les prix convenus.
customerAvec customer : les prix unitaires de ce client avant et après, provenant de leur propre liste puis de leur ajustement, pour les 50 premiers articles au maximum. Un client sur une autre liste reste inchangé. null sans cela.

404 not_found s'il n'y a pas de changement de prix dans cet espace de travail.