Specyfikacja plików w formacie CSV: Różnice pomiędzy wersjami

Z Pomoc Netis
mNie podano opisu zmian
mNie podano opisu zmian
 
(Nie pokazano 8 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 19: Linia 19:
'''1. Zakładanie nowych lub aktualizacja istniejących towarów.'''
'''1. Zakładanie nowych lub aktualizacja istniejących towarów.'''


Tab. 1. Żądanie
''Tab. 1. Żądanie''
{| class="wikitable"
{| class="wikitable"
|-
|-
Linia 27: Linia 27:
|}
|}


Tab. 2. Parametry żądania
''Tab. 2. Parametry żądania''
 
{| class="wikitable"
{| class="wikitable"
|-
|-
Linia 46: Linia 45:
produkt_id,nazwa,kod_paskowy,producent_id,jednostka,gramatura_netto,opis
produkt_id,nazwa,kod_paskowy,producent_id,jednostka,gramatura_netto,opis
kolejne produkty muszą być oddzielone znakiem nowej linii
kolejne produkty muszą być oddzielone znakiem nowej linii
''Tab. 3. Opis pól pliku z produktami''
{| class="wikitable"
{| class="wikitable"
|-
|-
Linia 64: Linia 65:
| opis || Opis produktu wyświetlany na stronie ||  
| opis || Opis produktu wyświetlany na stronie ||  
|}
|}
<big>'''2. Tworzenie lub modyfikacja powiązań towarów ze sklepami.'''</big>
''Tab. 4. Żądanie''
{| class="wikitable"
|-
! Metoda !! URL
|-
| POST || /import/productsShop
|}
''Tab. 5. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|}
''Przykład użycia curl:''
curl -F 'file=@/ścieżka/do/pliku' -H 'X-ApiKey: klucz' -H "X-Token: token" -H
'Content-Type: text/csv' https://nazwa_domeny/import/productsShop
'''Specyfikacja pliku z powiązaniami produktów ze sklepami'''
Plik musi być w formacie csv z następującą kolejnością pól
produkt_id,cena,nowosc,promocja,gazetka,reklama,stan
kolejne powiązania muszą być oddzielone znakiem nowej linii
''Tab. 6. Opis pól pliku z powiązaniami''
{| class="wikitable"
|-
! Nazwa Pola !! Opis !! Dodatkowe informacje
|-
| produkt_id || Identyfikator produktu z danego sklepu ||
|-
| cena || Cena brutto wyrażona w groszach ||
|-
| nowosc | Czy dany towar jest nowością || Możliwe wartości: 0 lub 1
|-
| promocja || Czy dany towar jest w promocji || Możliwe wartości: 0 lub 1
|-
| gazetka || Czy dany towar jest z aktualnej gazetki || Możliwe wartości: 0 lub 1
|-
| reklama || Dodatkowe promowanie produktów w wynikach wyszukiwania || Możliwe wartości: 1 - 10
|-
| stan || Liczba towaru na stanie || 1000 oznacza 1 sztukę lub 1 kilogram
|}
<big>'''3. Tworzenie lub modyfikacja powiązań towarów ze sklepami.'''</big>
Tab. 7. Żądanie
{| class="wikitable"
|-
! Metoda !! URL
|-
| POST || /import/categories
|}
''Tab. 8. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|}
''Przykład użycia curl:''
curl -F 'file=@/ścieżka/do/pliku' -H 'X-ApiKey: klucz' -H "X-Token: token" -H
'Content-Type: text/csv' https://nazwa_domeny/import/categories
'''Specyfikacja pliku z kategoriami'''
Plik musi być w formacie csv z następującą kolejnością pól
id,nadrzedna_id,nazwa,opis
kolejne kategorie muszą być oddzielone znakiem nowej linii
''Tab. 9. Opis pól pliku z kategoriami''
{| class="wikitable"
|-
! Nazwa pola !! opis !! Dodatkowe informacje
|-
| id || Id kategorii ||
|-
| nadrzedna_id || Id kategorii nadrzędnej (puste jeśli kategoria jest kategorią główną) || Podane id musi istnieć w bazie kategorii
|-
| nazwa || Nazwa kategorii ||
|-
| opis || Opis kategorii ||
|}
'''<big>4. Tworzenie lub modyfikacja producentów</big>'''
''Tab. 10. Żądanie''
{| class="wikitable"
|-
! Metoda !! URL
|-
| POST || /import/brands
|}
''Tab. 11. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|}
''Przykład użycia curl:''
curl -F 'file=@/ścieżka/do/pliku' -H 'X-ApiKey: klucz' -H "X-Token: token" -H
'Content-Type: text/csv' https://nazwa_domeny/import/brands
'''Specyfikacja pliku z producentami'''
Plik musi być w formacie csv z następującą kolejnością pól
id,nazwa
kolejni producenci muszą być oddzieleni znakiem nowej linii
''Tab. 12. Opis pól pliku z producentami''
{| class="wikitable"
|-
! Nazwa pola !! Opis !! Dodatkowe informacje
|-
| id || ID producenta ||
|-
| nazwa || Nazwa producenta ||
|}
<big>'''Eksport danych'''</big>
'''1. Eksport produktów'''
''Tab. 13. Żądanie''
{| class="wikitable"
|-
! Metoda !! URL
|-
| GET || /export/products
|}
''Tab. 14. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|}
''Przykład użycia curl:''
curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku
https://nazwa_domeny/export/products
'''Specyfikacja pliku z produktami'''
Plik w formacie csv z następującą kolejnością pól:
produkt_id,nazwa,kod_paskowy,producent_id,jednostka,gramatura_netto,opis
Opis pól jest analogiczny do importowanych.
Kolejne produkty oddzielone znakiem nowej linii
'''2. Eksport powiązań produktów'''
''Tab. 15. Żądanie''
{| class="wikitable"
|-
! Metoda !! URL
|-
| GET || /export/productsShop
|}
''Tab. 16. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|}
''Przykład użycia curl:''
curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku
https://nazwa_domeny/export/productsShop
'''Specyfikacja pliku z produktami'''
Plik w formacie csv z następującą kolejnością pól:
produkt_id,cena,nowosc,promocja,gazetka,reklama,stan
Opis pól jest analogiczny do importowanych.
Kolejne produkty oddzielone znakiem nowej linii
'''3. Eksport kategorii'''
''Tab. 17. Żądanie''
{| class="wikitable"
|-
! Metoda !! URL
|-
| GET || /export/categories
|}
''Tab. 18. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|}
''Przykład użycia curl:''
curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku
https://nazwa_domeny/export/categories
'''Specyfikacja pliku z produktami'''
Plik w formacie csv z następującą kolejnością pól:
id,nadrzedna_id,nazwa,opis
Opis pól jest analogiczny do importowanych.
Kolejne produkty oddzielone znakiem nowej linii
'''4. Eksport producentów'''
''Tab. 19. Żądanie''
{| class="wikitable"
|-
! Metoda !! URL
|-
| GET || /export/brands
|}
''Tab. 20. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|}
''Przykład użycia curl:''
curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku
https://nazwa_domeny/export/brands
'''Specyfikacja pliku z produktami'''
Plik w formacie csv z następującą kolejnością pól:
id,nazwa
Opis pól jest analogiczny do importowanych.
Kolejne produkty oddzielone znakiem nowej linii
'''5. Eksport zamówień'''
''Tab. 21. Żądanie''
{| class="wikitable"
|-
! Metoda !! URL
|-
| GET || /export/orders
|}
''Tab. 22. Parametry żądania''
{| class="wikitable"
|-
! Typ !! Parametr !! Wartość
|-
| HEAD || X-ApiKey || string
|-
| HEAD || X-Token || string
|-
| HEAD || Accept || application/json lub application/xml
|-
| GET || formDate || Data format YYYY-MM-DD
|-
| GET || statuses || Int oddzielone przecinkami: np. 0,1,2
|-
| GET || limit || Int z zakresu 1, 100
|-
| GET || Page || Int > 0
|}
statusy zamówień:
id | nazwa
----------+-----------------------------------
        0 | Nowe
        1 | Przypisane do operatora
        2 | W trakcie kompletacji
        3 | Skompletowane. Czeka na transport
        4 | W trakcie transportu
        5 | Spakowane. Czeka na paragon
      10 | Zakonczone
      12 | Anulowane
''Przykład użycia curl:''
curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku
https://nazwa_domeny / expor t /orders?fromDate=2020-01-
01&statuses=0,1,5&limit=10&page=1
Zamówienia są eksportowane w formacie json lub xml w zależności od parametru.
Przykładowa odpowiedz w formacie json:
[
  {
      "id": 1462936,
      "data": "2020-02-17",
      "czas": "2020-02-17 12:25:25",
      "data_odbioru": "2020-02-21 17:00:00",
      "koszt_dostawy": 999,
      "adres": {
        "imie": "Michał",
        "nazwisko": "Motyczko",
        "kod": "01-100",
        "miasto": "Warszawa",
        "ulica": "Aleje Jerozolimskie 23/4",
        "telefon": "123456789"
      },
      "prezent": false,
      "kwota_rabatu": 0,
      "klient": {
        "id": 353322
      },
      "status": "Nowe",
      "metoda_platnosci": "Gotówka",
      "sklep": "Warszawa",
      "produkty": [
        {
            "plu": 290403,
            "ilosc_zamowiona": 5000,
            "ilosc_zrealizowana": 5000,
            "cena": 299,
            "wartosc": 1495000,
            "uwagi": "",
            "produkt": {
              "nazwa": "ŚLEDZIKI NA/RAZ/S/ŚMIET 100",
              "kod_paskowy": "5900344403664",
              "plu_sklepowe": 130728
            }
        }
      ]
  }
]
'''6. Zmiana statusu zamówienia:'''
POST /backendApi/updateOrderStatus
Parametry:
order - int - numer zamówienia
status - int - nowy status zamówienia
Możliwe statusy (id - nazwa)
0 - "Nowe"
1 - "Przypisane do operatora"
2 - "W trakcie kompletacj"
3 - "Skompletowane. Czeka na transport"
4 - "W trakcie transportu"
5 - "Spakowane. Czeka na paragon"
10 - "Zakonczone"
12 - "Anulowane"
Zwraca:
403 - przy braku autoryzacji
404 - jak nie znajdzie zamówienia
200 - w innym wypadku:
aktualizacja ok - ['status' => 'success', 'errors' => null, 'message' => 'Status został
zaktualizowany.),
błędy walidacji danych - ['status' => 'failed', 'errors' => [/Tablica błędów/], 'message'
=> null]
cURL:
curl --location --request POST
'http://admin.sklep.localhost:8999/backendApi/updateOrderStatus' \
--header 'x-token: [token]' \
--header 'x-apikey: [api-key]' \
--form 'order=1462929' \
--form 'status=1'
lub
curl --location --request POST
'http://admin.sklep.localhost:8999/backendApi/updateOrderStatus' \
--header 'x-token: [token]' \
--header 'x-apikey: [api-key]' \
--header 'Content-Type: application/json' \
--data-raw '{"order": 1462929, "status": 1}'

Aktualna wersja na dzień 11:50, 10 lis 2020

Uzyskanie tokenu

Przed wywołaniem akcji importu należy najpierw uzyskać token za pomocą metody api

https://domena.pl/backendApi/login

Przykład użycia curl:

curl -H "X-ApiKey: klucz" --data '{"username":"login"}' -X POST "https://domena.pl/backendApi/login

Odpowiedź powinna wyglądać następująco: {"token":"c55cf6ff713b22e353c2224e0063a37c02d87f62"}

Uzyskany token jest następnie użyty przy komunikacji z API.

Import danych

1. Zakładanie nowych lub aktualizacja istniejących towarów.

Tab. 1. Żądanie

Metoda URL
POST /import/products

Tab. 2. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -F 'file=@/ścieżka/do/pliku' -H 'X-ApiKey: klucz' -H "X-Token: token" -H 'Content-Type: text/csv' https://nazwa_domeny/import/products

Specyfikacja pliku z produktami

Plik musi być w formacie csv z następującą kolejnością pól: produkt_id,nazwa,kod_paskowy,producent_id,jednostka,gramatura_netto,opis kolejne produkty muszą być oddzielone znakiem nowej linii

Tab. 3. Opis pól pliku z produktami

Nazwa pola Opis Dodatkowe informacje
produkt_id Identyfikator produktu w sklepie
nazwa Nazwa
kod_paskowy Kod_paskowy
producent_id Identyfikator producenta Podane id musi istnieć w bazie producentów
jednostka Identyfikator jednostki miary Np. szt,kg,op
gramatura_netto Waga w gramach bez opakowania
opis Opis produktu wyświetlany na stronie

2. Tworzenie lub modyfikacja powiązań towarów ze sklepami.

Tab. 4. Żądanie

Metoda URL
POST /import/productsShop


Tab. 5. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -F 'file=@/ścieżka/do/pliku' -H 'X-ApiKey: klucz' -H "X-Token: token" -H 'Content-Type: text/csv' https://nazwa_domeny/import/productsShop

Specyfikacja pliku z powiązaniami produktów ze sklepami

Plik musi być w formacie csv z następującą kolejnością pól produkt_id,cena,nowosc,promocja,gazetka,reklama,stan kolejne powiązania muszą być oddzielone znakiem nowej linii

Tab. 6. Opis pól pliku z powiązaniami

Nazwa Pola Opis Dodatkowe informacje
produkt_id Identyfikator produktu z danego sklepu
cena Cena brutto wyrażona w groszach
Czy dany towar jest nowością Możliwe wartości: 0 lub 1
promocja Czy dany towar jest w promocji Możliwe wartości: 0 lub 1
gazetka Czy dany towar jest z aktualnej gazetki Możliwe wartości: 0 lub 1
reklama Dodatkowe promowanie produktów w wynikach wyszukiwania Możliwe wartości: 1 - 10
stan Liczba towaru na stanie 1000 oznacza 1 sztukę lub 1 kilogram

3. Tworzenie lub modyfikacja powiązań towarów ze sklepami.

Tab. 7. Żądanie

Metoda URL
POST /import/categories

Tab. 8. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -F 'file=@/ścieżka/do/pliku' -H 'X-ApiKey: klucz' -H "X-Token: token" -H 'Content-Type: text/csv' https://nazwa_domeny/import/categories

Specyfikacja pliku z kategoriami

Plik musi być w formacie csv z następującą kolejnością pól id,nadrzedna_id,nazwa,opis kolejne kategorie muszą być oddzielone znakiem nowej linii

Tab. 9. Opis pól pliku z kategoriami

Nazwa pola opis Dodatkowe informacje
id Id kategorii
nadrzedna_id Id kategorii nadrzędnej (puste jeśli kategoria jest kategorią główną) Podane id musi istnieć w bazie kategorii
nazwa Nazwa kategorii
opis Opis kategorii

4. Tworzenie lub modyfikacja producentów

Tab. 10. Żądanie

Metoda URL
POST /import/brands

Tab. 11. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -F 'file=@/ścieżka/do/pliku' -H 'X-ApiKey: klucz' -H "X-Token: token" -H 'Content-Type: text/csv' https://nazwa_domeny/import/brands

Specyfikacja pliku z producentami

Plik musi być w formacie csv z następującą kolejnością pól id,nazwa kolejni producenci muszą być oddzieleni znakiem nowej linii

Tab. 12. Opis pól pliku z producentami

Nazwa pola Opis Dodatkowe informacje
id ID producenta
nazwa Nazwa producenta

Eksport danych

1. Eksport produktów

Tab. 13. Żądanie

Metoda URL
GET /export/products

Tab. 14. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku https://nazwa_domeny/export/products

Specyfikacja pliku z produktami

Plik w formacie csv z następującą kolejnością pól: produkt_id,nazwa,kod_paskowy,producent_id,jednostka,gramatura_netto,opis Opis pól jest analogiczny do importowanych. Kolejne produkty oddzielone znakiem nowej linii


2. Eksport powiązań produktów

Tab. 15. Żądanie

Metoda URL
GET /export/productsShop

Tab. 16. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku https://nazwa_domeny/export/productsShop

Specyfikacja pliku z produktami

Plik w formacie csv z następującą kolejnością pól: produkt_id,cena,nowosc,promocja,gazetka,reklama,stan Opis pól jest analogiczny do importowanych. Kolejne produkty oddzielone znakiem nowej linii


3. Eksport kategorii

Tab. 17. Żądanie

Metoda URL
GET /export/categories

Tab. 18. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku https://nazwa_domeny/export/categories

Specyfikacja pliku z produktami

Plik w formacie csv z następującą kolejnością pól: id,nadrzedna_id,nazwa,opis Opis pól jest analogiczny do importowanych. Kolejne produkty oddzielone znakiem nowej linii


4. Eksport producentów

Tab. 19. Żądanie

Metoda URL
GET /export/brands

Tab. 20. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string

Przykład użycia curl:

curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku https://nazwa_domeny/export/brands

Specyfikacja pliku z produktami

Plik w formacie csv z następującą kolejnością pól: id,nazwa Opis pól jest analogiczny do importowanych. Kolejne produkty oddzielone znakiem nowej linii


5. Eksport zamówień

Tab. 21. Żądanie

Metoda URL
GET /export/orders

Tab. 22. Parametry żądania

Typ Parametr Wartość
HEAD X-ApiKey string
HEAD X-Token string
HEAD Accept application/json lub application/xml
GET formDate Data format YYYY-MM-DD
GET statuses Int oddzielone przecinkami: np. 0,1,2
GET limit Int z zakresu 1, 100
GET Page Int > 0

statusy zamówień: id | nazwa


+-----------------------------------

       0 | Nowe
       1 | Przypisane do operatora
       2 | W trakcie kompletacji
       3 | Skompletowane. Czeka na transport
       4 | W trakcie transportu
       5 | Spakowane. Czeka na paragon
      10 | Zakonczone
      12 | Anulowane


Przykład użycia curl:

curl -H 'X-ApiKey: klucz' -H "X-Token: token" -H -o nazwa_pliku https://nazwa_domeny / expor t /orders?fromDate=2020-01- 01&statuses=0,1,5&limit=10&page=1

Zamówienia są eksportowane w formacie json lub xml w zależności od parametru.

Przykładowa odpowiedz w formacie json:


[

  {
     "id": 1462936,
     "data": "2020-02-17",
     "czas": "2020-02-17 12:25:25",
     "data_odbioru": "2020-02-21 17:00:00",
     "koszt_dostawy": 999,
     "adres": {
        "imie": "Michał",
        "nazwisko": "Motyczko",
        "kod": "01-100",
        "miasto": "Warszawa",
        "ulica": "Aleje Jerozolimskie 23/4",
        "telefon": "123456789"
     },
     "prezent": false,
     "kwota_rabatu": 0,
     "klient": {
        "id": 353322
     },
     "status": "Nowe",
     "metoda_platnosci": "Gotówka",
     "sklep": "Warszawa",
     "produkty": [
        {
           "plu": 290403,
           "ilosc_zamowiona": 5000,
           "ilosc_zrealizowana": 5000,
           "cena": 299,
           "wartosc": 1495000,
           "uwagi": "",
           "produkt": {
              "nazwa": "ŚLEDZIKI NA/RAZ/S/ŚMIET 100",
              "kod_paskowy": "5900344403664",
              "plu_sklepowe": 130728
           }
        }
     ]
  }

]



6. Zmiana statusu zamówienia:

POST /backendApi/updateOrderStatus

Parametry: order - int - numer zamówienia status - int - nowy status zamówienia

Możliwe statusy (id - nazwa)

0 - "Nowe"

1 - "Przypisane do operatora"

2 - "W trakcie kompletacj"

3 - "Skompletowane. Czeka na transport"

4 - "W trakcie transportu"

5 - "Spakowane. Czeka na paragon"

10 - "Zakonczone"

12 - "Anulowane"


Zwraca:

403 - przy braku autoryzacji

404 - jak nie znajdzie zamówienia

200 - w innym wypadku:

aktualizacja ok - ['status' => 'success', 'errors' => null, 'message' => 'Status został zaktualizowany.),

błędy walidacji danych - ['status' => 'failed', 'errors' => [/Tablica błędów/], 'message' => null]

cURL:

curl --location --request POST

'http://admin.sklep.localhost:8999/backendApi/updateOrderStatus' \

--header 'x-token: [token]' \

--header 'x-apikey: [api-key]' \

--form 'order=1462929' \

--form 'status=1'


lub

curl --location --request POST

'http://admin.sklep.localhost:8999/backendApi/updateOrderStatus' \

--header 'x-token: [token]' \

--header 'x-apikey: [api-key]' \

--header 'Content-Type: application/json' \

--data-raw '{"order": 1462929, "status": 1}'