IN the appliance world, when ppl let fridges get warm, a horrid stank develops. The best way to combat this is a coffe filter filled with DRY grounds, and one filled with used wet grounds. The wet grounds give off the coffee smell, the dry absorb smell. I also second the baking soda in the carpet. My old ae86 had been smoked in badly, I simply had to remove the entire interior and buy a race seat.
Turn on the ac and mist fabrees in to the intake liberly.
Next wipe down every inch of the interior with a cleaner. I use oil eater and orange citrus cleaner mixed together.
Wipe again with water
Hose every surface down with fabreez untill very damp almost wet.
Close up the car and leave in the sun for a week. Then repeat the fabreex application again an leave out in the sun again.
I have used this process several times and it works very well.
I was in the same boat a while back. If you know a good detailler and don't want to do the work it is worth it if they clean all plastic surfaces, seats and carpets. Headliners usually come with a disclaimer that it may look rather shaggy after the work. IF it does end up shaggy then use one of these lint shavers to try and clean it up, a more risky tool is a small hair trimmer.
If you clean it up then you need to remove as much of the trim as possible and and clean it outside the vehicle. Then get inside and wash any interior surfaces, glass/metal/plastic. I found the A-Pillars behind the trim coated with tar as well as the vent ducts. After it was all done the car was devoid of any smoking smell.
Oh and the (deadly, as it has to be VERY HIGH concentrations) OZONE treatments are likely to work but there is a lot of concern of what else the OZONE does. It hasn't been studied extensively but there is some data from use in homes after fires that it can convert some plastic particles into toxic substances that remain in the car.