Hi Scott.
Parsing productName is a solution regarding to the actual implementation. But I did not think about changing orderDetail table, but changing Variant name (reformulation for example). In this case the variant options will not be parsable anymore for all existing orders. And I think the database triggers are a bit overkilled for such a scenario.
The only other possible solution will be to create a new variant instead of changing existing variants. With this approach, all ProductName data will still be parsable (but the drawback is that the same options (that is renamed) will be considered as 2 differents variants).
In all cases, the datatable that list all variant ID (with its variantGroup ID) choosen for each order detail ID would be the best solution.
Anyway, thanks for your answer.