25 kwietnia 2023
Wprowadzamy zmiany w obsłudze parametrów zależnych
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 Samsung, dostępne wartości dla parametru Model zawęzimy do modeli Samsunga,
- które będą wymagane lub widoczne w zależności od wyboru wartości (lub jej braku) innego parametru, np. jeżeli wystawiasz Bransoletkę i jako wartość parametru Materiał wybierzesz złoto, pojawi się parametr Próba złota. Inny przykład - jeśli wystawiasz np. buty, wartość dla GTIN będziemy wymagać wyłącznie wtedy, gdy zostaną spełnione oba warunki:
- dla parametru Stan wybrano wartość Nowy,
- wybrana Marka znajduje się na liście marek, dla których wymagamy GTIN.
Jak parametry zależne obsługiwaliśmy dotychczas?
Za obsługę parametrów zależnych były do tej pory odpowiedzialne poniższe pola, które zwracamy w ramach GET /sale/categories/{categoryID}/parameters:
- w sekcji options:
- dependsOnParameterId - 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;
- requiredDependsOnValueIds - w którym zwracamy identyfikator wartości parametru warunkującego, od którego zależy, czy dany parametr będzie wymagany, np. w przypadku parametru GTIN może się tutaj znaleźć identyfikator wartości “Nowy” parametru “Stan”,
- displayDependsOnValueIds - w którym zwracamy identyfikator wartości parametru warunkującego, od którego zależy, czy dany parametr będzie widoczny, np. jeżeli to pole dotyczy parametru “Pojemność” w kategorii “Mydła”, to zwrócimy tutaj identyfikatory wartości “Płyn i “Pasta” dla parametru “Rodzaj”.
- w sekcji dictionary - dependsOnValueIds. Zwracamy w nim identyfikator wartości parametru “A”, od którego zależna jest dana wartość parametru “B”, np. dla wartości Galaxy A54 (wartość parametru “B”) zwrócimy ID, które odpowiada wartości Samsung (wartość parametru “A”), ponieważ wybór konkretnego modelu uzależniony jest od wybranej marki.
Jakie zmiany wprowadziliśmy?
Pola:
- options.requiredDependsOnValueIds,
- options.displayDependsOnValueIds oznaczyliśmy jako deprecated i w przyszłości zamierzamy je usunąć.
Zastępujemy je polami:
- requiredIf,
- displayedIf,
które zawierają poniższą strukturę danych:
parametersWithValue - w którym w polach:
- id - zwrócimy ID parametru, od którego zależy wymagalność/wyświetlanie danego parametru,
oneOfValueIds - zwrócimy konkretne wartości tego parametru, które będą warunkować, czy dany parametr jest wymagany/wyświetlany,
np. dla parametru GTIN możemy zwrócić poniższą strukturę:
"requiredIf": {
"parametersWithValue": [
{
"id": "11323", - ID parametru Stan
"oneOfValueIds": [
"11323_1" - ID wartości Nowy parametru Stan
]
},
{
"id": "246705", - ID parametru Marka
"oneOfValueIds": [
"246705_598637" - ID konkretnych wartości parametru Marka
"246705_598638"
]
}
],
- parametersWithoutValue.id - gdzie zwrócimy ID parametru, którego brak będzie oznaczać wymagalność/wyświetlanie danego parametru, np. dla parametru GTIN możemy zwrócić ID parametru Kod producenta, ponieważ jeśli nie wskażesz nam żadnej wartości dla Kodu producenta, musisz przekazać nam GTIN.
Kombinacje wartości w polach:
- options.dependsOnParameterId,
- dictionary[].dependsOnValueIds pozostaną bez zmian.
Dlaczego wprowadzamy zmiany?
W dotychczasowej strukturze danych nie mieliśmy technicznej możliwości, aby zaprezentować wszystkie zależności parametrów, jakie mogą wystąpić. Dzięki zmianom, każdy scenariusz, jaki występuje na naszej stronie internetowej, będzie również mógł zostać odpowiednio obsłużony w aplikacji.