Don't assume that data is coming in through GPC globals, this harvesting should be done at the top level (normally, the UI controller), and the adapter should only deal with a flat key/value data structure.
This will help reduce orphan slaying and standalone special-casing.
Keep in mind that each adapter has its own order_id preference, write tests to ensure this is not jiggled during refactor.