It's hard to say, depends on what exactly you need, for us it'll be a pretty simple solution, something like:
Barcode scanner is used on a label (a label containing a code that its unique for a shipment we have in NS, so the labels are also generated in NS) ->
The value is scanned into a field on a Suitetlet ->
The field reacts on changes, it takes the value and does whatever needs to be done like setting a specific status on a Item Fulfillment or whatever is needed
This is just a simple example but my point was just that it's not always necessary to buy expensive products, but depends on a lot of stuff like complexity of your solution, time, money etc 🙂