You can make some sort of function that caches the inventory when it gets updated instead of updating it straight away in the data store. Then you can have some sort of service to evenly distribute the data store calls you need to make in the background that saves the cache to it.
This way you can make sure your not requesting too much at once when getting your inventory since it would be from a cache and requires no actual calls and therefore will not yield.
All of this can be done in the background if you use DataStore2 or even ProfileService
I would personally recommend DataStore2, however developing your own service/system is still viable.