Matching by name, not position
Stacking files by position is what a shell cat does, and it is wrong the moment two exports put their columns in a different order. Matching by header name means a file with columns id, name, total merges correctly with one that has name, total, id.
A column present in some files and not others becomes a column that is empty for the rows that came from the files without it. That is more useful than refusing to merge, and it is visible in the result rather than silent.
Before you merge
Check that the header names really do mean the same thing. Two exports can both have a column called date where one is the order date and one is the ship date. Nothing here can detect that, and merging them produces a file that is wrong in a way that is hard to spot later.