Bygg · No-code-automatisering

Automatiser en katalog uten å skrive kode

I én setning

En no-code-kjøring sender inn en batch med produktbilder via én HTTP-node, venter i 3 sekunder, leser batch-statusen og gjentar til den er ferdig før URL-ene skrives tilbake til regnearket ditt.

  • Credits: 4 credits ved 2K · 5 credits ved 4K
  • Typisk tidsbruk: 1.5–4 min per image
  • Prosessering: asynkron, polling

Hvert tall på denne siden er hentet fra dokumentasjonen for Photta-API-et · verifisert

En HTTP-node, en vente-node og en betingelse. n8n, Make eller ethvert verktøy som støtter HTTP kan kjøre en hel katalog gjennom batch-endepunktet.

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

Slik fungerer det

Et regneark inn, en bildemappe ut

Eksporter katalogen, konfigurer én HTTP-node, loop med ventetider, skriv URL-ene tilbake.

  1. Trinn 1

    Eksporter katalogen

    Én rad per plagg med en offentlig bilde-URL. Den kolonnen er det eneste inputet batch-endepunktet trenger.

  2. Trinn 2

    Skaff en Photta-API-nøkkel

    Lagre den i automatiseringsverktøyets hvelv for credentials, ikke i node-bodyen, slik at eksporterte arbeidsflyter ikke inneholder hemmeligheter.

  3. Trinn 3

    Konfigurer HTTP-noden

    POST, Bearer-headeren og JSON-bodyen som vises her. Hvert element i arrayet er ett plagg; stylingfeltene gjelder for alle sammen.

  4. Trinn 4

    Loop med ventetider

    Vent i 3 sekunder, les batchen, sjekk om statusen er fullført, og gjenta. Dette intervallet er det som oppgis i dokumentasjonen.

  5. Trinn 5

    Overhold grensene

    Maksimal batchstørrelse og grensen for samtidige batcher følger planen din. Send inn én batch, fullfør den, og send deretter inn neste.

  6. Trinn 6

    Skriv URL-ene tilbake

    Når batchen er ferdig, har hvert element sin egen output_url. Skriv dem inn i arket og last ned filene i samme kjøring.

Nodene, og hva de skal inneholde

Request-bodyen er eksempelet API-dokumentasjonen publiserer; loopen følger det dokumenterte polling-intervallet.

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

Spørsmål utviklere stiller

Spørsmål om no-code-kjøringer

Må jeg skrive kode?

Nei. Alt her er en HTTP-forespørsel med en JSON-body, noe alle automatiseringsverktøy kan sende. Den eneste teksten du taster inn, er bodyen som vises på denne siden.

Hvor mange bilder får plass i én kjøring?

API-ets batchgrense er 5 bilder på Free og Hobby, 10 på Seller, 25 på Brand og 50 på Studio. Lengre kataloger kjøres som flere batcher etter hverandre.

Hva skjer hvis ett bilde feiler?

Resten av batchen fortsetter. Batch-bodyen rapporterer hvor mange som ble fullført og hvor mange som feilet, og credits for feilede elementer refunderes.

Kan dette kjøres etter en tidsplan?

Ja. Trigger arbeidsflyten hver natt og la den hente radene som mangler bilde. Polling-loopen er den samme enten et menneske starter den eller den trigges av en tidsplan.

Fungerer dette i Make eller Zapier?

Overalt hvor du kan sende en HTTP-forespørsel med en header og en JSON-body, samt vente mellom stegene. Nodenavnene varierer; de tre stegene forblir de samme.

En katalog, uten en utvikler

Én HTTP-node og en ventetid. Bodyen på denne siden er den som publiseres i dokumentasjonen.