In various places, the tax code sets !TaxClass to hardcoded value "Default" if it's not given when calling a function. This causes serious problems if one has removed or renamed the !TaxClass "Default", as I have done to name the !TaxClasses with the terms used in our legislation.
I ran into this when creating !ProductVariations and using the area tax module. I had defined the !TaxClass only in the parent Product, assuming that all of the child products then correctly inherit the same !TaxClass when left empty. Instead, the tax code considered !TaxClass to be empty, set it to "Default" and crashed with !TemplateSyntaxError when trying to display prices with tax.
The problem can be worked around by adding the !TaxClass "Default" (will things then work for !ProductVariations that should have another !TaxClass by inheritance?) or by individually setting the !TaxClass of each !ProductVariation, but I think the correct solution would be to remove the assumption that a !TaxClass named "Default" exists from Satchmo. If you want to keep the "Default" assumption, the user should not be allowed to rename/remove it.
Reported by teroajk