The two row types
Use a parent row with Type=variable, followed by child rows with Type=variation. Every child must contain its own SKU and a Parent value matching the parent SKU. This is the shape expected by the built-in WooCommerce CSV importer.
How attributes work
On the parent row, Attribute 1 value(s) contains all allowed values, such as S, M, L. Each child contains exactly one of those values. Set Attribute 1 name consistently, and use 0 for local (non-global) attribute definitions.
Why the order matters
Put parent rows before their children. WooCommerce documents version-specific behavior for converting existing simple products and creating variations, so importing brand-new products differs from updating existing ones.
Before you go live
Create a backup, import a small file into a staging store, inspect selectable attributes and confirm prices, stock and image links. A converter cannot guarantee success for third-party extension fields.