Fala, pessoal. Tudo bem?
Se o seu loop dos produtos no HTML não está funcionando corretamente, é provável que a execução do template tenha gerado algum erro. Porém, ao acompanhar o código do instrutor, não está sendo feita a verificação de um possível erro, ou seja, ficamos sem saber o que está dando de errado.
Desse modo, ao invés de:
temp.ExecuteTemplate(w, "Index", products)
Recomendo:
err := temp.ExecuteTemplate(w, "Index", products)
if err != nil {
log.Fatalln(err)
}
Isso já deve ser o suficiente para você conseguir arrumar o seu loop dos produtos. Valeu e bons estudos!