Développer · Automatisation no-code

Automatiser un catalogue sans écrire de code

En une phrase

Une exécution no-code soumet un batch de photos de produits avec un nœud HTTP, attend 3 secondes, lit le statut du batch et répète jusqu’à la fin avant d’écrire les URL dans votre feuille de calcul.

  • Crédits: 4 crédits en 2K · 5 crédits en 4K
  • Délai typique: 1.5–4 min per image
  • Traitement: asynchrone, polling

Chaque chiffre sur cette page provient de la documentation de l'API Photta · vérifié

Un nœud HTTP, un nœud d’attente et une condition. n8n, Make ou tout outil gérant HTTP peut traiter un catalogue entier via l’endpoint de batch.

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')

Comment ça fonctionne

Une feuille de calcul en entrée, un dossier d’images en sortie

Exportez le catalogue, configurez un nœud HTTP, bouclez avec des attentes, réécrivez les URL.

  1. Étape 1

    Exporter le catalogue

    Une ligne par vêtement avec une URL d’image publique. Cette colonne est la seule entrée requise par l’endpoint de batch.

  2. Étape 2

    Obtenir une clé d’API Photta

    Stockez-la dans le gestionnaire de secrets de votre outil d’automatisation, pas dans le corps du nœud, afin que les workflows exportés ne contiennent aucun secret.

  3. Étape 3

    Configurer le nœud HTTP

    POST, le header Bearer et le corps JSON présenté ici. Chaque élément du tableau correspond à un vêtement ; les champs de style s’appliquent à l’ensemble.

  4. Étape 4

    Boucler avec des attentes

    Attendez 3 secondes, lisez le batch, vérifiez si le statut est terminé, et recommencez la boucle. Cet intervalle est celui publié dans la documentation.

  5. Étape 5

    Respecter les limites

    La limite de taille de batch et la limite de batchs simultanés dépendent de votre forfait. Soumettez un batch, terminez-le, puis soumettez le suivant.

  6. Étape 6

    Réécrire les URL

    Lorsque le batch est terminé, chaque élément comporte sa propre URL de sortie. Écrivez-les dans la feuille et téléchargez les fichiers au cours de la même exécution.

Les nœuds, et ce qu’ils contiennent

Le corps de la requête est l’exemple publié par la documentation de l’API ; la boucle suit l’intervalle de polling documenté.

{
  "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.

Questions fréquentes des développeurs

Questions sur les exécutions no-code

Dois-je écrire du code ?

Non. Tout repose ici sur une requête HTTP avec un corps JSON, ce que tout outil d’automatisation sait envoyer. Le seul texte à renseigner est le corps affiché sur cette page.

Combien d’images peut-on traiter par exécution ?

La limite de batch de l’API est de 5 images pour Free et Hobby, 10 pour Seller, 25 pour Brand et 50 pour Studio. Les catalogues plus longs sont traités en plusieurs batchs successifs.

Que se passe-t-il si une image échoue ?

Le reste du batch continue. Le corps de réponse du batch indique le nombre d’éléments completed et failed, et les credits des éléments en échec sont remboursés.

Cela peut-il tourner selon un calendrier ?

Oui. Déclenchez le workflow chaque nuit et laissez-le récupérer les lignes qui n’ont pas encore d’image. La boucle de polling reste la même, qu’elle soit lancée manuellement ou planifiée.

Cela fonctionne-t-il dans Make ou Zapier ?

Partout où vous pouvez envoyer une requête HTTP avec un header et un corps JSON, puis patienter entre les étapes. Le nom des nœuds varie ; les trois étapes restent identiques.

Un catalogue, sans développeur

Un nœud HTTP et une attente. Le corps présenté sur cette page est celui publié dans la documentation.