Colleghi il suo negozio alla nostra API.

Invii batch di annunci per un fornitore a cui ha accesso. I batch asincroni, la via consigliata, vengono accettati subito ed elaborati da noi; i batch sincroni restituiscono i risultati delle scritture completate.

Flusso tipicoDue modalità
  1. 01Invii fino a 100 vociPOST · PATCH · PUT · DELETE
  2. 02
    AsincronoConsigliatoAccettato per l’elaborazioneHTTP 202
    SincronoScritture completateHTTP 200
  3. 03
    AsincronoNiente da interrogare; ci pensiamo noinessun controllo successivo
    SincronoRipetere solo le voci non riuscite[] = tutto scritto

I — Come funzionano i lotti

Due modi per inviare un batch.

Entrambe le modalità accettano gli stessi batch di annunci per lo stesso fornitore: fino a 100 voci, POST per creare, PATCH per aggiornare, PUT per l’upsert e DELETE per ritirare. Si distinguono per ciò che la risposta conferma; la modalità asincrona è quella consigliata.

AsincronoConsigliatoHTTP 202
Invii il batch e prosegua: le voci accettate le elaboriamo noi, senza nulla da interrogare o confermare.
SincronoHTTP 200
La scelga quando il suo sistema ha bisogno del risultato di scrittura di ogni voce prima di proseguire.

AsincronoConsigliato

HTTP 202 · Accettato

Accettato ora, elaborato da noi.

Endpoint · POST · PATCH · PUT · DELETE/v1/listing-sources/{listingSourceId}/product-listings/async
La risposta
HTTP 202 restituisce un rapporto di accettazione: submissionId, acceptedCount e un errore per ogni voce la cui accettazione non è confermata.
Se alcune voci falliscono
Le voci accettate proseguono. L’esistenza dell’annuncio, le aste e l’autorizzazione del fornitore vengono verificate durante l’elaborazione, non nella risposta. Se non viene accettato nulla, 400, 413, 500 o 503 restituiscono lo stesso rapporto.
Nuovo tentativo
Dopo una risposta persa o incerta, invii di nuovo il batch invariato con la stessa Idempotency-Key. Corregga le voci non valide in un nuovo batch con una nuova chiave.
Dopo
Niente da interrogare: una volta accettata, la voce è nelle nostre mani e la elaboriamo noi. Se vuole comunque verificare, rilegga gli annunci con GET; i token delegati richiedono anche product-listings:read.

Sincrono

HTTP 200 · Completato

Scritture completate, nella risposta.

Endpoint · POST · PATCH · PUT · DELETE/v1/listing-sources/{listingSourceId}/product-listings
La risposta
HTTP 200 elenca solo le voci non riuscite; [] indica che ogni voce è stata completata, anche in un batch vuoto.
Se alcune voci falliscono
Ogni voce ha una propria transazione, quindi le scritture completate restano salvate. Se tutte le voci falliscono, viene restituita invece una risposta di problema.
Nuovo tentativo
Corregga e invii di nuovo solo le voci non riuscite.
Dopo
La visibilità nella ricerca segue separatamente; una scrittura completata non è ancora visibile nella ricerca.

II — Guida alla configurazione

Dal token di accesso al primo batch di annunci.

Un percorso pratico per collegare un sistema di shop personalizzato ad Aura Historia, in entrambe le modalità.

  1. Passo 1

    Selezionare un fornitore accessibile

    Selezioni un fornitore a cui ha attualmente accesso per questa integrazione. L’accesso non attesta la proprietà o il permesso di modificare i dati del fornitore.

    Cosa controllareUtilizzi l’ID canonico del fornitore per l’integrazione; entrambe le modalità usano lo stesso.

  2. Passo 2

    Crea un token di accesso utente

    Crei un token di accesso utente con product-listings:write per un account con accesso attuale al fornitore di destinazione. Lo stesso token funziona in entrambe le modalità.

    Cosa controllareCopia subito il token: viene mostrato una sola volta. Conservalo in modo sicuro e invialo come token Bearer con ogni richiesta API.

    Nome
    Sincronizzazione prodotti tramite API personalizzata
    Autorizzazione
    product-listings:write
    Fornitore
    Non selezionato
  3. Passo 3

    Prepara e invia la prima richiesta prodotti

    La modalità asincrona è selezionata; passi a quella sincrona se le servono i risultati di scrittura nella risposta. L’URL utilizza il listingSourceId del fornitore selezionato. Sostituisca YOUR_USER_ACCESS_TOKEN sul suo server, in asincrono anche YOUR_BATCH_KEY, e invii il batch di esempio con POST.

    Cosa controllareAsincrono: verifichi HTTP 202, acceptedCount e failures; le voci accettate le elaboriamo poi noi. Sincrono: verifichi HTTP 200 e l’array degli errori.

    cURL · POST
    curl --request POST \
      --url 'https://api.aura-historia.com/v1/listing-sources/YOUR_LISTING_SOURCE_ID/product-listings/async' \
      --header 'Authorization: Bearer YOUR_USER_ACCESS_TOKEN' \
      --header 'Content-Type: application/json' \
      --header 'Idempotency-Key: YOUR_BATCH_KEY' \
      --data '[
      {
        "sourceListingId": "demo-violin-001",
        "title": {
          "text": "Baroque Violin",
          "language": "en"
        },
        "description": {
          "text": "A baroque violin with a carved scroll.",
          "language": "en"
        },
        "price": {
          "type": "MONETARY",
          "currency": "EUR",
          "amount": 420000
        },
        "availability": null,
        "url": "https://example-shop.com/products/demo-violin-001",
        "images": [
          "https://example-shop.com/images/demo-violin.jpg"
        ]
      }
    ]'

    Restituisce 202 · accettato, elaborato da noi

  4. Passo 4

    Legga il risultato della sua modalità

    Asincrono: acceptedCount più failures corrisponde alle voci inviate, ogni errore al suo indice originale; le voci accettate non richiedono controlli successivi. Sincrono: [] indica che ogni voce è stata completata; in caso di successo parziale sono indicate solo le voci non riuscite; un batch interamente fallito restituisce una risposta di problema.

    Cosa controllareConservi le risposte in modo sicuro. Reinvii un batch asincrono incerto invariato con la stessa chiave; in sincrono ripeta solo gli errori correggibili.

    Endpoint rilevanti
    async/v1/listing-sources/{listingSourceId}/product-listings/async
    sync/v1/listing-sources/{listingSourceId}/product-listings

    Asincrono · accettato per l’elaborazione

    Tutto accettato
    202 · rapporto
    Accettato in parte
    202 · errori
    Nulla accettato
    4xx · 5xx · rapporto

    Sincrono · scritture completate

    Tutto scritto
    200 · []
    Parziale
    200 · errori
    Tutto fallito
    problem+json

III — Riferimento

Riferimento API prodotti partner.

Le regole di ogni metodo in entrambe le modalità, poi il riferimento OpenAPI integrato per gli endpoint dei batch asincroni e sincroni.

  • ASYNC

    Esiti dell’accettazione

    POST, PATCH, PUT e DELETE su /product-listings/async accettano le stesse voci, maxItems 100. HTTP 202 indica che almeno una voce è stata accettata con conferma, oppure che il batch era vuoto; le voci accettate le elaboriamo poi noi, senza nulla da interrogare. Il rapporto è { submissionId, acceptedCount, failures }: acceptedCount più failures corrisponde alle voci inviate, e ogni errore contiene index, error, retryable e, quando può essere restituito in sicurezza, sourceListingId. Se non viene accettato nulla: 503 per invii non confermati, ripetibili o bloccati; altrimenti 500 per errori interni; 413 quando fallisce solo la dimensione; altrimenti 400. L’esistenza dell’annuncio, le aste e l’autorizzazione del fornitore vengono verificate durante l’elaborazione.

  • ASYNC

    Idempotenza e nuovi tentativi

    Invii un solo header Idempotency-Key: da 1 a 128 caratteri ASCII visibili, senza virgole. Senza header viene generata una chiave restituita nel rapporto; se quella risposta va persa, la chiave non può essere recuperata. Dopo una risposta persa o incerta, reinvii esattamente lo stesso batch, invariato e nello stesso ordine, con la stessa chiave, comprese le voci rifiutate. retryable segnala gli errori per cui questo reinvio è appropriato (ENQUEUE_UNCONFIRMED potrebbe essere già in coda); gli errori di validazione e di dimensione non sono ripetibili. Corregga le voci non valide in una nuova richiesta con una nuova chiave, escludendo le voci accettate e quelle incerte. submissionId serve solo alla correlazione. Per consultare lei stesso gli annunci, usi GET su /product-listings; i token delegati richiedono anche product-listings:read.

  • SYNC

    Esiti delle scritture completate

    POST, PATCH, PUT e DELETE su /product-listings: maxItems 100; [] restituisce HTTP 200 con []. Ogni voce viene eseguita nella propria transazione. In caso di successo parziale, HTTP 200 restituisce solo gli errori come { listingSourceId, sourceListingId, error }. Se tutte le voci di un batch non vuoto falliscono, il primo errore diventa una risposta application/problem+json. Non ripeta le voci riuscite.

  • POST

    Campi di creazione e prezzi

    POST richiede sourceListingId, url e images; includa title e description localizzati quando disponibili (il contratto attuale consente omissione o null). I campi venditore e indirizzo non sono supportati. availability può essere null. Il prezzo è { type: MONETARY, currency: EUR, amount: 420000 } in unità monetarie minori, oppure { type: ON_REQUEST }; null non registra un prezzo.

  • PATCH

    Conservare o cancellare

    I campi omessi conservano i valori esistenti. null cancella title, description, availability, price e ogni stima di prezzo. url: null, images: null e auction: null non sono validi (400 BAD_BODY_VALUE). images: [] cancella le immagini. Il contratto dell’intero batch viene validato prima delle transazioni.

  • PUT

    Semantica di inserimento o aggiornamento

    Per gli annunci esistenti, ometta title, description, availability o prezzi per conservare, invii null per cancellare o un valore per impostare. Ometta images per conservare, [] per cancellare o un array per sostituire; null non è valido. Omettere url o inviare null conserva l’URL; un valore lo sostituisce. I nuovi annunci richiedono sourceListingId, url e images; title, description, availability e prezzi omessi/null non registrano un valore.

  • AUCTION

    Associazione all’asta e orari del lotto

    Omettere auction conserva il contesto; auction: null non è valido. All’interno di auction, auctionId deve identificare un’asta esistente dello stesso fornitore: omissione per conservare l’associazione, null per cancellarla, un ID per impostarla. Per lotNumber, cataloguePosition e ogni campo temporale (biddingOpens, scheduledCloses, reportedClosedAt), ometta per conservare, null per cancellare o un valore per impostare. Gli orari sono istanti RFC3339.

  • DELETE

    Ritiro in batch e ripristino

    DELETE accetta un array di { sourceListingId } su entrambi i percorsi. Ritira gli annunci, in modo reversibile, conservandone la cronologia; PUT ripristina un annuncio ritirato prima di applicare i dati attuali. Legga l’esito secondo la sua modalità: il rapporto di accettazione in asincrono, le voci non riuscite in sincrono.

OpenAPI · Prodotti partnerDocumentazione completa(si apre in una nuova scheda)

Riferimento API prodotti partner