Could not they shard the inventory table by shop_id? As I understand, the order includes only items from one store, so there is no need to keep all the stores in a single table.
Also, I wonder why they could not have a row status (available/reserved) and UPDATE it instead of deleting the rows.
Also, I wonder why they could not have a row status (available/reserved) and UPDATE it instead of deleting the rows.