Contrary to what you have heard, online and offline data will not be tied in summary data source, as there is no binding dimension.
Partial data is tied in using transactionid within transaction ID data source
If you want to tie the data to the user, you need visitorID, which is mandatory in full processing data source.
Note, full processing data source is still not the same as sending data in a server call. It is the only data source where you can send in traffic and other dimensions apart from conversion dimensions like browser, user agent, referrer, etc.
I know that the problem you have mentioned, is not new, and I have seen others face this as well. It is difficult to implement cause of the way the data sources is structured, and in particular the behaviour of the product variable. I cannot guarantee a solution, but let you know of the pros and cons of the different types.