I have this sign hanging next to my door:
https://www.amazon.com/KNOCKERS-Please-Warning-solicitation-Outdoor/dp/B079S9QRDK
It works 99% of the time. Since I put it up, the number of idiots trying to sell me things has decreased to almost zero. For the very rare idiot that tries, I answer the door with my hand out for their money. They all just turn and leave.