How would you model products, variants and attributes for a catalogue that spans very different categories?
Separate the product a customer shops for from the variant that carries a barcode and stock, decide which attributes are variant-defining rather than merely descriptive, and hold the rest in a typed per-category schema, because a fixed column set cannot grow and an untyped bag cannot be trusted.