Извините за поздний ответ, но я только что натолкнулся на этот вопрос и решил добавить свой метод.Во-первых, позвольте мне сказать, что цвет / размер / стиль весьма специфичны для индустрии моды.Раньше я работал в компании, которая занималась разработкой программного обеспечения для управления запасами, и они не стали его трогать !!
Как уже указывалось, лучше всего отделить складские единицы от торговых единиц.Это работает отлично, но имеет огромный недостаток, который вам нужно вручную вводить каждую отдельную комбинацию для одного продукта.Таким образом, для добавления диапазона могут потребоваться недели.
Мой метод более сложен на заднем конце, но позволяет значительно быстрее генерировать единицы хранения запасов и неограниченные возможности.
Так:
Во-первых, вам нужна таблица для хранения ваших параметров (размера, цвета, стиля и т. Д.). Она будет состоять просто из первичного ключа и имени для вашего параметра.
Во-вторых, выиметь другую таблицу для значений параметров (маленькая, средняя, большая, красная, зеленая и т. д.). Она состоит из вашего первичного ключа, имени значения и идентификатора записи параметра, которой оно принадлежит.
Таким образом, если запись 1 в вашей таблице «options» имеет значение «size», то записи для «small», «medium» и т. Д. Будут связаны с этой записью.
Таким образом, вы можете настроить параметры, доступные для выбора во всех продуктах.
В качестве отступления: вы можете сделать жизнь еще проще, создав таблицу 'optionsGroup' - которая будетиспользуется для связи обеих таблиц вместе.Поэтому, если ваш ассортимент футболок доступен в красном, зеленом, черном и белом цветах, вы можете назначить эти параметры для параметров «цвет» группы «футболки».Тогда ваши джамперы могут быть красного, синего, желтого, серого цвета, поэтому вы можете связать их с группой «Толстовки».Таким образом, значения параметров цвета по-прежнему связаны с параметром цвета, но только соответствующие значения будут отображаться на каждой странице продукта в вашей системе администрирования.
Наконец, у вас есть таблица нормализации, связывающая продукты со значениями параметров.Каждая запись содержит идентификатор вашего продукта и идентификатор значения опции.Как вы их выбираете, зависит от вас, но я показываю все доступные опции вместе с их значениями в виде флажков на экране администрирования продукта.Каждый выбранный элемент создает запись в таблице нормализации.
Так что для продукта с футболкой теперь у вас будет отдельная запись для каждого варианта продукта, доступного для продукта.
Теперь действительноумный бит: вы пишете запрос, который просматривает каждую доступную опцию и возвращает каждую возможную комбинацию их всех - создавая каждую как отдельную запись SKU!Каждая из этих записей может содержать отдельные модификаторы цен, изображения, что угодно, и что более важно, вы можете просто деактивировать любые комбинации, которые не будут работать для вас.
Это довольно сложное решение, и я никогда не пробовалчтобы объяснить это раньше (и я нахожу это довольно сложно сделать !!), но это работает намного лучше, чем любое решение, которое я видел или использовал раньше.Продукты создаются в кратчайшие сроки, и вы можете иметь буквально неограниченные возможности.