Суть вопроса как-то вообще не понятная. Какие проблемы хотите, что б помогли решить?
1. Что значит, огромный массив данных и как клиент теряется? И какой клиент? Если вы про описание и характеристики, и они (как я догадываюсь благодаря экстрасенсорным скилам) лежат тупо текстом, то разбивайте их на НазваниеСвойства и ЗначениеСвойства, привязывайте к товару, а товар к категории. А в категории выставляйте, какие Свойства она показывает, а какие нет. Тоже ручная работа, конечно, но уже на другом слое абстракции. Категорий меньше, чем свойства.
2. Для того, что б имена товаров были красивенькими, если так нужно, то можно откуда-нибудь парсить все подряд названия товаров по вашей теме, а при загрузке - матчить. По модели, например, отрезав кириллицу и популярные слова.
3. Если в вашем источнике (САП) нет информации о наличии, где она возьмется? Как вы узнаете "зарезервирован ли товар у оптовика" ?