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
Krok 4: Wybierz „PUT” z rozwijanego menu¶
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
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
Krok 7: Dodaj kolejny klucz jako Content-Type
¶
Wartość powinna wynosić text/csv
, ponieważ format pliku aktualizacji zapasów to CSV.
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
Krok 9: Kliknij przycisk Wyślij¶
Powinieneś zobaczyć niektóre błędy w treści odpowiedzi. Przykład podano poniżej.
Response
Najczęstsze błędy¶
Oto niektóre z najczęstszych błędów i sposoby ich unikania.
Błąd 1: Brak autoryzacji¶
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
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
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