allegro / allegro-api

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

PUT /sale/offer/{offerid} zwraca 422. #1137

Closed ponowemu closed 5 years ago

ponowemu commented 5 years ago

Przy próbie aktualizacji wcześniej utworzonego draftu otrzymuję non-stop 422.

{ "description": { "sections": [ { "items": [ { "type": "TEXT", "content": "<p>Opis przedmiotu</p>" }, { "type": "TEXT", "content": "<p>Tekst</p>" } ] } ] }, "afterSalesServices": { "impliedWarranty": { "id": "A" }, "returnPolicy": { "id": "B" }, "warranty": { "id": "C" } }, "category": { "id": "50884" }, "compatibilityList": { "items": [ { "text": "Alfa Romeo 159" }, { "text": "Alfa Romeo 159 2" } ] }, "delivery": { "shippingRates": { "id": "D" }, "additionalInfo": "Dodatkowe informacje", "handlingTime": "PT168H", "shipmentDate": "2019-02-01T08:00:00Z" }, "external": { "id": "SP24-12321" }, "images": [ { "url": "http://ssdsdsd.pl" }, { "url": "http://ssdsdsd.pl" } ], "location": { "city": "Warszawa", "countryCode": "PL", "postCode": "00-132", "province": "MAZOWIECKIE" }, "parameters": [ { "id": "11323", "values": [], "valuesIds": [ "11323_1" ], "rangeValue": null }, { "id": "127417", "values": [], "valuesIds": [ "127417_2" ], "rangeValue": null }, { "id": "129591", "values": [], "valuesIds": [ "129591_1", "129591_2" ], "rangeValue": null }, { "id": "214434", "values": [], "valuesIds": [ "214434_266986" ], "rangeValue": null }, { "id": "130531", "values": [], "valuesIds": [ "130531_1" ], "rangeValue": null } ], "payments": { "invoice": "VAT" }, "promotion": { "bold": false, "departmentPage": false, "emphasized": false, "emphasizedHighlightBoldPackage": false, "highlight": false }, "publication": { "duration": null, "endingAt": null, "startingAt": null, "status": "INACTIVE" }, "sellingMode": { "price": { "amount": "1323", "currency": "PLN" }, "format": "BUY_NOW", "minimalPrice": null, "startingPrice": null }, "stock": { "available": 4, "unit": "UNIT" }, "validation": { "errors": [], "validatedAt": "" }, "additionalServices": null, "contact": null, "createdAt": "", "ean": "4343243241231432212", "id": "1111", "name": "Tytuł oferty 223", "sizeTable": null, "updatedAt": "" }

Id oferty, czy id warunków dostawy podmieniam oczywiście na wcześniej zdeklarowane. W czym leży problem?

PawelTaberski commented 5 years ago

A jaki komunikat dostajesz, masz dosyć pomieszane wszystkie pola i na pierwszy rzut oka nie widzę, czego brakuje, na pewno masz błędne ścieżki do zdjęć muszą byc one na naszych serwerach. Jak dodać zdjęcie znajdziesz w naszym poradniku. Już w przypadku tego błędu jest 422, może jest coś jeszcze. Najlepiej utworzyć ofertę przez front, pobrać ją aby zobaczyć z czego musi się składać itd.

ponowemu commented 5 years ago

Oki, wszystko prawdopodobnie przez zdjęcia. Wysyłam wszystko na serwer, ale póki co nie dodawałem linków do tej metody. Sprawdzę i dam znać :)

FromAnyHole commented 5 years ago

Jak na to wszystko patrzę co ma związek z wystawianiem i edycją przedmiotów na tym Beta-REST... Bez kitu - nawet wrześniowy termin wygaszania metod WebAPI wydaje się chwilami absurdalny !!

ponowemu commented 5 years ago

Zdjęcia rzeczywiście były problemem jeżeli chodzi o błąd 422. Teraz niemniej cały czas wyrzuca 400. Samego JSON'a generuje przy użyciu serializacji z biblioteki Newton.Json (.NET), także nie podejrzewam, żeby była to kwestia przecinków, itd.

{
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<p>Opis przedmiotu</p>"
          },
          {
            "type": "TEXT",
            "content": "<p>Tekst</p>"
          }
        ]
      }
    ]
  },
  "afterSalesServices": {
    "impliedWarranty": {
      "id": "c2683ac1-b36b-42a1-b0f5-b45bdaf55928"
    },
    "returnPolicy": {
      "id": "eb7c8407-808c-4078-9250-9da488560634"
    },
    "warranty": {
      "id": "0dd88048-8163-4eba-9c12-768551bf407d"
    }
  },
  "category": {
    "id": "50884"
  },
  "compatibilityList": {
    "items": [
      {
        "text": "Alfa Romeo 159"
      },
      {
        "text": "Alfa Romeo 159 2"
      }
    ]
  },
  "delivery": {
    "shippingRates": {
      "id": "b25e1a2e-3f2d-4206-97de-234a9dbf91bf"
    },
    "additionalInfo": "Dodatkowe informacje",
    "handlingTime": "PT24H",
    "shipmentDate": null
  },
  "external": {
    "id": "SP24-123s21"
  },
  "images": [
    {
      "url": "https://a.allegroimg.com/original/11494b/f8ab199f475e985d22d060fb2d9d"
    },
    {
      "url": "https://a.allegroimg.com/original/115c5e/8e34c34045f888f804695e093403"
    }
  ],
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-132",
    "province": "MAZOWIECKIE"
  },
  "parameters": [
    {
      "id": "11323",
      "values": [],
      "valuesIds": [
        "11323_1"
      ],
      "rangeValue": null
    },
    {
      "id": "127417",
      "values": [],
      "valuesIds": [
        "127417_2"
      ],
      "rangeValue": null
    },
    {
      "id": "129591",
      "values": [],
      "valuesIds": [
        "129591_1",
        "129591_2"
      ],
      "rangeValue": null
    },
    {
      "id": "214434",
      "values": [],
      "valuesIds": [
        "214434_266986"
      ],
      "rangeValue": null
    },
    {
      "id": "130531",
      "values": [],
      "valuesIds": [
        "130531_1"
      ],
      "rangeValue": null
    }
  ],
  "payments": {
    "invoice": "VAT"
  },
  "promotion": {
    "bold": false,
    "departmentPage": false,
    "emphasized": false,
    "emphasizedHighlightBoldPackage": false,
    "highlight": false
  },
  "publication": {
    "duration": null,
    "endingAt": null,
    "startingAt": null,
    "status": "INACTIVE"
  },
  "sellingMode": {
    "price": {
      "amount": "1323",
      "currency": "PLN"
    },
    "format": "BUY_NOW",
    "minimalPrice": null,
    "startingPrice": null
  },
  "stock": {
    "available": 4,
    "unit": "UNIT"
  },
  "validation": {
    "errors": [],
    "validatedAt": ""
  },
  "additionalServices": null,
  "contact": null,
  "createdAt": "2019-01-31T12:52:22Z",
  "ean": "4343243241231432212",
  "id": "111",
  "name": "Tytuł aukcji",
  "sizeTable": null,
  "updatedAt": ""
}
PawelTaberski commented 5 years ago

Znów widzę sporo błędów, nie możesz mieć sekcji z opisem z dwoma tekstami, ponadto numer oferty jest nieprawidłowy, kod EAN jest nieprawidłowy. Spróbuj wystawić ofertę przez front pobierz ją GET /sale/offers/{offerId} i postaraj się wystawić tzn podmieniając numer oferty na ten z drafta. Jeśli znów dostaniesz 400, to musisz coś dodawać w locie do requesta. Po zmianach jakie Tobie wcześniej podałem Twoje body normalnie przechodzi i dostaje 200.

ponowemu commented 5 years ago

Id i ean na potrzeby wklejenia podmieniłem zamiast zmiennych. Co do opisu, cenna uwaga.

ponowemu commented 5 years ago

Czy w przypadku PUT na zasobie z ofertami mogę pominąć trzy daty: validatedAt, updatedAt i createdAt i je znullować?

PawelTaberski commented 5 years ago

W przypadku drafta nie musisz przesyłać tych pól, ale przy edycji powinieneś. Możesz je również skopiować z utworzonego POST-em drafta.

ponowemu commented 5 years ago

Wszystko jest ok. Temat do zamknięcia ;-) Problemem był format daty, co ciekawe metoda POST (przy tworzeniu drafta) zwracała mi dziwny format.

PawelTaberski commented 5 years ago

ok 👍