Pour notre prochain projet, une boutique e-commerce montée sur le CMS Spreecommerce, nous avions besoin d’un formulaire de contact un peu particulier.

Il devait répondre aux prérogatives suivantes :

  • Avoir un captcha ne nécessitant pas de compte utilisateur
  • Pouvoir définir différents destinataires en fonction de l’objet du message
  • Stocker les messages en base de données
  • Permettre le renvoi des messages à volonté depuis l’administration du site (en cas de perte par ex.).

Après plusieurs recherches infructueuses sur 3615 google nous avons décidé de prendre le chemin d’une réalisation d’extension en interne. Une fois le tuto de création d’extension pour Spreecommerce effectué, j’étais un peu sceptique sur mes capacités à réaliser cette extension, mais comme qui ne tente rien n’a rien, j’ai plongé tête baissée dans le code.

Après quelques démêlés avec l’api de spree, quelle ne fût pas ma surprise lorsque j’eus fini la partie administration, j’avais à peine écris 50 lignes de code !

De fil en aiguille, mon extension se développait tranquillement, ci-joint quelques captures d’écrans.

La partie publique :

Vue de la page publique du plugin spree_easy_contact

Le backend :

La liste des demandes de contact :

Vue du backend du plugin spree_easy_contact

La vue d’une demande de contact :

Vue du backend du plugin spree_easy_contact

La liste des topics :

Vue de la page publique du plugin spree_easy_contact

L’ajout d’un topic :

Vue de la page publique du plugin spree_easy_contact

Une fois cette extension quasi finie, il restait encore à la partager avec la communauté Spreecommerce…

Je me suis donc lancé dans la construction d’un gem pour ruby, grâce au formidable Railscast de Ryan Bates, tout a été bouclé en quelques minutes.

Ruby gem

Vous trouverez les instructions d’utilisation de cette extension sur :
spree-easy-contact