Przejdź do treści

Weryfikacja aktualizacji zapasów

W celu weryfikacji aktualizacji ceny/stanu zapasów pliku CSV wykorzystywany jest następujący punkt końcowy:

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

Testowanie aktualizacji kanału (feed) z użyciem endpointu /validate

Endpoint /validate jest udostępniany wyłącznie do testów manualnych. Umożliwia sprawdzenie, czy plik CSV z aktualizacjami stanu magazynowego/cen spełnia nasze wymogi dotyczące formatu i zawartości, zanim zostanie przesłany do środowiska produkcyjnego. Proszę wziąć pod uwagę następujące kluczowe kwestie:

  • Tylko do testów:
    Ten endpoint powinien być używany WYŁĄCZNIE w fazie testowej. Pamiętaj, że rozmiar pliku nie może przekroczyć 7,5 MB.

  • Środowisko produkcyjne:
    W środowisku produkcyjnym nie ma potrzeby korzystać z endpointu /validate. Nasz system automatycznie przetwarza Twój kanał i wysyła powiadomienie e-mail w przypadku wystąpienia jakichkolwiek błędów przetwarzania.

  • Widoczność i zarządzanie kanałem (feed):
    Aby mieć pełną kontrolę nad wszystkimi kanałami, w tym bieżącym statusem i zarządzaniem, zalecamy korzystanie z dedykowanego portalu partnerskiego:
    https://hq.partner-solutions.zalan.do/manage

Przestrzegając powyższych wytycznych, możesz mieć pewność, że Twoje kanały zostaną poprawnie zweryfikowane podczas testów, a w środowisku produkcyjnym będą działać płynnie, zautomatyzowane powiadomienia będą natomiast informować o ewentualnych nieprawidłowościach.

Wariant 1: Korzystanie z CLI lub programu

Żądanie HTTP

  • metoda PUT

Parametry adresu URL i nagłówek

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

Przykładowe kody

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);
})

Odpowiedź

W odpowiedzi wyświetla się status 200 z tekstem głównym JSON, zawierający:

  • errors : array of the failures (FCI will reject the whole file)
  • warnings : array of the warnings (FCI will discard the warned lines)
  • result : message containing a summary of the validation
[
  {
  "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": "5704498811",
          "line_number": 20
        },
        {
          "store_id": "1",
          "ean": "40617491831",
          "line_number": 24
        }
      ]
    }
  ],
  "result": "FAILED! Fashion Connector will not be able to process the file. Please correct the errors.",
  "warnings": []
 }
]

Wariant 2: Korzystanie z Postman GUI

Krok 1: Pobierz przeglądarkę Chrome

Chrome Web browser

Jeśli używasz innej przeglądarki, pobierz przeglądarkę Chrome, ponieważ rozszerzenie Postman wymaga przeglądarki Chrome.

Krok 2: Zainstaluj rozszerzenie Postman Chrome

Postman Extension

Tutaj możesz zainstalować rozszerzenie Postman. Możesz także pobrać aplikację Postman na komputer z systemem Windows lub Mac. Uruchom rozszerzenie Postman i utwórz konto w Postman.

Krok 3: Zamknij wszystkie wyskakujące okienka Postman, aby zobaczyć poniższy ekran:

Postman

Postman Intro

Krok 4: Wybierz „PUT” z rozwijanego menu

PUT

Postman PUT

Krok 5: Skopiuj adres URL do pola tekstowego aplikacji Postman

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

Client ID

Identyfikator Klienta jest uzyskiwany od Onboarding Managera. Jako przykładu użyjemy d329krpq. Należy użyć własnego identyfikatora Klienta.

URL

Postman Client ID

Krok 6: Wybierz zakładkę Nagłówki

x-api-key

Dodaj klucz o nazwie `x-api-key' i wprowadź swój tajny Klucz API otrzymany od Państwa Onboarding Managera jako wartość.

x-api-key

Postman X API Key

Krok 7: Dodaj kolejny klucz jako Content-Type

Wartość powinna wynosić text/csv, ponieważ format pliku aktualizacji zapasów to CSV.

Content-Type

Postman Content Type

Krok 8: Wybierz zakładkę Treść

Wybierz binarny przycisk opcji i kliknij Wybierz pliki. Dodaj swój plik ze stanem zapasów w formacie CSV.

Add stock update file

Postman File

Krok 9: Kliknij przycisk Wyślij

Powinieneś zobaczyć niektóre błędy w treści odpowiedzi. Przykład podano poniżej.

Response

Postman Result

Najczęstsze błędy

Oto niektóre z najczęstszych błędów i sposoby ich unikania.

Błąd 1: Brak autoryzacji

Unauthorized

Postman Unauthorized

Przyczyna

Wrong credentials

Sprawdź, czy identyfikator Klienta i/lub klucz API są poprawne.

Błąd 2: Nie można przeanalizować pliku CSV

Parsing failed

Postman CSV missing

Przyczyna

No file or size is too big

Albo wybrano opcję brak pliku ze stanem zapasów do przesłania LUB rozmiar przesłanego pliku przekroczył limit.

Błąd 3: Żądanie zbyt duże

Request exceeded max char limit

Postman Size

Przyczyna

Request exceeded max char limit

Być może rozmiar pliku ze stanem zapasów przekracza 7,5 MB lub kodowanie pliku ze stanem zapasów nie ma formatu UTF-8.

Błąd 4: Nieobsługiwany typ mediów

Unsupported media type

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

Przyczyna

Wrong Content-Type header

Use Content-Type: text/csv