It doesn't require fixing codes, it only requires to set up the store, at least for first
three points. I am more or less sure you can handle the fourth point without playing with the code. However, you can go through
https://devs.x-cart.com/changing_store_logic/ to find out how to write a module for that purpose yourself.