allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
217 stars 39 forks source link

[NEWS] GPSR - umożliwiamy dodanie informacji o bezpieczeństwie produktu / GPSR - we allow you to add product safety information #10210

Open MaciejFrackowiak opened 3 weeks ago

MaciejFrackowiak commented 3 weeks ago

13 grudnia 2024 zacznie obowiązywać nowe rozporządzenie Unii Europejskiej General Product Safety Regulation. Jednym z jego elementów są załączniki, w których sprzedający powinien umieścić informacje z ostrzeżeniami o produkcie np. instrukcja produktu. Jeśli sprzedający nie ma instrukcji, może to być zdjęcie oznaczeń na opakowaniu produktu. Ważne, aby załączniki były w języku urzędowym kraju, z którego jest kupujący. Zatem, jeśli sprzedający udostępnia swoją ofertę na wszystkie rynki Allegro, instrukcja powinna zawierać wersję polską, czeską, słowacką, czy węgierską.

Jakie zmiany wprowadziliśmy?

Dla:

dodaliśmy nowy obiekt “productSet.[].safetyInformation”, w którym wskażesz, czy dla danego produktu posiadasz informacje o bezpieczeństwie produktu. Dla każdego produktu musisz przekazać osobne dane.

Obecnie możesz zdefiniować jeden z dwóch typów informacji:

Uwaga! W przyszłości umożliwimy dodanie informacji o bezpieczeństwie produktu również w postaci opisu tekstowego (type: “TEXT”).

Przykładowy request:

{
  "productSet": [
    {
      "safetyInformation": {
         "type": "ATTACHMENTS",                               // typ informacji, obecnie dostępne wartości: ATTACHMENTS, NO_SAFETY_INFORMATION
         "attachments": [
               {
                 "id": "184e6fcc-db46-4727-b80c-2bb652d9b58b" // identyfikator załącznika (“SAFETY_INFORMATION_MANUAL”)
               }
         ]
      },
      ...
    }
  ],
  ...
}

Pole “safetyInformation” aktualnie jest opcjonalne. W dniu 13.12.2024 oznaczymy je jako obowiązkowe.

Jednocześnie, dla załączników z informacją o bezpieczeństwie produktu (“SAFETY_INFORMATION_MANUAL”), które dodasz w oparciu o zasób POST /sale/offer-attachments wprowadziliśmy dziś zmiany:

Dlaczego wprowadziliśmy zmianę?

Wdrożyliśmy informacje o bezpieczeństwie produktu, aby dostosować Allegro do prawa Unii Europejskiej. GPSR, oprócz producentów, importerów, dystrybutorów, itd., nakłada nowe obowiązki na platformy internetowe umożliwiające sprzedaż na odległość. Platformy muszą dostosować i zorganizować swój interfejs w taki sposób, aby sprzedający mogli wypełnić swoje obowiązki wynikające z rozporządzenia.


On December 13, 2024, the new European Union Regulation General Product Safety Regulation will come into effect. One of its elements are attachments, in which the seller should include information with warnings about the product, such as product instructions. If the seller does not have a manual, it can be a photo of the product labelings. The attachments must be in the official language of the buyer's country. Therefore, if a seller offers their product on all Allegro markets, the manual should include Polish, Czech, Slovak, and Hungarian versions.

What changes have we made?

For:

we have added a new object “productSet.[].safetyInformation”, in which you will indicate whether you have product safety information for a given product. You must pass separate data for each product.

Currently, you can define one of two types of information:

Note! In the future, we will make it possible to add product safety information also in the form of a text description (type: “TEXT”).

Sample request:

{
  "productSet": [
    {
      "safetyInformation": {
         "type": "ATTACHMENTS",                               // type of information, currently available values: ATTACHMENTS, NO_SAFETY_INFORMATION
         "attachments": [
               {
                 "id": "184e6fcc-db46-4727-b80c-2bb652d9b58b" // attachment identifier (“SAFETY_INFORMATION_MANUAL”)
               }
         ]
      },
      ...
    }
  ],
  ...
}

The “safetyInformation” field is currently optional. On December 13, 2024, we will mark it as required.

At the same time, for attachments with product safety information (“SAFETY_INFORMATION_MANUAL”) that you add based on the POST /sale/offer-attachments we have made changes today:

Why have we made the change?

We have implemented product safety information to align Allegro with European Union law. The GPSR, in addition to producers, importers, distributors, etc., imposes new obligations on online platforms that enable distance selling. Platforms must adjust and organize their interface in such a way that sellers can fulfill their obligations under the regulation.

tomasz-grzesik commented 2 weeks ago

A co z załącznikami typu Instrukcja z informacją o bezpieczeństwie w polu attachments? Nie wystarczy tam wrzucić taki załącznik? obraz

MaciejFrackowiak commented 2 weeks ago

Zgodnie z regulacją informacja powinna być przypisana do każdego produktu wchodzącego w skład oferty. Za pośrednictwem pola "attachments" możesz dodać tylko po jednym typie załącznika do samej oferty, nie produktu.

tomasz-grzesik commented 2 weeks ago

No, tak, ale dwa pola wprowadzają zamieszanie i sprzedawca może nie wiedzieć, czy spełnił wymaganie, czy nie. Stąd pytanie, czy w przypadku, gdy oferta zawiera jeden produkt nie będzie to wystarczające?

MaciejFrackowiak commented 2 weeks ago

@tomasz-grzesik To pytanie już do regulatora, ponieważ to wymóg Unii Europejskiej, a nie nasz. Ponadto pamiętaj, że instrukacja bezpieczeństwa dodana przy pomocy safetyInformation może zawierać do 20 załączników, a ofertowa wersja tylko 1.

skiewlicz commented 2 weeks ago

Jak długo dodane załączniki są przechowywane przez allegro. Czy jeden wygenerowany attachmentId można używać wielokrotnie? Czy przesłane załączniki można gdzieś zobaczyć bądź je pobrać?

MaciejFrackowiak commented 2 weeks ago

Tak, jeden uploadowany załącznik może być dołączony do dowolnej liczby ofert/produktów. Wykonując PUT /sale/offer-attachments/{attachmentId} w odpowiedzi zwracamy ścieżkę, pod którą dostępny jest załącznik.

skiewlicz commented 2 weeks ago

okej, a jak długo te dane będą przechowywane? Chodzi mi o to, że jeśli dodam załącznik to przez jak długi okres czasu będę mógł wystawiać oferty używając tego załącznika.

MaciejFrackowiak commented 2 weeks ago

@skiewlicz Tak długo jak będzie wykorzystywany, tak długo będzie dostępny.

grzman commented 1 week ago

Otrzymuję taki komunikat: otrzymałem taki komunikat:

Obiekt załącznika utworzony, ID załącznika: 4d1e1618-1f28-4a6e-9c61-679209bec80c
d:\Python\python-3.10.0-embed-amd64\cwiczenia\.venv\Lib\site-packages\urllib3\connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.allegro.pl'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(
Błąd SSL, ponawiam próbę (1/3): HTTPSConnectionPool(host='api.allegro.pl', port=443): Max retries exceeded with url: /sale/offer-attachments/4d1e1618-1f28-4a6e-9c61-679209bec80c/content (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)')))
d:\Python\python-3.10.0-embed-amd64\cwiczenia\.venv\Lib\site-packages\urllib3\connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.allegro.pl'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(

Czy coś jest z zabezpieczeniami SSL po stronie API?

MaciejFrackowiak commented 1 week ago

@grzman Spojrzałem w logi i wywołujesz zasób, który nie istnieje - "PUT /sale/offer-attachments/4d1e1618-1f28-4a6e-9c61-679209bec80c/content" - usuń "/content".

grzman commented 1 week ago

moment sprawdzę, właćnie pobrałem wszystki ID ofert, czy mogę do każdej tej oferty dodać ten sam załącznik?

MaciejFrackowiak commented 1 week ago

@grzman Tak, jeden załącznik może być dodany do dowolnej liczby ofert.

grzman commented 1 week ago

otrzymałem teraz to: Obiekt załącznika utworzony, ID załącznika: 7c60137d-35b2-49e7-98a5-5a31a13e6a7f d:\Python\python-3.10.0-embed-amd64\cwiczenia\.venv\Lib\site-packages\urllib3\connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.allegro.pl'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings warnings.warn( Błąd SSL, ponawiam próbę (1/3): HTTPSConnectionPool(host='api.allegro.pl', port=443): Max retries exceeded with url: /sale/offer-attachments/7c60137d-35b2-49e7-98a5-5a31a13e6a7f (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)'))) d:\Python\python-3.10.0-embed-amd64\cwiczenia\.venv\Lib\site-packages\urllib3\connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.allegro.pl'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings warnings.warn( Błąd SSL, ponawiam próbę (2/3): HTTPSConnectionPool(host='api.allegro.pl', port=443): Max retries exceeded with url: /sale/offer-attachments/7c60137d-35b2-49e7-98a5-5a31a13e6a7f (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)'))) d:\Python\python-3.10.0-embed-amd64\cwiczenia\.venv\Lib\site-packages\urllib3\connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.allegro.pl'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings warnings.warn( Błąd SSL, ponawiam próbę (3/3): HTTPSConnectionPool(host='api.allegro.pl', port=443): Max retries exceeded with url: /sale/offer-attachments/7c60137d-35b2-49e7-98a5-5a31a13e6a7f (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)'))) Nie udało się przesłać pliku po maksymalnej liczbie prób. PS D:\Python\python-3.10.0-embed-amd64\cwiczenia>

MaciejFrackowiak commented 1 week ago

@grzman Obecnie nie przekazujesz poprawnej wartości nagłówka Accept - "/". Powinno być "application/vnd.allegro.public.v1+json".

grzman commented 1 week ago

może podeślę cały kod mógłbyś mi go sprawdzić? może na coś wpadniesz?

MaciejFrackowiak commented 1 week ago

@grzman Tu już nie pomogę, ponieważ nie weryfikujemy kodu. Być może któryś z forumowiczów będzie mógł Tobie pomóc.

grzman commented 1 week ago

ok. dziękuję za pomoc, poradziłem sobie już dalej z tym.

grzman commented 1 week ago

Chciałbym wrócić do tematu, wczoraj przez kilka godzin ładowałem załczniki o bezpieczeństwie do ofert prawie 40k ofert, na niektórych ofertach zauważyłem komunikat o błędzie, chciałbym sprawdzić które z ofert nie mają załącznika, można to jakoś sprawdzić? , czy jest na to jakiś filtr w liście ofert(nie znalazłem), czy z poziomu API można?

MaciejFrackowiak commented 1 week ago

@grzman Z poziomu WWW takiego filtra obecnie nie ma. W API widać to pobierając szczegóły danej oferty - GET /sale/product-offers/{offerId}.

grzman commented 1 week ago

oferty pobieram z tego zasobu: url_offers = "https://api.allegro.pl/sale/offers" czy w tym jest informacja o załcznikach? bo troch e się różni ten link od tego który podałeś.

Maczuga commented 1 week ago

@grzman Niestety listing ofert nie zawiera informacji o tym. Musisz pobierać każdą ofertę indywidualnie.

MaciejFrackowiak commented 1 week ago

@grzman Dokładnie tak jak napisał @Maczuga - na liście ofert tej informacji nie znajdziesz.

grzman commented 1 week ago

ok, muszę coś wyczarować, a czy w przyszłości z pozoomu interfejsu SCenter będzie taka funkcjonalność aby zweryfikować wymagane dane w ofercie na temat GPSR, czy Allegro planuje coś takiego wdrożyć?

MaciejFrackowiak commented 1 week ago

@grzman Takie pierwsze opcje już się pojawiły.

Maczuga commented 1 week ago

A ja dopytam - czy dodanie opcji "TEXT" jest w planach do implementacji przed 13 grudnia?

MaciejFrackowiak commented 1 week ago

@Maczuga Tak, działamy by stało się to możliwie jak najszybciej.

grzman commented 1 week ago

a jeszcze jedna sprawa, czy mogę dla jednego konta uruchomić jednocześnie np. 4 skrypty które będą ładować pliki pdf, mam asortyment w 4 kategoriach w każdej kategorii po około 50 k +/- ofert i do każdj oferty w danej kategorii muszę dodać inny plik z informacją o bezpieczeństwie. jedną kategorię łąduję około 7 h. czy się coś wykrzacczy?

MaciejFrackowiak commented 1 week ago

@grzman Jednocześnie możesz mieć otwartych 20 sesji, więc nie powinno nic się wydarzyć.

grzman commented 1 week ago

witam ponownie, czy dla tego zasobu jest potrzebny osobny token dostęu? GET /sale/product-offers/{offerId}

MaciejFrackowiak commented 1 week ago

@grzman Nie, jeden token "bearer-token-for-user" z nadanymi odpowiednimi scope'ami pozwala obsłużyć wszystkie zasoby naszego API.