I use a very simple trick to deodorize my carpets. It is thrifty AND natural. :) You will need:
Lavender essential oil
Baking soda (or borax)
I'm sure you have the last two things on the list, Amazon is one of the cheapest places that I have found lavender essential oil. It has many uses (which I will try to do a blog post about) and a 1oz bottle will last a very long time.
Throw a couple of cups of baking soda into a large bowl. Put 20-25 drops of essential oil in the bowl and use a fork to mash it up into the baking soda and mix. Sprinkle the baking soda onto the carpet and leave for about 30 minutes. If you have kids it is best to do this AFTER they go to bed or they will track it everywhere, I learned that the hard way. Vacuum it up and enjoy the smell! You can use any kind of essential oil but I think that lavender smells the best for house cleaning. Any citrus oil would smell nice as well and they are even less expensive. If you want to deodorize without any essential oil baking soda or borax alone works just fine. Enjoy!