3/ Le champ état à besoin du champ pays pour savoir dans quel pays il faut chercher les états à afficher. Actuellement, si le champ pays est désactivé, le champ état n'affiche rien.
5/ Veuillez changer la ligne mentionnée dans l'erreur par
if(!empty($this->mailer->AltBody)) $this->mailer->AltBody = $encodingHelper->change($this->mailer->AltBody,'UTF-8',$this->mailer->CharSet);
Cela résoudra l'erreur 500 qui n'arrive que quand le système essaie d'envoyer un email et que vous avez changé le charset dans ca config, que vous avez l'envoi en plusieurs parties actif, et que l'email contient une version texte.
Les livraisons sont seulement affichées si elles correspondent à la bonne zone dans l'adresse de livraison.
Pour vérifier cela, le système utilise le champ address_state si il est publié et sinon le champ address_country. Vous avez voulu utiliser un autre champ pour gérer vos zones mais le système ne connait pas ce champ et donc l'ignorera.
Ce que vou devriez faire, c'est utiliser le champ address_country pour afficher les zones de livraison que vous avez créé, changer le nom du champ pays en arrondissement, et enlever le champ address_post_code et le champ address_state.