Можно ответить так. Дефисное написание нарушает орфографическую норму, т. к. штрихкод – сложносокращенное слово (от штриховой код), а такие слова по правилам русского правописания пишутся слитно. Но слово это не так давно в русском языке, а новые слова нередко испытывают колебания в написании, что фиксируется словарями. Поэтому *штрих-код далеко не такая же орфографическая ошибка, как, например, *лесница или *деревяный.
Это слово пишется слитно: штрихкод.
Написание этого слова соответствует правилу: сложносокращенные слова пишутся слитно (штрихкод – сокращение от штриховой код). Ср.: пединститут, запчасти, загранпаспорт.
Слово штрихкод пишется слитно.