I think there is no any plugin or anything else that is going to help you to do this. I actually made a complicated one, and working on the next one. You have to actually be very good at nesting promises, and understanding the problems that may occur during callbacks ( it will ).
Also i dont know if you got the basics arleady. We r using https://github.com/litehelpers/Cordova-sqlite-storage. It uses the same sintax as web db., so you can easily run automated tests in the browser by replacing the plugin dependency.
We had a couple things, which are just do not works. (like writing an insert into command, using select as source).
And reaching the limit of running a certain amount of executes in one transaction (some kind of a heap error, when inserting bigger amount of data [like 3-5k or more rows]). Although its solvable, and if i am right, its only occur on android.
Getting data, and then inserting into the db is of course not that hard. But you may have to think of some kind of synchronization logic. Like don’t delete product if its inactive, but the user still has it on his stock, and he still wants to sell it. (in case of a sales management, or sg. like that, application)
As i said, i did worked a lot with the mentioned kind of architecture (working offline mode, + synchronization).
So if you have some questions in general, or in depth, feel free to ask.