Change order populator to handle invalid variant_id and quantity values

Not part of this diff, but I think that there is no valid use case where `#order=` and `#currency=` get called. I wounder if both can be replaced with an `attr_reader`.

The changes in this PR are big enough to also make this last change.