Entwickeln · No-Code-Automatisierung

Einen Katalog ohne Code automatisieren

In aller Kürze

Ein No-Code-Durchlauf sendet einen Batch von Produktfotos mit einem HTTP-Node, wartet 3 Sekunden, liest den Batch-Status aus und wiederholt dies bis zum Abschluss, bevor die URLs zurück in Ihr Sheet geschrieben werden.

  • Credits: 4 Credits bei 2K · 5 Credits bei 4K
  • Typische Dauer: 1.5–4 min per image
  • Verarbeitung: asynchron, Polling

Jeder Zahlenwert auf dieser Seite stammt aus der Photta-API-Dokumentation · geprüft

Ein HTTP-Node, ein Wait-Node und eine Condition. n8n, Make oder jedes Tool, das HTTP spricht, kann einen kompletten Katalog über den Batch-Endpoint verarbeiten.

RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/ghost-mannequin/batch \
  -H "Authorization: Bearer $PHOTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "product_images": [
    {
      "image": "https://cdn.yourstore.com/products/jacket-front.jpg",
      "back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
      "image_side": "front"
    },
    {
      "image": "https://cdn.yourstore.com/products/shirt-front.jpg",
      "image_side": "front"
    },
    {
      "image": "https://cdn.yourstore.com/products/trousers-front.jpg",
      "image_side": "front"
    }
  ],
  "style": "3d",
  "background_color": "white",
  "resolution": "2K",
  "aspect_ratio": "3:4",
  "user_instruction": "closed front, buttoned up",
  "brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')

Funktionsweise

Tabelle rein, Bildordner raus

Katalog exportieren, einen HTTP-Node konfigurieren, mit Wartezeiten loopen, URLs zurückschreiben.

  1. Schritt 1

    Katalog exportieren

    Eine Zeile pro Kleidungsstück mit einer öffentlichen Bild-URL. Diese Spalte ist die einzige Eingabe, die der Batch-Endpoint benötigt.

  2. Schritt 2

    Photta-API-Key abrufen

    Speichern Sie ihn im Credential-Vault Ihres Automatisierungs-Tools, nicht im Node-Body, damit exportierte Workflows keine Secrets enthalten.

  3. Schritt 3

    HTTP-Node konfigurieren

    POST, der Bearer-Header und der hier gezeigte JSON-Body. Jedes Element im Array ist ein Kleidungsstück; die Styling-Felder gelten für alle.

  4. Schritt 4

    Mit Wartezeiten loopen

    3 Sekunden warten, den Batch auslesen, prüfen, ob der Status abgeschlossen ist, und von vorn beginnen. Dieses Intervall entspricht den Angaben in der Dokumentation.

  5. Schritt 5

    Limits einhalten

    Das Batch-Größenlimit und das Limit für gleichzeitige Batches richten sich nach Ihrem Plan. Senden Sie einen Batch ab, schließen Sie ihn ab und senden Sie erst dann den nächsten.

  6. Schritt 6

    URLs zurückschreiben

    Sobald der Batch abgeschlossen ist, enthält jedes Element seine eigene Ausgabe-URL. Schreiben Sie diese in das Sheet und laden Sie die Dateien im selben Durchlauf herunter.

Die Nodes und was hineingehört

Der Request-Body entspricht dem Beispiel aus der API-Dokumentation; die Schleife nutzt das dokumentierte Polling-Intervall.

{
  "product_images": [
    {
      "image": "https://cdn.yourstore.com/products/jacket-front.jpg",
      "back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
      "image_side": "front"
    },
    {
      "image": "https://cdn.yourstore.com/products/shirt-front.jpg",
      "image_side": "front"
    },
    {
      "image": "https://cdn.yourstore.com/products/trousers-front.jpg",
      "image_side": "front"
    }
  ],
  "style": "3d",
  "background_color": "white",
  "resolution": "2K",
  "aspect_ratio": "3:4",
  "user_instruction": "closed front, buttoned up",
  "brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/ghost-mannequin/batch \
  -H "Authorization: Bearer $PHOTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "product_images": [
    {
      "image": "https://cdn.yourstore.com/products/jacket-front.jpg",
      "back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
      "image_side": "front"
    },
    {
      "image": "https://cdn.yourstore.com/products/shirt-front.jpg",
      "image_side": "front"
    },
    {
      "image": "https://cdn.yourstore.com/products/trousers-front.jpg",
      "image_side": "front"
    }
  ],
  "style": "3d",
  "background_color": "white",
  "resolution": "2K",
  "aspect_ratio": "3:4",
  "user_instruction": "closed front, buttoned up",
  "brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')
{
  "nodes": [
    {
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "parameters": {
        "amount": 3,
        "unit": "seconds"
      }
    },
    {
      "name": "Read batch",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "method": "GET",
        "url": "https://api.photta.app/api/v1/ghost-mannequin/batch/{{ $json.data.batch_id }}"
      }
    },
    {
      "name": "Done?",
      "type": "n8n-nodes-base.if",
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.data.status }}",
              "value2": "completed"
            }
          ]
        }
      }
    }
  ]
}
# 600 requests per minute per key, fixed window.
# One batch submission plus one poll every 3 seconds is ~21 requests per minute
# per batch in flight, so the concurrency cap binds long before the rate limit.
# On a 429, wait the Retry-After seconds (30 by default) before the next node runs.

Häufige Fragen von Entwicklern

Fragen zu No-Code-Durchläufen

Muss ich Code schreiben?

Nein. Alles hier ist ein HTTP-Request mit einem JSON-Body, den jedes Automatisierungs-Tool senden kann. Der einzige Text, den Sie eingeben, ist der auf dieser Seite gezeigte Body.

Wie viele Bilder passen in einen Durchlauf?

Das API-Batch-Limit liegt bei 5 Bildern für Free und Hobby, 10 für Seller, 25 für Brand und 50 für Studio. Größere Kataloge werden als mehrere Batches nacheinander verarbeitet.

Was passiert, wenn ein Bild fehlschlägt?

Der Rest des Batches läuft weiter. Der Batch-Body gibt an, wie viele erfolgreich waren und wie viele fehlgeschlagen sind, und Credits für fehlgeschlagene Elemente werden erstattet.

Kann das zeitgesteuert laufen?

Ja. Triggern Sie den Workflow nachts und lassen Sie ihn alle Zeilen verarbeiten, die noch kein Bild haben. Die Polling-Schleife ist identisch, egal ob sie manuell oder über einen Zeitplan gestartet wird.

Funktioniert das in Make oder Zapier?

Überall dort, wo Sie einen HTTP-Request mit einem Header und einem JSON-Body senden und zwischen Schritten warten können. Die Bezeichnungen der Nodes ändern sich; die drei Schritte bleiben gleich.

Ein Katalog, ganz ohne Entwickler

Ein HTTP-Node und ein Wait. Der Body auf dieser Seite entspricht dem aus der Dokumentation.