Как спроектировать онлайн-склад?
Хранить текущие остатки по каждой товарной позиции + историю операций "поступление/убытие"
С точки зрения складских остатков логично считать MetallicaЗеленаяXL, MetallicaЗеленаяL,  MetallicaКраснаяL как 3 разных товара.
Для удобства можно хранить дополнительную структуру данных которая объединяет 3 этих товара в единую группу Metallica.
Вообще честно не советую городить велосипед в данном случае. Возьмите какую нибудь 1С, там это давно сделано удобно и понятно. Стоит копейки, апи наружу тоже не проблема.
Сделай интеграцию с 1С-Склад, будет куда проще и быстрее