Dans Prestashop supprimez l’objet du formulaire de contact

Quand on démarre un Prestashop, je conseille toujours d’éviter de faire trop de changement dans les sources du thème, mais quand ça peut optimiser l’ergonomie côté acheteur pourquoi s’en priver.

Optimiser le formulaire de contact

Pensez « Simplicité »

Une partie des marchands veulent dans leur formulaire de contact, toutes les informations possibles et imaginables, parce qu’il faut absolument tout récupérer du client. Mais est-ce là une bonne stratégie ? Ne faudrait-il pas plutôt chercher la simplification ?

Une autre partie des marchands cherchent à simplifier le formulaire de contact de base, fourni par défaut par Prestashop. Par exemple le champ objet, beaucoup de marchands ne veulent pas l’avoir parce qu’il est bien souvent inutile vous comprendrez pourquoi à l’étape suivante.

Est-ce que le champ objet est aussi utile qu'il en a l'air ?
Est-ce que le champ objet est aussi utile qu’il en a l’air ?

Retirons ensemble le champ « Objet »

Bien souvent quand une boutique démarre, y’a pas 36 départements ou rubrique… tous les mails arrivent au même endroit et on est rarement assez gros pour demander au client précisément à qui il désire s’adresser… il veut contacter le shop c’est tout.

Le problème c’est que un’partie des marchands ont un, voir deux éléments dans cette liste (Service client & Webmaster) ce qui bien souvent totalement inutile, car l’email arrivera à la même destination. Le pire c’est que si le client qui valide le formulaire, oublie de faire sa sélection, cela génère une erreur… ce n’est pas dramatique en soit, mais cela encombre l’affichage et ralenti le client dans son processus.

Bien souvent les clients oublient de sélectionner le sujet lors de la validation, alors qu'en plus c'est une information qui ne nous intéresse pas.
Bien souvent les clients oublient de sélectionner le sujet lors de la validation, alors qu’en plus c’est une information qui ne nous intéresse pas.

Pour corriger le problème nous allons retirer ce champ du formulaire de contact et mettre un champ caché avec une valeur prédéfinie. Cela permettra que le formulaire puisse être validé sans sélection et qu’il puisse correspondre aux exigences de la base de données de Prestashop.

Dans le fichier « contact-form.tpl » de votre thème partir de la ligne 58 on met en commentaire le bloc suivant avec {* et *} :

{* Webbax - 02.09.16 - retrait du champ sujet
<div class="form-group selector1">
        <label for="id_contact">{l s='Subject Heading'}</label>
{if isset($customerThread.id_contact) && $customerThread.id_contact && $contacts|count}
                {assign var=flag value=true}
                {foreach from=$contacts item=contact}
                        {if $contact.id_contact == $customerThread.id_contact}
                                <input type="text" class="form-control" id="contact_name" name="contact_name" value="{$contact.name|escape:'html':'UTF-8'}" readonly="readonly" />
                                <input type="hidden" name="id_contact" value="{$contact.id_contact|intval}" />
                                {$flag=false}
                        {/if}
                {/foreach}
                {if $flag && isset($contacts.0.id_contact)}
                                <input type="text" class="form-control" id="contact_name" name="contact_name" value="{$contacts.0.name|escape:'html':'UTF-8'}" readonly="readonly" />
                                <input type="hidden" name="id_contact" value="{$contacts.0.id_contact|intval}" />
                {/if}
</div>
{else}
        <select id="id_contact" class="form-control" name="id_contact">
                <option value="0">{l s='-- Choose --'}</option>
                {foreach from=$contacts item=contact}
                        <option value="{$contact.id_contact|intval}"{if isset($smarty.request.id_contact) && $smarty.request.id_contact == $contact.id_contact} selected="selected"{/if}>{$contact.name|escape:'html':'UTF-8'}</option>
                {/foreach}
        </select>
</div>
        <p id="desc_contact0" class="desc_contact{if isset($smarty.request.id_contact)} unvisible{/if}">&nbsp;</p>
        {foreach from=$contacts item=contact}
                <p id="desc_contact{$contact.id_contact|intval}" class="desc_contact contact-title{if !isset($smarty.request.id_contact) || $smarty.request.id_contact|intval != $contact.id_contact|intval} unvisible{/if}">
                        <i class="icon-comment-alt"></i>{$contact.description|escape:'html':'UTF-8'}
                </p>
        {/foreach}
{/if}
*}

Puis ensuite juste après le bloc que vous venez de commenter vous ajoutez le code suivant :

{* Webbax - 02.09.16 - ajout champ caché *}
<input type="hidden" name="id_contact" value="{$contacts.0.id_contact|intval}" />

Et voilà c’est fini, maintenant il ne reste plus qu’à tester pour voir si le champ a bien disparu et si le formulaire passe correctement la validation.  Si vous n’avez pas compris comment modifier le fichier TPL, vous pouvez aussi télécharger le fichier directement modifié.

Tout ça pour ça ? Finalement c'est qu'un champ non ? Oui, c'est vrai, mais sachez que ce sont les détails qui feront la différence entre un bon et un mauvais site e-commerce. Chaque élément aura donc son importance !
Tout ça pour ça ? Finalement c’est qu’un champ non ? Oui, c’est vrai mais sachez que ce sont les détails qui feront la différence entre un bon et un mauvais site e-commerce. Chaque élément aura donc son importance !

Vous aimez les formulaires ?

Est-ce que vous avez déjà été sur un site où il faut remplir un formulaire qui ne fonctionne pas et qui fait surgir à chaque validation un nouveau message d’erreur (c’est diaboliquement énervant). Cela est encore plus vrai sur mobile où tablette, car la saisie est plus complexe et la frustration plus grande en cas de non-validation immédiate du formulaire.

Bilan

Dans le cas présent on se trouve au final avec seulement deux champs, l’adresse e-mail et le message moins que ça c’est difficile, car on demande là vraiment le strict minimum au client. On regrettera malgré tout le fait que dans Prestashop nativement, on ne peut pas avoir une série de champs complémentaires à dispositions qui soient manageables via back-office (actuellement obligé de passer via un module tiers ou développement sur mesure).

Notez mon billet, Google va adorer :
1 étoiles - J'aime pas !2 étoiles - Bof !3 étoiles - Bien !4 étoiles - Très bien !5 étoiles - Génial ! (Soyez le premier à noter ce billet)
Loading...

3 commentaires sur “Dans Prestashop supprimez l’objet du formulaire de contact”

  1. Bonjour,

    Ayant testé cette technique cela fonctionne mais je me retrouve confronté a un petit soucis dans l’affichage du mail : dans l’intitulé coté client

    Votre message a été correctement envoyé #ct419 #tcX2dvPHQJzndH

    Du coup même en ayant remis le fichier de base je me retrouve avec ce genre de message en intitulé

    L’intitulé qui me préviens d’un message :
    [La Boutique Prestashop xxxxxx] Message depuis le formulaire de contact [no_sync]

    L’intitulé qui me préviens le client que son message à bien était transmis :
    [La Boutique Prestashop xxxxxx] Votre message a été correctement envoyé #ct419 #tcX2dvPHQJzndH

    Si des fois vous savez pourquoi cela s’affiche ainsi ??!!

    Merci d’avance de votre soutien !!

    1. Bonjour,

      Difficile de vous répondre sur ce point, il me semble j’avais vu passer un cas similaire mais je ne me souviens plus précisément de la correction appliquée.

      Il est possible que j’avais été modifier la traduction originale dans le code source, ou peut-être retirer les caractères spéciaux dans le texte de traduction du titre ex (%).

      Merci pour votre visite !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *