Lieferanten-API-Anleitung: Manuelle Bestellungen verarbeiten
Umfassende Anleitung zur Nutzung der Supplier-API zum Abrufen manueller Bestellungen, Übermitteln von Konten und Markieren von Bestellungen als abgeschlossen. Enthält Codebeispiele und Best Practices.
Sarah JohnsonVoraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Lieferantenkonto mit API-Zugriff
- Ihren API-Schlüssel (Sie können ihn in Ihrem Lieferanten-Dashboard generieren)
- Zugriff auf die Admin API v2-Endpunkte
Schritt 1: API-Schlüssel abrufen
- Melden Sie sich in Ihrem Lieferanten-Dashboard an
- Navigieren Sie zu API-Einstellungen (
/api-settings) - Klicken Sie auf "API-Schlüssel generieren", falls Sie noch keinen haben
- Kopieren Sie Ihren API-Schlüssel und bewahren Sie ihn sicher auf
Wichtig: Ihr API-Schlüssel sollte geheim gehalten werden. Geben Sie ihn niemals öffentlich preis und übergeben Sie ihn nicht an die Versionskontrolle.
Schritt 2: Manuelle Bestellungen abrufen
Verwenden Sie den Endpunkt GET /api/admin/v2/orders, um ausstehende und in Bearbeitung befindliche manuelle Bestellungen abzurufen.
API-Anfrage
curl -X GET "https://ihre-domain.com/api/admin/v2/orders?status=pending,processing&productType=manual&limit=50&offset=0" \
-H "X-Api-Key: IHR_API_SCHLÜSSEL"
Anfrageparameter
status(optional): Filter nach Bestellstatus. Unterstützt durch Komma getrennte Werte:pending,processingproductType(erforderlich für manuelle Bestellungen): AufmanualsetzenentityType(optional): Filtern nachproductodersmm_servicesubCategory(optional): Filtern nach Unterkategorienamenlimit(optional): Anzahl der zurückzugebenden Bestellungen (max. 500, Standard 50)offset(optional): Paginierungs-Offset (Standard 0)
Beispielantwort
{
"orders": [
{
"id": 12345,
"order": 12345,
"status": "pending",
"paymentStatus": "completed",
"quantity": 10,
"user": {
"id": "507f1f77bcf86cd799439011",
"email": "customer@example.com",
"name": "John Doe"
},
"items": [
{
"product": {
"id": "507f1f77bcf86cd799439012",
"name": "Instagram Follower",
"type": "product"
},
"quantity": 10,
"unitPrice": 5.00,
"totalPrice": 50.00
}
],
"createdAt": "2024-01-01T10:00:00.000Z"
}
],
"count": 1,
"total": 1
}
Wichtige Hinweise
- Es werden nur Bestellungen mit
paymentStatus: "completed"zurückgegeben - Bestellungen werden gefiltert, um doppelte Verarbeitung zu verhindern (30-Minuten-Intervall)
- Sie können nur Bestellungen für Produkte/Dienstleistungen sehen, die Ihnen als Lieferant gehören
Schritt 3: Bestellungen verarbeiten und Konten einreichen
Sobald Sie die Bestellungen haben, verarbeiten Sie diese und bereiten Sie die Kontozugangsdaten vor. Verwenden Sie dann den Endpunkt POST /api/admin/v2/orders-update, um Konten einzureichen und den Bestellstatus zu aktualisieren.
API-Anfrage
curl -X POST "https://ihre-domain.com/api/admin/v2/orders-update" \
-H "X-Api-Key: IHR_API_SCHLÜSSEL" \
-H "Content-Type: application/json" \
-d '{
"order": 12345,
"status": "completed",
"accounts": [
"benutzername1:passwort1",
"benutzername2:passwort2",
"benutzername3:passwort3"
],
"supplierOrderId": "SUP-BESTELLUNG-12345"
}'
Parameter des Anfragetexts
order(erforderlich): Die Bestell-ID (Nummer)status(optional): Neuer Bestellstatus. Gültige Werte:pending,processing,completed,partial,cancelled,erroraccounts(optional, für Produktbestellungen): Array von Kontozugangsdaten im Format"benutzername:passwort"oder"email:passwort"supplierOrderId(optional): Ihre interne Bestell-ID zur Nachverfolgung
Kontoformat
Für Produktbestellungen sollten Konten als Array von Zeichenfolgen bereitgestellt werden. Jede Zeichenfolge repräsentiert ein Konto:
- Format:
"benutzername:passwort"oder"email:passwort" - Beispiel:
["user1:pass123", "user2:pass456"] - Menge: Geben Sie Konten an, die der Bestellmenge entsprechen
Vollständiges Workflow-Beispiel
Hier ist ein vollständiges Beispiel mit JavaScript/Node.js:
const axios = require('axios');
const API_BASE_URL = 'https://ihre-domain.com/api/admin/v2';
const API_KEY = 'IHR_API_SCHLÜSSEL';
// Schritt 1: Ausstehende und in Bearbeitung befindliche manuelle Bestellungen abrufen
async function getOrders() {
try {
const response = await axios.get(`${API_BASE_URL}/orders`, {
params: {
status: 'pending,processing',
productType: 'manual',
limit: 50,
offset: 0
},
headers: {
'X-Api-Key': API_KEY
}
});
return response.data.orders;
} catch (error) {
console.error('Fehler beim Abrufen der Bestellungen:', error.response?.data || error.message);
throw error;
}
}
// Schritt 2: Bestellung verarbeiten und Konten einreichen
async function updateOrder(orderId, accounts, supplierOrderId) {
try {
const response = await axios.post(
`${API_BASE_URL}/orders-update`,
{
order: orderId,
status: 'completed',
accounts: accounts,
supplierOrderId: supplierOrderId
},
{
headers: {
'X-Api-Key': API_KEY,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Fehler beim Aktualisieren der Bestellung:', error.response?.data || error.message);
throw error;
}
}
// Hauptworkflow
async function processOrders() {
try {
// Bestellungen abrufen
const orders = await getOrders();
console.log(`${orders.length} zu verarbeitende Bestellungen gefunden`);
// Jede Bestellung verarbeiten
for (const order of orders) {
console.log(`Verarbeite Bestellung ${order.id}...`);
// Konten vorbereiten (hier würden Sie aus Ihrem System abrufen)
const accounts = [
'user1:pass1',
'user2:pass2',
// ... weitere Konten entsprechend order.quantity
];
// Bestellung mit Konten aktualisieren und als abgeschlossen markieren
const updatedOrder = await updateOrder(
order.id,
accounts,
`SUP-${order.id}`
);
console.log(`Bestellung ${order.id} erfolgreich abgeschlossen`);
}
} catch (error) {
console.error('Fehler im Workflow:', error);
}
}
// Workflow ausführen
processOrders();
Fehlerbehandlung
Häufige Fehler
- Ungültiger API-Schlüssel
{ "error": "INVALID_API_KEY", "message": "Ungültiger API-Schlüssel" }Lösung: Überprüfen Sie, ob Ihr API-Schlüssel korrekt und aktiv ist.
- Bestellung nicht gefunden
{ "error": "ORDER_NOT_FOUND", "message": "Bestellung nicht gefunden" }Lösung: Überprüfen Sie, ob die Bestell-ID existiert und Ihnen gehört.
- Zugriff verweigert
{ "error": "ACCESS_DENIED", "message": "Sie haben keinen Zugriff auf diese Bestellung" }Lösung: Stellen Sie sicher, dass die Bestellung Produkte/Dienstleistungen enthält, die Ihnen gehören.
- Ungültige Konten
{ "error": "INVALID_ACCOUNTS", "message": "Nach Deduplizierung wurden keine gültigen Konten bereitgestellt" }Lösung: Stellen Sie sicher, dass das Konten-Array nicht leer ist und gültige Zeichenfolgen enthält.
Bewährte Methoden
- Abfragehäufigkeit: Fragen Sie nicht zu häufig ab. Die API verhindert doppelte Verarbeitung mit einem 30-Minuten-Intervall.
- Fehlerbehandlung: Implementieren Sie immer eine ordnungsgemäße Fehlerbehandlung und Wiederholungslogik.
- Kontovalidierung: Validieren Sie Konten vor dem Einreichen, um sicherzustellen, dass sie im richtigen Format sind.
- Bestellverfolgung: Verwenden Sie
supplierOrderId, um Bestellungen in Ihrem System zu verfolgen. - Statusaktualisierungen: Sie können den Status schrittweise aktualisieren:
- Zuerst auf
processingsetzen, wenn Sie mit der Bearbeitung beginnen - Dann auf
completedsetzen, wenn die Konten bereit sind
- Zuerst auf
- Teilbestellungen: Wenn Sie nur einen Teil einer Bestellung erfüllen können, setzen Sie den Status auf
partialund reichen Sie die verfügbaren Konten ein.
Zusammenfassung
Der vollständige Workflow ist:
- Bestellungen abrufen:
GET /api/admin/v2/orders?status=pending,processing&productType=manual - Bestellungen verarbeiten: Konten für jede Bestellung vorbereiten
- Konten einreichen:
POST /api/admin/v2/orders-updatemit Konten undstatus: "completed"
Dieser einfache dre



