Pourcentage de réduction depuis un référent

Imaginons que vous ayez un deal avec un partenaire et vous souhaitez offrir une réduction d'un certain pourcentage à tout internaute arrivant sur votre formulaire depuis son site.
Cela est-il réalisable avec BreezingForms ?

Avec quelques lignes de scripts, tout est possible et réalisable.

Niveau: Moyen, Avancé
Version BF minimale requise: BreezingForms Lite

Récupérez en premier lieu l'URL de la page sur laquelle votre partenaire placera un lien vers votre formulaire et enregistrez-la, nous en aurons besoin plus loin.

Nous imaginons que votre formulaire est existant et pour le tutoriel, je propose un simple formulaire avec les champs suivants :

  • Champ de texte intitulé Référence et nommé referent
  • Champ de texte intitulé Prix et nommé prix
  • Champ de texte intitulé Réduction et nommé reduction
  • Champ de texte intitulé Total et nommé total

J'ai pour habitude de nommer mes champs, autant que possible, comme les intitulés mais tout en minuscule et bien entendu sans caractères spéciaux.

Nous avons donc nos champs de formulaires prêts, il faut maintenant le préparer pour récupérer l'url de provenance, la comparer et si elle correspond, on offre les 5% de réduction. Allons-y !

Votre formulaire est ouvert en mode d'édition dans le backend de votre Joomla!, cliquez l'onglet Avancé de la partie droite puis sur le bouton Plus d'options pour arriver dans les paramètres avancés depuis lesquels on peut accéder à l'onglet Scripts.

Cliquez donc sur l'onglet Scripts, dans la partie Scripts d'initialisation, sélectionnez l'option Personnalisé puis cliquez sur le bouton Créer la structure du code, ce qui insèrera la structure initiale de votre script comme suit.

function ff_nomFormulaire_init() // nomFormulaire sera le nom de votre formulaire
{
} // ff_nomFormulaire_init

Nous allons commencer par insérer un bout de script qui permettra de mettre à jour le champs Total au cas où le formulaire aurait un ou des champs à valeurs variables.
On lui ajoutera une variable que l'on nomme p.ex. urlFrom à qui on donne la valeur document.referrer puis nous allons définir le contenu du champs Référent de la valeur de cette variable.

Insérez dans la structure créée le bout de code suivant :

setInterval(calc,200);

var urlFrom = document.referrer;
ff_getElementByName('referent').value = urlFrom;

Avec ce code, le champ referent récupérera l'url de provenance coûte que coûte. Il suffit ensuite de la comparer avec l'url du partenaire sur laquelle se trouve le lien vers votre formulaire.

Pour cela, juste sous le code déjà inséré, continuer avec la condition suivante :

if (urlFrom=="https://www.sitereferent.fr/page_referente.html") // on indique ici l'url référente du partenaire
{
ff_getElementByName('reduction').value = 5; // On renseigne ici le pourcentage de réduction
}

Nous venons de comparer l'url du champs referent et la comparer avec l'url connue du référent. Si la correspondance est bonne, le champ réduction se voit alors remplir de la valeur de réduction en % .

Il reste à calculer le prix déduit de sa réduction de 5%.

Sortez de la structure préalablement créée et entrez la fonction de calcul comme suit :

function calc() { // nous calculons ci-dessous le prix réduit du pourcentage offert

var prixFinal= (100-Number(ff_getElementByName('reduction').value))/100; //on calcule le prix moins la réduction

ff_getElementByName('total').value = 0;

ff_getElementByName('total').value =
Number(ff_getElementByName('prix').value) *
prixFinal;

}

Lorsque votre script est complet, il doit ressembler à ce qui suit :

function ff_nomFormulaire_init()
{
	setInterval(calc,200);

	var urlFrom = document.referrer;
	ff_getElementByName('referent').value = urlFrom;

	if (urlFrom=='https://www.sitereferent.fr/page_referente.html') // on indique ici l'url référente du partenaire
	{
		ff_getElementByName('reduction').value = 5; // On renseigne ici le pourcentage de réduction
	}
} // ff_nomFormuliare_init

function calc() { // nous calculons ci-dessous le prix réduit du pourcentage offert

	//on calcule le prix moins la réduction (100-5)/100 = 0,95
	var prixFinal= (100-Number(ff_getElementByName('reduction').value))/100;

	ff_getElementByName('total').value = 0;

	ff_getElementByName('total').value =
	Number(ff_getElementByName('prix').value) *
	prixFinal;
}

Il est également possible de ne récupérer que le domaine de provenance, il faut alors remplacer

var urlFrom = document.referrer; par var urlFrom = document.referrer.split('/')[2];

et remplacer l'url par le domaine dans la condition à la ligne 8 du script ci-dessus, sans préfixe ni suffixe comme suit : www.sitereferent.fr

Enregistrez votre script, sortez de son édition afin de retourner au formulaire que vous n'oublierez pas d'enregistrer et de tester depuis un lien de menu sur votre site, puis depuis le lien de votre partenaire vers votre formulaire afin de vérifier que le calcul se fait bien.

Lorsque vous vous êtes assuré que le formulaire soit fonctionnel, vous pouvez paramétrer les différents champs en lecture seule et masquer le champs referent, il ne doit pas forcément être affiché sur le formulaire. Vous pouvez même masquer le champs de pourcentage, s'il n'est pas applicable, à l'aide d'un affichage conditionnel.

À vous d'adapter ce tutoriel à votre formulaire en utilisant éventuellement d'autres tutoriels de ce site pour arriver à vos fins.

Le formulaire créé pour le tutoriel se trouve ci-dessous, le prix fixé à 200 € n'est pas soumis à une réduction. Rendez-vous sur cette page et cliquer sur le lien que vous y trouverez pour revenir sur le formulaire sur lequel sera appliquée la remise de 5% pour l'exemple.

Voici l'url de la page d'où vous venez…

Les commentaires sont réservés aux membres enregistrés. Si vous êtes membre, veuillez vous connecter sinon, n'hésitez pas à vous enregistrer !