Почему этот код капризнее остальных
Квадратик маркировки — сантиметр или меньше, а данных в нём на порядок больше, чем в полосатом коде рядом: номер товара, серийный номер, проверочная часть. Точки получаются мелкими, и каждая помеха — блик, расфокус, потёртость — съедает заметную их долю.
Запас прочности у символики есть: избыточное кодирование восстанавливает данные при частичной потере точек. Но на мелком коде запас расходуется быстрее — там, где крупный QR ещё читается, мелкий Data Matrix уже молчит.
Второй источник путаницы — кодов на упаковке два. Полосатый EAN-13 читается любым кассовым сканером, а коду маркировки нужен имидж-сканер, который фотографирует, а не ведёт лучом. Когда «не читается» ровно один из двух кодов, начните с типа сканера.