openapi: 3.0.1 info: title: MojeGS1 API description: | Aby uzyskać dane dostępu do API zaloguj się do portalu mojegs1.pl i przejdź do "Moje dane" -> "Profile użytkowników". Otwórz dane użytkownika na którego się zalogowano i w sekcji "Dostęp do MojeGS1 API" kliknij przycisk "Utwórz nowe dane dostępowe do MojeGS1 API". **Uwaga!** Każdorazowe kliknięcie przycisku "Utwórz nowe dane dostępowe do MojeGS1 API" spowoduje utworzenie nowych danych dostępowych do api dla danego konta. Zasoby zabezpieczone są mechanizmem Basic Auth. Aby móc w pełni korzystać z API każde zapytanie wymaga ustawienia nagłówka autoryzacyjnego. Jest wprowadzony limit zapytań. Mozna wykonać maksymalnie 60 zapytań na 1 minutę dla jednego adresu IP. Nie jest wymagana przerwa pomiędzy zapytaniami o ile nie zostanie przekroczony próg 60 zapytań na minutę. **Zmiany, które zaszły w odniesieniu do poprzedniej wersji API** - dla atrybutów produktu dodano pole "packaging" umożliwiające dodawanie i pobieranie danych o opakowaniu zwrotnym objętym systemem kaucyjnym w Polsce version: "2" servers: - url: https://mojegs1.pl/api/v2/ security: - basicAuth: [] paths: /products/{GTIN}: get: tags: - Produkty summary: Szczegóły produktu operationId: productDetails parameters: - name: GTIN in: path description: | Pole zawsze OBOWIĄZKOWE. Numer GTIN produktu (popularnie zwany EAN). Numer może być zapisany w postaci 8, 13 lub 14 cyfr. Powinien pochodzić z wykupionej puli Uczestnika Systemu GS1, lub z zagranicznej puli, jeśli Uczestnik jest częścią międzynarodowej korporacji, lub jeśli wprowadzający jest jedynym dystrybutorem danego produktu na Polskę. GTIN jest unikalny w skali całego systemu, oraz bezwzględnie w skali pliku importowego. Nie podlega wariantowości. System przyjmuje numery jedynie o zasięgu globalnym. Nie można wskazywać produktów zmiennowagowych oraz zmiennoilościowych, ponieważ są one przeznaczone jedynie na rynek lokalny. Jeśli nie jesteś pewien jakie numery przypisać swoim produktom, skorzystaj z funkcjonalności "wolne numery" w MojeGS1. required: true schema: maxLength: 14 minLength: 14 type: string responses: 200: description: Dane produktu content: application/vnd.api+json: schema: $ref: '#/components/schemas/product' example: type: products id: "5903321563092" attributes: brandName: Marka description: Opis produktu descriptionLanguage: pl commonName: Produkt testowy gpcCode: 10000002 lastModificationDate: 2018-08-06T09:47:10.543Z name: Marka Podmarka Produkt testowy wariant 50kg netContent: 50 netContentUnit: kg productImage: http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg productWebsite: http://www.przykladowy-produkt.com qualityDetails: suggestions: - Dane na stronie internetowej produktu powinny dotyczyć dokładnie tego produktu status: ACT subBrandName: Podmarka targetMarket: - PL - DE variant: wariant 401: description: Błąd autoryzacji content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd autoryzacji 404: description: Nie znaleziono zasobu content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Nie znaleziono zasobu detail: Nie znaleziono produktu na podstawie podanego numeru GTIN 500: description: Błąd przetwarzania żądania content: {} put: tags: - Produkty summary: Stworzenie lub aktualizacja produktu operationId: productAddOrUpdate parameters: - name: Content-Type in: header required: true schema: type: string enum: - application/json - name: GTIN in: path description: | Pole zawsze OBOWIĄZKOWE. Numer GTIN produktu (popularnie zwany EAN). Numer może być zapisany w postaci 8, 13 lub 14 cyfr. Powinien pochodzić z wykupionej puli Uczestnika Systemu GS1, lub z zagranicznej puli, jeśli Uczestnik jest częścią międzynarodowej korporacji, lub jeśli wprowadzający jest jedynym dystrybutorem danego produktu na Polskę. GTIN jest unikalny w skali całego systemu, oraz bezwzględnie w skali pliku importowego. Nie podlega wariantowości. System przyjmuje numery jedynie o zasięgu globalnym. Nie można wskazywać produktów zmiennowagowych oraz zmiennoilościowych, ponieważ są one przeznaczone jedynie na rynek lokalny. Jeśli nie jesteś pewien jakie numery przypisać swoim produktom, skorzystaj z funkcjonalności "wolne numery" w MojeGS1. required: true schema: maxLength: 14 minLength: 14 type: string requestBody: description: | Dane produktu, który powinien zostać stworzony lub zaktualizowany. Przydatne linki opisujące typy i tworzenie numerów GTIN: - [Jak dodać i aktywować numer GTIN-14 (stała ilość)?](https://gs1pl.org/mojegs1/jak-dodac-i-aktywowac-numer-gtin-14-stala-ilosc/) - [Globalny Numer Jednostki Handlowej (GTIN)](https://gs1pl.org/standardy/gtin/) content: application/vnd.api+json: schema: $ref: '#/components/schemas/product' examples: Produkt do sprzedaży detalicznej/online (GTIN-13, GTIN-12, GTIN-8): value: data: type: products id: "5903321563092" attributes: brandName: Marka description: Opis produktu descriptionLanguage: pl commonName: Produkt testowy gpcCode: 10000002 netContent: 50 netContentUnit: kg productImage: http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg productWebsite: http://www.przykladowy-produkt.com status: ACT subBrandName: Podmarka targetMarket: - PL - DE variant: wariant Opakowanie zbiorcze do sprzedaży detalicznej/online (GTIN-13): value: data: type: products id: "5903321563092" attributes: brandName: Marka description: Opis produktu descriptionLanguage: pl commonName: Produkt testowy gpcCode: 10000002 netContent: 50 netContentUnit: kg productImage: http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg productWebsite: http://www.przykladowy-produkt.com status: ACT subBrandName: Podmarka targetMarket: - PL - DE variant: wariant countItemsInCollectivePackage: 12 Opakowanie zbiorcze jednorodne do sprzedaży hurtowej (GTIN-14): value: data: type: products id: "15903321563099" attributes: description: Opis produktu descriptionLanguage: pl status: ACT countItemsInCollectivePackage: 12 Produkt o zmiennej ilości/masie w opakowaniach hurtowych (GTIN-14 z cyfrą wskaźnikową 9): value: data: type: products id: "95900009933263" attributes: description: Opis produktu descriptionLanguage: pl status: ACT netContentUnit: ml required: true responses: 200: description: Stworzono lub zaktualizowano produkt content: application/vnd.api+json: schema: type: object properties: success: $ref: '#/components/schemas/productSuccess' example: result: OK qualityDetails: suggestions: - Dane na stronie internetowej produktu powinny dotyczyć dokładnie tego produktu 400: description: Błędne zapytanie content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - source: data/attributes/name title: Błąd walidacji detail: Pole jest wymagane 401: description: Błąd autoryzacji content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd autoryzacji 500: description: Błąd przetwarzania żądania content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd serwera /products: get: tags: - Produkty summary: Lista produktów operationId: productList parameters: - name: filter[keyword] in: query description: Filtrowanie po słowie kluczowym (fragmencie GTIN / nazwie / GPC) schema: type: string - name: page[offset] in: query description: Numer strony schema: type: string - name: page[limit] in: query description: Liczba produktów na stronie schema: type: string - name: sort in: query description: | Sort field: * `name` * `gtin` * `date` * `gpc` Aby posortować malejąco użyj prefiksu "-" przed nazwą pola schema: type: string responses: 200: description: Wynik zapytania content: application/vnd.api+json: schema: type: object properties: links: type: object properties: first: type: string description: Przejście do pierwszej strony wyników example: first: https://mojegs1.pl/api/v1/products?page[offset]=1&page[limit]=10&sort=-name prev: https://mojegs1.pl/api/v1/products?page[offset]=1&page[limit]=10&sort=-name next: https://mojegs1.pl/api/v1/products?page[offset]=2&page[limit]=10&sort=-name last: https://mojegs1.pl/api/v1/products?page[offset]=5&page[limit]=10&sort=-name data: type: object example: - type: products id: "5903321563092" attributes: brandName: Marka commonName: Produkt testowy description: Opis produktu descriptionLanguage: pl gpcCode: 10000002 lastModificationDate: 2018-08-06T09:47:10.543Z name: Marka Podmarka Produkt testowy wariant 50kg netContent: 50 netContentUnit: kg productImage: http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg productWebsite: http://www.przykladowy-produkt.com qualityDetails: suggestions: - Dane na stronie internetowej produktu powinny dotyczyć dokładnie tego produktu status: ACT subBrandName: Podmarka targetMarket: - PL - DE variant: wariant - type: products id: "5903321563093" attributes: brandName: Marka2 commonName: Produkt testowy description: Opis produktu descriptionLanguage: pl gpcCode: 10000002 lastModificationDate: 2018-08-06T09:47:10.543Z name: Marka2 Podmarka2 Produkt testowy wariant2 netContent: 1 netContentUnit: szt productImage: http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg productWebsite: http://www.przykladowy-produkt.com qualityDetails: suggestions: null status: ACT subBrandName: Podmarka2 targetMarket: - PL - DE variant: wariant2 allOf: - $ref: '#/components/schemas/productsCollection' 400: description: Błędne zapytanie content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: title: Błąd walidacji description: Pole page[ offset ] musi składać się z cyfr, 401: description: Błąd autoryzacji content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd autoryzacji 500: description: Błąd przetwarzania żądania content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd serwera /localizations/{GLN}: get: tags: - Lokalizacje summary: Lokalizacja operationId: localizationDetails parameters: - name: GLN in: path description: | Pole zawsze OBOWIĄZKOWE. Numer GLN lokalizacji. Numer musi być zapisany w postaci 13 cyfr. Powinien pochodzić z wykupionej puli Uczestnika Systemu GS1, lub z zagranicznej puli, jeśli Uczestnik jest częścią międzynarodowej korporacji. GLN jest unikalny w skali pliku importowego. Nie podlega wariantowości. required: true schema: maxLength: 13 minLength: 13 type: integer responses: 200: description: Lokalizacja content: application/vnd.api+json: schema: type: object properties: data: type: object example: type: localizations id: 5900009900057 attributes: name: Przykładowa lokalizacja ediDocuments: true physicalLocalization: false description: Przykładowy opis lokalizacji country: PL postalCode: 02-002 city: Warszawa streetAndNumber: Emilii Plater 1 latitude: 51.123456 longitude: 19.123456 lastModificationDate: 2019-08-06T09:47:10+02:00 allOf: - $ref: '#/components/schemas/localization' 401: description: Błąd autoryzacji content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd autoryzacji 404: description: Nie znaleziono zasobu content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Nie znaleziono zasobu detail: Nie znaleziono lokalizacji na podstawie podanego numeru GLN 500: description: Błąd przetwarzania żądania content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd serwera put: tags: - Lokalizacje summary: Stwórz lub zaktualizuj lokalizację operationId: localizationAddOrUpdate parameters: - name: GLN in: path description: | Pole zawsze OBOWIĄZKOWE. Numer GLN lokalizacji. Numer musi być zapisany w postaci 13 cyfr. Powinien pochodzić z wykupionej puli Uczestnika Systemu GS1, lub z zagranicznej puli, jeśli Uczestnik jest częścią międzynarodowej korporacji. GLN jest unikalny w skali pliku importowego. Nie podlega wariantowości. required: true schema: maxLength: 13 minLength: 13 type: string requestBody: description: Obiekt lokalizacji do stworzenia lub aktualizacji content: application/vnd.api+json: schema: type: object properties: data: type: object example: type: localizations id: 5900009900057 attributes: name: Przykładowa lokalizacja ediDocuments: true physicalLocalization: false description: Przykładowy opis lokalizacji country: PL postalCode: 02-002 city: Warszawa streetAndNumber: Emilii Plater 1 latitude: 51.123456 longitude: 19.123456 allOf: - $ref: '#/components/schemas/localization' required: true responses: 200: description: Stworzono lub zaktualizowano lokalizację content: application/vnd.api+json: schema: type: object properties: success: $ref: '#/components/schemas/success' example: result: OK 400: description: Błędne zapytanie content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - source: data/attributes/name title: Błąd walidacji details: Pole name jest wymagane 401: description: Błąd autoryzacji content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd autoryzacji 500: description: Błąd przetwarzania żądania content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd serwera x-codegen-request-body-name: body delete: tags: - Lokalizacje summary: Usunięcie lokalizacji operationId: localizationDelete parameters: - name: GLN in: path description: | Pole zawsze OBOWIĄZKOWE. Numer GLN lokalizacji. Numer musi być zapisany w postaci 13 cyfr. Powinien pochodzić z wykupionej puli Uczestnika Systemu GS1, lub z zagranicznej puli, jeśli Uczestnik jest częścią międzynarodowej korporacji. GLN jest unikalny w skali pliku importowego. Nie podlega wariantowości. required: true schema: maxLength: 13 minLength: 13 type: integer responses: 204: description: Usunięto lokalizację content: {} 400: description: Błędne zapytanie content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Produkt jest spoza dostępnych pul numerów firmy 401: description: Błąd autoryzacji content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd autoryzacji 404: description: Nie znaleziono zasobu content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Nie znaleziono zasobu detail: Nie znaleziono lokalizacji na podstawie podanego numeru GLN 500: description: Błąd przetwarzania żądania content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd serwera /localizations: get: tags: - Lokalizacje summary: Lista lokalizacji operationId: localizationList parameters: - name: Content-Type in: header required: true schema: type: string enum: - application/vnd.api+json - name: filter[keyword] in: query description: Filtrowanie po słowie kluczowym (fragmencie GLN / nazwie lokalizacji) schema: type: string - name: page[offset] in: query description: Numer strony schema: type: string - name: page[limit] in: query description: Liczba lokalizacji na stronie schema: type: string - name: sort in: query description: | Sort field: * `name` * `gln` * `date` Aby posortować malejąco użyj prefiksu "-" przed nazwą pola schema: type: string responses: 200: description: Wynik zapytania content: application/vnd.api+json: schema: type: object properties: links: type: object properties: {} example: first: https://mojegs1.pl/api/v1/localizations?page[offset]=1&page[limit]=10&sort=-name prev: https://mojegs1.pl/api/v1/localizations?page[offset]=1&page[limit]=10&sort=-name next: https://mojegs1.pl/api/v1/localizations?page[offset]=2&page[limit]=10&sort=-name last: https://mojegs1.pl/api/v1/localizations?page[offset]=5&page[limit]=10&sort=-name data: type: object example: - type: localizations id: 5900009900057 attributes: name: Przykładowa lokalizacja ediDocuments: true physicalLocalization: false description: Przykładowy opis lokalizacji country: PL postalCode: 02-002 city: Warszawa streetAndNumber: Emilii Plater 1 latitude: 51.123456 longitude: 19.123456 lastModificationDate: 2019-08-06T09:47:10+02:00 - type: localizations id: 5900009900058 attributes: name: Przykładowa lokalizacja nr 2 ediDocuments: true physicalLocalization: false description: Przykładowy opis lokalizacji nr 2 country: PL postalCode: 02-000 city: Warszawa streetAndNumber: Emilii Plater 1 latitude: 51.123456 longitude: 19.123456 lastModificationDate: 2019-08-06T09:47:10+02:00 allOf: - $ref: '#/components/schemas/localizationCollection' 400: description: Błędne zapytanie content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: title: Błąd walidacji description: Pole page[offset] musi składać się z cyfr, 401: description: Błąd autoryzacji content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd autoryzacji 500: description: Błąd przetwarzania żądania content: application/vnd.api+json: schema: type: object properties: errorsCollection: $ref: '#/components/schemas/errorsCollection' example: errors: - title: Błąd serwera components: schemas: productsCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/product' product: required: - id - type type: object properties: type: type: string default: products id: maxLength: 14 minLength: 14 type: string description: Identyfikatorem jest 14-cyfrowy numer GTIN produktu attributes: $ref: '#/components/schemas/productAttributes' productAttributes: required: - brandName - commonName - descriptionLanguage - gpcCode - netContent - netContentUnit - status - targetMarket type: object properties: additionalNetContent1: type: number description: | Pole NIEOBOWIĄZKOWE.\ Możesz wprowadzić dodatkową zawartość netto produktu. W przypadku GTIN-14 ta informacja jest pobierana automatycznie z produktu bazowego. additionalNetContent1Unit: type: string description: | Pole NIEOBOWIĄZKOWE.\ Jeżeli wprowadziłeś dodatkową zawartośc netto produktu - podaj również jednostkę miary. W przypadku GTIN-14 ta informacja jest automatycznie pobierana z produktu bazowego. Lista dopuszczalnych jednostek miar podana w opisie pola netContentUnit. additionalNetContent2: type: number description: | Pole NIEOBOWIĄZKOWE.\ Możesz wprowadzić dodatkową zawartość netto produktu. W przypadku GTIN-14 ta informacja jest pobierana automatycznie z produktu bazowego. additionalNetContent2Unit: type: string description: | Pole NIEOBOWIĄZKOWE.\ Jeżeli wprowadziłeś dodatkową zawartośc netto produktu - podaj również jednostkę miary. W przypadku GTIN-14 ta informacja jest automatycznie pobierana z produktu bazowego. Lista dopuszczalnych jednostek miar podana w opisie pola netContentUnit. brandName: maxLength: 200 minLength: 2 type: string description: | Pole OBOWIĄZKOWE dla GTIN-13, GTIN-12, GTIN-8.\ Należy podać markę z listy marek Twojej firmy. Listą marek można zarządzać na MojeGS1 w zakładce Rejestr produktów/Lista marek. W przypadku GTIN-14 informacja o marce jest automatycznie pobierana z produktu bazowego. commonName: maxLength: 150 type: string description: | Pole OBOWIĄZKOWE dla GTIN-13, GTIN-12, GTIN-8.\ Nazwa zwyczajowa wchodzi w skład pełnej, ustandaryzowanej nazwy produktu. W przypadku GTIN-14 informacja o nazwie zwyczajowej produktu jest automatycznie pobierana z produktu bazowego. countItemsInCollectivePackage: type: number description: | Pole OBOWIĄZKOWE - tylko dla GTIN-13 (opakowanie zbiorcze do sprzedaży detalicznej) oraz GTIN-14 (opakowanie zbiorcze jednorodne).\ W przypadku innych rodzajów produktów system zignoruje to pole. Zawiera liczbę sztuk produktu w opakowaniu. description: maxLength: 4000 minLength: 20 type: string description: | Pole NIEOBOWIĄZKOWE.\ Zawiera opis marketingowy produktu. Tutaj warto wpisać wszystkie cenne informacje dla odbiorcy. Radzimy, aby opis miał nie mniej niż 100 znaków. Tekst nie podlega formatowaniu. Można stosować entery. descriptionLanguage: maxLength: 2 minLength: 2 type: string description: | Pole OBOWIĄZKOWE dla GTIN-13, GTIN-12, GTIN-8.\ Kod języka opisu informacji o produkcie i nazwy na etykiecie zgodny ze standardem ISO 639-1. Jeśli nie zostanie podany w wierszu - przyjmowany będzie domyślnie PL (język polski). Zobacz listę języków: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes. Jeśli wprowadzone informacje o produkcie są w kilku językach (bo tak prezentowane są na etykiecie i są przeznaczone jednocześnie na kilka rynków pod tym samym numerem GTIN i z tą samą etykietą) wówczas podajemy rynek wiodący. W przypadku GTIN-14 informacja jest automatycznie pobierana z produktu bazowego. gpcCode: type: number description: | Pole OBOWIĄZKOWE dla GTIN-13, GTIN-12, GTIN-8.\ Ośmiocyfrowy numer "Brick" klasyfikacji produktowej GS1 GPC. Wyszukiwarka kodów znajduje się pod adresem: https://www.gs1.org/services/gpc-browser Należy podać klasyfikację GPC zgodnie z listą segmentów GPC Twojej firmy. Listą można zarządzać na MojeGS1 w zakładce Rejestr produktów/Lista segmentów GPC. W przypadku GTIN-14 informacja o klasyfikacji GPC jest automatycznie pobierana z produktu bazowego. internalSymbol: maxLength: 255 minLength: 2 type: string description: | Pole NIEOBOWIĄZKOWE.\ Numer własny produktu, np.: numer katalogowy, SKU, N-ART. itp. Długość pola to maksymalnie 255 znaków. lastModificationDate: type: string description: | Pole TYLKO DO ODCZYTU.\ Data modyfikacji produktu zgodna z RFC3339 w postaci yyyy-mm-ddThh:mm:ss+hh:ss. name: maxLength: 400 type: string description: | Pole TYLKO DO ODCZYTU.\ Nazwa w pełni identyfikująca produkt - tzw.: Label description. Nazwa produktu (commonName) umieszczona na etykiecie powinna być jego częścią. Nazwa tworzona jest automatycznie poprzez połaczenie wartości z pól: brandName, subBrandName, commonName, variant, netContent, netContentUnit. netContent: type: number description: | Pole OBOWIĄZKOWE (liczbowe) dla GTIN-13, GTIN-12, GTIN-8.\ Należy podać masę, objętość lub ilość produktu, jaką zawiera opakowanie. W przypadku GTIN-14 ta informacja jest automatycznie pobierana z produktu bazowego. netContentUnit: type: string description: | Pole OBOWIĄZKOWE dla GTIN-13, GTIN-12, GTIN-8 oraz dla GTIN-14 z cyfrą wskaźnikową 9.\ Należy wybrać jednostkę miary. W przypadku pozostałych GTIN-14 ta informacja jest automatycznie pobierana z produktu bazowego. Lista dopuszczalnych jednostek miar (jednostka, opis): - m - metr, - cm - centymetr - mm - milimetr - l - litr - cl - centylitr - ml - mililitr - kg - kilogram - dkg - dekagram - g - gram - mg - miligram - szt - sztuka - m2 - metr kwadratowy - m3 - metr sześcienny productImage: type: string description: | Pole NIEOBOWIĄZKOWE.\ Obrazek w formacie base64. Maksymalny rozmiar to 8MB, minimalna rozdzielczość to 800x600px. Nieuzupełnione pole spowoduje usunięcie obrazka. Pominięcie pola nie spowoduje zmian na obrazku productWebsite: maxLength: 1000 minLength: 1 type: string description: | Pole NIEOBOWIĄZKOWE.\ Link bezpośredni do strony internetowej produktu (wizytówki produktu, nie producenta). Zaleca się, aby był unikalny i nie prowadził do głównej strony firmy. Powinien rozpoczynać się od http:// lub https:// qualityDetails: type: object properties: suggestions: description: Informacje wskazujące co można poprawić w opisie produktu type: array items: type: string status: type: string description: | Pole OBOWIĄZKOWE. Lista dopuszczalnych statusów (kod statusu, opis): - ACT - Aktywny (w sprzedaży), - WIT - Wycofany (już nie w sprzedaży), - HID - Ukryty. subBrandName: maxLength: 200 minLength: 2 type: string description: | Pole NIEOBOWIĄZKOWE.\ Należy podać podmarkę z listy podmarek Twojej firmy. Listą podmarek można zarządzać na MojeGS1 w zakładce Rejestr produktów/Lista podmarek. W przypadku GTIN-14 informacja o podmarce jest automatycznie pobierana z produktu bazowego. targetMarket: type: array description: | Pole OBOWIĄZKOWE dla GTIN-13, GTIN-12, GTIN-8.\ Należy podać kod kraju, zgodny z ISO 3166-1. Dodatkowo, dopuszcza się wprowadzanie Unii Europejskiej (kod "EU") i całego świata (kod "WW"). Kody można wprowadzać w postaci tablicy jednowymiarowej, wartości oddzielamy przecinkiem, np.: "PL, CZ, SK". W przypadku GTIN-14 informacja o kraju jest automatycznie pobierana z produktu bazowego. items: type: string variant: maxLength: 70 minLength: 2 type: string description: | Pole NIEOBOWIĄZKOWE.\ Wariant (jeżli pole zostanie uzupełnione) wchodzi w skład pełnej, ustandaryzowanej nazwy produktu. W przypadku GTIN-14 informacja o wariancie jest automatycznie pobierana z produktu bazowego. packaging: $ref: "#/components/schemas/packagingAttributes" packagingAttributes: description: | Pole NIEOBOWIĄZKOWE.\ Informacje o opakowaniu zwrotnym required: - materialTypeCode - isRecycling - materialColor - netContent - weightWitkCork - corkWeight - grossWeight - returnablePackageDepositAmount - height - width - depth - startAvailabilityDateTime - operatoraId - startAvailabilityWithOperator type: "object" properties: materialTypeCode: description: | Pole OBOWIĄZKOWE.\ Rodzaj materiału opakowania" type: string enum: [GLASS, GLASS_COLOURED, METAL_ALUMINUM, METAL_BRASS, METAL_IRON, METAL_LEAD, METAL_OTHER, METAL_STAINLESS_STEEL, METAL_STEEL, METAL_TIN, PLASTIC_OTHER, POLYMER_CELLULOSE_ACETATE, POLYMER_EPOXY, POLYMER_EVA, POLYMER_EVOH, POLYMER_HDPE, POLYMER_LDPE, POLYMER_LLDPE, POLYMER_MDPE, POLYMER_NYLON, POLYMER_PAN, POLYMER_PC, POLYMER_PCL, POLYMER_PE, POLYMER_PEN, POLYMER_PET, POLYMER_PHA, POLYMER_PLA, POLYMER_PP, POLYMER_PS, POLYMER_PU, POLYMER_PVA, POLYMER_PVC, POLYMER_PVDC, POLYMER_TPS] isRecycling: description: "Czy opakowanie jest opakowaniem wielokrotnego użytku" type: "boolean" materialColor: description: "Kolor opakowania" type: "string" enum: [ TRANSPARENT, BLUE, GREEN, OTHER ] netContent: description: "Pojemnośćw mililitrach" type: "string" maxLength: 15 weightWithCork: description: "Waga opakowania z korkiem(w gramach, z częścią ułamkową)" type: "string" maxLength: 15 corkWeight: description: "Waga kapsla/korka w gramach" type: "string" maxLength: 15 grossWeight: description: "Waga opakowania bez korka w gramach" type: "string" maxLength: 15 returnablePackageDepositAmount: description: "Kwota kaucji w PLN" type: "string" maxLength: 8 returnablePackageDepositAmountCurrency: description: "Waluta kaucji - ISO 4217" type: "string" minLength: 3 maxLength: 3 height: description: "Wysokość w milimetrach" type: "string" maxLength: 15 width: description: "Szerokość w milimetrach" type: "string" maxLength: 15 depth: description: "Długość w milimetrach" type: "string" maxLength: 15 startAvailabilityDateTime: description: "Data wprowadzenia na rynek w postaci dd-mm-yyyy" type: "string" format: "date" endAvailabilityDateTime: description: "Data wycofania z rynku w postaci dd-mm-yyyy" type: "string" format: "date" operatorId: description: "NIP operatora" type: "string" maxLength: 50 startAvailabilityWithOperator: description: "Data rozpoczęcia uczestnictwa danego opakowania u tego operatora w postaci dd-mm-yyyy" type: "string" format: "date" endAvailabilityWithOperator: description: "Data zakończenia uczestnictwa danego opakowania u tego operatora w postaci dd-mm-yyyy" type: "string" format: "date" corkColor: description: "Kolor korka" type: "string" enum: [ TRANSPARENT, BLUE, GREEN, OTHER ] imageLink: description: "Link do grafiki na etykiecie" type: "string" minLength: 1 maxLength: 2500 imageType: description: "Rodzaj grafiki na etykiecie" type: "string" enum: [ DIET_CERTIFICATE, DOCUMENT, GROUP_CHARACTERISTIC_SHEET, LOGO, MARKETING_INFORMATION, OUT_OF_PACKAGE_IMAGE, PLANOGRAM, PRODUCT_LABEL_IMAGE, SAFETY_DATA_SHEET, SAFETY_SUMMARY_SHEET, TRADE_ITEM_DESCRIPTION, VIDEO, WARRANTY_INFORMATION, WEBSITE ] image3dLink: description: "Link do modelu przestrzennego" type: "string" minLength: 1 maxLength: 2500 image3dType: description: "Rodzaj modelu przestrzennego" type: "string" enum: [ DIET_CERTIFICATE, DOCUMENT, GROUP_CHARACTERISTIC_SHEET, LOGO, MARKETING_INFORMATION, OUT_OF_PACKAGE_IMAGE, PLANOGRAM, PRODUCT_LABEL_IMAGE, SAFETY_DATA_SHEET, SAFETY_SUMMARY_SHEET, TRADE_ITEM_DESCRIPTION, VIDEO, WARRANTY_INFORMATION, WEBSITE ] productSuccess: type: object properties: result: type: string default: OK qualityDetails: type: object properties: suggestions: description: Informacje wskazujące co można poprawić w opisie produktu type: array items: type: string localizationCollection: type: object properties: data: type: array items: $ref: '#/components/schemas/localization' localization: required: - id type: object properties: type: type: string default: localizations id: maxLength: 13 minLength: 13 type: string description: Identyfikatorem jest 13-cyfrowy numer GLN lokalizacji attributes: $ref: '#/components/schemas/localizationAttributes' localizationAttributes: required: - city - country - ediDocuments - name - physicalLocalization - postalCode - streetAndNumber type: object properties: name: type: string description: | Pole zawsze OBOWIĄZKOWE. Nazwa w pełni identyfikująca lokalizację. Przykładowo, "Sokołów Service Spółka z ograniczoną odpowiedzialnością". Pole przyjmuje długość do 1000 znaków, jednak zalecany przedział to 10 - 200 znaków. ediDocuments: type: boolean description: | Pole zawsze OBOWIĄZKOWE. Wybór opcji TAK lub NIE. Określa się czy dany GLN ma służyć wymianie dokumentów elektronicznych (EDI). physicalLocalization: type: boolean description: | Pole zawsze OBOWIĄZKOWE. Wybór opcji TAK lub NIE. Określa się czy dany GLN ma służyć do wskazania lokalizacji fizycznej. description: maxLength: 4000 minLength: 2 type: string description: | Pole OPCJONALNE. Opis szczegółowy lokalizacji. Tutaj warto wpisać wszystkie cenne informacje dot. lokalizacji. Długość pola to 4000 znaków. Radzimy, aby opis miał nie mniej niż 100 znaków. Tekst nie podlega formatowaniu. Można stosować entery. country: maxLength: 2 minLength: 2 type: string description: | Pole zawsze OBOWIĄZKOWE. Nazwa kraju. W pole można wprowadzić tylko jedną nazwę kraju. Domyślnie ustawiona jest Polska. Można również wprowadzić kod kraju: dwu-, trzyliterowy lub trzycyfrowy. Zgodny z ISO 3166-1. Pierwszy - oznacza podstawowy kraj wprowadzenia produktu do obrotu. Jeśli nie zostanie podany w wierszu, wartośc pola będzie pusta - przyjmowany będzie domyślnie PL (Polska). Zobacz listę krajów: https://pl.wikipedia.org/wiki/ISO_3166-1. Nie dopuszcza się wprowadzania obszaru lub wspólnot (np. UE, EU). postalCode: maxLength: 20 type: string description: | Pole zawsze OBOWIĄZKOWE. Kod pocztowy dla wprowadzanej lokalizacji. Długość pola to 20 znaków. city: maxLength: 80 type: string description: | Pole zawsze OBOWIĄZKOWE. Nazwa miejscowości dla wprowadzanej lokalizacji. Długość pola to 80 znaków. streetAndNumber: maxLength: 160 type: string description: | Pole zawsze OBOWIĄZKOWE. Nazwa ulicy wraz z numerem budynku i lokalu w dowolnym formacie. W przypadku braku nazwy ulicy, należy wprowadzić nazwę miejscowości. Długość pola to 160 znaków. latitude: type: number description: | Pole OPCJONALNE. Wartość współrzędnej geograficznej wyrażona w formacie dziesiętnym XX.YYYYYYY - latitude. longitude: type: number description: | Pole OPCJONALNE. Wartość współrzędnej geograficznej wyrażona w formacie dziesiętnym XX.YYYYYYY - longitude. lastModificationDate: type: string description: | Data modyfikacji lokalizacji zgodna z RFC3339 w postaci yyyy-mm-ddThh:mm:ss+hh:ss. errorsCollection: type: object properties: errors: type: array items: $ref: '#/components/schemas/error' error: required: - title type: object properties: source: type: string description: pole dla którego wystąpił błąd title: type: string description: nazwa błędu detail: type: string description: opis błędu success: type: object properties: result: type: string default: OK securitySchemes: basicAuth: type: http scheme: basic