Vai al contenuto

Convalida dell’aggiornamento delle giacenze

Per convalidare un file CSV di aggiornamento giacenze/prezzo, viene utilizzato il seguente endpoint:

https://merchants-connector-importer.zalandoapis.com/{ClientID}/validate/

Testare gli aggiornamenti del Feed con l’endpoint /validate

L’endpoint /validate è fornito esclusivamente per test manuali. Consente di controllare se il file CSV per l’aggiornamento di scorte/prezzi rispetta i nostri requisiti di formattazione e contenuto prima dell’invio in produzione. Si prega di considerare i seguenti punti fondamentali:

  • Solo per test:
    Questo endpoint deve essere utilizzato ESCLUSIVAMENTE durante la fase di test. Ricordarsi che la dimensione del file non deve superare 7,5 MB.

  • Ambiente di produzione:
    In produzione, non è necessario utilizzare l’endpoint /validate. Il nostro sistema elabora il feed in modo automatico e invia una notifica e-mail in caso di eventuali errori di elaborazione.

  • Visibilità e gestione del Feed:
    Per un quadro completo di tutti i feed, incluso lo stato in tempo reale e la gestione degli stessi, si consiglia vivamente di utilizzare il nostro portale partner dedicato:
    https://hq.partner-solutions.zalan.do/manage

Seguendo queste linee guida, potrà assicurarsi che i suoi feed siano convalidati correttamente durante la fase di test e integrati senza problemi in produzione, con notifiche automatiche in caso di errori.

Opzione 1: Utilizzo di una CLI o di un programma

Richiesta HTTP

  • Metodo PUT

Parametri URL e header

Parameter Type Example
Client ID String d329krpq
Stock File Name CSV 20181023_update.csv
API Key (x-api-key) String lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ00OWr

Esempi di codice

Shell

curl -v -X PUT -H "x-api-key: lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ00OWr" 
-H "Content-Type: text/csv" 
--upload-file 20181023_update.csv 
https://merchants-connector-importer.zalandoapis.com/d329krpq/validate | jq '.'

Powershell

Invoke-WebRequest `
-UseBasicParsing `
-Uri https://merchants-connector-importer.zalandoapis.com/d329krpq/validate `
-Method PUT -InFile 20181023_update.csv `
-Headers @{'x-api-key'='lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ00OWr'; 'content-type'='text/csv'}

Python

import requests

client_id = "d329krpq"

headers = {
    'x-api-key': "lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ00OWr",
    'content-type': "application/csv",
    'cache-control': "no-cache"
}

with open('feed_data_to_validate.csv', 'rb') as f:
    res = requests.put(f"https://merchants-connector-importer.zalandoapis.com/{client_id}/validate".format(client_id=client_id), headers=headers, data=f.read())

    print(res.json())

Nodejs

const axios = require('axios')
const fs = require('fs')

const clientId = "d329krpq"
const api_key = "lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ00OWr"
const url = `https://merchants-connector-importer.zalandoapis.com/${clientId}/validate`
const config = {
    headers:{
        "content-type": "application/csv",
        "x-api-key": api_key,
        "cache-control": "no-cache"
    }
}
const data = fs.createReadStream('file.csv')

axios.put(url, data, config)
.then((response) => {
    // handle success
    console.log(response);
})
.catch((error) => {
    // handle error
    console.log(error);
})

Risposta

Il risultato sarà uno stato 200 con un corpo JSON che contiene:

  • errors : array degli errori (FCI rifiuterà l’intero file)
  • warnings : array degli avvisi (FCI scarterà le righe che contengono avvisi)
  • result : un messaggio che contiene una sintesi della convalida
[
  {
  "errors": [
    {
      "details": [
        "EAN length must be 12 or 13",
        "EAN checksum invalid"
      ],
      "message": "column name : [ean]",
      "type": "Invalid column value",
      "line_numbers": [
        {
          "store_id": "1",
          "ean": "5704498123",
          "line_number": 20
        },
        {
          "store_id": "1",
          "ean": "4061749341",
          "line_number": 24
        }
      ]
    }
  ],
  "result": "FAILED! Fashion Connector will not be able to process the file. Please correct the errors.",
  "warnings": []
 }
]

Opzione 2: Utilizzo della GUI di Postman

Fase 1: Scaricare il browser Chrome

Chrome Web browser

Se si utilizza un altro browser scaricare Chrome perché l’estensione Postman lo richiede.

Fase 2: Installare l’estensione Postman per Chrome

Postman Extension

È possibile installare l’estensione Postman da qui. È anche possibile scaricare l’app Postman sul proprio dispositivo Windows o Mac. Aprire l’estensione Postman e creare un account in Postman.

Fase 3: Chiudere tutti i popup all’interno di Postman fino a quando si vede la schermata riportata di seguito:

Postman

Introduzione Postman

Fase 4: Selezionare "PUT" nel menu a tendina

PUT

Postman PUT

Fase 5: Copiare l’url nella casella di testo in Postman

https://merchants-connector-importer.zalandoapis.com/{ClientID}/validate

Client ID

L’ID cliente vi viene fornito dal vostro Onboarding Manager. Useremo d329krpqcome esempio. Vi preghiamo di usare il vostro ID cliente.

URL

Postman Client ID

Fase 6: Selezionare la scheda degli header

x-api-key

Aggiungere una chiave chiamata x-api-key e digitare la Chiave API segreta ricevuta dal proprio Onboarding Manager (un valore).

x-api-key

Postman X API Key

Fase 7: Aggiungere un’altra chiave come tipo di contenuto

Il valore dovrebbe essere txt/csv dal momento che il file di aggiornamento delle giacenze è in formato CSV.

Content-Type

Postman Content Type

Fase 8: Selezionare la scheda del corpo

Selezionare il pulsante binario e cliccare su Scegli file. Aggiungere il proprio file in formato CSV.

Add stock update file

Postman File

Fase 9: Cliccare sul pulsante di invio

Nel corpo della risposta si dovrebbero vedere alcuni errori. Di seguito viene fornito un esempio.

Response

Postman Result

Errori più comuni

Riportiamo alcuni tra gli errori più comuni con istruzioni su come risolverli

Errore 1 Non autorizzato

Unauthorized

Postman Unauthorized

Motivo

Wrong credentials

Verificare se l’ID cliente e/o la chiave API sono corretti.

Errore 2: Impossibile eseguire la parsificazione del file CSV

Parsing failed

Postman CSV missing

Motivo

No file or size is too big

Può essere che nessun file delle giacenze sia stato selezionato per l’upload OPPURE che la dimensione del file caricato fossesuperiore al limite.

Errore 3: La richiesta ha superato

Request exceeded max char limit

Postman Size

Motivo

Request exceeded max char limit

Può darsi che il file delle giacenze sia più grande di 7,5 MB o che non sia codificato in UTF-8.

Errore 4: Tipo di supporto non supportato

Unsupported media type

{
"type": "about:blank",
"title": "Unsupported media type",
"status": 415,
"detail": "Unsupported media type"
}

Motivo

Wrong Content-Type header

Use Content-Type: text/csv