02 kwietnia 2020
Parametry zależne - udostępniamy nowe pola
Parametry zależne to parametry:
- dla których zbiór dostępnych wartości jest uzależniony od wartości innego parametru. Przykładem może być Model, ponieważ dostępne wartości będą uzależnione od tego, jaką wartość wybierzesz dla parametru Marka, np. jeśli jako Markę wskażesz Nokia, dostępne wartości dla parametru Model zawęzimy do modeli Nokii,
- które będą dostępne w zależności od wyboru wartości innego parametru, np. (przykład teoretyczny) jeżeli chcesz wystawić Bransoletkę i jako wartość parametru Materiał wybierzesz złoto, pojawi się parametr Próba złota.
Aktualnie skupiamy się na zależnościach między wybranym parametrem, a zbiorem dostępnych wartości parametru zależnego.
Parametry zależne planujemy stopniowo wdrażać w wybranych kategoriach, w najbliższym czasie wprowadzimy je w kategorii Klipsy (123428). O kolejnych kategoriach i parametrach będziemy informować na stronie dla sprzedających. Parametry mogą być obowiązkowe, sprawdzisz to w polu required w odpowiedzi dla GET /sale/categories/{categoryId}/parameters.
Za pomocą tej funkcjonalności w przyszłości ograniczymy liczbę dostępnych podkategorii, dzięki czemu uprościmy nawigację, np. Sprzedający wystawi przedmiot “Nokia 8” już w kategorii nadrzędnej “Smartfony i telefony komórkowe” - wystarczy, że odpowiednio określi Markę i Model.
W związku z tym udostępniliśmy nowe pola w odpowiedzi dla GET /sale/categories/{categoryId}/parameters:
- dependsOnParameterId w sekcji options. Wskazujemy w nim identyfikator parametru “A”, od którego zależne są wartości parametru “B”, np. dla parametru Model (parametr “B”) zwrócimy identyfikator parametru Marka (parametr “A”). Identyfikator parametru w tym polu zwracamy tylko dla parametrów typu dictionary, w pozostałych przypadkach odpowiemy wartością null,
- dependsOnValueIds - w sekcji dictionary. Zwracamy w nim identyfikator wartości parametru “A”, od którego zależna jest dana wartość parametru “B”.
Po tym, jak wprowadzimy pierwsze parametry zależne, nowe pola pomogą ci sprawdzić, czy próbujesz wystawić ofertę z poprawną kombinacją wartości parametrów, np. czy Nokia produkuje model, który przekazujesz w żądaniu.
Początkowo nie będziemy zwracać błędów, jeśli nie powiążesz poprawnie parametrów zależnych. Jeżeli parametr oznaczymy jako obowiązkowy, będziesz musiał uzupełnić wartość, jednak zignorujemy zależność między parametrami. Gdy zdecydujemy się wprowadzić walidację, poinformujemy o tym z odpowiednim wyprzedzeniem.
Poniżej znajdziesz przykład struktury, który tłumaczy mechanizm parametrów zależnych:
{
"id": "1254",
"name": "Model",
"type": "dictionary",
"required": false,
"unit": null,
"options": {
"variantsAllowed": true,
"variantsEqual": false,
"ambiguousValueId": "1254_17231",
"dependsOnParameterId": "202689" -- identyfikator parametru, który
definiuje, jakich wartości można użyć
dla tego parametru.
W tym przypadku oznacza to, że
wartości parametru Model są zależne
od wartości parametru
Marka.
},
"dictionary": [
{
"id": "1254_1",
"value": "Galaxy S20",
"dependsOnValueIds": [
"202689_213101" -- identyfikator wartości, od której
zależna jest wartość tego parametru.
W tym przypadku wskazuje na markę
Samsung.
]
},
{
"id": "1254_2",
"value": "Galaxy S20+",
"dependsOnValueIds": [
"202689_213101"
]
},
{...},
{
"id": "1254_3",
"value": "520 Lumia",
"dependsOnValueIds": [
"202689_213102" -- w tym przypadku wartość wskazuje
na markę Nokia
]
},
{...},
{
"id": "1254_4",
"value": "Mi Note 10",
"dependsOnValueIds": [
"202689_213103" -- w tym przypadku wartość wskazuje
na markę Xiaomi
]
},
{
"id": "1254_5",
"value": "Mi Note 10 Pro",
"dependsOnValueIds": [
"202689_213103"
]
}
]
}