allegro / allegro-api

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

Wieczny błąd podczas proponowania zmian /change-proposals #10288

Open creativepl-php opened 1 day ago

creativepl-php commented 1 day ago

Występuje problem:

:beetle: Opis / Description

Czasami produkt fizyczny posiada inne cechy niż wartości opisane w Katalogu Allegro. Czy możecie mi wyjaśnić o co tu chodzi? W moim przypadku będzie to książka, chcę zaproponować żeby parametr Okładka miał domyślnie wartość "twarda" zamiast aktualnej wartości "miękka". Chciałbym zaproponować zmianę, wysyłam request i otrzymuję ProductCannotBeModifiedException. W zasadzie nigdy mi się nie udało uzyskać pozytywnej response, zawsze wywala mi błąd dla /change-proposals. Dlaczego tak się dzieje? Jeszcze wcześniej wywalało mi CreateProductSuggestionValidationException, obydwu tych kodow nie ma w dokumentacji, nie ma też w "najczęstsze błędy".

Request:

stdClass Object
(
    [name] => Szachownica flamandzka Arturo Perez-Reverte
    [category] => stdClass Object
        (
            [id] => 79153
        )

    [note] => xxx
    [notifyViaEmailAfterVerification] => 
    [language] => pl-PL
    [parameters] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 75
                    [values] => Array
                        (
                            [0] => twarda
                        )

                )

        )

)

Response:

stdClass Object
(
    [errors] => Array
        (
            [0] => stdClass Object
                (
                    [code] => ProductCannotBeModifiedException
                    [message] => Products provided by supplier, cannot be modified
                    [details] => 
                    [path] => /sale/products/8309d2a2-ae82-41df-9bad-ed2cef6fbe81/change-proposals
                    [userMessage] => An invalid request was submitted. Product details provided by the vendor cannot be modified.
                    [metadata] => stdClass Object
                        (
                        )

                )

        )

)

Jeszcze wcześniej wywalało mi:

stdClass Object
(
[code] => CreateProductSuggestionValidationException
[message] => An error has occurred while reporting product errors: Invalid parameters entered: [The miękka value should be passed with the id 75_314838 of the 75 parameter (Okładka)]
[details] =>
[path] => /sale/products/4d571e44-defd-439b-a6f0-56fc6a799427/change-proposals
[userMessage] => An error has occurred while reporting product errors: Invalid parameters entered: [The miękka value should be passed with the id 75_314838 of the 75 parameter (Okładka)]
[metadata] => stdClass Object
(
)

)
PrzemyslawLukanowski commented 18 hours ago

W tym przypadku ProductCannotBeModifiedException oznacza, że dane produktu otrzymaliśmy bezpośrednio od producenta, nie mogą one zostać zmodyfikowane.

Co do drugiego błędu, jeśli napotkałbyś go w innych przypadkach, to oznacza on, że wartość parametru słownikowego musisz przekazać w postaci ID, w valuesIds zamiast w values.

creativepl-php commented 18 hours ago

Skoro API wie, że wartość "miękka" istnieje w słowniku parametru, to jaki jest sens żebym podawał ID wartości? Podaje wartość tekstową, czemu API samo sobie nie zmatchuje i nie puści pozytywnie requesta? (a w zasadzie matchuje, ale wywalając błąd)

PrzemyslawLukanowski commented 12 hours ago

Wyjaśniam te kwestię jeszcze z zespołem odpowiedzialnym za usługę, wrócę z informacją.

PrzemyslawLukanowski commented 11 hours ago

Zwracamy błąd, ponieważ interpretujemy to jako próbę przekazania wartości customowej w parametrze. Zespół przyjrzy się temu przypadkowi i przeanalizuje możliwe "ulepszenie" dla takiego scenariusza.

creativepl-php commented 6 hours ago

No fajnie by było, skoro API wie o co mi chodzi, zmatchował ID opcji parametru. Zasób wystawiania oferty normalnie działa dla wartości tekstowych np.

"parameters": [
            "name": "Stan",
         {
           "values": [
                "Używany"
            ]
        }
    ]