Есть конечное множество товаров с канонической иерархией (группы - подгруппы - товары). Каждый товар обладает своим словарем признаков (набор пар признак - значение). На множестве товаров встречаются однотипные группы, одинаковые во всем кроме одного (двух, трех) признаков.
Необходимо реорганизовать множество товаров так, чтобы имелась возможность представления таких групп как единого товара с разновидностями.
Пример: Кронштейны (для полки) разной длины и цвета. Если варианты по длинам: 100 мм, 200 мм, 300 мм, по цветам: белый и синий. Признак “материал” у всех одинаковый - сталь.
Решение: вводим понятие Типа товаров. Тип - это объединение нескольких товаров, схожих во всем, за исключением одного или нескольких признаков. При создании типа указываем, на основе какого признака (признаков) в него будут объединяться товары. Далее такие признаки будем называть вариативными. Остальные признаки для всех товаров внутри типа должны совпадать, их будем называть статическими.
Пример: Вводим тип “Кронштейн”. Объединяем в него все наши кронштейны. Вариативными параметрами будут “длина” и “цвет”. А “материал” будет статическим - он для всех товаров в типе одинаков.
После наполнения типа товарами по каждому вариативному признаку возникает конечная вариация - набор значений, в пределах которого изменяется данный признак в этом типе.
Набор признаков типа назовем Ортогональным, если для любого сочетания значений этих признаков найдется товар, их реализующий.
Пример: Вариация длины: 100, 200 или 300 мм. Вариация цвета: белый или синий. Для любого сочетания значений этих признаков у нас в ассортименте есть товар. Поэтому набор признаков ортогонален. Но если предположить, что синие кронштейны бывают только 100 и 200 мм, то набор признаков перестает быть ортогональным, поскольку вариация (синий, 300 мм) отсутствует среди возможных наборов значений.
В общем случае (ортогональный или неортогональный набор признаков у типа) для представления товаров нам необходимо по каждому выводить сразу весь состав пар признак - значение.
В случае ортогонального набора признаков у типа мы можем предоставить пользователю независимый выбор значений отдельно по каждому признаку. Ибо мы уверены, что любое возможное сочетание признаков воплощается в некоем товаре.
Пример: Поскольку у нашего типа “Кронштейн” набор признаков ортогональный, то проектируя интерфейс интернет-магазина, мы можем дать пользователю независимый выбор длины кронштейна и его цвета (можно использовать radio-button отдельно по цвету и по длине). Если же набор не ортогонален, то необходимо реализовывать общий выбор по всем парам (тройкам и т.д.) значений (белый, 100 мм), (белый, 200 мм)... и т.д.
Вывод. Объединяя схожие товары в типы мы делаем представление товарной группы на сайте более компактным. Блок типа занимает почти столько же места, сколько и блок одиночного товара. Незначительное дополнительное место требуется для раздела описания признаков, где вместо простого перечисления значений стоит интерфейс выбора.
Необходимо реорганизовать множество товаров так, чтобы имелась возможность представления таких групп как единого товара с разновидностями.
Пример: Кронштейны (для полки) разной длины и цвета. Если варианты по длинам: 100 мм, 200 мм, 300 мм, по цветам: белый и синий. Признак “материал” у всех одинаковый - сталь.
Решение: вводим понятие Типа товаров. Тип - это объединение нескольких товаров, схожих во всем, за исключением одного или нескольких признаков. При создании типа указываем, на основе какого признака (признаков) в него будут объединяться товары. Далее такие признаки будем называть вариативными. Остальные признаки для всех товаров внутри типа должны совпадать, их будем называть статическими.
Пример: Вводим тип “Кронштейн”. Объединяем в него все наши кронштейны. Вариативными параметрами будут “длина” и “цвет”. А “материал” будет статическим - он для всех товаров в типе одинаков.
После наполнения типа товарами по каждому вариативному признаку возникает конечная вариация - набор значений, в пределах которого изменяется данный признак в этом типе.
Набор признаков типа назовем Ортогональным, если для любого сочетания значений этих признаков найдется товар, их реализующий.
Пример: Вариация длины: 100, 200 или 300 мм. Вариация цвета: белый или синий. Для любого сочетания значений этих признаков у нас в ассортименте есть товар. Поэтому набор признаков ортогонален. Но если предположить, что синие кронштейны бывают только 100 и 200 мм, то набор признаков перестает быть ортогональным, поскольку вариация (синий, 300 мм) отсутствует среди возможных наборов значений.
В общем случае (ортогональный или неортогональный набор признаков у типа) для представления товаров нам необходимо по каждому выводить сразу весь состав пар признак - значение.
В случае ортогонального набора признаков у типа мы можем предоставить пользователю независимый выбор значений отдельно по каждому признаку. Ибо мы уверены, что любое возможное сочетание признаков воплощается в некоем товаре.
Пример: Поскольку у нашего типа “Кронштейн” набор признаков ортогональный, то проектируя интерфейс интернет-магазина, мы можем дать пользователю независимый выбор длины кронштейна и его цвета (можно использовать radio-button отдельно по цвету и по длине). Если же набор не ортогонален, то необходимо реализовывать общий выбор по всем парам (тройкам и т.д.) значений (белый, 100 мм), (белый, 200 мм)... и т.д.
Вывод. Объединяя схожие товары в типы мы делаем представление товарной группы на сайте более компактным. Блок типа занимает почти столько же места, сколько и блок одиночного товара. Незначительное дополнительное место требуется для раздела описания признаков, где вместо простого перечисления значений стоит интерфейс выбора.
Комментариев нет:
Отправить комментарий