allegro / allegro-api

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

NoValueInDictionaryParameter i ImproperlyAssignedDictionaryParameter #9820

Open hiimlayter opened 2 months ago

hiimlayter commented 2 months ago

Próbując wystawić nową ofertę dostaje odpowiedź zwrotną z informacjami:

{
    "errors": [
        {
            "code": "ConstraintViolationException.NoValueInDictionaryParameter",
            "message": "No value was given for parameter (217297)",
            "details": "ConstraintViolationException.NoValueInDictionaryParameter",
            "path": "parameters",
            "userMessage": "Nie podano wartości dla parametru Materiał (217297).",
            "metadata": {}
        },
        {
            "code": "ConstraintViolationException.ImproperlyAssignedDictionaryParameter",
            "message": "The dictionary parameter should be completed through the value identifier for 217297.",
            "details": "ConstraintViolationException.ImproperlyAssignedDictionaryParameter",
            "path": "parameters[4]",
            "userMessage": "Parametr słownikowy należy uzupełnić poprzez identyfikator wartości dla 217297.",
            "metadata": {}
        }
    ]
}

Request zawiera informację o parametrze 217297 (Materiał) i podaną wartość w polu valueIds 217297_276801:

"parameters": [
                    ...
                    {
                        "id": "217297",
                        "name": "Materiał",
                        "rangeValue": null,
                        "values": null,
                        "valueIds": [
                            "217297_276801"
                        ]
                    },
                    ...
                ],

Sprawdziłem na https://api.allegro.pl/sale/categories/258860/parameters jakie wartości przyjmuje parametr Materiał i otrzymałem taką odpowiedź:

{
            "id": "217297",
            "name": "Materiał",
            "type": "dictionary",
            "required": true,
            "requiredForProduct": true,
            "requiredIf": null,
            "displayedIf": null,
            "unit": null,
            "options": {
                "variantsAllowed": false,
                "variantsEqual": false,
                "ambiguousValueId": "217297_276813",
                "dependsOnParameterId": null,
                "describesProduct": true,
                "customValuesEnabled": true
            },
            "dictionary": [
                {
                    "id": "217297_276801",
                    "value": "aluminium",
                    "dependsOnValueIds": []
                },
                ...
            ],
            "restrictions": {
                "multipleChoices": false
            }
        },

Id wartości 'aluminium' jest identyczne w moim requescie i w słowniku zwróconym przez Allegro. Stąd pytanie dlaczego moja oferta zostaje odrzucona z informacją o nieprawidłowej wartości parametru? Na taki błąd trafiłem nie tylko przy parametrze "Materiał" ale też na przykład "Stan"

AureliuszBrussy commented 2 months ago

Czy możesz podać trace-id przykładowego wywołania, gdzie trafiasz na ten problem? Trace-id znajdziesz w nagłówku naszego response'a. Pozwoli mi to dokładnie sprawdzić, co się wydarzyło.

hiimlayter commented 2 months ago

9efd8ac63e012e80

AureliuszBrussy commented 2 months ago

Dziękuję, wyjaśniam to z odpowiednim zespołem. Wrócę z odpowiedzią.

AureliuszBrussy commented 1 month ago

Zamiast tablicy valuesIds, wysłasz valueIds - wkradła Ci się literówka.