Bonjour,
Le champs personnalisé sauvegarde la valeur dans la base, c'est donc cette valeur qui peut être lu.
Afin d'afficher le titre, il faut au préalable charger la configuration des champs personnalisés, pour récupérer la liste de correspondance "valeur <=> titre" et ainsi afficher le titre de la valeur en base.
C'est ce qui est fait dans la vue "product | show_block_custom_main". La vue parcours tous les champs personnalisés et les affiches via la fonction
echo $this->fieldsClass->show($oneExtraField,$value);
Mais pour cela, il lui faut l'objet $oneExtraField qui contient la configuration de votre champs personnalisé.
Dans le listing des produits, la class field est chargée également mais les custom field ne sont chargés que si le listing n'est pas affiché en module.
Si l'affichage est fait dans un module, il faudra donc les charger.
Ensuite dans votre listing, vous pouvez utiliser le code de la vue "product | show_block_custom_main" afin de faire le parcours des champs personnalisés et n'afficher que les champs qui vous intéresse en fonction de leur $fieldName.
Cordialement,