The issue with an actual store is that the "physical world overrides the virtual".
Your database in the virtual world may say that 20 items are in stock. When you walk over to the shelves, you only see 2 items. Well, I guess only 2 items are in stock. It doesn't matter that the remaining 18 were stolen by a shoplifter (or maybe scattered elsewhere in the store). You may have had 20 items enter inventory, but what's on the shelf is your final database.
There's not really any way to keep that up to date. Even if you have a bunch of minimum wage employees count the items constantly: as soon as the first customer walks through that row, your count is obsolete.
If you hook up your inventory system to the checkout: that still doesn't work, because thieves exist, and many customers pickup items, suddenly decide they don't want it, and then drop the item off randomly in the store (maybe they pickup some cheese, and then decided they didn't want it. So they leave the cheese in the clothes aisle and now the cheese is spoiled)
Sure, but this wasn't that. This was an item that was on sale that had one left that they showed me just before I checked out. If I had just picked it out, that is one thing, but to bring attention to it is just a bad experience. They could simply start by removing anything with a single item left from the last minute sales pitch. They could improve it by figuring out the probability of an item being available.
Honestly, it's bad UX that they even make you choose a store, that is an implementation detail. I have 3 Walmarts within 5 miles of my house, and 10 of them within 10 miles. They should present them to me as a single same-day warehouse, and then they can work out where to get which items from.
The issue with an actual store is that the "physical world overrides the virtual".
Your database in the virtual world may say that 20 items are in stock. When you walk over to the shelves, you only see 2 items. Well, I guess only 2 items are in stock. It doesn't matter that the remaining 18 were stolen by a shoplifter (or maybe scattered elsewhere in the store). You may have had 20 items enter inventory, but what's on the shelf is your final database.
There's not really any way to keep that up to date. Even if you have a bunch of minimum wage employees count the items constantly: as soon as the first customer walks through that row, your count is obsolete.
If you hook up your inventory system to the checkout: that still doesn't work, because thieves exist, and many customers pickup items, suddenly decide they don't want it, and then drop the item off randomly in the store (maybe they pickup some cheese, and then decided they didn't want it. So they leave the cheese in the clothes aisle and now the cheese is spoiled)