USPS won't take UPS or FedEx. UPS and FedEx don't have a way into my building. I don't have a car to get out to the airport where the UPS center is. University mail room policy is no personal packages at work. So I basically can't shop online.
If you can list the street address of the Post Office along with the P.O. Box number the USPS will accept it.
The reason FedEx, UPS, DHL, TNT, etc "don't deliver" to P.O. Boxes is that they don't maintain the same database of "which post office has which P.O. Box for which zip code" that the USPS does. If they don't maintain this mapping, how is the delivery driver supposed to know where to go?