Zum Inhalt springen
Dokumentationsmenü

Starten

Quickstart

Erstellen Sie einen API-Schlüssel und machen Sie Ihre ersten TradeCatalog API-Aufrufe in fünf Minuten.

Sie müssen der Besitzer eines TradeCatalog-Arbeitsbereichs mit einer Pro-Berechtigung oder einem Pilotkonto sein. Demo-Arbeitsbereiche können die API nicht verwenden.

1. Erstellen Sie einen API-SchlüsselLink zu diesem Abschnitt#

  1. Öffnen Sie Ihren Arbeitsbereich und gehen Sie zu Einstellungen → API.
  2. Geben Sie dem Schlüssel einen Namen, den Sie später erkennen können, z. B. „Sage Bestandsynchronisation“.
  3. Wählen Sie Nur Lesen, um nachzuschauen, oder Lesen und Schreiben, um auch Produkte, Kunden und Bestellungen zu aktualisieren.
  4. Wählen Sie Schlüssel erstellen und kopieren Sie ihn. Er beginnt mit tc_live_.

Kopieren Sie ihn jetzt

Wir zeigen einen Schlüssel nur einmal an, und wir speichern nur einen Hash davon. Wenn Sie ihn verlieren, widerrufen Sie ihn und erstellen Sie einen neuen.

Legen Sie den Schlüssel in eine Umgebungsvariable, damit er nicht in Ihrem Code landet:

bash
export TRADECATALOG_API_KEY="tc_live_…"

2. Prüfen Sie, ob der Schlüssel funktioniertLink zu diesem Abschnitt#

bash
curl https://tradecatalog.app/api/v1/workspace \
  -H "Authorization: Bearer $TRADECATALOG_API_KEY"
json
{
  "data": {
    "id": "0b6c1f5e-6f7a-4a57-9a0c-2f4d4c1e8a11",
    "slug": "northgate",
    "name": "Northgate Fixings",
    "currency": "GBP",
    "timezone": "Europe/London",
    "taxLabel": "ex VAT",
    "key": { "name": "Sage stock sync", "scope": "write" }
  }
}

3. Produkte suchenLink zu diesem Abschnitt#

bash
curl "https://tradecatalog.app/api/v1/products?q=hinge&limit=2" \
  -H "Authorization: Bearer $TRADECATALOG_API_KEY"

Geld ist immer in Mikroeinheiten der Arbeitsbereichswährung, also ist 1850 £18.50. Siehe Konventionen.

4. Kundenpreis abrufenLink zu diesem Abschnitt#

Übergeben Sie den Kontocode (oder die ID) eines Kunden und eine SKU:

bash
curl "https://tradecatalog.app/api/v1/prices?customer=OAK01&sku=HX-8510&qty=10" \
  -H "Authorization: Bearer $TRADECATALOG_API_KEY"
json
{
  "data": {
    "customer": {
      "id": "7d2e4f0a-1b3c-4d5e-8f90-a1b2c3d4e5f6",
      "accountCode": "OAK01",
      "name": "Oakfield Joinery"
    },
    "sku": "HX-8510",
    "name": "Hex bolt M10 x 50 zinc",
    "qty": 10,
    "unit": 1573,
    "line": 15730,
    "list": 1850,
    "discountBp": 1500,
    "source": "brand",
    "label": "Brand discount −15%"
  },
  "currency": "GBP"
}

Wie Preise berechnet werden erklärt source und label.

5. Produkt erstellen oder aktualisierenLink zu diesem Abschnitt#

Dazu benötigen Sie einen Lesen und Schreiben-Schlüssel.

bash
curl -X PUT https://tradecatalog.app/api/v1/products \
  -H "Authorization: Bearer $TRADECATALOG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [
      {
        "sku": "HX-8512",
        "name": "Hex bolt M12 x 50 zinc",
        "listPrice": 2240,
        "unitLabel": "Box of 100",
        "brand": "Northgate",
        "category": "Bolts"
      }
    ]
  }'
json
{
  "data": {
    "created": 1,
    "updated": 0,
    "priceChanges": 0,
    "priceChangeId": null,
    "unknownCustomers": []
  }
}

Neue Produkte werden sofort zu ihrem Listenpreis aktiviert. Wenn Sie einen anderen Preis für ein Produkt senden, das bereits einen Preis hat, ändert sich der Preis noch nicht. Er wird in einen Entwurf für einen Preisanpassung gespeichert, den Sie in der App überprüfen und veröffentlichen. Siehe Produkte.

Das gleiche in JavaScriptLink zu diesem Abschnitt#

js
const api = (path, init = {}) =>
  fetch(`https://tradecatalog.app/api/v1${path}`, {
    ...init,
    headers: {
      Authorization: `Bearer ${process.env.TRADECATALOG_API_KEY}`,
      'Content-Type': 'application/json',
      ...init.headers,
    },
  }).then(async (res) => {
    const body = await res.json()
    if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`)
    return body
  })

const { data: workspace } = await api('/workspace')
const { data: price } = await api('/prices?customer=OAK01&sku=HX-8510&qty=10')
console.log(`${workspace.name}: ${price.name} is ${price.unit / 100} each`)

Nächste SchritteLink zu diesem Abschnitt#