@huoxito the 'original' hash is way of keep deface files up to date with the templates that they are overriding. Basically it is an MD5 hash of the underlying template that gets calculated at runtime. If the hash changes it means that the underlying template(s) has changed somewhere and that your deface may not work as expected. At that point Deface logs an error.

The reason I tried to replace the javascript with a deface is because product assemblies shouldn't have variants.... they are just bundles of other products. If one needs variants one probably needs to create a separate product (assembly).

It's too bad I couldn't find a good way to target the Variants tab using deface though, so I guess this PR won't work. Maybe we should just remove the js though since it cause js errors, or I could fix it up to work with the current core/extensions.