вариант с pivot хороший, но мне кажется не единственный, бывает еще делают типа варианты товаров, то есть я так понял по сути это разновидность товара (еще один товар)
как вариант может быть поле parent_id у товара (типа дочерний товар - вариант), у него могут быть большинство свойств от основного товара, а какие-то свои, например всё от родительского, а цвет другой