Working in retail isn't so much as this company is good and that company is bad. It 100% depends on the particular management of the individual store.
My wife worked for Lowes for about 4 years. She loved it and loved management. Her manager knew she was quitting when she had our first daughter and laid her off with unemployment benefits instead of maternity leave knowing after she wasn't coming back.
After 9 years of raising our daughters, when they youngest hit 1st grade, my wife applied back with Lowes. She was immediately hired as a seasonal worker. 3 months after that, they begged her to apply for the head cashier position. She only works 5 pm to close during the week and anything other than open on the weekends. It's been 3 years and she's gotten quite large pay raises over the 3 years and makes almost the same as one of the other head cashiers that she worked with back the first time.
Problem is, management has changed hands a few times. Now management doesn't care about anything. My wife has customers screaming at her wanting to see a manager and the managers refuse to see the customers. She has had people bring stolen merchandise in repeatedly, she knows it's stolen, management knows it's stolen, but management doesn't care. They tell her to ignore the driver's license flag and give them the money. My wife had someone return $2000 worth of Dewalt batteries in 4 transactions within a 20 minute window. Yes, I said $2000 worth. She refused to return them when the same kid came back in within 5 minutes with a different driver's license. Manager was with her, "Just return them," he said.
My wife gets 10% employee discount out of appreciation for their work. That's great, but all you have to do is come in as a customer and be an ******* and a manager will just give it to them for 50% or better. My wife is the one who gets the grunt of the anger from customers and the manager rewards the behavior towards the employees by almost giving the merchandise away.