Okay, I've had two subsequent ideas for how to approach this, thought it'd be better as an answer than an edit:
1) You have two databases, one for the phone and one for the web app. The schema would look like this:
index_id | title | amount | user_id | created | environment | foreign_id
So let's say I have an entry on my mobile device: 1,'Title',2.00,1,NOW() and an entry on my web app, 1,'Something',5.00,1,NOW() . To avoid these two things conflicting, the web app will add a row saying 2,'Title',2.00,1,NOW(),'mobile',1.
In this way I can maintain all index_id's correctly. This seems like an absolute nightmare to maintain and get right.
2) What if one were to designate a DB (say the web app) as the master and the device as a slave, so that you had one table on the web app and two tables on the device. For the device, you'd have one table 'queues' which, upon network connectivity, would update the live web app database (at the same time clearing itself out), and then the WEB APP database would sync, one way, back to the device's second main table.
Prior to syncronization, the business logic on the device would have to treat the two local tables as one. This seems like an easier beast to tackle than the above.