It can be quite simple, but also quite complex. It's not something that we would look at for core code, I think, due to it being so complex with the possibility of breaking shops more than helping shops. Hope that makes sense.
A simplistic version [something like as shown in your image above] should be very possible, I think, with no core code changes needed.